[jboss-svn-commits] JBL Code SVN: r6613 - in labs/jbossesb/trunk/product: . core/rosetta/src/org/jboss/soa/esb/common install install/conf

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 5 06:44:25 EDT 2006


Author: tfennelly
Date: 2006-10-05 06:44:20 -0400 (Thu, 05 Oct 2006)
New Revision: 6613

Modified:
   labs/jbossesb/trunk/product/build.xml
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java
   labs/jbossesb/trunk/product/install/build.xml
   labs/jbossesb/trunk/product/install/conf/jbossesb-properties.xml
Log:
Fixes to the build and logging to the ModulePropertyManager

Modified: labs/jbossesb/trunk/product/build.xml
===================================================================
--- labs/jbossesb/trunk/product/build.xml	2006-10-05 10:12:18 UTC (rev 6612)
+++ labs/jbossesb/trunk/product/build.xml	2006-10-05 10:44:20 UTC (rev 6613)
@@ -294,6 +294,7 @@
 	<target name="deploy" depends="install">
 		<copy file="${org.jboss.esb.installationdirectory}/lib/jbossesb-appl.ear"
 		     todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/deploy"/>
+		<ant dir="install" target="configure"/>
 	</target>
 
 	<target name="deploy-instr" depends="earinstr">

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java	2006-10-05 10:12:18 UTC (rev 6612)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java	2006-10-05 10:44:20 UTC (rev 6613)
@@ -31,8 +31,14 @@
 
 package org.jboss.soa.esb.common;
 
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
 import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
 import java.util.Properties;
+import java.util.Map.Entry;
 
 import org.apache.log4j.Logger;
 
@@ -132,23 +138,28 @@
 		try
 		{
 			Properties properties = propertyManager.getProperties();
-			int propertyCountBefore = 0;
+			Properties propertiesBefore = null;
+			Properties propertiesAfter = null;
 			
 			if(properties != null) {
-				propertyCountBefore = properties.size();
+				propertiesBefore = (Properties) properties.clone();
 			}
-			if(logger.isDebugEnabled()) {
-				logger.debug("PropertyManager contents before loading properties file [" + propertiesFilename + "]: " + properties);
-			}
 			
-			logger.info("Loading properties file: " + propertiesFilename);
+			logger.info("Loading properties file [" + propertiesFilename + "] into property manager type [" + propertyManager.getClass().getName() + "]");
 			propertyManager.load(XMLFilePlugin.class.getName(),
 					propertiesFilename);
 
 			properties = propertyManager.getProperties();
-			if(properties != null && properties.size() == propertyCountBefore) {
-				logger.warn("No change in property count [" + properties.size() + "] after loading properties file: " + propertiesFilename);
+			if(properties != null) {
+				propertiesAfter = (Properties) properties.clone();
 			}
+			if(propertiesAfter != null && propertiesAfter.equals(propertiesBefore)) {
+				// FIXME: This all needs to be fixed - dunno what the story is with the PropertyManager stuff!
+				logger.warn("No change in properties after loading properties file: " + propertiesFilename);
+			} else if(propertiesAfter != null) {
+				// FIXME: This all needs to be fixed - dunno what the story is with the PropertyManager stuff!
+				hack_manuallySetNewPropertiesInPropertyManager(propertiesBefore, propertiesAfter, propertyManager);
+			}
 			
 			if(logger.isDebugEnabled()) {
 				logger.debug("PropertyManager contents after loading properties file [" + propertiesFilename + "]: " + properties);
@@ -160,8 +171,65 @@
 			return null;
 		}
 
-		return propertyManager;
+		return (PropertyManager) Proxy.newProxyInstance(
+				PropertyManager.class.getClassLoader(), // Classloader 
+				new Class[] {PropertyManager.class}, // Interfaces to be proxied
+				new PropertyManagerInvocationHandler(propertyManager)); // InvocationHandler impl
 	}
 
+	/**
+	 * Short term hack to get around the issues with PropertyManager.
+	 * <p/>
+	 * FIXME: This all needs to be fixed - dunno what the story is with the PropertyManager stuff!
+	 * @param propertiesBefore Properties before load.
+	 * @param propertiesAfter Properties after load.
+	 * @param propertyManager Property manager on which to set the newer properties.
+	 */
+	@SuppressWarnings("unchecked")
+	private static void hack_manuallySetNewPropertiesInPropertyManager(Properties propertiesBefore, Properties propertiesAfter, PropertyManager propertyManager) {
+		if(propertiesAfter == null) {
+			throw new IllegalArgumentException("null 'propertiesAfter' arg in method call.");
+		}
+		
+		Iterator properties = propertiesAfter.entrySet().iterator();
+		while(properties.hasNext()) {
+			Entry property = (Entry) properties.next();
+			
+			// If the property is new, set it in the System...
+			if(propertiesBefore == null || !propertiesBefore.containsKey(property.getKey())) {
+				logger.warn("Manually setting property in PropertyManager: [" + property + "].  PropertyManager instance: " + propertyManager);
+				propertyManager.setProperty((String)property.getKey(), (String)property.getValue());
+			}
+		}
+	}
+
 	private static Hashtable<String, PropertyManager> managers = new Hashtable<String, PropertyManager>();
+	
+	/**
+	 * Proxying calls to the ProperyManager instance because we need to get some logging around
+	 * it no mater what the ProperyManager implementation is.
+	 * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+	 */
+	private static class PropertyManagerInvocationHandler implements InvocationHandler {
+
+		private PropertyManager propertyManagerInstance;
+		
+		private PropertyManagerInvocationHandler(PropertyManager propertyManagerInstance) {
+			this.propertyManagerInstance = propertyManagerInstance;			
+		}
+		
+		/* (non-Javadoc)
+		 * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
+		 */
+		public Object invoke(Object proxy, Method method, Object[] methodArgs) throws Throwable {
+			Object returnVal = method.invoke(propertyManagerInstance, methodArgs);
+			
+			if(returnVal == null && method.getName().equals("getProperty")) {
+				logger.warn("Property [" + methodArgs[0] + "] not found.  Returning null!  PropertyManager instance: " + propertyManagerInstance);
+			}
+			
+			return returnVal;
+		}
+		
+	}
 }

