[jboss-svn-commits] JBL Code SVN: r16176 - labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 30 17:43:37 EDT 2007
Author: tcunning
Date: 2007-10-30 17:43:37 -0400 (Tue, 30 Oct 2007)
New Revision: 16176
Modified:
labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksService.java
Log:
bug:JBESB-832
Replace tokens for ${jboss.bind.address}.
Modified: labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksService.java
===================================================================
--- labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksService.java 2007-10-30 21:42:46 UTC (rev 16175)
+++ labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksService.java 2007-10-30 21:43:37 UTC (rev 16176)
@@ -25,11 +25,14 @@
import org.jboss.system.server.ServerConfigLocator;
import org.apache.log4j.Logger;
+import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
+import java.util.Enumeration;
+import java.util.Hashtable;
import java.util.Properties;
/**
@@ -48,11 +51,20 @@
private static final String SMOOKS_PROPERTY_FILE = "smooks.esb.properties";
private static final String SMOOKS_PROPERTY_FILE_COMMENTS = "Auto generated property file, do not edit" ;
+ private Hashtable<String, String> tokenHash;
+
/**
* The smooks default property file.
*/
private String propertyFile ;
+
+ public void initializeTokenHash() {
+ tokenHash = new Hashtable<String,String>();
+ String bindAddress = System.getProperty("jboss.bind.address");
+ tokenHash.put("${jboss.bind.address}", bindAddress);
+ }
+
protected void startService() throws Exception {
super.startService();
@@ -72,12 +84,39 @@
final File smooksPropertyFile = new File(dataDir, SMOOKS_PROPERTY_FILE) ;
final FileOutputStream smooksPropertyOS = new FileOutputStream(smooksPropertyFile) ;
+ Properties xmlProperties = null;
try {
- PropertiesHelper.translateXMLToText(xmlPropertyIS, smooksPropertyOS, SMOOKS_PROPERTY_FILE_COMMENTS) ;
+ xmlProperties = PropertiesHelper.translateXMLToText(xmlPropertyIS, smooksPropertyOS, SMOOKS_PROPERTY_FILE_COMMENTS) ;
SmooksConfiguration.setDefaultConfiguration(smooksPropertyFile.getAbsolutePath()) ;
+
} finally {
smooksPropertyOS.close() ;
}
+
+ // Support ${jboss.bind.address} replacement
+ initializeTokenHash();
+ for (Enumeration e = xmlProperties.keys(); e.hasMoreElements();) {
+ String key = (String) e.nextElement();
+ String value = xmlProperties.getProperty(key);
+ for (String tokenKey : tokenHash.keySet()) {
+ String tokenValue = tokenHash.get(tokenKey);
+ if (value.contains(tokenKey)) {
+ value = value.replace(tokenKey, tokenValue);
+ xmlProperties.setProperty(key, value);
+ }
+ }
+ }
+
+ // Rewrite for token replacement
+ FileOutputStream rewritePropertyOS = new FileOutputStream(smooksPropertyFile) ;
+ try {
+ rewritePropertyOS = new FileOutputStream(smooksPropertyFile);
+ final BufferedOutputStream bos = new BufferedOutputStream(rewritePropertyOS) ;
+ xmlProperties.store(bos, SMOOKS_PROPERTY_FILE_COMMENTS) ;
+ bos.flush() ;
+ } finally {
+ rewritePropertyOS.close();
+ }
} finally {
xmlPropertyIS.close() ;
}
More information about the jboss-svn-commits
mailing list