[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