diff options
Diffstat (limited to 'sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java')
22 files changed, 0 insertions, 1227 deletions
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/EchoBinding.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/EchoBinding.java deleted file mode 100644 index 20534fdba5..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/EchoBinding.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo; - -import org.apache.tuscany.sca.assembly.Binding; - -/** - * A model for the sample Echo binding. - */ -public interface EchoBinding extends Binding { - -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/EchoBindingFactory.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/EchoBindingFactory.java deleted file mode 100644 index dc445b38b6..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/EchoBindingFactory.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo; - -/** - * A factory for the sample Echo binding model. - */ -public interface EchoBindingFactory { - - /** - * Creates a new Echo binding. - * - * @return a new Echo binding - */ - EchoBinding createEchoBinding(); -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingFactoryImpl.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingFactoryImpl.java deleted file mode 100644 index af759dbf93..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingFactoryImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo.impl; - -import echo.EchoBinding; -import echo.EchoBindingFactory; - -/** - * A factory for the sample Echo binding model. - */ -public class EchoBindingFactoryImpl implements EchoBindingFactory { - - public EchoBinding createEchoBinding() { - return new EchoBindingImpl(); - } - -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingImpl.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingImpl.java deleted file mode 100644 index 29e460e83a..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingImpl.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo.impl; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.tuscany.sca.policy.Intent; -import org.apache.tuscany.sca.policy.IntentAttachPointType; -import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.PolicySetAttachPoint; - -import echo.EchoBinding; - -/** - * Implementation of the Echo binding model. - */ -public class EchoBindingImpl implements EchoBinding, PolicySetAttachPoint { - - private String name; - private String uri; - private List<Intent> requiredIntents = new ArrayList<Intent>(); - private List<PolicySet> policySets = new ArrayList<PolicySet>(); - private List<PolicySet> applicablePolicySets = new ArrayList<PolicySet>(); - private IntentAttachPointType bindingType = null; - - public IntentAttachPointType getType() { - return bindingType; - } - - public void setType(IntentAttachPointType type) { - this.bindingType = type; - } - - public String getName() { - return name; - } - - public String getURI() { - return uri; - } - - public void setName(String name) { - this.name = name; - } - - public void setURI(String uri) { - this.uri = uri; - } - - public List<PolicySet> getPolicySets() { - return policySets; - } - - public List<Intent> getRequiredIntents() { - return requiredIntents; - } - - public boolean isUnresolved() { - // The sample binding is always resolved - return false; - } - - public void setUnresolved(boolean unresolved) { - // The sample binding is always resolved - } - - public void setPolicySets(List<PolicySet> policySets) { - this.policySets = policySets; - - } - - public void setRequiredIntents(List<Intent> intents) { - this.requiredIntents = intents; - - } - - @Override - public Object clone() throws CloneNotSupportedException { - return super.clone(); - } - - public List<PolicySet> getApplicablePolicySets() { - return this.applicablePolicySets; - } - -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingProcessor.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingProcessor.java deleted file mode 100644 index 61ae9b9553..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/impl/EchoBindingProcessor.java +++ /dev/null @@ -1,128 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentAttachPointType;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
-import org.apache.tuscany.sca.policy.impl.IntentAttachPointTypeFactoryImpl;
-
-import echo.EchoBinding;
-import echo.EchoBindingFactory;
-
-/**
- * A processor for <binding.echo> elements.
- */
-public class EchoBindingProcessor implements StAXArtifactProcessor<EchoBinding> {
-
- private QName BINDING_ECHO = new QName("http://echo", "binding.echo");
-
- private final EchoBindingFactory factory;
- private PolicyAttachPointProcessor policyProcessor;
-
- public EchoBindingProcessor(EchoBindingFactory factory, PolicyFactory policyFactory) {
- this.factory = factory;
- this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
- }
-
- public QName getArtifactType() {
- return BINDING_ECHO;
- }
-
- public Class<EchoBinding> getModelType() {
- return EchoBinding.class;
- }
-
- public EchoBinding read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- EchoBinding echoBinding = factory.createEchoBinding();
- IntentAttachPointType bindingType = new IntentAttachPointTypeFactoryImpl().createBindingType();
- bindingType.setName(getArtifactType());
- bindingType.setUnresolved(true);
- ((PolicySetAttachPoint)echoBinding).setType(bindingType);
-
- String name = reader.getAttributeValue(null, "name");
- if (name != null) {
- echoBinding.setName(name);
- }
-
- String uri = reader.getAttributeValue(null, "uri");
- if (uri != null) {
- echoBinding.setURI(uri);
- }
-
- policyProcessor.readPolicies(echoBinding, reader);
-
- return echoBinding;
- }
-
- public void write(EchoBinding echoBinding, XMLStreamWriter writer) throws ContributionWriteException,
- XMLStreamException {
-
- writer.writeStartElement(BINDING_ECHO.getNamespaceURI(), BINDING_ECHO.getLocalPart());
- policyProcessor.writePolicyAttributes(echoBinding, writer);
-
- if (echoBinding.getName() != null) {
- writer.writeAttribute("name", echoBinding.getName());
- }
-
- if (echoBinding.getURI() != null) {
- writer.writeAttribute("uri", echoBinding.getURI());
- }
-
- writer.writeEndElement();
- }
-
- public void resolve(EchoBinding echoBinding, ModelResolver resolver) throws ContributionResolveException {
- PolicySetAttachPoint policySetAttachPoint = (PolicySetAttachPoint)echoBinding;
- List<Intent> requiredIntents = new ArrayList<Intent>();
- Intent resolvedIntent = null;
- for (Intent intent : policySetAttachPoint.getRequiredIntents()) {
- resolvedIntent = resolver.resolveModel(Intent.class, intent);
- requiredIntents.add(resolvedIntent);
- }
- policySetAttachPoint.getRequiredIntents().clear();
- policySetAttachPoint.getRequiredIntents().addAll(requiredIntents);
-
- List<PolicySet> resolvedPolicySets = new ArrayList<PolicySet>();
- PolicySet resolvedPolicySet = null;
- for (PolicySet policySet : policySetAttachPoint.getPolicySets()) {
- resolvedPolicySet = resolver.resolveModel(PolicySet.class, policySet);
- resolvedPolicySets.add(resolvedPolicySet);
- }
- policySetAttachPoint.getPolicySets().clear();
- policySetAttachPoint.getPolicySets().addAll(resolvedPolicySets);
- }
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingInvoker.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingInvoker.java deleted file mode 100644 index 1d9e28a899..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingInvoker.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo.provider; - -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; - -import echo.server.EchoServer; - -/** - * Invoker for the sample echo binding. - */ -class EchoBindingInvoker implements Invoker { - private String uri; - - EchoBindingInvoker(String uri) { - this.uri = uri; - } - - public Message invoke(Message msg) { - try { - System.out.println("Passing thro invoker..."); - Object[] args = msg.getBody(); - - // echo back the first parameter, a real binding would invoke some API for flowing the request - Object result = EchoServer.getServer().call(uri, args); - - msg.setBody(result); - - } catch (Exception e) { - msg.setFaultBody(e); - } - return msg; - } - -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingPoliciedInvoker.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingPoliciedInvoker.java deleted file mode 100644 index 342fd6e0e7..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingPoliciedInvoker.java +++ /dev/null @@ -1,70 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.invocation.Invoker;
-import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.policy.PolicySet;
-
-import echo.provider.policy.EncryptionPolicyHandler;
-import echo.provider.policy.PolicyHandler;
-
-/**
- * Invoker that applies policies before invocation for the sample echo binding.
- */
-public class EchoBindingPoliciedInvoker implements Invoker {
- List<PolicySet> policies = null;
- Map<QName, PolicyHandler> policyHandlers = new HashMap<QName, PolicyHandler>();
-
- public EchoBindingPoliciedInvoker(List<PolicySet> policies) {
- this.policies = policies;
- policyHandlers.put(new QName("http://test", "EncryptionPolicy"), new EncryptionPolicyHandler());
- }
-
- public Message invoke(Message msg) {
- try {
- Object[] args = msg.getBody();
-
- applyPolicies(args);
-
- // echo back the first parameter, a real binding would invoke some API for flowing the request
- Object result = args[0];
-
- msg.setBody(result);
-
- } catch (Exception e) {
- msg.setFaultBody(e);
- }
- return msg;
- }
-
- private void applyPolicies(Object[] args) throws Exception {
- for (PolicySet policySet : policies) {
- PolicyHandler policyHandler = policyHandlers.get(policySet.getName());
- policyHandler.applyPolicy(args, policySet);
- }
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java deleted file mode 100644 index adbc436950..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo.provider; - -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.provider.BindingProviderFactory; -import org.apache.tuscany.sca.provider.ReferenceBindingProvider; -import org.apache.tuscany.sca.provider.ServiceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; - -import echo.EchoBinding; - -/** - * Implementation of the Echo binding model. - */ -public class EchoBindingProviderFactory implements BindingProviderFactory<EchoBinding> { - - private MessageFactory messageFactory; - - public EchoBindingProviderFactory(ExtensionPointRegistry extensionPoints) { - ModelFactoryExtensionPoint factories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); - this.messageFactory = factories.getFactory(MessageFactory.class); - } - - public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, - RuntimeComponentReference reference, - EchoBinding binding) { - return new EchoReferenceBindingProvider(component, reference, binding); - } - - public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - EchoBinding binding) { - return new EchoServiceBindingProvider(component, service, binding, messageFactory); - } - - public Class<EchoBinding> getModelType() { - return EchoBinding.class; - } -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoReferenceBindingProvider.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoReferenceBindingProvider.java deleted file mode 100644 index 3178c50a2a..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoReferenceBindingProvider.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo.provider; - -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.policy.PolicySetAttachPoint; -import org.apache.tuscany.sca.provider.ReferenceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; - -import echo.EchoBinding; - -/** - * Implementation of the Echo binding provider. - */ -class EchoReferenceBindingProvider implements ReferenceBindingProvider { - - private RuntimeComponentReference reference; - private EchoBinding binding; - - EchoReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, EchoBinding binding) { - this.reference = reference; - this.binding = binding; - } - - public Invoker createInvoker(Operation operation) { - if (binding instanceof PolicySetAttachPoint) { - PolicySetAttachPoint policySetAttachPoint = (PolicySetAttachPoint)binding; - if (!policySetAttachPoint.getPolicySets().isEmpty()) { - return new EchoBindingPoliciedInvoker(policySetAttachPoint.getPolicySets()); - } - } - return new EchoBindingInvoker(binding.getURI()); - } - - public boolean supportsOneWayInvocation() { - return false; - } - - public InterfaceContract getBindingInterfaceContract() { - return reference.getInterfaceContract(); - } - - public void start() { - } - - public void stop() { - } - -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoServiceBindingProvider.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoServiceBindingProvider.java deleted file mode 100644 index 43eb562c55..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/EchoServiceBindingProvider.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo.provider; - -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.invocation.InvocationChain; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.provider.ServiceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; -import org.apache.tuscany.sca.runtime.RuntimeWire; - -import echo.EchoBinding; -import echo.server.EchoServer; -import echo.server.EchoServiceListener; - -/** - * Implementation of the Echo binding provider. - */ -class EchoServiceBindingProvider implements ServiceBindingProvider { - - private RuntimeComponent component; - private RuntimeComponentService service; - private EchoBinding binding; - private MessageFactory messageFactory; - - EchoServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - EchoBinding binding, - MessageFactory messageFactory) { - this.component = component; - this.service = service; - this.binding = binding; - this.messageFactory = messageFactory; - } - - public InterfaceContract getBindingInterfaceContract() { - return service.getInterfaceContract(); - } - - public boolean supportsOneWayInvocation() { - return false; - } - - public void start() { - - RuntimeComponentService componentService = (RuntimeComponentService)service; - RuntimeWire wire = componentService.getRuntimeWire(binding); - InvocationChain chain = wire.getInvocationChains().get(0); - - // Register with the hosting server - String uri = binding.getURI(); - EchoServer.getServer().register(uri, new EchoServiceListener(chain.getHeadInvoker(), messageFactory)); - } - - public void stop() { - - // Unregister from the hosting server - String uri = component.getURI() + "/" + binding.getName(); - EchoServer.getServer().unregister(uri); - } - -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingEncryptionPolicy.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingEncryptionPolicy.java deleted file mode 100644 index c1f1269db6..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingEncryptionPolicy.java +++ /dev/null @@ -1,44 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-/**
- */
-public class EchoBindingEncryptionPolicy extends EchoBindingPolicy {
-
- private String encryptionStrategyClassName;
- private Class<? extends EncryptionStrategy> strategyClass;
-
- public String getEncryptionStrategyClassName() {
- return encryptionStrategyClassName;
- }
-
- public void setEncryptionStrategyClassName(String encryptionStrategyClassName) {
- this.encryptionStrategyClassName = encryptionStrategyClassName;
- }
-
- public Class<? extends EncryptionStrategy> getStrategyClass() {
- return strategyClass;
- }
-
- public void setStrategyClass(Class<? extends EncryptionStrategy> strategy) {
- this.strategyClass = strategy;
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingEncryptionPolicyProcessor.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingEncryptionPolicyProcessor.java deleted file mode 100644 index da47bbfac3..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingEncryptionPolicyProcessor.java +++ /dev/null @@ -1,36 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.monitor.Monitor;
-
-/**
- *
- */
-public class EchoBindingEncryptionPolicyProcessor extends EchoBindingPolicyProcessor<EchoBindingEncryptionPolicy> {
-
- public EchoBindingEncryptionPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
- }
-
- public Class<EchoBindingEncryptionPolicy> getModelType() {
- return EchoBindingEncryptionPolicy.class;
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingPolicy.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingPolicy.java deleted file mode 100644 index 0dab68075d..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingPolicy.java +++ /dev/null @@ -1,43 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.policy.Policy;
-
-/**
-
- */
-public class EchoBindingPolicy implements Policy {
- private boolean unresolved = true;
-
- public QName getSchemaName() {
- return new QName("http://sample/policy", "echoBindingPolicy");
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean unresolved) {
- this.unresolved = unresolved;
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingPolicyProcessor.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingPolicyProcessor.java deleted file mode 100644 index 72b8002238..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EchoBindingPolicyProcessor.java +++ /dev/null @@ -1,78 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ClassReference;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-
-/**
- *
- */
-public abstract class EchoBindingPolicyProcessor<T extends EchoBindingPolicy> implements StAXArtifactProcessor<T> {
- public static final String ENCRYPTION = "Encryption";
-
- public QName getArtifactType() {
- return new QName("http://sample/policy", "echoBindingPolicy");
- }
-
- public T read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- String name = reader.getAttributeValue(null, "name");
- if (name != null && name.equals(ENCRYPTION)) {
- EchoBindingEncryptionPolicy policy = new EchoBindingEncryptionPolicy();
- policy.setEncryptionStrategyClassName(reader.getAttributeValue(null, "strategy"));
- return (T)policy;
- }
- return null;
- }
-
- public void write(T arg0, XMLStreamWriter arg1) throws ContributionWriteException, XMLStreamException {
- }
-
- public void resolve(T policy, ModelResolver resolver) throws ContributionResolveException {
- if (policy instanceof EchoBindingEncryptionPolicy) {
- EchoBindingEncryptionPolicy ePolicy = (EchoBindingEncryptionPolicy)policy;
-
- ClassReference classReference = new ClassReference(ePolicy.getEncryptionStrategyClassName());
- classReference = resolver.resolveModel(ClassReference.class, classReference);
- Class javaClass = classReference != null ? classReference.getJavaClass() : null;
- if (javaClass == null) {
- //throw new ContributionResolveException(new ClassNotFoundException(ePolicy.getEncryptionStrategyClass()));
- }
- //ePolicy.setStrategyClass(javaClass);
- //FIXME: need to resolve this thro resolver
- try {
- ePolicy.setStrategyClass((Class<? extends EncryptionStrategy>)Class.forName(ePolicy
- .getEncryptionStrategyClassName()));
- } catch (Exception e) {
- throw new ContributionResolveException(e);
- }
- ePolicy.setStrategyClass(ePolicy.getStrategyClass());
- ePolicy.setUnresolved(false);
- }
- }
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EncryptionPolicyHandler.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EncryptionPolicyHandler.java deleted file mode 100644 index cf98b3830f..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EncryptionPolicyHandler.java +++ /dev/null @@ -1,47 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-import org.apache.tuscany.sca.policy.PolicySet;
-
-/**
- * Sample policy handler
- */
-public class EncryptionPolicyHandler implements PolicyHandler {
-
- public void applyPolicy(Object msg, PolicySet policySet) throws Exception {
- for (Object aPolicy : policySet.getPolicies()) {
- if (aPolicy instanceof EchoBindingEncryptionPolicy) {
- encrypt(msg, (EchoBindingEncryptionPolicy)aPolicy);
- }
- }
- }
-
- private void encrypt(Object msg, EchoBindingEncryptionPolicy policy) throws Exception {
- if (!policy.isUnresolved() && msg instanceof Object[]) {
- EncryptionStrategy strategy = policy.getStrategyClass().newInstance();
- Object[] msgArgs = (Object[])msg;
- for (int count = 0; count < msgArgs.length; ++count) {
- msgArgs[count] = strategy.encryptMessage(msgArgs[count]);
- }
- }
-
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EncryptionStrategy.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EncryptionStrategy.java deleted file mode 100644 index ffadfc7fff..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/EncryptionStrategy.java +++ /dev/null @@ -1,26 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-/**
-
- */
-public interface EncryptionStrategy {
- Object encryptMessage(Object msg);
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/PolicyHandler.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/PolicyHandler.java deleted file mode 100644 index 6fa5f26977..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/PolicyHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-import org.apache.tuscany.sca.policy.PolicySet;
-
-/**
- * Sample Policy Handler Interface
- *
- */
-public interface PolicyHandler {
- void applyPolicy(Object msg, PolicySet policySet) throws Exception;
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/ReverseEncryptionStrategy.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/ReverseEncryptionStrategy.java deleted file mode 100644 index 3220102926..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/ReverseEncryptionStrategy.java +++ /dev/null @@ -1,33 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-/**
- */
-public class ReverseEncryptionStrategy implements EncryptionStrategy {
-
- public Object encryptMessage(Object msg) {
- if (msg instanceof String) {
- StringBuffer sb = new StringBuffer((String)msg);
- msg = sb.reverse().toString();
- }
- return msg;
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/WSPolicy.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/WSPolicy.java deleted file mode 100644 index 598683c251..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/WSPolicy.java +++ /dev/null @@ -1,43 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.policy.Policy;
-
-/**
-
- */
-public class WSPolicy implements Policy {
- private boolean unresolved = true;
-
- public QName getSchemaName() {
- return new QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "PolicyAttachment");
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean unresolved) {
- this.unresolved = unresolved;
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/WSPolicyProcessor.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/WSPolicyProcessor.java deleted file mode 100644 index fcb250b444..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/provider/policy/WSPolicyProcessor.java +++ /dev/null @@ -1,54 +0,0 @@ -/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 echo.provider.policy;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-
-public class WSPolicyProcessor implements StAXArtifactProcessor<WSPolicy> {
-
- public QName getArtifactType() {
- return new QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "PolicyAttachment");
- }
-
- public WSPolicy read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- //FIXME Implement this method
- return new WSPolicy();
- }
-
- public void write(WSPolicy wsPolicy, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
- //FIXME Implement this method
- }
-
- public Class<WSPolicy> getModelType() {
- return WSPolicy.class;
- }
-
- public void resolve(WSPolicy wsPolicy, ModelResolver modelResolver) throws ContributionResolveException {
-
- }
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/server/EchoServer.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/server/EchoServer.java deleted file mode 100644 index 7f3a4f9ac3..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/server/EchoServer.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo.server; - -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; - -/** - * A sample Echo server, showing how to integrate service bindings. - */ -public class EchoServer { - - public static EchoServer server; - - private Map<String, EchoServiceListener> services = new HashMap<String, EchoServiceListener>(); - - public static void start() { - } - - public static void stop() { - } - - public static EchoServer getServer() { - if (server == null) - server = new EchoServer(); - return server; - } - - /** - * Register a service under the given name. - * - * @param service - * @param name - */ - public void register(String uri, EchoServiceListener service) { - if (services.isEmpty()) { - start(); - } - services.put(uri, service); - } - - public void unregister(String uri) { - services.remove(uri); - if (services.isEmpty()) { - stop(); - } - } - - /** - * Dispatch an incoming interaction to the corresponding service. - * - * @param uri - * @param args - * @return - */ - public Object call(String uri, Object[] args) throws InvocationTargetException { - EchoServiceListener service = services.get(uri); - if (service == null) { - return args[0]; - } - return service.call(args); - } - -} diff --git a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/server/EchoServiceListener.java b/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/server/EchoServiceListener.java deleted file mode 100644 index bc6aa74037..0000000000 --- a/sca-java-1.x/tags/1.5.1-RC4/samples/binding-echo-extension/src/main/java/echo/server/EchoServiceListener.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 echo.server; - -import java.lang.reflect.InvocationTargetException; - -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.invocation.MessageFactory; - -public class EchoServiceListener { - private Invoker invoker; - private MessageFactory messageFactory; - - public EchoServiceListener(Invoker invoker, MessageFactory messageFactory) { - super(); - this.invoker = invoker; - this.messageFactory = messageFactory; - } - - public Object call(Object[] args) throws InvocationTargetException { - - // Create a request message - Message request = messageFactory.createMessage(); - request.setBody(args); - - // Dispatch and get the response - Message response = invoker.invoke(request); - Object body = response.getBody(); - if (response.isFault()) { - throw new InvocationTargetException((Throwable)body); - } - return body; - } - -} |