Omaha #3521 - removed dependency on now non-existent apache commons logging FOSS library. Eliminated configuration parameters

that are no longer required by EDEX.

Change-Id: If0387c4f87054bbec898d8371d1b182a146c4c3f

Former-commit-id: dfa6fbbca6 [formerly 53f036b5a5] [formerly ce78f461a3] [formerly ce78f461a3 [formerly a61c35fcb5]] [formerly dfa6fbbca6 [formerly 53f036b5a5] [formerly ce78f461a3] [formerly ce78f461a3 [formerly a61c35fcb5]] [formerly fec755cc93 [formerly ce78f461a3 [formerly a61c35fcb5] [formerly fec755cc93 [formerly e4623ff1a31816aefd717d2ae494e81441710b79]]]]]
Former-commit-id: fec755cc93
Former-commit-id: 5fbe670376 [formerly 395122dc26] [formerly 601726b27c] [formerly 679ac36acf01d5744eedaf8e6f89a8dcfb07655e [formerly eee6fef1c421700ddb8ab1f81c3a13446011c87e] [formerly 601726b27c [formerly 4f82e0ba7d]]]
Former-commit-id: c924f43196276609568f2de993f09ea0a9825309 [formerly 165dde9fcc7c2bb71d3b8fd1bacfd80915ecba7a] [formerly e5b68c6ae3 [formerly e78304e1a7]]
Former-commit-id: e5b68c6ae3
Former-commit-id: 90df3831bf
This commit is contained in:
Bryan Kowal 2014-08-14 10:00:22 -05:00
parent 3586b80ec5
commit e364fd7b4a
9 changed files with 417 additions and 378 deletions

View file

@ -5,6 +5,6 @@ Bundle-SymbolicName: com.raytheon.wes2bridge.common
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.6
Require-Bundle: org.apache.commons.configuration;bundle-version="1.6.0", Require-Bundle: org.apache.commons.lang;bundle-version="2.3.0"
org.apache.commons.lang;bundle-version="2.3.0" Export-Package: com.raytheon.wes2bridge.common.configuration,
Export-Package: com.raytheon.wes2bridge.common.configuration com.raytheon.wes2bridge.configuration.jaxb

View file

