[jboss-svn-commits] JBL Code SVN: r8305 - in labs/jbossesb/trunk/product: core/listeners core/listeners/src/org/jboss/soa/esb/listeners/config core/listeners/tests/src/org/jboss/soa/esb/listeners/config lib/ext
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Dec 13 16:11:41 EST 2006
Author: kurt.stam at jboss.com
Date: 2006-12-13 16:11:37 -0500 (Wed, 13 Dec 2006)
New Revision: 8305
Added:
labs/jbossesb/trunk/product/lib/ext/jbossesb-config-model.jar
Removed:
labs/jbossesb/trunk/product/lib/ext/jbosesb-config-model.jar
Modified:
labs/jbossesb/trunk/product/core/listeners/build.xml
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationControllerService.java
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java
Log:
adding xsd handling
Modified: labs/jbossesb/trunk/product/core/listeners/build.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/build.xml 2006-12-13 20:45:55 UTC (rev 8304)
+++ labs/jbossesb/trunk/product/core/listeners/build.xml 2006-12-13 21:11:37 UTC (rev 8305)
@@ -51,8 +51,10 @@
<xmlbean schema="${org.jboss.esb.root.dir}/etc/schemas/xml/jbossesb.xsd"
classgendir="${gendir}/classes" srcgendir="${gendir}/src"
-
destfile="${org.jboss.esb.listeners.distrib.dir}/lib/jbossesb-config-model.jar" classpathref="xbeans-classpath"/>
+ <jar destfile="${org.jboss.esb.listeners.distrib.dir}/lib/jbossesb-config-model.jar" update="true"
+ basedir="${org.jboss.esb.root.dir}/etc/schemas/xml/"
+ includes="jbossesb.xsd"/>
</target>
<path id="xbeans-classpath">
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java 2006-12-13 20:45:55 UTC (rev 8304)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java 2006-12-13 21:11:37 UTC (rev 8305)
@@ -24,6 +24,9 @@
import java.io.ByteArrayInputStream;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
import java.io.StringReader;
import java.util.Date;
@@ -34,9 +37,11 @@
public class ConfigurationController implements Runnable
{
private static int SLEEP_MILLIS = 1000; // default interval between parameter reloads
+ private static String JBOSSESB_XSD = "/jbossesb.xsd";
private Logger mLogger = Logger.getLogger(this.getClass());
private boolean mIsEndRequested = false;
- private String mParametersName;
+ private String mConfigFileName;
+ private InputSource mValidationInputSource;
private File mConfigDirectory;
private long mPreviousFileTimestamp;
/**
@@ -46,7 +51,7 @@
*/
public static void main(String[] args) throws Exception
{
- ConfigurationController configurationController = new ConfigurationController(args[0]);
+ ConfigurationController configurationController = new ConfigurationController(args[0],null);
configurationController.run();
}
/**
@@ -60,9 +65,29 @@
* @param p_sParameterName
* Name of the Repository entry containing the configuration.
*/
- public ConfigurationController(String p_sParameterName)
+ public ConfigurationController(String configFileName, String validationFileName)
{
- mParametersName = p_sParameterName;
+ mConfigFileName = configFileName;
+ //Try to obtain a handle to the validation file (xsd)
+ if (validationFileName==null) {
+ validationFileName=JBOSSESB_XSD;
+ }
+ InputStream validationInputStream = this.getClass().getResourceAsStream(validationFileName);
+ //if this fails try using the
+ if (validationInputStream==null) {
+ File validationFile = new File(validationFileName);
+ try {
+ validationInputStream = new FileInputStream(validationFile);
+ } catch (FileNotFoundException e) {
+ mLogger.error(e.getMessage(),e);
+ }
+ }
+ if (validationInputStream==null) {
+ mLogger.warn("Could not obtain validation file " + validationFileName);
+ } else {
+ mLogger.debug("Reading validation info from " + validationFileName);
+ mValidationInputSource = new InputSource(validationInputStream);
+ }
}
/**
* Thread that observes the configuration (file). If the configuration is updated it is
@@ -71,23 +96,23 @@
*/
public void run()
{
- if (mParametersName!=null) {
+ if (mConfigFileName!=null) {
while (!mIsEndRequested) {
if (isReloadNeeded()) {
try {
mLogger.info("loading configuration..");
- String configXml = ParamRepositoryFactory.getInstance().get(mParametersName);
+ String configXml = ParamRepositoryFactory.getInstance().get(mConfigFileName);
mLogger.debug("Start validation on configXml=" + configXml);
InputSource xmlInputSource = new InputSource(new StringReader(configXml));
XmlValidator validator = new MockXmlValidatorImpl();
- if (validator.validate(xmlInputSource)) {
- mLogger.debug("Configuration file " + mParametersName + " passed validation. Starting " +
+ if (validator.validate(xmlInputSource, mValidationInputSource)) {
+ mLogger.debug("Configuration file " + mConfigFileName + " passed validation. Starting " +
" the generation process of the jbossesb-listener.xml and the jbossesb-gateway.xml.");
Generator generator = new Generator(new ByteArrayInputStream(configXml.getBytes()));
generator.generate(mConfigDirectory);
} else {
mLogger.error("The configuration file "
- + mParametersName + " did not pass validation for the following reasons: "
+ + mConfigFileName + " did not pass validation for the following reasons: "
+ validator.getValidationResults());
mLogger.info("The current configuration is kept in place until "
+ " validation passes.");
@@ -105,7 +130,7 @@
}
}
} else {
- mLogger.fatal("The name of the configuran file was null: " + mParametersName);
+ mLogger.fatal("The name of the configuran file was null: " + mConfigFileName);
}
mLogger.info("Exiting Config Controller...");
}
@@ -124,7 +149,7 @@
*/
private boolean isReloadNeeded()
{
- File configFile = new File(mParametersName);
+ File configFile = new File(mConfigFileName);
if (configFile.exists()) {
mConfigDirectory = configFile.getParentFile();
long currentFileTimestamp = configFile.lastModified();
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationControllerService.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationControllerService.java 2006-12-13 20:45:55 UTC (rev 8304)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/ConfigurationControllerService.java 2006-12-13 21:11:37 UTC (rev 8305)
@@ -46,7 +46,7 @@
URI uri = new URI(confDir);
confDir = uri.getPath();
String configFile = confDir + configurationFile;
- configurationController = new ConfigurationController(configFile);
+ configurationController = new ConfigurationController(configFile,null);
new Thread(configurationController).start();
}
/**
Modified: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java 2006-12-13 20:45:55 UTC (rev 8304)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java 2006-12-13 21:11:37 UTC (rev 8305)
@@ -41,9 +41,11 @@
@Test
public void readConfig() throws Exception
{
- String fileName = TestEnvironmentUtil.getUserDir("product")
+ String configFileName = TestEnvironmentUtil.getUserDir("product")
+ "core/listeners/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.xml";
- ConfigurationController configurationController = new ConfigurationController(fileName);
+ String validationFileName = TestEnvironmentUtil.getUserDir("product")
+ + "etc/schemas/xml/jbossesb.xsd";
+ ConfigurationController configurationController = new ConfigurationController(configFileName, validationFileName);
Thread controller = new Thread(configurationController);
controller.start();
Thread.sleep(4000);
Deleted: labs/jbossesb/trunk/product/lib/ext/jbosesb-config-model.jar
===================================================================
(Binary files differ)
Added: labs/jbossesb/trunk/product/lib/ext/jbossesb-config-model.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/jbossesb-config-model.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
More information about the jboss-svn-commits
mailing list