Modified: labs/jbossesb/trunk/product/install/build.xml
===================================================================
--- labs/jbossesb/trunk/product/install/build.xml	2006-10-05 10:12:18 UTC (rev 6612)
+++ labs/jbossesb/trunk/product/install/build.xml	2006-10-05 10:44:20 UTC (rev 6613)
@@ -6,7 +6,7 @@
 	<!-- Load Build Properties File -->
 	<property file="${org.jboss.esb.deployment.properties}"/>
 
-	<property name="org.jboss.esb.deployment.lib" value="${basedir}/lib"/>
+	<property name="org.jboss.esb.ext.lib" value="${basedir}/../lib/ext"/>
 	<property name="org.jboss.esb.deployment.conf" value="${basedir}/conf"/>
 	<property name="org.jboss.esb.deployment.deploy" value="${basedir}/deploy"/>
 	<property name="org.jboss.esb.deployment.data" value="${basedir}/data"/>
@@ -25,14 +25,15 @@
 		<echo>create set=${create.set}</echo>
 	</target>
 	
+	<target name="configure" depends="configure.jboss" />
 	<target name="configure.jboss" depends="init,datasource,hsql-datasource,create-hsqldb">
 		<!-- lib -->
-		<copy  file="${org.jboss.esb.deployment.lib}/${org.jboss.esb.db.driver.jar}" 
+		<copy  file="${org.jboss.esb.ext.lib}/${org.jboss.esb.db.driver.jar}" 
 			   todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/lib"/>
-		<copy  file="${org.jboss.esb.deployment.lib}/properties-plugin.jar" 
+		<copy  file="${org.jboss.esb.ext.lib}/properties-plugin.jar" 
 			   todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/lib"/>
 		<!-- conf -->
-		<copy  file="${org.jboss.esb.deployment.conf}/jbossEsb.properties" overwrite="true"
+		<copy  file="${org.jboss.esb.deployment.conf}/jbossesb-properties.xml" overwrite="true"
 		       todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/conf">
 				<filterset>
 					<filter token="org.jboss.soa.esb.mail.smtp.host" value="${org.jboss.soa.esb.mail.smtp.host}" />
@@ -42,9 +43,6 @@
 		            <filter token="org.jboss.esb.config.objstore" value="${org.jboss.esb.config.objstore}" />
 		        </filterset></copy>
 		<!-- deploy -->
-		
-		<copy file="${org.jboss.esb.deployment.deploy}/properties-service.xml"
-				todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/deploy"/>
 	</target>
 	
 	<target name="hsql-datasource" if="hsql.set">

Modified: labs/jbossesb/trunk/product/install/conf/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/install/conf/jbossesb-properties.xml	2006-10-05 10:12:18 UTC (rev 6612)
+++ labs/jbossesb/trunk/product/install/conf/jbossesb-properties.xml	2006-10-05 10:44:20 UTC (rev 6613)
@@ -33,15 +33,15 @@
     <properties name="core">
 		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
 		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+		<property name="org.jboss.soa.esb.objStore.configFile" value="file:@org.jboss.esb.config.objstore@" />
 		<!-- property name="org.jboss.soa.esb.paramsRepository.class" value="" -->
 		<!-- property name="org.jboss.soa.esb.encryption.factory.class" value="" -->
-		<!-- property name="org.jboss.soa.esb.objStore.configFile" value="" -->
     </properties>
     <properties name="transports" depends="core">
-    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.user" value=""/>
-    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
-    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.host" value="@org.jboss.soa.esb.mail.smtp.host@"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.user" value="@org.jboss.soa.esb.mail.smtp.user@"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.password" value="@org.jboss.soa.esb.mail.smtp.password@"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.port" value="@org.jboss.soa.esb.mail.smtp.port@"/>
     	<!--  property name="org.jboss.soa.esb.mail.smtp.from" value="" -->
     	<!--  property name="org.jboss.soa.esb.mail.smtp.auth" value="" -->
     </properties>




More information about the jboss-svn-commits mailing list