You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by ks...@apache.org on 2010/01/20 08:28:26 UTC

svn commit: r901090 - in /webservices/juddi/trunk: juddi-core/src/main/java/org/apache/juddi/config/ juddi-core/src/main/java/org/apache/juddi/mapping/ juddi-core/src/main/resources/juddi_install_data/ juddi-core/src/test/java/org/apache/juddi/config/ ...

Author: kstam
Date: Wed Jan 20 07:27:41 2010
New Revision: 901090

URL: http://svn.apache.org/viewvc?rev=901090&view=rev
Log:
JUDDI-316, allowing runtime token replacement of juddi.server.baseurl in accessPoints

Modified:
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
    webservices/juddi/trunk/juddi-core/src/main/resources/juddi_install_data/root_BusinessEntity.xml
    webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/config/ApplicationConfigurationTest.java
    webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties
    webservices/juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties
    webservices/juddi/trunk/qa/juddi-xlt/config/test.properties

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java?rev=901090&r1=901089&r2=901090&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java Wed Jan 20 07:27:41 2010
@@ -32,8 +32,6 @@
 import java.util.UUID;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityTransaction;
@@ -565,37 +563,13 @@
 	    	xml.append(new String(b, 0, n));
 	    }
 	    log.debug("inserting: " + xml.toString());
-	    StringReader reader = new StringReader(replaceTokens(xml.toString(), config));
+	    StringReader reader = new StringReader(xml.toString());
 		
 		JAXBContext jc = JAXBContext.newInstance(packageName);
 		Unmarshaller unmarshaller = jc.createUnmarshaller();
 		Object obj = ((JAXBElement<?>)unmarshaller.unmarshal(new StreamSource(reader))).getValue();
 		return obj;
 	}
