You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by th...@apache.org on 2005/09/11 15:40:13 UTC

svn commit: r280132 - in /webservices/kandula/trunk/java/src/org/apache/kandula/utility: EndpointReferenceFactory.java KandulaListener.java KandulaUtils.java

Author: thilina
Date: Sun Sep 11 06:39:49 2005
New Revision: 280132

URL: http://svn.apache.org/viewcvs?rev=280132&view=rev
Log:
Moving MD5 string generation and EndpointReference seriazation to a utils class

Added:
    webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaUtils.java
Modified:
    webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java
    webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java

Modified: webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java?rev=280132&r1=280131&r2=280132&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java Sun Sep 11 06:39:49 2005
@@ -1,86 +1,129 @@
 /*
- * Copyright  2004 The Apache Software Foundation.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
+ * Copyright 2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ *  
  */
 package org.apache.kandula.utility;
 
-import org.apache.kandula.typemapping.EndPointReference;
-import org.xmlsoap.schemas.ws.x2002.x07.utility.impl.PortReferenceTypeImpl;
-import org.xmlsoap.schemas.ws.x2004.x03.addressing.ReferencePropertiesType;
-import org.xmlsoap.schemas.ws.x2004.x03.addressing.impl.EndpointReferenceTypeImpl;
-
 import java.io.InputStream;
 import java.net.InetAddress;
 import java.util.Properties;
 
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.addressing.AnyContentType;
+import org.apache.axis2.addressing.EndpointReference;
+
 public class EndpointReferenceFactory {
-	static final String PROPERTY_FILE= "endpoints.conf";
-	static final String PROTOCOL_PROPERTY= "protocol";
-	static final String HOST_PROPERTY= "host";
-	static final String PORT_PROPERTY= "port";
-	static EndpointReferenceFactory instance= null;
-	Properties properties= null;
-	String location= null;
-
-	private EndpointReferenceFactory() {
-		InputStream in= getClass().getClassLoader().getResourceAsStream(PROPERTY_FILE);
-		properties= new Properties();
-		try {
-			properties.load(in);
-			in.close();
-			String host= properties.getProperty(HOST_PROPERTY);
-			if (host == null)
-				host= InetAddress.getLocalHost().getHostAddress();
-			location=
-				properties.getProperty(PROTOCOL_PROPERTY)
-					+ "://"
-					+ host
-					+ ":"
-					+ properties.getProperty(PORT_PROPERTY);
-		}
-		catch (Exception e) {
-			if (e instanceof RuntimeException)
-				throw (RuntimeException)e;
-			else
-				throw new RuntimeException(e);
-		}
-	}
-
-	public static EndpointReferenceFactory getInstance() {
-		if (instance == null)
-			instance= new EndpointReferenceFactory();
-		return instance;
-	}
- 
-	public EndPointReference getRegistrationEndpoint()
-	{
-	    //TODO set this somehow reading the conf file
-	    return EndPointReference.Factory.newInstance();
-	}
-//	public EndpointReferenceTypeImpl getEndpointReference(PortReferenceTypeImpl portType, ReferencePropertiesType referenceProperties) {
-//		try {
-//			EndpointReferenceTypeImpl endpointReference = new EndpointReferenceTypeImpl(SchemaTypeImpl.);
-//			endpointReference.setPortTypesetPortType(portType);
-//			endpointReference.setProperties(referenceProperties);
-//			return endpointReference;
-//		}
-//		catch (Exception e) {
-//			if (e instanceof RuntimeException)
-//				throw (RuntimeException)e;
-//			else
-//				throw new RuntimeException(e);
-//		}
-//	}
-}
+    static final String PROPERTY_FILE = "endpoints.conf";
+
+    static final String PROTOCOL_PROPERTY = "protocol";
+
+    static final String HOST_PROPERTY = "host";
+
+    static final String PORT_PROPERTY = "port";
+
+    private static EndpointReferenceFactory instance = null;
+
+    Properties properties = null;
+
+    String location = null;
+
+    private EndpointReferenceFactory() {
+//        InputStream in = getClass().getClassLoader().getResourceAsStream(
+//                PROPERTY_FILE);
+//        properties = new Properties();
+//        try {
+//            properties.load(in);
+//            in.close();
+//            String host = properties.getProperty(HOST_PROPERTY);
+//            if (host == null)
+//                host = InetAddress.getLocalHost().getHostAddress();
+//            location = properties.getProperty(PROTOCOL_PROPERTY) + "://" + host
+//                    + ":" + properties.getProperty(PORT_PROPERTY);
+//        } catch (Exception e) {
+//            if (e instanceof RuntimeException)
+//                throw (RuntimeException) e;
+//            else
+//                throw new RuntimeException(e);
+//        }
+    }
+
+    public static EndpointReferenceFactory getInstance() {
+        if (instance == null)
+            instance = new EndpointReferenceFactory();
+        return instance;
+    }
+
+    public EndpointReference getRegistrationEndpoint(String id) {
+        //TODO set this somehow reading the conf file
+        EndpointReference epr = new EndpointReference(
+                "http://localhost:8082/axis/services/RegistrationCoordinator");
+        AnyContentType refProperties = new AnyContentType();
+        refProperties.addReferenceValue(
+                new QName("http://ws.apache.org/Kandula", "id"), id);
+        epr.setReferenceProperties(refProperties);
+        return epr;
+    }
+    
+    public EndpointReference getCompletionParticipantEndpoint(String id) {
+        //TODO set this somehow reading the conf file
+        EndpointReference epr = new EndpointReference(
+                "http://localhost:5059/axis/services/CompletionParticipant");
+        AnyContentType refProperties = new AnyContentType();
+        refProperties.addReferenceValue(
+                new QName("http://ws.apache.org/Kandula", "id"), id);
+        epr.setReferenceProperties(refProperties);
+        return epr;
+    }
+
+    public EndpointReference getCompletionEndpoint(String id) {
+        //TODO set this somehow reading the conf file
+        EndpointReference epr = new EndpointReference(
+                "http://localhost:8082/axis/services/RegistrationCoordinator");
+        AnyContentType refProperties = new AnyContentType();
+        refProperties.addReferenceValue(
+                new QName("http://ws.apache.org/Kandula", "id"), id);
+        epr.setReferenceProperties(refProperties);
+        return epr;
+    }
+
+    public EndpointReference get2PCEndpoint(String id) {
+        //TODO set this somehow reading the conf file
+        EndpointReference epr = new EndpointReference(
+                "http://localhost:8082/axis/services/RegistrationCoordinator");
+        AnyContentType refProperties = new AnyContentType();
+        refProperties.addReferenceValue(
+                new QName("http://ws.apache.org/Kandula", "id"), id);
+        epr.setReferenceProperties(refProperties);
+        return epr;
+    }
+    //	public EndpointReferenceTypeImpl
+    // getEndpointReference(PortReferenceTypeImpl portType,
+    // ReferencePropertiesType referenceProperties) {
+    //		try {
+    //			EndpointReferenceTypeImpl endpointReference = new
+    // EndpointReferenceTypeImpl(SchemaTypeImpl.);
+    //			endpointReference.setPortTypesetPortType(portType);
+    //			endpointReference.setProperties(referenceProperties);
+    //			return endpointReference;
+    //		}
+    //		catch (Exception e) {
+    //			if (e instanceof RuntimeException)
+    //				throw (RuntimeException)e;
+    //			else
+    //				throw new RuntimeException(e);
+    //		}
+    //	}
+}
\ No newline at end of file

