On Thu, Jul 14, 2011 at 9:17 PM, ant elder <ant.el...@gmail.com> wrote:
> On Thu, Jul 14, 2011 at 10:20 AM, Simon Laws <simonsl...@googlemail.com> 
> wrote:
>> On Sat, Jun 25, 2011 at 9:36 AM,  <antel...@apache.org> wrote:
>>> Author: antelder
>>> Date: Sat Jun 25 08:36:14 2011
>>> New Revision: 1139503
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1139503&view=rev
>>> Log:
>>> Remove the storing of wsdl in the registry as it snot used by anythiny 
>>> presently now that the client has been changed to get the contribution jars 
>>> itself
>>>
>>> Modified:
>>>    
>>> tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/HazelcastDomainRegistry.java
>>>    
>>> tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/client/HazelcastClientEndpointRegistry.java
>>>
>>> Modified: 
>>> tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/HazelcastDomainRegistry.java
>>> URL: 
>>> http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/HazelcastDomainRegistry.java?rev=1139503&r1=1139502&r2=1139503&view=diff
>>> ==============================================================================
>>> --- 
>>> tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/HazelcastDomainRegistry.java
>>>  (original)
>>> +++ 
>>> tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/HazelcastDomainRegistry.java
>>>  Sat Jun 25 08:36:14 2011
>>> @@ -22,7 +22,6 @@ package org.apache.tuscany.sca.registry.
>>>  import java.io.ByteArrayOutputStream;
>>>  import java.io.FileNotFoundException;
>>>  import java.io.IOException;
>>> -import java.io.StringReader;
>>>  import java.net.UnknownHostException;
>>>  import java.util.ArrayList;
>>>  import java.util.Collection;
>>> @@ -36,10 +35,6 @@ import java.util.concurrent.FutureTask;
>>>  import java.util.logging.Level;
>>>  import java.util.logging.Logger;
>>>
>>> -import javax.wsdl.Definition;
>>> -import javax.wsdl.WSDLException;
>>> -import javax.wsdl.xml.WSDLReader;
>>> -import javax.wsdl.xml.WSDLWriter;
>>>  import javax.xml.stream.XMLStreamException;
>>>  import javax.xml.stream.XMLStreamReader;
>>>
>>> @@ -56,19 +51,13 @@ import org.apache.tuscany.sca.core.Exten
>>>  import org.apache.tuscany.sca.core.FactoryExtensionPoint;
>>>  import org.apache.tuscany.sca.core.LifeCycleListener;
>>>  import org.apache.tuscany.sca.core.UtilityExtensionPoint;
>>> -import org.apache.tuscany.sca.interfacedef.InterfaceContract;
>>> -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
>>> -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
>>> -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
>>> -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
>>>  import org.apache.tuscany.sca.runtime.BaseDomainRegistry;
>>> +import org.apache.tuscany.sca.runtime.ContributionDescription;
>>>  import org.apache.tuscany.sca.runtime.ContributionListener;
>>>  import org.apache.tuscany.sca.runtime.DomainRegistry;
>>> -import org.apache.tuscany.sca.runtime.ContributionDescription;
>>>  import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
>>>  import org.apache.tuscany.sca.runtime.RuntimeProperties;
>>>  import org.oasisopen.sca.ServiceRuntimeException;
>>> -import org.xml.sax.InputSource;
>>>
>>>  import com.hazelcast.config.Config;
>>>  import com.hazelcast.config.NearCacheConfig;
>>> @@ -106,7 +95,6 @@ public class HazelcastDomainRegistry ext
>>>     // key componentName, value contributionURI
>>>     protected Map<String, String> runningComponentContributions;
>>>
>>> -    protected Map<Object, Object> endpointWsdls;
>>>     protected Map<String, Endpoint> localEndpoints = new 
>>> ConcurrentHashMap<String, Endpoint>();
>>>
>>>     protected Map<String, ContributionDescription> contributionDescriptions;
>>> @@ -147,7 +135,6 @@ public class HazelcastDomainRegistry ext
>>>             endpointMap = imap;
>>>
>>>             endpointOwners = hazelcastInstance.getMultiMap(domainURI + 
>>> "/EndpointOwners");
>>> -            endpointWsdls = hazelcastInstance.getMap(domainURI + 
>>> "/EndpointWsdls");
>>>
>>>             runningComposites = hazelcastInstance.getMap(domainURI + 
>>> "/RunningComposites");
>>>             runningCompositeOwners = hazelcastInstance.getMap(domainURI + 
>>> "/RunningCompositeOwners");
>>> @@ -182,7 +169,6 @@ public class HazelcastDomainRegistry ext
>>>                 hazelcastInstance = null;
>>>                 endpointMap = null;
>>>                 endpointOwners = null;
>>> -                endpointWsdls = null;
>>>                 runningComposites = null;
>>>                 runningCompositeOwners = null;
>>>             }
>>> @@ -290,7 +276,6 @@ public class HazelcastDomainRegistry ext
>>>
>>>         String localMemberAddr = 
>>> hazelcastInstance.getCluster().getLocalMember().getInetSocketAddress().toString();
>>>         String endpointURI = endpoint.getURI();
>>> -        String wsdl = getWsdl(endpoint);
>>>         String componentName = endpoint.getComponent().getName();
>>>         String curi = null;
>>>         if (endpoint instanceof RuntimeEndpoint) {
>>> @@ -304,7 +289,6 @@ public class HazelcastDomainRegistry ext
>>>         try {
>>>             localEndpoints.put(endpointURI, endpoint);
>>>             endpointMap.put(endpointURI, endpoint);
>>> -            endpointWsdls.put(endpointURI, wsdl);
>>>             endpointOwners.put(localMemberAddr, endpointURI);
>>>             if (curi != null) {
>>>                 runningComponentContributions.put(componentName, curi);
>>> @@ -317,23 +301,6 @@ public class HazelcastDomainRegistry ext
>>>         logger.info("Add endpoint - " + endpoint);
>>>     }
>>>
>>> -    private String getWsdl(Endpoint endpoint) {
>>> -        WSDLInterfaceContract wsdlIC = 
>>> (WSDLInterfaceContract)((RuntimeEndpoint)endpoint).getGeneratedWSDLContract(endpoint.getComponentServiceInterfaceContract());
>>> -        if (wsdlIC == null) {
>>> -            return "";
>>> -        }
>>> -        WSDLInterface wsdl = (WSDLInterface)wsdlIC.getInterface();
>>> -        WSDLDefinition d = wsdl.getWsdlDefinition();
>>> -        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
>>> -        try {
>>> -            WSDLWriter writer = 
>>> javax.wsdl.factory.WSDLFactory.newInstance().newWSDLWriter();
>>> -            writer.writeWSDL(d.getDefinition(), outStream);
>>> -        } catch (Exception e){
>>> -            throw new RuntimeException(e);
>>> -        }
>>> -        return outStream.toString();
>>> -    }
>>> -
>>>     public List<Endpoint> findEndpoint(String uri) {
>>>         List<Endpoint> foundEndpoints = new ArrayList<Endpoint>();
>>>         for (Object v : endpointMap.values()) {
>>> @@ -353,11 +320,6 @@ public class HazelcastDomainRegistry ext
>>>         if (!isLocal(endpoint)) {
>>>             endpoint.setRemote(true);
>>>             ((RuntimeEndpoint)endpoint).bind(registry, this);
>>> -            try {
>>> -                setNormailizedWSDLContract(endpoint);
>>> -            } catch (WSDLException e) {
>>> -                throw new RuntimeException(e);
>>> -            }
>>>         } else {
>>>             // get the local version of the endpoint
>>>             // this local version won't have been serialized
>>> @@ -368,25 +330,6 @@ public class HazelcastDomainRegistry ext
>>>         return endpoint;
>>>     }
>>>
>>> -    private void setNormailizedWSDLContract(Endpoint endpoint) throws 
>>> WSDLException {
>>> -        String wsdl = endpointWsdls == null ? null : 
>>> (String)endpointWsdls.get(endpoint.getURI());
>>> -        if (wsdl == null || wsdl.length() < 1) {
>>> -            return;
>>> -        }
>>> -        InterfaceContract ic = 
>>> endpoint.getComponentServiceInterfaceContract();
>>> -        WSDLFactory wsdlFactory = 
>>> registry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(WSDLFactory.class);
>>> -        WSDLInterfaceContract wsdlIC = 
>>> wsdlFactory.createWSDLInterfaceContract();
>>> -        WSDLInterface wsdlIface = wsdlFactory.createWSDLInterface();
>>> -        WSDLDefinition wsdlDef = wsdlFactory.createWSDLDefinition();
>>> -        WSDLReader reader = 
>>> javax.wsdl.factory.WSDLFactory.newInstance().newWSDLReader();
>>> -        InputSource inputSource = new InputSource(new StringReader(wsdl));
>>> -        Definition def = reader.readWSDL("", inputSource);
>>> -        wsdlDef.setDefinition(def);
>>> -        wsdlIface.setWsdlDefinition(wsdlDef);
>>> -        wsdlIC.setInterface(wsdlIface);
>>> -        ic.setNormailizedWSDLContract(wsdlIC);
>>> -    }
>>> -
>>>     private boolean isLocal(Endpoint endpoint) {
>>>         return localEndpoints.containsKey(endpoint.getURI());
>>>     }
>>> @@ -416,7 +359,6 @@ public class HazelcastDomainRegistry ext
>>>             try {
>>>                 endpointOwners.remove(localMemberAddr, endpointURI);
>>>                 endpointMap.remove(endpointURI);
>>> -                endpointWsdls.remove(endpointURI);
>>>                 runningComponentContributions.remove(componentName);
>>>                 txn.commit();
>>>             } catch (Throwable e) {
>>> @@ -486,7 +428,6 @@ public class HazelcastDomainRegistry ext
>>>                             for (Object k : keys) {
>>>                                 Endpoint endpoint = 
>>> (Endpoint)endpointMap.remove(k);
>>>                                 
>>> runningComponentContributions.remove(endpoint.getComponent().getName());
>>> -                                endpointWsdls.remove(k);
>>>                             }
>>>                         }
>>>                         if (runningCompositeOwners.containsKey(memberAddr)) 
>>> {
>>>
>>> Modified: 
>>> tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/client/HazelcastClientEndpointRegistry.java
>>> URL: 
>>> http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/client/HazelcastClientEndpointRegistry.java?rev=1139503&r1=1139502&r2=1139503&view=diff
>>> ==============================================================================
>>> --- 
>>> tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/client/HazelcastClientEndpointRegistry.java
>>>  (original)
>>> +++ 
>>> tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/registry/hazelcast/client/HazelcastClientEndpointRegistry.java
>>>  Sat Jun 25 08:36:14 2011
>>> @@ -60,7 +60,6 @@ public class HazelcastClientEndpointRegi
>>>         initHazelcastClientInstance();
>>>         endpointMap = hazelcastClient.getMap(rc.getUserid() + "/Endpoints");
>>>         endpointOwners = hazelcastClient.getMultiMap(rc.getUserid() + 
>>> "/EndpointOwners");
>>> -        endpointWsdls = hazelcastClient.getMap(rc.getUserid() + 
>>> "/EndpointWsdls");
>>>         runningComponentContributions = 
>>> hazelcastClient.getMap(rc.getUserid() + "/RunningComponentContributions");
>>>         contributionDescriptions = hazelcastClient.getMap(rc.getUserid() + 
>>> "/ContributionDescriptions");
>>>     }
>>> @@ -71,7 +70,6 @@ public class HazelcastClientEndpointRegi
>>>             hazelcastClient.shutdown();
>>>             hazelcastClient = null;
>>>             endpointMap = null;
>>> -            endpointWsdls = null;
>>>         }
>>>     }
>>>
>>>
>>>
>>>
>>
>> I think we need to fix the interface compatibility test that is
>> currently disabled in the endpoint reference binding. To do this I
>> think we need to re-enable this function.
>>
>> Nominally the interface contract should be presented with the endpoint
>> when it's retrieved which is what this code is doing under the covers
>> in a Hazelcast specific way. We could consider extending the endpoint
>> serialization mechanism to take the normalized WSDL interface contract
>> with it.
>
> I'm still looking at this but in the interim are there any reasons any
> one can think of why we might not want to do that? That is in effect
> what this old hazelcast registry code did anyway so it seems like if
> the endpoint serialization/deserialization included the wsdl contract
> that should do what we need and for any domain registry impl not just
> that hazelcast one. And it looks relatively straight forward to do by
> just extending RuntimeEndpointImpl.writeExternal so that it also
> writes out the wsdl xml.
>
>   ...ant
>

That sounds OK to me. We can treat the policy piece separate and maybe
we don't need any API for interface.

Simon

-- 
Apache Tuscany committer: tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com

Reply via email to