-	
-	private static String replaceTokens(String installData, Configuration config) throws ConfigurationException {
-		
-		installData = installData.replaceAll("\\n"," ").replaceAll("\\r", "");
-		/* pattern that is multi-line (?m), and looks for a pattern of
-		 * ${token}, in a 'reluctant' manner, by using the ? to 
-		 * make sure we find ALL the tokens.
-		 */
-		Pattern pattern = Pattern.compile("(?m)\\$\\{.*?\\}");
-        Matcher matcher = pattern.matcher(installData);
-        while (matcher.find()) {
-            String token = matcher.group();
-            token = token.substring(2,token.length()-1);
-            String replacement = config.getString(token);
-            if (replacement!=null) {
-            	log.debug("Found token " + token + " and replacement value " + replacement);
-            	installData = installData.replaceAll("\\$\\{" + token + "\\}", replacement);
-            } else {
-            	log.error("Found token " + token + " but could not obtain its value. Data: " + installData);
-            }
-        }
-        log.debug("Data after token replacement: " + installData);
-        return installData;
-	}
 
 	/**
 	 * Public convenience method that allows one to retrieve the node business entity (perhaps to display during an install process, or even to

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java?rev=901090&r1=901089&r2=901090&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java Wed Jan 20 07:27:41 2010
@@ -22,6 +22,8 @@
 
 import javax.xml.bind.JAXBException;
 
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.config.AppConfig;
 import org.apache.juddi.jaxb.JAXBMarshaller;
 import org.apache.juddi.model.OverviewDoc;
 import org.apache.juddi.model.UddiEntity;
@@ -360,7 +362,20 @@
 		apiBindingTemplate.setBindingKey(modelBindingTemplate.getEntityKey());
 		org.uddi.api_v3.AccessPoint apiAccessPoint = new org.uddi.api_v3.AccessPoint();
 		apiAccessPoint.setUseType(modelBindingTemplate.getAccessPointType());
-		apiAccessPoint.setValue(modelBindingTemplate.getAccessPointUrl());
+		String accessPointValue = modelBindingTemplate.getAccessPointUrl();
+		if (accessPointValue!=null) {
+			try {
+				String baseUrl = AppConfig.getConfiguration().getString("juddi.server.baseurl");
+				if (baseUrl==null) {
+					logger.warn("Token 'juddi.server.baseurl' not found in the juddiv3.properties, defaulting to 'http://localhost:8080'");
+					baseUrl = "http://localhost:8080";
+				}
+				accessPointValue = accessPointValue.replaceAll("\\$\\{juddi.server.url\\}", baseUrl);
+			} catch (ConfigurationException e) {
+				logger.error(e.getMessage(),e);
+			}
+		}
+		apiAccessPoint.setValue(accessPointValue);
 		apiBindingTemplate.setAccessPoint(apiAccessPoint);
 		if (modelBindingTemplate.getHostingRedirector()!=null) {
 			org.uddi.api_v3.HostingRedirector apiHost = new org.uddi.api_v3.HostingRedirector();

Modified: webservices/juddi/trunk/juddi-core/src/main/resources/juddi_install_data/root_BusinessEntity.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/resources/juddi_install_data/root_BusinessEntity.xml?rev=901090&r1=901089&r2=901090&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/resources/juddi_install_data/root_BusinessEntity.xml (original)
+++ webservices/juddi/trunk/juddi-core/src/main/resources/juddi_install_data/root_BusinessEntity.xml Wed Jan 20 07:27:41 2010
@@ -45,7 +45,7 @@
   <description xml:lang="en">This is a UDDI v3 registry node as implemented by Apache jUDDI.</description>
   <discoveryURLs>
     <!-- This discovery URL should point to the home installation URL of jUDDI -->
-    <discoveryURL useType="home">http://${juddi.server.name}:${juddi.server.port}/juddiv3</discoveryURL>
+    <discoveryURL useType="home">${juddi.server.baseurl}/juddiv3</discoveryURL>
   </discoveryURLs>
   <categoryBag>
     <keyedReference tModelKey="uddi:uddi.org:categorization:nodes" keyValue="node" />
@@ -61,7 +61,7 @@
           <description>UDDI Inquiry API V3</description>
           <!-- This should be changed to the WSDL URL of the inquiry API.  An access point inside a bindingTemplate will be found for every service
           in this file.  They all must point to their API's WSDL URL -->
-          <accessPoint useType="wsdlDeployment">http://${juddi.server.name}:${juddi.server.port}/juddiv3/services/inquiry?wsdl</accessPoint>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/inquiry?wsdl</accessPoint>
           <tModelInstanceDetails>
             <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_inquiry">
               <instanceDetails>
@@ -90,7 +90,7 @@
       <bindingTemplates>
         <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-publish-ws" serviceKey="uddi:juddi.apache.org:services-publish">
           <description>UDDI Publication API V3</description>
-          <accessPoint useType="wsdlDeployment">http://${juddi.server.name}:${juddi.server.port}/juddiv3/services/publish?wsdl</accessPoint>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/publish?wsdl</accessPoint>
           <tModelInstanceDetails>
             <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_publication">
               <instanceDetails>
@@ -117,7 +117,7 @@
       <bindingTemplates>
         <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-security-ws" serviceKey="uddi:juddi.apache.org:services-security">
           <description>UDDI Security API V3</description>
-          <accessPoint useType="wsdlDeployment">http://${juddi.server.name}:${juddi.server.port}/juddiv3/services/security?wsdl</accessPoint>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/security?wsdl</accessPoint>
           <tModelInstanceDetails>
             <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_security" />
           </tModelInstanceDetails>
@@ -133,7 +133,7 @@
       <bindingTemplates>
         <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-custodytransfer-ws" serviceKey="uddi:juddi.apache.org:services-custodytransfer">
           <description>UDDI Custody and Ownership Transfer API V3</description>
-          <accessPoint useType="wsdlDeployment">http://${juddi.server.name}:${juddi.server.port}/juddiv3/services/custody-transfer?wsdl</accessPoint>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/custody-transfer?wsdl</accessPoint>
           <tModelInstanceDetails>
             <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_ownership_transfer">
               <instanceDetails>
@@ -161,7 +161,7 @@
       <bindingTemplates>
         <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-subscription-ws" serviceKey="uddi:juddi.apache.org:services-subscription">
           <description>UDDI Subscription API V3</description>
-          <accessPoint useType="wsdlDeployment">http://${juddi.server.name}:${juddi.server.port}/juddiv3/services/subscription?wsdl</accessPoint>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/subscription?wsdl</accessPoint>
           <tModelInstanceDetails>
             <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_subscription">
               <instanceDetails>
@@ -190,7 +190,7 @@
       <bindingTemplates>
         <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-subscriptionlistener-ws" serviceKey="uddi:juddi.apache.org:services-subscriptionlistener">
           <description>UDDI Subscription Listener API V3</description>
-          <accessPoint useType="wsdlDeployment">http://${juddi.server.name}:${juddi.server.port}/juddiv3/services/subscription-listener?wsdl</accessPoint>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/subscription-listener?wsdl</accessPoint>
           <tModelInstanceDetails>
             <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_subscriptionlistener" />
           </tModelInstanceDetails>
@@ -206,7 +206,7 @@
       <bindingTemplates>
         <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-publisher-ws" serviceKey="uddi:juddi.apache.org:services-publisher">
           <description>jUDDI Publisher Service API V3</description>
-          <accessPoint useType="wsdlDeployment">http://${juddi.server.name}:${juddi.server.port}/juddiv3/services/publisher?wsdl</accessPoint>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/publisher?wsdl</accessPoint>
           <categoryBag>
             <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
           </categoryBag>

Modified: webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/config/ApplicationConfigurationTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/config/ApplicationConfigurationTest.java?rev=901090&r1=901089&r2=901090&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/config/ApplicationConfigurationTest.java (original)
+++ webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/config/ApplicationConfigurationTest.java Wed Jan 20 07:27:41 2010
@@ -49,4 +49,5 @@
 			Assert.fail();
 		}
 	}
+	
 }

Modified: webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties?rev=901090&r1=901089&r2=901090&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties (original)
+++ webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties Wed Jan 20 07:27:41 2010
@@ -5,11 +5,8 @@
 # file can be overriden by system parameters                   #
 #                                                              #
 ################################################################
-# These two tokens are referenced in the install data. Note that you
-# can use any tokens, and that their values can be set here or as
-# System parameters.
-juddi.server.name=localhost
-juddi.server.port=8080
+# The ${juddi.server.baseurl} token can be referenced in accessPoints and will be resolved at runtime. 
+juddi.server.baseurl=http://localhost:8080
 
 juddi.root.publisher=root
 #

Modified: webservices/juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties?rev=901090&r1=901089&r2=901090&view=diff
==============================================================================
--- webservices/juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties (original)
+++ webservices/juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties Wed Jan 20 07:27:41 2010
@@ -6,6 +6,9 @@
 #                                                              #
 ################################################################
 #
+# The ${juddi.server.baseurl} token can be referenced in accessPoints and will be resolved at runtime.
+juddi.server.baseurl=http://localhost:8080
+#
 juddi.root.publisher=root
 #
 # Name of the persistence unit to use (the default, "juddiDatabase" refers to the unit compiled into the juddi library)

Modified: webservices/juddi/trunk/qa/juddi-xlt/config/test.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/qa/juddi-xlt/config/test.properties?rev=901090&r1=901089&r2=901090&view=diff
==============================================================================
--- webservices/juddi/trunk/qa/juddi-xlt/config/test.properties (original)
+++ webservices/juddi/trunk/qa/juddi-xlt/config/test.properties Wed Jan 20 07:27:41 2010
@@ -87,11 +87,11 @@
 
 
 ## Test case specific configuration.
-com.xceptance.xlt.loadtests.TRegisterBusinessPT.users = 10
+com.xceptance.xlt.loadtests.TRegisterBusinessPT.users = 500 
 com.xceptance.xlt.loadtests.TRegisterBusinessPT.arrivalRate = 2000
 
-com.xceptance.xlt.loadtests.TFindBusinessPT.users = 10
+com.xceptance.xlt.loadtests.TFindBusinessPT.users = 500
 com.xceptance.xlt.loadtests.TFindBusinessPT.arrivalRate = 2000
 
-com.xceptance.xlt.loadtests.TDeleteBusinessPT.users = 10
+com.xceptance.xlt.loadtests.TDeleteBusinessPT.users = 500
 com.xceptance.xlt.loadtests.TDeleteBusinessPT.arrivalRate = 2000



---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org