PageRenderTime 7ms CodeModel.GetById 1ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/AsteriskGateway.java

https://github.com/ajakubo1/opennms
Java | 87 lines | 31 code | 13 blank | 43 comment | 0 complexity | aed69b07e678b29bda7f013358881e61 MD5 | raw file
 1/*******************************************************************************
 2 * This file is part of OpenNMS(R).
 3 *
 4 * Copyright (C) 2009-2012 The OpenNMS Group, Inc.
 5 * OpenNMS(R) is Copyright (C) 1999-2012 The OpenNMS Group, Inc.
 6 *
 7 * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
 8 *
 9 * OpenNMS(R) is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published
11 * by the Free Software Foundation, either version 3 of the License,
12 * or (at your option) any later version.
13 *
14 * OpenNMS(R) is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with OpenNMS(R).  If not, see:
21 *      http://www.gnu.org/licenses/
22 *
23 * For more information contact:
24 *     OpenNMS(R) Licensing <license@opennms.org>
25 *     http://www.opennms.org/
26 *     http://www.opennms.com/
27 *******************************************************************************/
28
29package org.opennms.netmgt.asterisk.agi;
30
31import org.asteriskjava.fastagi.AgiServerThread;
32import org.asteriskjava.fastagi.ClassNameMappingStrategy;
33import org.asteriskjava.fastagi.DefaultAgiServer;
34import org.opennms.netmgt.daemon.AbstractServiceDaemon;
35
36/**
37 * <p>AsteriskGateway class.</p>
38 *
39 * @author <A HREF="mailto:jeffg@opennms.org">Jeff Gehlbach</A>
40 * @author <A HREF="http://www.opennms.org/">OpenNMS</A>
41 * @author <A HREF="mailto:jeffg@opennms.org">Jeff Gehlbach</A>
42 * @author <A HREF="http://www.opennms.org/">OpenNMS</A>
43 * @version $Id: $
44 */
45public class AsteriskGateway extends AbstractServiceDaemon {
46
47    AgiServerThread m_agiServerThread;
48    private int m_port = 4573;
49    private int m_maxPoolSize = 10;
50    
51    /**
52     * <p>Constructor for AsteriskGateway.</p>
53     */
54    protected AsteriskGateway() {
55        super("asterisk-gateway");
56    }
57
58    /** {@inheritDoc} */
59    @Override
60    protected void onInit() {
61        int port = Integer.getInteger("org.opennms.netmgt.asterisk.agi.listenPort", m_port);
62        int maxPoolSize = Integer.getInteger("org.opennms.netmgt.asterisk.agi.maxPoolSize", m_maxPoolSize);
63        
64        DefaultAgiServer agiServer = new DefaultAgiServer(new ClassNameMappingStrategy(false));
65        
66        agiServer.setPort(port);
67        agiServer.setMaximumPoolSize(maxPoolSize);
68        
69        m_agiServerThread = new AgiServerThread(agiServer);
70        
71        // This is the default, but be explicit
72        m_agiServerThread.setDaemon(true);
73    }
74    
75    /** {@inheritDoc} */
76    @Override
77    protected void onStart() {
78        m_agiServerThread.startup();
79    }
80    
81    /** {@inheritDoc} */
82    @Override
83    protected void onStop() {
84        m_agiServerThread.shutdown();
85    }
86
87}