From fdaae3ffaa2f06063d0afe27b38aa05af398835f Mon Sep 17 00:00:00 2001 From: rsivaram Date: Thu, 16 Oct 2008 13:50:40 +0000 Subject: Event prototype: subset modules and change version to 1.4-EVENT-SNAPSHOT git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@705244 13f79535-47bb-0310-9956-ffa450edef68 --- .../modules/implementation-notification/LICENSE | 205 --------------------- .../modules/implementation-notification/NOTICE | 6 - .../modules/implementation-notification/pom.xml | 110 ----------- .../DefaultNotificationImplementationFactory.java | 33 ---- .../notification/ImmutableMessage.java | 98 ---------- .../notification/NotificationComponentInvoker.java | 112 ----------- .../NotificationImplementationFactory.java | 27 --- .../NotificationImplementationImpl.java | 96 ---------- .../NotificationImplementationProcessor.java | 99 ---------- .../NotificationImplementationProvider.java | 67 ------- .../NotificationImplementationProviderFactory.java | 38 ---- .../notification/NotificationModuleActivator.java | 49 ----- .../org.apache.tuscany.sca.core.ModuleActivator | 19 -- .../NotificationComponentTestCase.java | 136 -------------- .../NotificationImplementationLoaderTestCase.java | 56 ------ ...afficAdvisoryNotificationTestCase.componentType | 30 --- 16 files changed, 1181 deletions(-) delete mode 100644 sandbox/event/modules/implementation-notification/LICENSE delete mode 100644 sandbox/event/modules/implementation-notification/NOTICE delete mode 100644 sandbox/event/modules/implementation-notification/pom.xml delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/DefaultNotificationImplementationFactory.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentInvoker.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationFactory.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationImpl.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProcessor.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProvider.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProviderFactory.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationModuleActivator.java delete mode 100644 sandbox/event/modules/implementation-notification/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator delete mode 100644 sandbox/event/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentTestCase.java delete mode 100644 sandbox/event/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationLoaderTestCase.java delete mode 100644 sandbox/event/modules/implementation-notification/src/test/resources/TrafficAdvisoryNotificationTestCase.componentType (limited to 'sandbox/event/modules/implementation-notification') diff --git a/sandbox/event/modules/implementation-notification/LICENSE b/sandbox/event/modules/implementation-notification/LICENSE deleted file mode 100644 index 6e529a25c4..0000000000 --- a/sandbox/event/modules/implementation-notification/LICENSE +++ /dev/null @@ -1,205 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - - - diff --git a/sandbox/event/modules/implementation-notification/NOTICE b/sandbox/event/modules/implementation-notification/NOTICE deleted file mode 100644 index 1325efd8bf..0000000000 --- a/sandbox/event/modules/implementation-notification/NOTICE +++ /dev/null @@ -1,6 +0,0 @@ -${pom.name} -Copyright (c) 2005 - 2008 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). - diff --git a/sandbox/event/modules/implementation-notification/pom.xml b/sandbox/event/modules/implementation-notification/pom.xml deleted file mode 100644 index a2ebb4289c..0000000000 --- a/sandbox/event/modules/implementation-notification/pom.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - - 4.0.0 - - org.apache.tuscany.sca - tuscany-modules - 1.4-SNAPSHOT - ../pom.xml - - - tuscany-implementation-notification - Apache Tuscany SCA Notification Implementation Extension - - - - org.apache.tuscany.sca - tuscany-sca-api - 1.4-SNAPSHOT - - - org.apache.tuscany.sca - tuscany-core-spi - 1.4-SNAPSHOT - - - org.apache.tuscany.sca - tuscany-interface - 1.4-SNAPSHOT - - - org.apache.tuscany.sca - tuscany-assembly - 1.4-SNAPSHOT - - - org.apache.tuscany.sca - tuscany-assembly-xml - 1.4-SNAPSHOT - - - org.apache.tuscany.sca - tuscany-contribution-impl - 1.4-SNAPSHOT - - - org.apache.tuscany.sca - tuscany-interface-wsdl - 1.4-SNAPSHOT - - - - - junit - junit - 4.5 - test - - - - org.easymock - easymock - 2.2 - test - - - - org.apache.tuscany.sca - tuscany-binding-sca - 1.4-SNAPSHOT - test - - - - - - - org.apache.felix - maven-bundle-plugin - - - - ${tuscany.version} - org.apache.tuscany.sca.implementation.notification - ${pom.name} - org.apache.tuscany.sca.implementation.notification* - - - - - - - diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/DefaultNotificationImplementationFactory.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/DefaultNotificationImplementationFactory.java deleted file mode 100644 index 3f79ca71e5..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/DefaultNotificationImplementationFactory.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 org.apache.tuscany.sca.implementation.notification; - - -/** - * A default factory for the Notification implementation model. - * - * @version $Rev$ $Date$ - */ -public class DefaultNotificationImplementationFactory implements NotificationImplementationFactory { - - public NotificationImplementationImpl createNotificationImplementation() { - return new NotificationImplementationImpl(); - } - -} diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java deleted file mode 100644 index 7a3c4bdf5a..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/ImmutableMessage.java +++ /dev/null @@ -1,98 +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 org.apache.tuscany.sca.implementation.notification; - -import java.util.List; -import java.util.Map; - -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.runtime.EndpointReference; -import org.apache.tuscany.sca.runtime.RuntimeWire; - -/** - * @version $Rev$ $Date$ - */ -public class ImmutableMessage implements Message { - - public T getBody() { - return null; - } - - public EndpointReference getFrom() { - return null; - } - - public Object getMessageID() { - return null; - } - - public EndpointReference getTo() { - return null; - } - - public RuntimeWire getWire() { - return null; - } - - public boolean isFault() { - return false; - } - - public void setBody(T arg0) { - throw new UnsupportedOperationException(); - } - - public void setFaultBody(T arg0) { - throw new UnsupportedOperationException(); - } - - public void setFrom(EndpointReference arg0) { - throw new UnsupportedOperationException(); - } - - public void setMessageID(Object arg0) { - throw new UnsupportedOperationException(); - } - - public void setTo(EndpointReference arg0) { - throw new UnsupportedOperationException(); - } - - public Operation getOperation() { - return null; - } - - public void setOperation(Operation op) { - throw new UnsupportedOperationException(); - } - - /** - * @see org.apache.tuscany.sca.invocation.Message#getReplyTo() - */ - public EndpointReference getReplyTo() { - return null; - } - - - public List getHeaders() { - return null; - } - -} diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentInvoker.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentInvoker.java deleted file mode 100644 index a2e35c5cb6..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentInvoker.java +++ /dev/null @@ -1,112 +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 org.apache.tuscany.sca.implementation.notification; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.tuscany.sca.assembly.ComponentReference; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.InvocationChain; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeWire; - -/** - * Turns invoke into remote message fan-out - * - * @version $Rev$ $Date$ - */ -public class NotificationComponentInvoker implements Invoker { - - private static final Message RESPONSE = new ImmutableMessage(); - private List subscriberInvocationChains; - private Operation operation; - private RuntimeComponent component; - - public NotificationComponentInvoker(Operation operation, RuntimeComponent component) { - this.subscriberInvocationChains = null; - this.operation = operation; - this.component = component; - } - - public Message invoke(Message msg) { - addSubscriberInvocationChains(); - - // REVIEW Should this be done in separate thread(s)? - // REVIEW Should separate copies of message be used? - Object msgBody = msg.getBody(); - - for (InvocationChain subscriberInvocationChain : subscriberInvocationChains) { - Invoker chainInvoker = subscriberInvocationChain.getHeadInvoker(); - msg.setBody(msgBody); - chainInvoker.invoke(msg); - } - - return RESPONSE; - } - - private void addSubscriberInvocationChains() { - if (subscriberInvocationChains == null) { - subscriberInvocationChains = new ArrayList(); - for (ComponentReference reference : component.getReferences()) { - if (reference.getName().indexOf("$self$") >= 0) { - continue; - } - RuntimeComponentReference rtCompRef = null; - if (reference instanceof RuntimeComponentReference) { - rtCompRef = (RuntimeComponentReference)reference; - } - else { - throw new RuntimeException("Need a runtime component reference"); - } - for(RuntimeWire wire : rtCompRef.getRuntimeWires()) { - // This is much less efficient now !! - List chains = wire.getInvocationChains(); - InvocationChain chain = getInvocationChain(chains, operation); - subscriberInvocationChains.add(chain); - } - } - } - } - - private InvocationChain getInvocationChain(List chains, Operation operation) { - InvocationChain chain = null; - for (InvocationChain ch : chains) { - if (ch.getTargetOperation().equals(operation)) { - chain = ch; - break; - } - } - if (chain == null) { - for (InvocationChain ch : chains) { - if (ch.getTargetOperation().getName().equals(operation.getName())) { - chain = ch; - break; - } - } - if (chain == null) { - throw new RuntimeException("Can't find a compatible chain"); - } - } - return chain; - } -} diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationFactory.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationFactory.java deleted file mode 100644 index cea7038e9c..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationFactory.java +++ /dev/null @@ -1,27 +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 org.apache.tuscany.sca.implementation.notification; - -/** - * @version $Rev$ $Date$ - */ -public interface NotificationImplementationFactory { - - NotificationImplementationImpl createNotificationImplementation(); -} diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationImpl.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationImpl.java deleted file mode 100644 index 594bec75b5..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationImpl.java +++ /dev/null @@ -1,96 +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 org.apache.tuscany.sca.implementation.notification; - -import java.util.List; - -import org.apache.tuscany.sca.assembly.ComponentType; -import org.apache.tuscany.sca.assembly.Implementation; -import org.apache.tuscany.sca.assembly.Reference; -import org.apache.tuscany.sca.assembly.Service; -import org.apache.tuscany.sca.assembly.impl.ImplementationImpl; - - -/** - * Model object for a Notification implementation. - * - * @version $Rev$ $Date$ - */ -public class NotificationImplementationImpl extends ImplementationImpl implements Implementation { - - private String componentTypeName; - private String implementationType; - private ComponentType componentType; - - - public NotificationImplementationImpl() { - // Without this, the loader's resolve is not called - setUnresolved(true); - } - - public String getComponentTypeName() { - return componentTypeName; - } - - public void setComponentTypeName(String componentTypeName) { - this.componentTypeName = componentTypeName; - } - - public String getImplementationType() { - return implementationType; - } - - public void setImplementationType(String implementationType) { - this.implementationType = implementationType; - } - - public ComponentType getComponentType() { - return componentType; - } - - public void setComponentType(ComponentType componentType) { - this.componentType = componentType; - } - - @Override - public List getServices() { - return componentType.getServices(); - } - - @Override - public List getReferences() { - return componentType.getReferences(); - } - - @Override - public int hashCode() { - return String.valueOf(getComponentTypeName()).hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (obj == this) - return true; - else if (obj instanceof NotificationImplementationImpl && - getComponentTypeName().equals(((NotificationImplementationImpl)obj).getComponentTypeName())) - return true; - else - return false; - } -} diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProcessor.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProcessor.java deleted file mode 100644 index c8b55c7caa..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProcessor.java +++ /dev/null @@ -1,99 +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 org.apache.tuscany.sca.implementation.notification; - -import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; - -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.ComponentType; -import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; -import org.apache.tuscany.sca.assembly.xml.Constants; -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; - -/** - * Loader for handling Notification elements. - * - * @version $Rev$ $Date$ - */ -public class NotificationImplementationProcessor implements StAXArtifactProcessor { - - protected static final QName IMPLEMENTATION_NOTIFICATION = - new QName(Constants.SCA10_TUSCANY_NS, "implementation.notification"); - - private NotificationImplementationFactory implementationFactory; - - public NotificationImplementationProcessor(NotificationImplementationFactory implementationFactory) { - this.implementationFactory = implementationFactory; - } - - public QName getArtifactType() { - return IMPLEMENTATION_NOTIFICATION; - } - - public Class getModelType() { - return NotificationImplementationImpl.class; - } - - public NotificationImplementationImpl read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException { - assert IMPLEMENTATION_NOTIFICATION.equals(reader.getName()); - String componentTypeName = reader.getAttributeValue(null, "name"); - String implementationType = reader.getAttributeValue(null, "type"); - - NotificationImplementationImpl implementation = implementationFactory.createNotificationImplementation(); - implementation.setComponentTypeName(componentTypeName); - implementation.setImplementationType(implementationType); - // Skip to end element - while (reader.hasNext()) { - if (reader.next() == END_ELEMENT && IMPLEMENTATION_NOTIFICATION.equals(reader.getName())) { - break; - } - } - - ComponentType componentType = new DefaultAssemblyFactory().createComponentType(); - componentType.setURI(componentTypeName + ".componentType"); - componentType.setUnresolved(true); - implementation.setComponentType(componentType); - - return implementation; - } - - public void resolve(NotificationImplementationImpl impl, ModelResolver resolver) throws ContributionResolveException { - ComponentType componentType = resolver.resolveModel(ComponentType.class, impl.getComponentType()); - - if (componentType.isUnresolved()) { - throw new ContributionResolveException("ComponentType still unresolved"); - } - impl.setComponentType(componentType); - impl.setUnresolved(false); - } - - public void write(NotificationImplementationImpl model, XMLStreamWriter outputSource) - throws ContributionWriteException, XMLStreamException { - - //FIXME Implement this method - } -} diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProvider.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProvider.java deleted file mode 100644 index e9ea71c1d5..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProvider.java +++ /dev/null @@ -1,67 +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 org.apache.tuscany.sca.implementation.notification; - -import org.apache.tuscany.sca.assembly.ComponentService; -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.provider.ImplementationProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; - -/** - * @version $Rev$ $Date$ - */ -public class NotificationImplementationProvider implements ImplementationProvider { - - private RuntimeComponent component; - - /** - * Constructs a new Notification implementation provider. - */ - public NotificationImplementationProvider(RuntimeComponent component, NotificationImplementationImpl implementation) { - this.component = component; - } - - public Invoker createInvoker(RuntimeComponentService service, Operation operation) { - NotificationComponentInvoker invoker = new NotificationComponentInvoker(operation, component); - return invoker; - } - - public boolean supportsOneWayInvocation() { - return false; - } - - public void start() { - for (ComponentService service : component.getServices()) { - if (service.getService() != null) { - InterfaceContract interfaceContract = service.getService().getInterfaceContract(); - if (interfaceContract instanceof WSDLInterfaceContract) { - interfaceContract.getInterface().resetDataBinding("org.apache.axiom.om.OMElement"); - } - } - } - } - - public void stop() { - } - -} diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProviderFactory.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProviderFactory.java deleted file mode 100644 index 80785e36e7..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationProviderFactory.java +++ /dev/null @@ -1,38 +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 org.apache.tuscany.sca.implementation.notification; - -import org.apache.tuscany.sca.provider.ImplementationProvider; -import org.apache.tuscany.sca.provider.ImplementationProviderFactory; -import org.apache.tuscany.sca.runtime.RuntimeComponent; - -/** - * @version $Rev$ $Date$ - */ -public class NotificationImplementationProviderFactory implements ImplementationProviderFactory { - - public ImplementationProvider createImplementationProvider(RuntimeComponent component, - NotificationImplementationImpl implementation) { - return new NotificationImplementationProvider(component, implementation); - } - - public Class getModelType() { - return NotificationImplementationImpl.class; - } -} diff --git a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationModuleActivator.java b/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationModuleActivator.java deleted file mode 100644 index 2795619208..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/java/org/apache/tuscany/sca/implementation/notification/NotificationModuleActivator.java +++ /dev/null @@ -1,49 +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 org.apache.tuscany.sca.implementation.notification; - -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.ModuleActivator; -import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint; - -/** - * @version $Rev$ $Date$ - */ -public class NotificationModuleActivator implements ModuleActivator { - - private NotificationImplementationProcessor implementationLoader; - - public void start(ExtensionPointRegistry registry) { - StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); - - implementationLoader = new NotificationImplementationProcessor(new DefaultNotificationImplementationFactory()); - processors.addArtifactProcessor(implementationLoader); - - ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class); - providerFactories.addProviderFactory(new NotificationImplementationProviderFactory()); - } - - public void stop(ExtensionPointRegistry registry) { - StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); - - processors.removeArtifactProcessor(implementationLoader); - } - -} diff --git a/sandbox/event/modules/implementation-notification/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator b/sandbox/event/modules/implementation-notification/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator deleted file mode 100644 index f8f6975395..0000000000 --- a/sandbox/event/modules/implementation-notification/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator +++ /dev/null @@ -1,19 +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. - -# Implementation class for the ExtensionActivator -org.apache.tuscany.sca.implementation.notification.NotificationModuleActivator diff --git a/sandbox/event/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentTestCase.java b/sandbox/event/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentTestCase.java deleted file mode 100644 index f9a20edccd..0000000000 --- a/sandbox/event/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationComponentTestCase.java +++ /dev/null @@ -1,136 +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 org.apache.tuscany.sca.implementation.notification; - -import java.util.ArrayList; -import java.util.List; - -import junit.framework.Assert; -import junit.framework.TestCase; - -import org.apache.tuscany.sca.assembly.ComponentReference; -import org.apache.tuscany.sca.assembly.SCABinding; -import org.apache.tuscany.sca.binding.sca.impl.SCABindingFactoryImpl; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.InvocationChain; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.runtime.EndpointReference; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeWire; -import org.easymock.EasyMock; - -/** - * - * @version $Rev$ $Date$ - * - */ -public class NotificationComponentTestCase extends TestCase { - - public void testLocalNotificationComponent() throws Exception { - try { - Operation operation = EasyMock.createNiceMock(Operation.class); - EasyMock.replay(operation); - - InvocationChain sub1Chain = EasyMock.createNiceMock(InvocationChain.class); - EasyMock.expect(sub1Chain.getTargetOperation()).andReturn(operation); - EasyMock.expect(sub1Chain.getHeadInvoker()).andReturn(new MockInterceptor()); - EasyMock.replay(sub1Chain); - List sub1Chains = new ArrayList(); - sub1Chains.add(sub1Chain); - SCABinding b1 = new SCABindingFactoryImpl().createSCABinding(); - EndpointReference epr1 = EasyMock.createNiceMock(EndpointReference.class); - EasyMock.expect(epr1.getURI()).andReturn("wire1Target"); - EasyMock.expect(epr1.getBinding()).andReturn(b1); - EasyMock.replay(epr1); - RuntimeWire sub1Wire = EasyMock.createNiceMock(RuntimeWire.class); - EasyMock.expect(sub1Wire.getInvocationChains()).andReturn(sub1Chains); - EasyMock.expect(sub1Wire.getTarget()).andReturn(epr1).anyTimes(); - EasyMock.replay(sub1Wire); - ArrayList rtWires1 = new ArrayList(); - rtWires1.add(sub1Wire); - RuntimeComponentReference rtCompRef1 = EasyMock.createNiceMock(RuntimeComponentReference.class); - EasyMock.expect(rtCompRef1.getName()).andReturn("sub1Reference"); - EasyMock.expect(rtCompRef1.getRuntimeWires()).andReturn(rtWires1); - EasyMock.replay(rtCompRef1); - - InvocationChain sub2Chain = EasyMock.createNiceMock(InvocationChain.class); - EasyMock.expect(sub2Chain.getTargetOperation()).andReturn(operation); - EasyMock.expect(sub2Chain.getHeadInvoker()).andReturn(new MockInterceptor()); - EasyMock.replay(sub2Chain); - List sub2Chains = new ArrayList(); - sub2Chains.add(sub2Chain); - SCABinding b2 = new SCABindingFactoryImpl().createSCABinding(); - EndpointReference epr2 = EasyMock.createNiceMock(EndpointReference.class); - EasyMock.expect(epr2.getURI()).andReturn("wire2Target"); - EasyMock.expect(epr2.getBinding()).andReturn(b2); - EasyMock.replay(epr2); - RuntimeWire sub2Wire = EasyMock.createNiceMock(RuntimeWire.class); - EasyMock.expect(sub2Wire.getInvocationChains()).andReturn(sub2Chains); - EasyMock.expect(sub2Wire.getTarget()).andReturn(epr2).anyTimes(); - EasyMock.replay(sub2Wire); - ArrayList rtWires2 = new ArrayList(); - rtWires2.add(sub2Wire); - RuntimeComponentReference rtCompRef2 = EasyMock.createNiceMock(RuntimeComponentReference.class); - EasyMock.expect(rtCompRef2.getName()).andReturn("sub2Reference"); - EasyMock.expect(rtCompRef2.getRuntimeWires()).andReturn(rtWires2); - EasyMock.replay(rtCompRef2); - - ArrayList references = new ArrayList(); - references.add(rtCompRef1); - references.add(rtCompRef2); - RuntimeComponent component = EasyMock.createNiceMock(RuntimeComponent.class); - EasyMock.expect(component.getName()).andReturn("LocalNotificationComponentTest"); - EasyMock.expect(component.getReferences()).andReturn(references); - EasyMock.replay(component); - - Invoker localNotificationInvoker = new NotificationComponentInvoker(operation, component); - - Message msg = EasyMock.createNiceMock(Message.class); - EasyMock.expect(msg.getBody()).andReturn("msg").times(3); // once per sub int + once in notif target invoker - EasyMock.replay(msg); - localNotificationInvoker.invoke(msg); - EasyMock.verify(msg); - } catch(Throwable e) { - e.printStackTrace(); - } - } - - class MockInterceptor implements Interceptor { - - public Message invoke(Message msg) { - Assert.assertEquals("msg", msg.getBody()); - return msg; - } - - public void setNext(Invoker next) { - throw new AssertionError(); - } - - public Interceptor getNext() { - throw new AssertionError(); - } - - public boolean isOptimizable() { - throw new AssertionError(); - } - } -} diff --git a/sandbox/event/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationLoaderTestCase.java b/sandbox/event/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationLoaderTestCase.java deleted file mode 100644 index 89cbd3ec48..0000000000 --- a/sandbox/event/modules/implementation-notification/src/test/java/org/apache/tuscany/sca/implementation/notification/NotificationImplementationLoaderTestCase.java +++ /dev/null @@ -1,56 +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 org.apache.tuscany.sca.implementation.notification; - -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamReader; - -import junit.framework.Assert; -import junit.framework.TestCase; - -import org.apache.tuscany.sca.assembly.Implementation; -import org.easymock.EasyMock; - -/** - * - * @version $Rev$ $Date$ - * - */ -public class NotificationImplementationLoaderTestCase extends TestCase { - - public void testRead() throws Exception { - try { - NotificationImplementationProcessor implementationLoader = - new NotificationImplementationProcessor(new DefaultNotificationImplementationFactory()); - - XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class); - EasyMock.expect(reader.getName()).andReturn(NotificationImplementationProcessor.IMPLEMENTATION_NOTIFICATION).times(2); - EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("TrafficAdvisoryNotificationTestCase"); - EasyMock.expect(reader.getAttributeValue(null, "type")).andReturn(null); - EasyMock.expect(reader.hasNext()).andReturn(true); - EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT); - EasyMock.replay(reader); - - Implementation impl = implementationLoader.read(reader); - Assert.assertNotNull(impl); - } catch(Throwable e) { - e.printStackTrace(); - } - } -} diff --git a/sandbox/event/modules/implementation-notification/src/test/resources/TrafficAdvisoryNotificationTestCase.componentType b/sandbox/event/modules/implementation-notification/src/test/resources/TrafficAdvisoryNotificationTestCase.componentType deleted file mode 100644 index 1fd952a0a8..0000000000 --- a/sandbox/event/modules/implementation-notification/src/test/resources/TrafficAdvisoryNotificationTestCase.componentType +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - -- cgit v1.2.3