[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