Omaha #4392 Updates to configure new QPID json file.
Former-commit-id:9f488920a1
[formerly ef2c2f94c7dc30fb0313ce8df295c52ea3c22e85] Former-commit-id:531944303c
This commit is contained in:
parent
3a4731daff
commit
f2e5ab25dc
4 changed files with 64 additions and 134 deletions
|
@ -4,6 +4,7 @@ Bundle-Name: Wes2Bridge Manager
|
||||||
Bundle-SymbolicName: com.raytheon.wes2bridge.manager
|
Bundle-SymbolicName: com.raytheon.wes2bridge.manager
|
||||||
Bundle-Version: 1.0.0.qualifier
|
Bundle-Version: 1.0.0.qualifier
|
||||||
Bundle-Vendor: RAYTHEON
|
Bundle-Vendor: RAYTHEON
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||||
Require-Bundle: com.raytheon.wes2bridge.common;bundle-version="1.0.0",
|
Require-Bundle: com.raytheon.wes2bridge.common;bundle-version="1.0.0",
|
||||||
org.apache.commons.lang;bundle-version="2.3.0"
|
org.apache.commons.lang;bundle-version="2.3.0",
|
||||||
|
org.codehaus.jackson;bundle-version="1.7.3"
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>
|
<attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>
|
||||||
<attribute name="Rsrc-Main-Class" value="com.raytheon.wes2bridge.manager.Wes2BridgeManager"/>
|
<attribute name="Rsrc-Main-Class" value="com.raytheon.wes2bridge.manager.Wes2BridgeManager"/>
|
||||||
<attribute name="Class-Path" value="."/>
|
<attribute name="Class-Path" value="."/>
|
||||||
<attribute name="Rsrc-Class-Path" value="./ commons-collections-3.2.jar geronimo-jms_1.1_spec-1.1.1.jar org.eclipse.ui_3.8.2.v20121018-234953.jar org.eclipse.swt_3.8.1.v3836b.jar org.eclipse.swt.gtk.linux.x86_3.8.1.v3836b.jar org.eclipse.jface_3.8.0.v20120912-135020.jar org.eclipse.core.commands_3.6.1.v20120912-135020.jar org.eclipse.ui.workbench_3.8.2.v20121128-133708.jar org.eclipse.core.runtime_3.8.0.v20120521-2346.jar org.eclipse.osgi_3.8.2.v20130124-134944.jar org.eclipse.equinox.common_3.6.100.v20120522-1841.jar org.eclipse.core.jobs_3.5.200.v20120521-2346.jar runtime_registry_compatibility.jar org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar org.eclipse.equinox.preferences_3.5.1.v20121031-182809.jar org.eclipse.core.contenttype_3.4.200.v20120523-2004.jar org.eclipse.equinox.app_1.3.100.v20120522-1841.jar log4j-1.2.16.jar log4j.extras-1.0.jar commons-beanutils-1.8.3.jar commons-digester-1.8.1.jar commons-lang-2.3.jar commons-configuration-1.6.jar"/>
|
<attribute name="Rsrc-Class-Path" value="./ commons-collections-3.2.jar geronimo-jms_1.1_spec-1.1.1.jar org.eclipse.ui_3.8.2.v20121018-234953.jar org.eclipse.swt_3.8.1.v3836b.jar org.eclipse.swt.gtk.linux.x86_3.8.1.v3836b.jar org.eclipse.jface_3.8.0.v20120912-135020.jar org.eclipse.core.commands_3.6.1.v20120912-135020.jar org.eclipse.ui.workbench_3.8.2.v20121128-133708.jar org.eclipse.core.runtime_3.8.0.v20120521-2346.jar org.eclipse.osgi_3.8.2.v20130124-134944.jar org.eclipse.equinox.common_3.6.100.v20120522-1841.jar org.eclipse.core.jobs_3.5.200.v20120521-2346.jar runtime_registry_compatibility.jar org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar org.eclipse.equinox.preferences_3.5.1.v20121031-182809.jar org.eclipse.core.contenttype_3.4.200.v20120523-2004.jar org.eclipse.equinox.app_1.3.100.v20120522-1841.jar log4j-1.2.16.jar log4j.extras-1.0.jar commons-beanutils-1.8.3.jar commons-digester-1.8.1.jar commons-lang-2.3.jar commons-configuration-1.6.jar jackson-core-asl-1.7.3.jar jackson-mapper-asl-1.7.3.jar jackson-xc-1.7.3.jar"/>
|
||||||
</manifest>
|
</manifest>
|
||||||
<zipfileset src="${basedir}/../build.wes2bridge.utility/lib/jar-in-jar-loader.zip"/>
|
<zipfileset src="${basedir}/../build.wes2bridge.utility/lib/jar-in-jar-loader.zip"/>
|
||||||
<zipfileset dir="${baseline.directory}/org.apache.commons.collections" includes="commons-collections-3.2.jar"/>
|
<zipfileset dir="${baseline.directory}/org.apache.commons.collections" includes="commons-collections-3.2.jar"/>
|
||||||
|
@ -36,6 +36,9 @@
|
||||||
<zipfileset dir="${baseline.directory}/org.apache.commons.beanutils" includes="commons-beanutils-1.8.3.jar"/>
|
<zipfileset dir="${baseline.directory}/org.apache.commons.beanutils" includes="commons-beanutils-1.8.3.jar"/>
|
||||||
<zipfileset dir="${baseline.directory}/org.apache.commons.digester" includes="commons-digester-1.8.1.jar"/>
|
<zipfileset dir="${baseline.directory}/org.apache.commons.digester" includes="commons-digester-1.8.1.jar"/>
|
||||||
<zipfileset dir="${baseline.directory}/org.apache.commons.lang" includes="commons-lang-2.3.jar"/>
|
<zipfileset dir="${baseline.directory}/org.apache.commons.lang" includes="commons-lang-2.3.jar"/>
|
||||||
|
<zipfileset dir="${baseline.directory}/org.codehaus.jackson" includes="jackson-core-asl-1.7.3.jar"/>
|
||||||
|
<zipfileset dir="${baseline.directory}/org.codehaus.jackson" includes="jackson-mapper-asl-1.7.3.jar"/>
|
||||||
|
<zipfileset dir="${baseline.directory}/org.codehaus.jackson" includes="jackson-xc-1.7.3.jar"/>
|
||||||
<fileset dir="${baseline.directory}/com.raytheon.wes2bridge.common/${bin.dir}"/>
|
<fileset dir="${baseline.directory}/com.raytheon.wes2bridge.common/${bin.dir}"/>
|
||||||
<fileset dir="${baseline.directory}/com.raytheon.wes2bridge.manager/${bin.dir}"/>
|
<fileset dir="${baseline.directory}/com.raytheon.wes2bridge.manager/${bin.dir}"/>
|
||||||
</jar>
|
</jar>
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
/**
|
|
||||||
* This software was developed and / or modified by Raytheon Company,
|
|
||||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
|
||||||
*
|
|
||||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
|
||||||
* This software product contains export-restricted data whose
|
|
||||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
|
||||||
* to non-U.S. persons whether in the United States or abroad requires
|
|
||||||
* an export license or other authorization.
|
|
||||||
*
|
|
||||||
* Contractor Name: Raytheon Company
|
|
||||||
* Contractor Address: 6825 Pine Street, Suite 340
|
|
||||||
* Mail Stop B8
|
|
||||||
* Omaha, NE 68106
|
|
||||||
* 402.291.0100
|
|
||||||
*
|
|
||||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
|
||||||
* further licensing information.
|
|
||||||
**/
|
|
||||||
package com.raytheon.wes2bridge.manager;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Identifies XML tag names of interest as constants within the qpid config.xml
|
|
||||||
* configuration.
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
*
|
|
||||||
* SOFTWARE HISTORY
|
|
||||||
*
|
|
||||||
* Date Ticket# Engineer Description
|
|
||||||
* ------------ ---------- ----------- --------------------------
|
|
||||||
* Apr 17, 2013 bkowal Initial creation
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* @author bkowal
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
public interface IQpidConfigurationXML {
|
|
||||||
public static final String XML_BROKER = "broker";
|
|
||||||
public static final String XML_CONNECTOR = "connector";
|
|
||||||
public static final String XML_MANAGEMENT = "management";
|
|
||||||
public static final String XML_JMXPORT = "jmxport";
|
|
||||||
public static final String XML_HTTP = "http";
|
|
||||||
public static final String XML_REGISTRY_SERVER = "registryServer";
|
|
||||||
public static final String XML_PORT = "port";
|
|
||||||
}
|
|
|
@ -26,27 +26,17 @@ import java.io.BufferedReader;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
|
|
||||||
import javax.xml.bind.JAXBException;
|
import javax.xml.bind.JAXBException;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
import javax.xml.transform.Transformer;
|
|
||||||
import javax.xml.transform.TransformerException;
|
|
||||||
import javax.xml.transform.TransformerFactory;
|
|
||||||
import javax.xml.transform.TransformerFactoryConfigurationError;
|
|
||||||
import javax.xml.transform.dom.DOMSource;
|
|
||||||
import javax.xml.transform.stream.StreamResult;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.w3c.dom.Document;
|
import org.codehaus.jackson.map.ObjectMapper;
|
||||||
import org.w3c.dom.Node;
|
import org.codehaus.jackson.type.TypeReference;
|
||||||
import org.w3c.dom.NodeList;
|
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
import com.raytheon.wes2bridge.manager.IQpidConfigurationXML;
|
|
||||||
import com.raytheon.wes2bridge.common.configuration.Wes2BridgeCase;
|
import com.raytheon.wes2bridge.common.configuration.Wes2BridgeCase;
|
||||||
import com.raytheon.wes2bridge.configuration.jaxb.Wes2BridgeJaxbManager;
|
import com.raytheon.wes2bridge.configuration.jaxb.Wes2BridgeJaxbManager;
|
||||||
|
|
||||||
|
@ -73,6 +63,7 @@ import com.raytheon.wes2bridge.configuration.jaxb.Wes2BridgeJaxbManager;
|
||||||
* Aug 14, 2014 3521 bkowal Updated to use Wes2BridgeCase. Eliminated
|
* Aug 14, 2014 3521 bkowal Updated to use Wes2BridgeCase. Eliminated
|
||||||
* configuration that is no longer used and
|
* configuration that is no longer used and
|
||||||
* updated EDEX re-configuration.
|
* updated EDEX re-configuration.
|
||||||
|
* Apr 15, 2015 4392 dlovely Updates the new qpid json configuration now
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -101,6 +92,16 @@ public class Wes2BridgeManager {
|
||||||
|
|
||||||
private String wes2BridgeScripts = null;
|
private String wes2BridgeScripts = null;
|
||||||
|
|
||||||
|
private static final TypeReference<Map<String, Object>> MAP_TYPE_REFERENCE = new TypeReference<Map<String, Object>>()
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
public static final String QPID_NAME = "name";
|
||||||
|
public static final String QPID_AMQP = "AMQP";
|
||||||
|
public static final String QPID_HTTP = "HTTP";
|
||||||
|
public static final String QPID_PORT = "port";
|
||||||
|
public static final String QPID_PORTS = "ports";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -409,87 +410,60 @@ public class Wes2BridgeManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reconfigureQPID() throws FileNotFoundException, IOException,
|
public void reconfigureQPID() throws FileNotFoundException, IOException {
|
||||||
ParserConfigurationException, SAXException,
|
|
||||||
TransformerFactoryConfigurationError, TransformerException {
|
|
||||||
final String srcQpidDirectory = AWIPSII + "/" + "qpid";
|
final String srcQpidDirectory = AWIPSII + "/" + "qpid";
|
||||||
final String qpidDirectory = WES2BRIDGE_DIRECTORY + "/"
|
final String qpidDirectory = WES2BRIDGE_DIRECTORY + "/"
|
||||||
+ this.wes2BridgeCase.getName() + "/" + "qpid";
|
+ this.wes2BridgeCase.getName() + "/" + "qpid";
|
||||||
|
|
||||||
this.updateQpidConfigXML(srcQpidDirectory, qpidDirectory);
|
this.updateQpidConfigJSON(srcQpidDirectory, qpidDirectory);
|
||||||
this.updateQPIDD(qpidDirectory);
|
this.updateQPIDD(qpidDirectory);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Updates qpid config.xml */
|
/* Updates qpid config.json */
|
||||||
private void updateQpidConfigXML(String srcQpidDirectory,
|
private void updateQpidConfigJSON(String srcQpidDirectory,
|
||||||
String qpidDirectory) throws FileNotFoundException, IOException,
|
String qpidDirectory) throws FileNotFoundException, IOException {
|
||||||
ParserConfigurationException, SAXException,
|
String srcconfig_json = srcQpidDirectory + "/config.json";
|
||||||
TransformerFactoryConfigurationError, TransformerException {
|
String config_json = qpidDirectory + "/config.json";
|
||||||
String srcconfig_xml = srcQpidDirectory + "/etc/config.xml";
|
|
||||||
String config_xml = qpidDirectory + "/etc/config.xml";
|
|
||||||
|
|
||||||
DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance()
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
.newDocumentBuilder();
|
|
||||||
Document document = documentBuilder.parse(srcconfig_xml);
|
|
||||||
|
|
||||||
// Get the root broker node.
|
BufferedReader br = null;
|
||||||
Node brokerNode = document.getElementsByTagName(
|
BufferedWriter bw = null;
|
||||||
IQpidConfigurationXML.XML_BROKER).item(0);
|
try {
|
||||||
// Get the connector node.
|
br = this.getBufferedReader(srcconfig_json);
|
||||||
Node connectorNode = this.getChildNodeByName(brokerNode,
|
bw = this.getBufferedWriter(config_json);
|
||||||
IQpidConfigurationXML.XML_CONNECTOR);
|
|
||||||
// Get the management node.
|
|
||||||
Node managementNode = this.getChildNodeByName(brokerNode,
|
|
||||||
IQpidConfigurationXML.XML_MANAGEMENT);
|
|
||||||
// Get the jmxport node.
|
|
||||||
Node jmxPortNode = this.getChildNodeByName(managementNode,
|
|
||||||
IQpidConfigurationXML.XML_JMXPORT);
|
|
||||||
// Get the http port node.
|
|
||||||
Node httpPortNode = this.getChildNodeByName(managementNode,
|
|
||||||
IQpidConfigurationXML.XML_HTTP);
|
|
||||||
|
|
||||||
Node portNode = null;
|
String line = StringUtils.EMPTY;
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
while( ( line = br.readLine() ) != null ) {
|
||||||
|
stringBuilder.append( line );
|
||||||
|
}
|
||||||
|
|
||||||
// Get the connector port node.
|
Map<String, Object> attributesMap = mapper.readValue(stringBuilder.toString(), MAP_TYPE_REFERENCE);
|
||||||
portNode = this.getChildNodeByName(connectorNode,
|
|
||||||
IQpidConfigurationXML.XML_PORT);
|
@SuppressWarnings("unchecked")
|
||||||
portNode.setTextContent(Integer.toString(this.wes2BridgeCase
|
ArrayList<Object> ports = (ArrayList<Object>) attributesMap.get(QPID_PORTS);
|
||||||
.getJmsPort()));
|
|
||||||
// Get the jmxport registryServer node
|
for(int x = 0; x < ports.size(); x++) {
|
||||||
portNode = this.getChildNodeByName(jmxPortNode,
|
@SuppressWarnings("unchecked")
|
||||||
IQpidConfigurationXML.XML_REGISTRY_SERVER);
|
Map<String, Object> port = (Map<String, Object>) ports.get(x);
|
||||||
portNode.setTextContent(Integer.toString(this.wes2BridgeCase
|
String name = (String) port.get(QPID_NAME);
|
||||||
.getQpidJmxPort()));
|
if (QPID_AMQP.equals(name)) {
|
||||||
// Get the http port node.
|
port.put(QPID_PORT, this.wes2BridgeCase.getQpidJmxPort());
|
||||||
portNode = this.getChildNodeByName(httpPortNode,
|
} else if (QPID_HTTP.equals(name)) {
|
||||||
IQpidConfigurationXML.XML_PORT);
|
port.put(QPID_PORT, this.wes2BridgeCase.getQpidHttpPort());
|
||||||
portNode.setTextContent(Integer.toString(this.wes2BridgeCase
|
}
|
||||||
.getQpidHttpPort()));
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write the updated configuration file to its destination.
|
* Write the updated configuration file to its destination.
|
||||||
*/
|
*/
|
||||||
Transformer transformer = TransformerFactory.newInstance()
|
mapper.defaultPrettyPrintingWriter().writeValue(bw, attributesMap);
|
||||||
.newTransformer();
|
|
||||||
DOMSource domSource = new DOMSource(document);
|
|
||||||
StreamResult streamResult = new StreamResult(new File(config_xml));
|
|
||||||
transformer.transform(domSource, streamResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Node getChildNodeByName(Node parentNode, String childName) {
|
} finally {
|
||||||
if (parentNode.hasChildNodes() == false) {
|
br.close();
|
||||||
return null;
|
bw.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
NodeList nodeList = parentNode.getChildNodes();
|
|
||||||
for (int i = 0; i < nodeList.getLength(); i++) {
|
|
||||||
Node node = nodeList.item(i);
|
|
||||||
if (node.getNodeName().equals(childName)) {
|
|
||||||
return node;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateQPIDD(String qpidDirectory)
|
private void updateQPIDD(String qpidDirectory)
|
||||||
|
|
Loading…
Add table
Reference in a new issue