Author: kstam
Date: Thu Jun  2 14:48:05 2011
New Revision: 1130586

URL: http://svn.apache.org/viewvc?rev=1130586&view=rev
Log:
JUDDI-489, using the jboss.server.temp.dir on jboss 

Modified:
    
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/UDDIServiceWSDL.java
    
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java

Modified: 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/UDDIServiceWSDL.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/UDDIServiceWSDL.java?rev=1130586&r1=1130585&r2=1130586&view=diff
==============================================================================
--- 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/UDDIServiceWSDL.java
 (original)
+++ 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/UDDIServiceWSDL.java
 Thu Jun  2 14:48:05 2011
@@ -6,10 +6,18 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.net.URISyntaxException;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.juddi.v3.client.config.Property;
+
 public class UDDIServiceWSDL {
        
        /** The WSDLEnpoint Types as defined in the UDDI v3 specification. */
@@ -61,6 +69,17 @@ public class UDDIServiceWSDL {
                specEndPoints.put(WSDLEndPointType.VALUESETCACHING      , 
"http://localhost/uddi/valuesetcaching/";);
        }
        
+       public List<Source> getWSDLFilePaths(String destDir) throws IOException 
{
+               File tmpDir = new File(destDir);
+               if (!tmpDir.exists()) copyImportFiles(destDir);
+               List<Source> metadata = new ArrayList<Source>();
+               for (String importFileName : imports) {
+                       File file = new File(destDir + File.separator + 
importFileName);
+                       Source source = new StreamSource(file);
+                       metadata.add(source);
+               }
+           return metadata;
+       }
        /**
         * Returns the path to a temporary uddi_v3_service.wsdl file, where the 
soap:address location
         * of the given endPointType has been updated with the value specified 
in the soapAddressLocation.
@@ -69,26 +88,30 @@ public class UDDIServiceWSDL {
         * @param soapAddressLocation
         * @return WSDL File Path
         * @throws IOException
+        * @throws URISyntaxException 
         */
-       public URL getWSDLFilePath(WSDLEndPointType endpointType, String 
soapAddressLocation) throws IOException 
+       public URL getWSDLFilePath(WSDLEndPointType endpointType, String 
soapAddressLocation) throws IOException
        {
                String wsdlString = getServiceWSDLContent();
            String specEndPoint = specEndPoints.get(endpointType);
-           wsdlString = wsdlString.replace(specEndPoint, soapAddressLocation);
-           String destDir = System.getProperty("java.io.tmpdir");
+           if (soapAddressLocation!=null) {
+               wsdlString = wsdlString.replace(specEndPoint, 
soapAddressLocation);
+           }
+           String destDir = Property.getTempDir();
            File tmpDir = new File(destDir);
            if (!tmpDir.exists()) {
                tmpDir.mkdirs();
            }
-           File tmpWSDLFile = File.createTempFile("uddi_v3_service", "wsdl", 
tmpDir);
+           copyImportFiles(destDir);
+           
+           File tmpWSDLFile = File.createTempFile( "uddi_v3_service.wsdl", 
".wsdl", tmpDir);
            Writer out = new OutputStreamWriter(new 
FileOutputStream(tmpWSDLFile));
            try {
              out.write(wsdlString);
            } finally {
              out.close();
            }
-           copyImportFiles();
-           URL url = new URL("file:" + tmpWSDLFile.getAbsolutePath());
+           URL url = tmpWSDLFile.toURI().toURL();
            return url;
        }
        
@@ -104,7 +127,7 @@ public class UDDIServiceWSDL {
            return read(serviceWSDLURL);
        }
        
-       private void copyImportFiles() throws IOException
+       private void copyImportFiles(String destDir) throws IOException
        {
                URL serviceWSDLURL = 
ClassUtil.getResource(getUddiV3ServiceWSDL(),this.getClass());
                if (serviceWSDLURL==null) throw new IOException("Could not 
locate resource " + getUddiV3ServiceWSDL());
@@ -113,7 +136,6 @@ public class UDDIServiceWSDL {
                endIndex = getUddiV3ServiceWSDL().lastIndexOf(File.separator);
        }
                String srcDir  = getUddiV3ServiceWSDL().substring(0,endIndex);
-               String destDir = System.getProperty("java.io.tmpdir");
                for (String importFileName : imports) {
                        URL url = ClassUtil.getResource(srcDir + 
importFileName, this.getClass());
                        String content = read(url);

Modified: 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java?rev=1130586&r1=1130585&r2=1130586&view=diff
==============================================================================
--- 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java
 (original)
+++ 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java
 Thu Jun  2 14:48:05 2011
@@ -16,6 +16,8 @@
  */
 package org.apache.juddi.v3.client.config;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Properties;
 
@@ -52,6 +54,14 @@ public class Property 
        public static final String DEFAULT_BINDING_KEY_FORMAT       = 
"uddi:${keyDomain}:binding_${nodeName}_${serviceName}_${portName}_${port}";
        public static final String DEFAULT_SERVICE_DESCRIPTION      = "Default 
service description when no <wsdl:document> element is defined inside the 
<wsdl:service> element.";
        public static final String DEFAULT_BINDING_DESCRIPTION      = "Default 
binding description when no <wsdl:document> element is defined inside the 
<wsdl:binding> element.";
+       
+       public static String getTempDir() {
+               String tmpDir = System.getProperty("jboss.server.temp.dir");
+               if (tmpDir == null) {
+                       tmpDir = System.getProperty("java.io.tmpdir");
+               }
+               return tmpDir;
+       }
        /**
         * Constructs the serviceKey based on the bindingKeyFormat specified in 
the properties. When no
         * businessKeyFormat is specific the default format of 
uddi:${keyDomain}:${businessName} is used. The businessName
@@ -88,6 +98,19 @@ public class Property 
                String serviceKey = TokenResolver.replaceTokens(keyFormat, 
tempProperties).toLowerCase();
                return serviceKey;
        }
+       
+       public static String getBindingKey(Properties properties, QName 
serviceName, String portName, URL bindingUrl) {
+               
+               String bindingKey = null;
+               try {
+                       URI bindingURI = bindingUrl.toURI();
+                       bindingKey =  getBindingKey(properties, serviceName, 
portName, bindingURI);
+               } catch (URISyntaxException e) {
+                       
+               }
+               return bindingKey;
+               
+       }
        /**
         * Constructs the bindingKey based on the bindingKeyFormat specified in 
the properties. When no
         * bindingKeyFormat is specific the default format of 
uddi:${keyDomain}:${nodeName}-${serviceName}-{portName} is used.
@@ -97,20 +120,20 @@ public class Property 
         * @param portName
         * @return the bindingKey
         */
-       public static String getBindingKey(Properties properties, QName 
serviceName, String portName, URL bindingUrl) {
+       public static String getBindingKey(Properties properties, QName 
serviceName, String portName, URI bindingUrl) {
                Properties tempProperties = new Properties();
                tempProperties.putAll(properties);
                tempProperties.put("serviceName", serviceName.getLocalPart());
                tempProperties.put("portName", portName);
                int port = bindingUrl.getPort();
                if (port==-1) {
-                       if ("http".equals(bindingUrl.getProtocol())) {
+                       if ("http".equals(bindingUrl.getScheme())) {
                                port = 80;
-                       } else if ("https".equals(bindingUrl.getProtocol())) {
+                       } else if ("https".equals(bindingUrl.getScheme())) {
                                port = 443;
                        }
                }
-               tempProperties.put("port", port);
+               tempProperties.put("port", String.valueOf(port));
                //Constructing the binding Key
                String keyFormat = properties.getProperty(BINDING_KEY_FORMAT, 
DEFAULT_BINDING_KEY_FORMAT);
                String bindingKey = TokenResolver.replaceTokens(keyFormat, 
tempProperties).toLowerCase();



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to