Modified: webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java?rev=280132&r1=280131&r2=280132&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaListener.java Sun Sep 11 06:39:49 2005
@@ -42,9 +42,9 @@
 
     protected static org.apache.axis2.description.OperationDescription[] operations;
 
-    SimpleHTTPServer receiver = null;
+    private SimpleHTTPServer receiver = null;
 
-    boolean serverStarted = false;
+    private boolean serverStarted = false;
 
     public static final int SERVER_PORT = 5059;
 
@@ -71,6 +71,12 @@
             System.out.print("Server started on port " + SERVER_PORT + ".....");
         }
 
+    }
+    
+    public void stop()
+    {
+        receiver.stop();
+        serverStarted = false;
     }
 
     /**

Added: webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaUtils.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaUtils.java?rev=280132&view=auto
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaUtils.java (added)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/utility/KandulaUtils.java Sun Sep 11 06:39:49 2005
@@ -0,0 +1,110 @@
+/*
+ * Copyright  2004 The Apache Software Foundation.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.kandula.utility;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Iterator;
+import java.util.Random;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.AnyContentType;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.addressing.AddressingConstants.Final;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMNamespace;
+import org.apache.axis2.soap.SOAPFactory;
+
+/**
+ * @author <a href="mailto:thilina@opensource.lk"> Thilina Gunarathne </a>
+ */
+public class KandulaUtils {
+    public static void endpointToOM(EndpointReference epr, OMElement parentEPR,SOAPFactory factory)
+    {
+        OMNamespace wsAddressing = factory.createOMNamespace(
+                AddressingConstants.Submission.WSA_NAMESPACE,
+                AddressingConstants.WSA_DEFAULT_PRFIX);
+        OMElement addressElement = factory.createOMElement("Address",
+                wsAddressing);
+        addressElement.setText(epr.getAddress());
+        parentEPR.addChild(addressElement);
+        AnyContentType referenceValues = epr.getReferenceProperties();
+        if (referenceValues != null) {
+            OMElement refPropertyElement = factory.createOMElement(
+                    "ReferenceProperties", wsAddressing);
+            parentEPR.addChild(refPropertyElement);
+            Iterator iterator = referenceValues.getKeys();
+            while (iterator.hasNext()) {
+                QName key = (QName) iterator.next();
+                String value = referenceValues.getReferenceValue(key);
+                OMElement omElement = factory.createOMElement(key,
+                        refPropertyElement);
+                refPropertyElement.addChild(omElement);
+                if (Final.WSA_NAMESPACE.equals(wsAddressing)) {
+                    omElement.addAttribute(
+                            Final.WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE,
+                            Final.WSA_TYPE_ATTRIBUTE_VALUE, wsAddressing);
+                }
+                omElement.setText(value);
+            }
+        }
+    }
+    /**
+     * MD5 a random string with localhost/date etc will return 128 bits
+     * construct a string of 18 characters from those bits.
+     * @return string
+     */
+    public static String getRandomStringOf18Characters() {
+        Random myRand = new Random();
+        long rand = myRand.nextLong();
+        String sid;
+        try {
+            sid = InetAddress.getLocalHost().toString();
+        } catch (UnknownHostException e) {
+            sid = Thread.currentThread().getName();
+        }
+        long time = System.currentTimeMillis();
+        StringBuffer sb = new StringBuffer();
+        sb.append(sid);
+        sb.append(":");
+        sb.append(Long.toString(time));
+        sb.append(":");
+        sb.append(Long.toString(rand));
+        MessageDigest md5 = null;
+        try {
+            md5 = MessageDigest.getInstance("MD5");
+        } catch (NoSuchAlgorithmException e) {
+            //System.out.println("Error: " + e);
+            //todo heve to be properly handle
+        }
+        md5.update(sb.toString().getBytes());
+        byte[] array = md5.digest();
+        StringBuffer sb2 = new StringBuffer();
+        for (int j = 0; j < array.length; ++j) {
+            int b = array[j] & 0xFF;
+            sb2.append(Integer.toHexString(b));
+        }
+        int begin = myRand.nextInt();
+        if(begin < 0) begin = begin * -1;
+        begin = begin % 8;
+        return new String(sb2.toString().substring(begin, begin + 18)).toUpperCase();
+    }
+}



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