@ -0,0 +1,215 @@
/**
* 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.common.configuration;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Represents a Wes2Bridge test case that will be used to configure a new edex
* environment.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 12, 2014 3521 bkowal Initial creation
*
* </pre>
*
* @author bkowal
* @version 1.0
*/
@XmlRootElement(name = "Wes2BridgeCase")
@XmlAccessorType(XmlAccessType.NONE)
public class Wes2BridgeCase {
@XmlElement
private String name;
@XmlElement
private String dataArchiveRoot;
@XmlElement
private int databasePort;
@XmlElement
private int edexHttpPort;
@XmlElement
private int qpidHttpPort;
@XmlElement
private int qpidJmxPort;
@XmlElement
private int jmsPort;
@XmlElement
private int httpdPypiesPort;
@XmlElement
private int pypiesLoggingPort;
/**
*
*/
public Wes2BridgeCase() {
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the dataArchiveRoot
*/
public String getDataArchiveRoot() {
return dataArchiveRoot;
}
/**
* @param dataArchiveRoot
* the dataArchiveRoot to set
*/
public void setDataArchiveRoot(String dataArchiveRoot) {
this.dataArchiveRoot = dataArchiveRoot;
}
/**
* @return the databasePort
*/
public int getDatabasePort() {
return databasePort;
}
/**
* @param databasePort
* the databasePort to set
*/
public void setDatabasePort(int databasePort) {
this.databasePort = databasePort;
}
/**
* @return the edexHttpPort
*/
public int getEdexHttpPort() {
return edexHttpPort;
}
/**
* @param edexHttpPort
* the edexHttpPort to set
*/
public void setEdexHttpPort(int edexHttpPort) {
this.edexHttpPort = edexHttpPort;
}
/**
* @return the qpidHttpPort
*/
public int getQpidHttpPort() {
return qpidHttpPort;
}
/**
* @param qpidHttpPort
* the qpidHttpPort to set
*/
public void setQpidHttpPort(int qpidHttpPort) {
this.qpidHttpPort = qpidHttpPort;
}
/**
* @return the qpidJmxPort
*/
public int getQpidJmxPort() {
return qpidJmxPort;
}
/**
* @param qpidJmxPort
* the qpidJmxPort to set
*/
public void setQpidJmxPort(int qpidJmxPort) {
this.qpidJmxPort = qpidJmxPort;
}
/**
* @return the jmsPort
*/
public int getJmsPort() {
return jmsPort;
}
/**
* @param jmsPort
* the jmsPort to set
*/
public void setJmsPort(int jmsPort) {
this.jmsPort = jmsPort;
}
/**
* @return the httpdPypiesPort
*/
public int getHttpdPypiesPort() {
return httpdPypiesPort;
}
/**
* @param httpdPypiesPort
* the httpdPypiesPort to set
*/
public void setHttpdPypiesPort(int httpdPypiesPort) {
this.httpdPypiesPort = httpdPypiesPort;
}
/**
* @return the pypiesLoggingPort
*/
public int getPypiesLoggingPort() {
return pypiesLoggingPort;
}
/**
* @param pypiesLoggingPort
* the pypiesLoggingPort to set
*/
public void setPypiesLoggingPort(int pypiesLoggingPort) {
this.pypiesLoggingPort = pypiesLoggingPort;
}
}

View file

@ -1,223 +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.common.configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
/**
* Reads the edex-environment XML configuration.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jan 18, 2012 1490 bkowal Added httpdPypiesPort and
* pypiesLoggingPort as configurable
* parameters.
* Apr 18, 2013 1899 bkowal Added qpidHttpPort and qpidJmxPort
* as configurable parameters.
*
* </pre>
*
* @author bkowal
* @version 1.0
*/
/*
* Example:
* <Wes2BridgeCase>
* <name>String</name>
* <dataArchiveRoot>String</dataArchiveRoot>
* <databasePort>int</databasePort>
* <edexHttpPort>int</edexHttpPort>
* <jmsPort>int</jmsPort>
* <qpidHttpPort>int</qpidHttpPort>
* <qpidJmxPort>int</qpidJmxPort>
* <webPort>int</webPort>
* <confidentialPort>int</confidentialPort>
* <httpdPypiesPort>int</httpdPypiesPort>
* <pypiesLoggingPort>int</pypiesLoggingPort>
* </Wes2BridgeCase>
*/
public class Wes2BridgeConfiguration {
private static class XML_SCHEMA {
public static final String XML_TEST_CASE_NAME = "name";
public static final String XML_DATA_ARCHIVE_ROOT = "dataArchiveRoot";
public static final String XML_DATABASE_PORT = "databasePort";
public static final String XML_EDEX_HTTP_PORT = "edexHttpPort";
public static final String XML_JMS_PORT = "jmsPort";
public static final String XML_QPID_HTTP_PORT = "qpidHttpPort";
public static final String XML_QPID_JMX_PORT = "qpidJmxPort";
public static final String XML_WEB_PORT = "webPort";
public static final String XML_CONFIDENTIAL_PORT = "confidentialPort";
public static final String XML_HTTPD_PYPIES_PORT = "httpdPypiesPort";
public static final String XML_PYPIES_LOGGING_PORT = "pypiesLoggingPort";
}
private static final String __SPACE = " ";
private String configurationFile = null;
private String testCaseName = null;
private String dataArchiveRoot = null;
private int databasePort = -1;
private int edexHttpPort = -1;
private int jmsPort = -1;
private int qpidHttpPort = -1;
private int qpidJmxPort = -1;
private int webPort = -1;
private int confidentialPort = -1;
private int httpdPypiesPort = -1;
private int pypiesLoggingPort = -1;
/**
*
*/
public Wes2BridgeConfiguration(String configurationFile) {
this.configurationFile = configurationFile;
}
public void init() throws ConfigurationException {
XMLConfiguration xmlConfiguration = new XMLConfiguration(
this.configurationFile);
this.testCaseName = xmlConfiguration
.getString(XML_SCHEMA.XML_TEST_CASE_NAME);
/*
* Currently spaces are not allowed in the name of a test case.
*/
if (this.testCaseName.contains(__SPACE)) {
ConfigurationException exception = new ConfigurationException(
"The Edex Environment name cannot contain spaces.");
exception.fillInStackTrace();
throw exception;
}
this.dataArchiveRoot = xmlConfiguration
.getString(XML_SCHEMA.XML_DATA_ARCHIVE_ROOT);
this.databasePort = xmlConfiguration
.getInt(XML_SCHEMA.XML_DATABASE_PORT);
this.edexHttpPort = xmlConfiguration
.getInt(XML_SCHEMA.XML_EDEX_HTTP_PORT);
this.jmsPort = xmlConfiguration.getInt(XML_SCHEMA.XML_JMS_PORT);
this.qpidHttpPort =
xmlConfiguration.getInt(XML_SCHEMA.XML_QPID_HTTP_PORT);
this.qpidJmxPort =
xmlConfiguration.getInt(XML_SCHEMA.XML_QPID_JMX_PORT);
this.webPort = xmlConfiguration.getInt(XML_SCHEMA.XML_WEB_PORT);
this.confidentialPort = xmlConfiguration
.getInt(XML_SCHEMA.XML_CONFIDENTIAL_PORT);
this.httpdPypiesPort = xmlConfiguration
.getInt(XML_SCHEMA.XML_HTTPD_PYPIES_PORT);
this.pypiesLoggingPort = xmlConfiguration
.getInt(XML_SCHEMA.XML_PYPIES_LOGGING_PORT);
}
public String getTestCaseName() {
return testCaseName;
}
public void setTestCaseName(String testCaseName) {
this.testCaseName = testCaseName;
}
public String getDataArchiveRoot() {
return dataArchiveRoot;
}
public void setDataArchiveRoot(String dataArchiveRoot) {
this.dataArchiveRoot = dataArchiveRoot;
}
public int getDatabasePort() {
return databasePort;
}
public void setDatabasePort(int databasePort) {
this.databasePort = databasePort;
}
public int getEdexHttpPort() {
return edexHttpPort;
}
public void setEdexHttpPort(int edexHttpPort) {
this.edexHttpPort = edexHttpPort;
}
public int getJmsPort() {
return jmsPort;
}
public void setJmsPort(int jmsPort) {
this.jmsPort = jmsPort;
}
public int getQpidHttpPort() {
return qpidHttpPort;
}
public void setQpidHttpPort(int qpidHttpPort) {
this.qpidHttpPort = qpidHttpPort;
}
public int getQpidJmxPort() {
return qpidJmxPort;
}
public void setQpidJmxPort(int qpidJmxPort) {
this.qpidJmxPort = qpidJmxPort;
}
public int getWebPort() {
return webPort;
}
public void setWebPort(int webPort) {
this.webPort = webPort;
}
public int getConfidentialPort() {
return confidentialPort;
}
public void setConfidentialPort(int confidentialPort) {
this.confidentialPort = confidentialPort;
}
public int getHttpdPypiesPort() {
return httpdPypiesPort;
}
public void setHttpdPypiesPort(int httpdPypiesPort) {
this.httpdPypiesPort = httpdPypiesPort;
}
public int getPypiesLoggingPort() {
return pypiesLoggingPort;
}
public void setPypiesLoggingPort(int pypiesLoggingPort) {
this.pypiesLoggingPort = pypiesLoggingPort;
}
}

View file

@ -0,0 +1,58 @@
/**
* 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.configuration.jaxb;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import com.raytheon.wes2bridge.common.configuration.Wes2BridgeCase;
/**
* Uses jaxb to convert Wes2Bridge configuration in XML format to a Java POJO.
*
* <pre>
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 12, 2014 3521 bkowal Initial creation
*
* </pre>
*
* @author bkowal
* @version 1.0
*/
public class Wes2BridgeJaxbManager {
/**
*
*/
protected Wes2BridgeJaxbManager() {
}
public static Wes2BridgeCase toWes2BridgeCase(File wes2bridgeXMLFile)
throws JAXBException {
JAXBContext jaxbContext = JAXBContext.newInstance(Wes2BridgeCase.class);
return (Wes2BridgeCase) jaxbContext.createUnmarshaller().unmarshal(
wes2bridgeXMLFile);
}
}

View file

@ -36,7 +36,6 @@
<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.apache.commons.configuration" includes="commons-configuration-1.6.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.configuration/${bin.dir}"/> <fileset dir="${baseline.directory}/com.raytheon.wes2bridge.configuration/${bin.dir}"/>
</jar> </jar>

View file

@ -3,78 +3,75 @@
*/ */
package com.raytheon.wes2bridge.configuration; package com.raytheon.wes2bridge.configuration;
import org.apache.commons.configuration.ConfigurationException; import java.io.File;
import com.raytheon.wes2bridge.common.configuration.Wes2BridgeConfiguration; import javax.xml.bind.JAXBException;
import com.raytheon.wes2bridge.common.configuration.Wes2BridgeCase;
import com.raytheon.wes2bridge.configuration.jaxb.Wes2BridgeJaxbManager;
/** /**
* A command line utility that can be used to retrieve individual values from configuration.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* ? ? bkowal Initial Creation.
* Aug 14, 2014 3521 bkowal Updated to use Wes2BridgeCase.
*
* </pre>
*
* @author bkowal * @author bkowal
* * @version 1.0
*/ */
public class ConfigurationUtility public class ConfigurationUtility {
{ private static final String FIELD_NAME = "-name";
private static final String FIELD_NAME = "-name";
private static final String FIELD_ARCHIVE = "-archiveRoot"; private static final String FIELD_ARCHIVE = "-archiveRoot";
private static final String FIELD_DBPORT = "-databasePort";
private static final String FIELD_HTTPPORT = "-httpPort"; private static final String FIELD_DBPORT = "-databasePort";
private static final String FIELD_JMSPORT = "-jmsPort";
private static final String FIELD_WEBPORT = private static final String FIELD_HTTPPORT = "-httpPort";
"-webPort";
private static final String FIELD_CONFPORT = private static final String FIELD_JMSPORT = "-jmsPort";
"-confidentialPort";
/**
/** * @param args
* @param args */
*/ public static void main(String[] args) {
public static void main(String[] args) if (args.length != 2) {
{ System.out
if (args.length != 2) .println("Error: both a configuration file and a field must be specified.");
{ System.exit(-1);
System.out.println("Error: both a configuration file and a field must be specified."); }
System.exit(-1);
} Wes2BridgeCase wes2BridgeCase = null;
try {
Wes2BridgeConfiguration configuration = wes2BridgeCase = Wes2BridgeJaxbManager.toWes2BridgeCase(new File(
new Wes2BridgeConfiguration(args[0]); args[0]));
try } catch (JAXBException e) {
{ e.printStackTrace();
configuration.init(); System.out
} .println("FAILED TO READ THE SPECIFIED CONFIGURATION FILE: "
catch (ConfigurationException e1) + args[0] + "!");
{ System.exit(-1);
e1.printStackTrace(); }
System.exit(-1);
} final String field = args[1];
if (field.equals(FIELD_NAME)) {
final String field = args[1]; System.out.print(wes2BridgeCase.getName());
if (field.equals(FIELD_NAME)) } else if (field.equals(FIELD_ARCHIVE)) {
{ System.out.print(wes2BridgeCase.getDataArchiveRoot());
System.out.print(configuration.getTestCaseName()); } else if (field.equals(FIELD_DBPORT)) {
} System.out.print(wes2BridgeCase.getDatabasePort());
else if (field.equals(FIELD_ARCHIVE)) } else if (field.equals(FIELD_HTTPPORT)) {
{ System.out.print(wes2BridgeCase.getEdexHttpPort());
System.out.print(configuration.getDataArchiveRoot()); } else if (field.equals(FIELD_JMSPORT)) {
} System.out.print(wes2BridgeCase.getJmsPort());
else if (field.equals(FIELD_DBPORT)) }
{ System.exit(0);
System.out.print(configuration.getDatabasePort()); }
}
else if (field.equals(FIELD_HTTPPORT))
{
System.out.print(configuration.getEdexHttpPort());
}
else if (field.equals(FIELD_JMSPORT))
{
System.out.print(configuration.getJmsPort());
}
else if (field.equals(FIELD_WEBPORT))
{
System.out.println(configuration.getWebPort());
}
else if (field.equals(FIELD_CONFPORT))
{
System.out.println(configuration.getConfidentialPort());
}
System.exit(0);
}
} }

View file

@ -6,5 +6,4 @@ Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: RAYTHEON Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
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.apache.commons.configuration;bundle-version="1.6.0"

View file

@ -36,7 +36,6 @@
<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.apache.commons.configuration" includes="commons-configuration-1.6.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>

View file

@ -28,6 +28,8 @@ import java.io.BufferedWriter;
import java.io.IOException; import java.io.IOException;
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.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
@ -38,7 +40,6 @@ import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource; import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamResult;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Node; import org.w3c.dom.Node;
@ -46,7 +47,8 @@ import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import com.raytheon.wes2bridge.manager.IQpidConfigurationXML; import com.raytheon.wes2bridge.manager.IQpidConfigurationXML;
import com.raytheon.wes2bridge.common.configuration.Wes2BridgeConfiguration; import com.raytheon.wes2bridge.common.configuration.Wes2BridgeCase;
import com.raytheon.wes2bridge.configuration.jaxb.Wes2BridgeJaxbManager;
/** /**
* This java-based utility is used to update a wes2bridge environment. This * This java-based utility is used to update a wes2bridge environment. This
@ -68,6 +70,9 @@ import com.raytheon.wes2bridge.common.configuration.Wes2BridgeConfiguration;
* Dec 11, 2013 2182 bkowal Update the postgresql port in * Dec 11, 2013 2182 bkowal Update the postgresql port in
* postgresql.conf instead of the * postgresql.conf instead of the
* postgresql startup scripts * postgresql startup scripts
* Aug 14, 2014 3521 bkowal Updated to use Wes2BridgeCase. Eliminated
* configuration that is no longer used and
* updated EDEX re-configuration.
* *
* </pre> * </pre>
* *
@ -92,7 +97,7 @@ public class Wes2BridgeManager {
private static final String DEFAULT_HDF5_DIRECTORY = "/edex/data/hdf5"; private static final String DEFAULT_HDF5_DIRECTORY = "/edex/data/hdf5";
private Wes2BridgeConfiguration configuration = null; private Wes2BridgeCase wes2BridgeCase;
private String wes2BridgeScripts = null; private String wes2BridgeScripts = null;
@ -151,11 +156,12 @@ public class Wes2BridgeManager {
System.exit(EXIT_SUCCESS); System.exit(EXIT_SUCCESS);
} }
public void init(String arg1) throws ConfigurationException { public void init(String arg1) throws JAXBException {
configuration = new Wes2BridgeConfiguration(arg1); this.wes2BridgeCase = Wes2BridgeJaxbManager.toWes2BridgeCase(new File(
configuration.init(); arg1));
this.wes2BridgeScripts = WES2BRIDGE_DIRECTORY + "/" this.wes2BridgeScripts = WES2BRIDGE_DIRECTORY + "/"
+ configuration.getTestCaseName() + "/" + "edex-environment"; + this.wes2BridgeCase.getName() + "/" + "edex-environment";
} }
/* /*
@ -164,7 +170,7 @@ public class Wes2BridgeManager {
public void reconfigureEdex() throws FileNotFoundException, IOException { public void reconfigureEdex() throws FileNotFoundException, IOException {
final String srcEdexDirectory = AWIPSII + "/" + "edex"; final String srcEdexDirectory = AWIPSII + "/" + "edex";
final String edexDirectory = WES2BRIDGE_DIRECTORY + "/" final String edexDirectory = WES2BRIDGE_DIRECTORY + "/"
+ this.configuration.getTestCaseName() + "/" + "edex"; + this.wes2BridgeCase.getName() + "/" + "edex";
this.updateEdexSetup(srcEdexDirectory, edexDirectory); this.updateEdexSetup(srcEdexDirectory, edexDirectory);
this.updateEdexWrapper(srcEdexDirectory, edexDirectory); this.updateEdexWrapper(srcEdexDirectory, edexDirectory);
@ -197,22 +203,22 @@ public class Wes2BridgeManager {
Matcher matcher = pattern7.matcher(line); Matcher matcher = pattern7.matcher(line);
if (line.startsWith(line1)) { if (line.startsWith(line1)) {
line = line1 + this.configuration.getDataArchiveRoot(); line = line1 + this.wes2BridgeCase.getDataArchiveRoot();
} else if (line.startsWith(line2)) { } else if (line.startsWith(line2)) {
line = line2 + this.configuration.getDatabasePort(); line = line2 + this.wes2BridgeCase.getDatabasePort();
} else if (line.startsWith(line3)) { } else if (line.startsWith(line3)) {
line = line3 + "localhost:" line = line3 + "localhost:"
+ this.configuration.getJmsPort(); + this.wes2BridgeCase.getJmsPort();
} else if (line.startsWith(line4)) { } else if (line.startsWith(line4)) {
line = line4 + this.configuration.getEdexHttpPort(); line = line4 + this.wes2BridgeCase.getEdexHttpPort();
} else if (line.startsWith(line5)) { } else if (line.startsWith(line5)) {
line = line5 + "tcp://localhost:" line = line5 + "tcp://localhost:"
+ this.configuration.getJmsPort(); + this.wes2BridgeCase.getJmsPort();
} else if (line.startsWith(line6)) { } else if (line.startsWith(line6)) {
line = line6 + edexDirectory + "/data/share"; line = line6 + edexDirectory + "/data/share";
} else if (matcher.matches()) { } else if (matcher.matches()) {
line = matcher.group(GROUP_INDEX_ONE) line = matcher.group(GROUP_INDEX_ONE)
+ this.configuration.getHttpdPypiesPort(); + this.wes2BridgeCase.getHttpdPypiesPort();
} }
bw.write(line + "\n"); bw.write(line + "\n");
@ -236,69 +242,55 @@ public class Wes2BridgeManager {
bw = this.getBufferedWriter(wrapper_conf); bw = this.getBufferedWriter(wrapper_conf);
/* /*
* We want to replace at least one of the jmx jvm arguments with the * Add a new wes2bridge.instance JVM argument so that it will be
* wes2bridge.instance argument. * possible to determine which edex instance belongs to which test
* case.
*/ */
boolean wes2BridgeInstanceAdded = false;
/* int javaAdditionalMax = 0;
* Disable JMX Remote and add a new wes2bridge.instance JVM argument
* so that it will be possible to determine which edex instance final String line1 = "wrapper.jvm.parameter.order.2=-Daw.site.identifier";
* belongs to which test case.
*/ final String javaAdditionalPatternRegex = "wrapper\\.java\\.additional\\.([0-9]+)=.+";
/* final Pattern javaAdditionalPattern = Pattern
* This may apply to multiple jvm arguments including: 1) .compile(javaAdditionalPatternRegex);
* -Dcom.sun.management.jmxremote.port 2)
* -Dcom.sun.management.jmxremote.authenticate 3)
* -Dcom.sun.management.jmxremote.ssl
*/
final String line1 = "-Dcom.sun.management.jmxremote";
/* Set the web port; used by uengine spring. */
final String line2 = "-Dweb.port";
/* Set the confidential port; used by uengine spring. */
final String line3 = "-Dconfidential.port";
String line = StringUtils.EMPTY; String line = StringUtils.EMPTY;
while ((line = br.readLine()) != null) { while ((line = br.readLine()) != null) {
if (line.contains(line1)) { Matcher matcher = javaAdditionalPattern.matcher(line);
line = this.getJVMArgumentName(line); if (matcher.matches()) {
if (wes2BridgeInstanceAdded == false) { /* Guaranteed to be numeric based on the regex */
line += "-Dwes2bridge.instance=" int javaAdditional = Integer.parseInt(matcher.group(1));
+ this.configuration.getTestCaseName(); if (javaAdditional > javaAdditionalMax) {
wes2BridgeInstanceAdded = true; javaAdditionalMax = javaAdditional;
} }
} else if (line.contains(line2)) { }
line = this.getJVMArgumentName(line);
line += line2 + "=" + this.configuration.getWebPort(); if (line.equals(line1)) {
} else if (line.contains(line3)) { bw.write(line + "\n");
line = this.getJVMArgumentName(line); /*
line += line3 + "=" * Ensure that the wes2bridge test name will be third in the
+ this.configuration.getConfidentialPort(); * list of jvm arguments.
*/
line = "wrapper.jvm.parameter.order.3=-Dwes2bridge.instance";
} }
bw.write(line + "\n"); bw.write(line + "\n");
} }
/*
* add the additional JVM argument.
*/
++javaAdditionalMax;
String jvmArg = "wrapper.java.additional." + javaAdditionalMax
+ "=-Dwes2bridge.instance=" + this.wes2BridgeCase.getName();
bw.write(jvmArg);
} finally { } finally {
br.close(); br.close();
bw.close(); bw.close();
} }
} }
private String getJVMArgumentName(String jvmArgument) {
if (jvmArgument == null) {
System.out.println("ERROR: Invalid wrapper.conf file.");
System.exit(EXIT_FAILURE);
}
String[] splitJVMArg = jvmArgument.split("=");
if (splitJVMArg.length <= 0) {
System.out.println("ERROR: Invalid wrapper.conf file.");
System.exit(EXIT_FAILURE);
}
return splitJVMArg[0] + "=";
}
private void updateEdexCamel(String edexDirectory) private void updateEdexCamel(String edexDirectory)
throws FileNotFoundException, IOException { throws FileNotFoundException, IOException {
final String srcedex_camel = AWIPSII_WES2BRIDGE_SCRIPTS + "/" final String srcedex_camel = AWIPSII_WES2BRIDGE_SCRIPTS + "/"
@ -311,21 +303,25 @@ public class Wes2BridgeManager {
br = this.getBufferedReader(srcedex_camel); br = this.getBufferedReader(srcedex_camel);
bw = this.getBufferedWriter(edex_camel); bw = this.getBufferedWriter(edex_camel);
final String line1 = "EDEX_INSTALL="; final String line1 = "export EDEX_INSTALL=";
final String line2 = "export DATA_ARCHIVE_ROOT="; final String line2 = "export DATA_ARCHIVE_ROOT=";
final String line3 = "CAMELPROCESS=`ps -ef | grep \"aw.site.identifier\"|grep -c \"edex.run.mode=${1} \" `"; final String line3 = "CAMELPROCESS=`ps -ef | grep \"aw.site.identifier\"|grep -c \"edex.run.mode=${1} \" `";
final String line4 = "_camel_pid=`pgrep -f \"java.*-Dedex.run.mode=${1} \"`";
String line = StringUtils.EMPTY; String line = StringUtils.EMPTY;
while ((line = br.readLine()) != null) { while ((line = br.readLine()) != null) {
if (line.trim().startsWith(line1)) { if (line.trim().startsWith(line1)) {
line = line1 + edexDirectory; line = line1 + edexDirectory;
} else if (line.trim().startsWith(line2)) { } else if (line.trim().startsWith(line2)) {
line = line2 + this.configuration.getDataArchiveRoot(); line = line2 + this.wes2BridgeCase.getDataArchiveRoot();
} else if (line.trim().startsWith(line3)) { } else if (line.trim().startsWith(line3)) {
line = "CAMELPROCESS=`ps -ef | " line = "CAMELPROCESS=`ps -ef | "
+ "grep \"wes2bridge.instance=" + "grep \"wes2bridge.instance="
+ this.configuration.getTestCaseName() + "\" | " + this.wes2BridgeCase.getName() + "\" | "
+ "grep -c \"edex.run.mode=${1} \" `"; + "grep -c \"edex.run.mode=${1} \" `";
} else if (line.trim().startsWith(line4)) {
line = "_camel_pid=`pgrep -f \"java.*-Dedex.run.mode=${1} -Daw.site.identifier=.+ -Dwes2bridge.instance="
+ this.wes2BridgeCase.getName() + " \"`";
} }
bw.write(line + "\n"); bw.write(line + "\n");
@ -339,7 +335,7 @@ public class Wes2BridgeManager {
public void reconfigurePostgreSQL() throws FileNotFoundException, public void reconfigurePostgreSQL() throws FileNotFoundException,
IOException { IOException {
final String postgresqlRootDirectory = WES2BRIDGE_DIRECTORY final String postgresqlRootDirectory = WES2BRIDGE_DIRECTORY
+ File.separator + this.configuration.getTestCaseName(); + File.separator + this.wes2BridgeCase.getName();
final String srcDataDirectory = AWIPSII + File.separator + "data"; final String srcDataDirectory = AWIPSII + File.separator + "data";
this.updateEdexPostgres(postgresqlRootDirectory); this.updateEdexPostgres(postgresqlRootDirectory);
@ -380,8 +376,8 @@ public class Wes2BridgeManager {
final String srcPostgresqlConf = srcDataDirectory + File.separator final String srcPostgresqlConf = srcDataDirectory + File.separator
+ postgresqlConf; + postgresqlConf;
final String destPostgresqlConf = WES2BRIDGE_DIRECTORY + File.separator final String destPostgresqlConf = WES2BRIDGE_DIRECTORY + File.separator
+ this.configuration.getTestCaseName() + File.separator + this.wes2BridgeCase.getName() + File.separator + "data"
+ "data" + File.separator + postgresqlConf; + File.separator + postgresqlConf;
final String regex1 = "^(port = )([0-9]+)(.+)"; final String regex1 = "^(port = )([0-9]+)(.+)";
final Pattern pattern1 = Pattern.compile(regex1); final Pattern pattern1 = Pattern.compile(regex1);
@ -399,7 +395,7 @@ public class Wes2BridgeManager {
Matcher matcher = pattern1.matcher(line); Matcher matcher = pattern1.matcher(line);
if (matcher.matches()) { if (matcher.matches()) {
stringBuilder.append(matcher.group(1)); stringBuilder.append(matcher.group(1));
stringBuilder.append(this.configuration.getDatabasePort()); stringBuilder.append(this.wes2BridgeCase.getDatabasePort());
stringBuilder.append(matcher.group(3)); stringBuilder.append(matcher.group(3));
line = stringBuilder.toString(); line = stringBuilder.toString();
@ -418,7 +414,7 @@ public class Wes2BridgeManager {
TransformerFactoryConfigurationError, TransformerException { TransformerFactoryConfigurationError, TransformerException {
final String srcQpidDirectory = AWIPSII + "/" + "qpid"; final String srcQpidDirectory = AWIPSII + "/" + "qpid";
final String qpidDirectory = WES2BRIDGE_DIRECTORY + "/" final String qpidDirectory = WES2BRIDGE_DIRECTORY + "/"
+ this.configuration.getTestCaseName() + "/" + "qpid"; + this.wes2BridgeCase.getName() + "/" + "qpid";
this.updateQpidConfigXML(srcQpidDirectory, qpidDirectory); this.updateQpidConfigXML(srcQpidDirectory, qpidDirectory);
this.updateQPIDD(qpidDirectory); this.updateQPIDD(qpidDirectory);
@ -457,17 +453,17 @@ public class Wes2BridgeManager {
// Get the connector port node. // Get the connector port node.
portNode = this.getChildNodeByName(connectorNode, portNode = this.getChildNodeByName(connectorNode,
IQpidConfigurationXML.XML_PORT); IQpidConfigurationXML.XML_PORT);
portNode.setTextContent(Integer.toString(this.configuration portNode.setTextContent(Integer.toString(this.wes2BridgeCase
.getJmsPort())); .getJmsPort()));
// Get the jmxport registryServer node // Get the jmxport registryServer node
portNode = this.getChildNodeByName(jmxPortNode, portNode = this.getChildNodeByName(jmxPortNode,
IQpidConfigurationXML.XML_REGISTRY_SERVER); IQpidConfigurationXML.XML_REGISTRY_SERVER);
portNode.setTextContent(Integer.toString(this.configuration portNode.setTextContent(Integer.toString(this.wes2BridgeCase
.getQpidJmxPort())); .getQpidJmxPort()));
// Get the http port node. // Get the http port node.
portNode = this.getChildNodeByName(httpPortNode, portNode = this.getChildNodeByName(httpPortNode,
IQpidConfigurationXML.XML_PORT); IQpidConfigurationXML.XML_PORT);
portNode.setTextContent(Integer.toString(this.configuration portNode.setTextContent(Integer.toString(this.wes2BridgeCase
.getQpidHttpPort())); .getQpidHttpPort()));
/* /*
@ -529,13 +525,12 @@ public class Wes2BridgeManager {
public void reconfigurePypies() throws FileNotFoundException, IOException { public void reconfigurePypies() throws FileNotFoundException, IOException {
final String srcPypiesDirectory = AWIPSII + File.separator + "pypies"; final String srcPypiesDirectory = AWIPSII + File.separator + "pypies";
final String pypiesDirectory = WES2BRIDGE_DIRECTORY + File.separator final String pypiesDirectory = WES2BRIDGE_DIRECTORY + File.separator
+ this.configuration.getTestCaseName() + File.separator + this.wes2BridgeCase.getName() + File.separator + "pypies";
+ "pypies";
final String srcHttpdPypiesDirectory = AWIPSII + File.separator final String srcHttpdPypiesDirectory = AWIPSII + File.separator
+ "httpd_pypies"; + "httpd_pypies";
final String httpdPypiesDirectory = WES2BRIDGE_DIRECTORY final String httpdPypiesDirectory = WES2BRIDGE_DIRECTORY
+ File.separator + this.configuration.getTestCaseName() + File.separator + this.wes2BridgeCase.getName()
+ File.separator + "httpd_pypies"; + File.separator + "httpd_pypies";
this.updatePypiesCfg(srcPypiesDirectory, pypiesDirectory); this.updatePypiesCfg(srcPypiesDirectory, pypiesDirectory);
@ -553,7 +548,7 @@ public class Wes2BridgeManager {
// use the default location for the hdf5 root // use the default location for the hdf5 root
final String hdf5DirectoryLocation = WES2BRIDGE_DIRECTORY final String hdf5DirectoryLocation = WES2BRIDGE_DIRECTORY
+ File.separator + this.configuration.getTestCaseName() + File.separator + this.wes2BridgeCase.getName()
+ DEFAULT_HDF5_DIRECTORY; + DEFAULT_HDF5_DIRECTORY;
final String logFileDirectoryLocation = pypiesDirectory final String logFileDirectoryLocation = pypiesDirectory
+ File.separator + "logs"; + File.separator + "logs";
@ -585,7 +580,7 @@ public class Wes2BridgeManager {
line += logFileDirectoryLocation; line += logFileDirectoryLocation;
} else if (matcher3.matches()) { } else if (matcher3.matches()) {
line = matcher3.group(GROUP_INDEX_ONE); line = matcher3.group(GROUP_INDEX_ONE);
line += this.configuration.getPypiesLoggingPort(); line += this.wes2BridgeCase.getPypiesLoggingPort();
} }
bw.write(line + "\n"); bw.write(line + "\n");
@ -625,7 +620,7 @@ public class Wes2BridgeManager {
Matcher matcher2 = pattern2.matcher(line); Matcher matcher2 = pattern2.matcher(line);
if (matcher1.matches()) { if (matcher1.matches()) {
line = matcher1.group(GROUP_INDEX_ONE); line = matcher1.group(GROUP_INDEX_ONE);
line += this.configuration.getHttpdPypiesPort(); line += this.wes2BridgeCase.getHttpdPypiesPort();
} else if (matcher2.matches()) { } else if (matcher2.matches()) {
line = matcher2.group(GROUP_INDEX_ONE); line = matcher2.group(GROUP_INDEX_ONE);
line += serverRoot; line += serverRoot;
@ -671,7 +666,7 @@ public class Wes2BridgeManager {
line += httpdPypiesDirectory; line += httpdPypiesDirectory;
} else if (matcher2.matches()) { } else if (matcher2.matches()) {
line = matcher2.group(GROUP_INDEX_ONE); line = matcher2.group(GROUP_INDEX_ONE);
line += this.configuration.getTestCaseName(); line += this.wes2BridgeCase.getName();
line += matcher2.group(GROUP_INDEX_TWO); line += matcher2.group(GROUP_INDEX_TWO);
} else if (matcher3.matches()) { } else if (matcher3.matches()) {
line = matcher3.group(GROUP_INDEX_ONE) + pypiesDirectory line = matcher3.group(GROUP_INDEX_ONE) + pypiesDirectory