[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