summaryrefslogtreecommitdiffstats
path: root/branches/trunk-20080910/samples/implementation-crud-extension
diff options
context:
space:
mode:
Diffstat (limited to 'branches/trunk-20080910/samples/implementation-crud-extension')
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/README83
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/build.xml51
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/pom.xml77
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUD.java54
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUDImplementation.java50
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUDImplementationFactory.java37
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/backend/ResourceManager.java90
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationFactoryImpl.java47
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationImpl.java117
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationInvoker.java79
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationProvider.java75
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationProviderFactory.java51
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/crud.CRUDImplementationFactory19
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor19
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema19
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory19
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/sample-implementation-crud.xsd38
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/test/java/crud/CRUDTestCase.java60
-rw-r--r--branches/trunk-20080910/samples/implementation-crud-extension/src/test/resources/crud.composite30
19 files changed, 0 insertions, 1015 deletions
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/README b/branches/trunk-20080910/samples/implementation-crud-extension/README
deleted file mode 100644
index 5e8190648f..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/README
+++ /dev/null
@@ -1,83 +0,0 @@
-Implementation CRUD Sample
-==========================
-This sample demonstrates how new implementation types are constructed for
-Apache Tuscany SCA.
-
-The README in the samples directory (the directory above this) provides
-general instructions about building and running samples. Take a look there
-first.
-
-If you want to try out the CRUD implementation type that this sample provides
-please see the implementation-crud sample that provides the necessary client
-code to bring up an application that uses this implementation extension.
-
-Sample Overview
----------------
-This sample contains a CRUD implementation type as an example of how to create
-new implementation types. Components using this implementation type always
-expose the same Create, Retrieve, Update and Delete interface. This sample
-uses a singleton ResourceManager to perform the CRUD operations but of course
-a real component would provide a real implementation.
-
-implementation-crud-extension/
- src/
- main/
- java/
- crud/ - implementation model interfaces
- backend/ - fake component implementation
- impl/ - implementations of the model interfaces
- provider/ - runtime implementation
- resources/
- META-INF/
- services/ - declares the extension
- test/
- java/
- crud/
- CRUDTestCase.java - JUnit test case
- resources/
- crud.composite - the SCA assembly used during unit testing
-
- build.xml - the Ant build file
- pom.xml - the Maven build file
-
-Building The Sample Extension Using Ant
------------------------------------------
-With the binary distribution the sample extension can be built using Ant as
-follows
-
-cd implementation-crud-extension
-ant compile
-
-See the implementation-crud sample to run a sample that uses this
-implementation extension.
-
-Building The Sample Using Maven
--------------------------------------------
-With either the binary or source distributions the sample can be built
-using Maven as follows.
-
-cd implementation-crud-extension
-mvn
-
-Maven will also test that the sample extension built properly. You should see
-the following output from the test phase.
-
--------------------------------------------------------
- T E S T S
--------------------------------------------------------
-Running crud.CRUDTestCase
-Starting CRUDServiceComponent
-create(ABC) in tmp
-retrieve(0)
-update(0)
-retrieve(0)
-delete(0)
-retrieve(0)
-Stopping CRUDServiceComponent
-Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.212 sec
-
-Results :
-
-Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
-
-This shows that the Junit test cases have run successfully.
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/build.xml b/branches/trunk-20080910/samples/implementation-crud-extension/build.xml
deleted file mode 100644
index 88d308e6fc..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/build.xml
+++ /dev/null
@@ -1,51 +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.
--->
-<project name="implementation-crud-extension" default="compile">
- <property name="test.jar" value="sample-implementation-crud-extension.jar" />
-
- <target name="init">
- <mkdir dir="target/classes"/>
- </target>
-
- <target name="compile" depends="init">
- <javac srcdir="src/main/java"
- destdir="target/classes"
- debug="on"
- source="1.5"
- target="1.5">
- <classpath>
- <pathelement location="../../lib/tuscany-sca-manifest.jar"/>
- </classpath>
- </javac>
- <copy todir="target/classes">
- <fileset dir="src/main/resources"/>
- </copy>
- <jar destfile="target/${test.jar}" basedir="target/classes">
- <manifest>
- <attribute name="Main-Class" value="${test.class}" />
- </manifest>
- </jar>
- </target>
-
- <target name="clean">
- <delete quiet="true" includeemptydirs="true">
- <fileset dir="target"/>
- </delete>
- </target>
-</project>
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/pom.xml b/branches/trunk-20080910/samples/implementation-crud-extension/pom.xml
deleted file mode 100644
index c11953f0ac..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/pom.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-sca</artifactId>
- <version>1.4-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
- <artifactId>sample-implementation-crud-extension</artifactId>
- <name>Apache Tuscany SCA CRUD Implementation Extension Sample</name>
-
- <repositories>
- <repository>
- <id>apache.incubator</id>
- <url>http://people.apache.org/repo/m2-incubating-repository</url>
- </repository>
- </repositories>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-assembly</artifactId>
- <version>1.4-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-interface-java-xml</artifactId>
- <version>1.4-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-core-spi</artifactId>
- <version>1.4-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-host-embedded</artifactId>
- <version>1.4-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.2</version>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
- <build>
- <finalName>${artifactId}</finalName>
- </build>
-
-</project>
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUD.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUD.java
deleted file mode 100644
index b23d85887b..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUD.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 crud;
-
-/**
- * The service interface of the single CRUD service provided by CRUD components.
- */
-public interface CRUD {
-
- /**
- * Create a new resource.
- * @param resource
- * @return
- */
- String create(Object resource);
-
- /**
- * Retrieve a resource.
- * @param id
- * @return
- */
- Object retrieve(String id);
-
- /**
- * Update a resource.
- * @param id
- * @param resource
- * @return
- */
- Object update(String id, Object resource);
-
- /**
- * Delete a resource.
- * @param id
- */
- void delete(String id);
-
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUDImplementation.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUDImplementation.java
deleted file mode 100644
index 49be844f93..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUDImplementation.java
+++ /dev/null
@@ -1,50 +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 crud;
-
-import org.apache.tuscany.sca.assembly.Implementation;
-
-/**
- * The model representing a sample CRUD implementation in an SCA assembly model.
- *
- * The sample CRUD implementation is not a full blown implementation, it only
- * supports a subset of what a component implementation can support:
- * - a single fixed service (as opposed to a list of services typed by different interfaces
- * - a directory attribute used to specify where a CRUD component is going to persist
- * resources
- * - no references or properties
- * - no policy intents or policy sets
- */
-public interface CRUDImplementation extends Implementation {
-
- /**
- * Returns the directory used by CRUD implementations to persist resources.
- *
- * @return the directory used to persist resources
- */
- public String getDirectory();
-
- /**
- * Sets the directory used by CRUD implementations to persist resources.
- *
- * @param directory the directory used to persist resources
- */
- public void setDirectory(String directory);
-
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUDImplementationFactory.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUDImplementationFactory.java
deleted file mode 100644
index fa83c63c1b..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/CRUDImplementationFactory.java
+++ /dev/null
@@ -1,37 +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 crud;
-
-import crud.CRUDImplementation;
-
-
-/**
- * A factory for the sample CRUD implementation model.
- */
-public interface CRUDImplementationFactory {
-
- /**
- * Creates a new CRUD implementation.
- *
- * @return
- */
- CRUDImplementation createCRUDImplementation();
-
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/backend/ResourceManager.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/backend/ResourceManager.java
deleted file mode 100644
index cc0795a735..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/backend/ResourceManager.java
+++ /dev/null
@@ -1,90 +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 crud.backend;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A fake resource manager implementation used as a backend by the sample
- * CRUD component implementation.
- */
-public class ResourceManager {
- private static int counter;
- private static final Map<String, Object> store = new HashMap<String, Object>();
- private String directory;
-
- /**
- * Constructs a new resource manager.
- *
- * @param directory the directory where to persist resources
- */
- public ResourceManager(String directory) {
- super();
- this.directory = directory;
- }
-
- /**
- * Creates a new resource.
- *
- * @param resource
- * @return
- */
- public String createResource(Object resource) {
- System.out.println("create(" + resource + ") in " + directory);
- String key = String.valueOf(counter++);
- store.put(key, resource);
- return key;
- }
-
- /**
- * Deletes a resource.
- *
- * @param id
- */
- public void deleteResource(String id) {
- System.out.println("delete(" + id + ")");
- store.remove(id);
- }
-
- /**
- * Retrieves a resource.
- *
- * @param id
- * @return
- */
- public Object retrieveResource(String id) {
- System.out.println("retrieve(" + id + ")");
- return store.get(id);
- }
-
- /**
- * Updates a resource.
- *
- * @param id
- * @param resource
- * @return
- */
- public Object updateResource(String id, Object resource) {
- System.out.println("update(" + id + ")");
- return store.put(id, resource);
- }
-
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationFactoryImpl.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationFactoryImpl.java
deleted file mode 100644
index 2f1e5fcba8..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationFactoryImpl.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 crud.impl;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-
-import crud.CRUDImplementation;
-import crud.CRUDImplementationFactory;
-
-
-/**
- * A factory for the CRUD implementation model.
- */
-public class CRUDImplementationFactoryImpl implements CRUDImplementationFactory {
-
- private AssemblyFactory assemblyFactory;
- private JavaInterfaceFactory javaFactory;
-
- public CRUDImplementationFactoryImpl(ModelFactoryExtensionPoint modelFactories) {
- this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
- this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
- }
-
- public CRUDImplementation createCRUDImplementation() {
- return new CRUDImplementationImpl(assemblyFactory, javaFactory);
- }
-
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationImpl.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationImpl.java
deleted file mode 100644
index 383a035e69..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationImpl.java
+++ /dev/null
@@ -1,117 +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 crud.impl;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.ConstrainingType;
-import org.apache.tuscany.sca.assembly.Property;
-import org.apache.tuscany.sca.assembly.Reference;
-import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-
-import crud.CRUD;
-import crud.CRUDImplementation;
-
-
-/**
- * The model representing a sample CRUD implementation in an SCA assembly model.
- */
-class CRUDImplementationImpl implements CRUDImplementation {
-
- private Service crudService;
- private String directory;
-
- /**
- * Constructs a new CRUD implementation.
- */
- CRUDImplementationImpl(AssemblyFactory assemblyFactory,
- JavaInterfaceFactory javaFactory) {
-
- // CRUD implementation always provide a single service exposing
- // the CRUD interface, and have no references and properties
- crudService = assemblyFactory.createService();
- crudService.setName("CRUD");
- JavaInterface javaInterface;
- try {
- javaInterface = javaFactory.createJavaInterface(CRUD.class);
- } catch (InvalidInterfaceException e) {
- throw new IllegalArgumentException(e);
- }
- JavaInterfaceContract interfaceContract = javaFactory.createJavaInterfaceContract();
- interfaceContract.setInterface(javaInterface);
- crudService.setInterfaceContract(interfaceContract);
- }
-
- public String getDirectory() {
- return directory;
- }
-
- public void setDirectory(String directory) {
- this.directory = directory;
- }
-
- public ConstrainingType getConstrainingType() {
- // The sample CRUD implementation does not support constrainingTypes
- return null;
- }
-
- public List<Property> getProperties() {
- // The sample CRUD implementation does not support properties
- return Collections.emptyList();
- }
-
- public List<Service> getServices() {
- // The sample CRUD implementation provides a single fixed CRUD service
- return Collections.singletonList(crudService);
- }
-
- public List<Reference> getReferences() {
- // The sample CRUD implementation does not support properties
- return Collections.emptyList();
- }
-
- public String getURI() {
- // The sample CRUD implementation does not have a URI
- return null;
- }
-
- public void setConstrainingType(ConstrainingType constrainingType) {
- // The sample CRUD implementation does not support constrainingTypes
- }
-
- public void setURI(String uri) {
- // The sample CRUD implementation does not have a URI
- }
-
- public boolean isUnresolved() {
- // The sample CRUD implementation is always resolved
- return false;
- }
-
- public void setUnresolved(boolean unresolved) {
- // The sample CRUD implementation is always resolved
- }
-
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationInvoker.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationInvoker.java
deleted file mode 100644
index b212ee3c9b..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationInvoker.java
+++ /dev/null
@@ -1,79 +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 crud.provider;
-
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Invoker;
-import org.apache.tuscany.sca.invocation.Message;
-
-import crud.backend.ResourceManager;
-
-
-/**
- * Implements an invoker for CRUD component implementations.
- *
- * The invoker is responsible for handling invocations of a business operation.
- * Input business data is passed to the invoke method in a Message object.
- * The invoke method is responsible for handling the invocation and returning a Message with
- * the output business data.
- *
- * In this example we are simply delegating the CRUD operation invocations to the
- * corresponding methods on our fake resource manager class.
- *
- * More sophisticated invokers can delegate the invocation to an implementation artifact directly
- * (for example a Java class using reflection as in the implementation-pojo sample) or call a runtime
- * engine like a BPEL engine or an XQuery engine for example (this is what the Tuscany
- * implementation-bpel and implementation-xquery extensions do).
- */
-class CRUDImplementationInvoker implements Invoker {
- private Operation operation;
- private ResourceManager resourceManager;
-
- CRUDImplementationInvoker(Operation operation, ResourceManager resourceManager) {
- this.operation = operation;
- this.resourceManager = resourceManager;
- }
-
- public Message invoke(Message msg) {
- try {
- Object[] args = msg.getBody();
- Object resp = null;
-
- if (operation.getName().equals("create")) {
- resp = resourceManager.createResource(args[0]);
-
- } else if (operation.getName().equals("retrieve")) {
- resp = resourceManager.retrieveResource((String)args[0]);
-
- } else if (operation.getName().equals("update")) {
- resp = resourceManager.updateResource((String)args[0], args[1]);
-
- } else if (operation.getName().equals("delete")) {
- resourceManager.deleteResource((String)args[0]);
- }
-
- msg.setBody(resp);
- } catch (Exception e) {
- msg.setFaultBody(e.getCause());
- }
- return msg;
- }
-
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationProvider.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationProvider.java
deleted file mode 100644
index 8f11f9d910..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationProvider.java
+++ /dev/null
@@ -1,75 +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 crud.provider;
-
-import org.apache.tuscany.sca.interfacedef.Operation;
-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;
-
-import crud.CRUDImplementation;
-import crud.backend.ResourceManager;
-
-
-/**
- * An implementation provider for sample CRUD implementations.
- *
- * The implementation provider is responsible for handling the lifecycle of a component
- * implementation and creating operation invokers for the service operations provided
- * by the implementation.
- *
- * The start() and stop() methods are called when a component is started
- * and stopped.
- *
- * The createInvoker method is called for each operation provided by the component
- * implementation. The implementation provider can create an invoker and initialize it
- * at that time to minimize the amount of work to be performed on each invocation.
- */
-class CRUDImplementationProvider implements ImplementationProvider {
-
- private RuntimeComponent component;
- private CRUDImplementation implementation;
-
- /**
- * Constructs a new CRUD implementation.
- */
- CRUDImplementationProvider(RuntimeComponent component, CRUDImplementation implementation) {
- this.component = component;
- this.implementation = implementation;
- }
-
- public Invoker createInvoker(RuntimeComponentService service, Operation operation) {
- CRUDImplementationInvoker invoker = new CRUDImplementationInvoker(operation, new ResourceManager(implementation.getDirectory()));
- return invoker;
- }
-
- public boolean supportsOneWayInvocation() {
- return false;
- }
-
- public void start() {
- System.out.println("Starting " + component.getName());
- }
-
- public void stop() {
- System.out.println("Stopping " + component.getName());
- }
-
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationProviderFactory.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationProviderFactory.java
deleted file mode 100644
index 4566cb7155..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/java/crud/provider/CRUDImplementationProviderFactory.java
+++ /dev/null
@@ -1,51 +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 crud.provider;
-
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.provider.ImplementationProvider;
-import org.apache.tuscany.sca.provider.ImplementationProviderFactory;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-import crud.CRUDImplementation;
-import crud.provider.CRUDImplementationProvider;
-
-
-/**
- * A factory for CRUD implementation providers.
- *
- * The factory is called to create an implementation provider for each component using
- * the CRUD implementation.
- */
-public class CRUDImplementationProviderFactory implements ImplementationProviderFactory<CRUDImplementation> {
-
- /**
- * Constructs a new CRUD implementation.
- */
- public CRUDImplementationProviderFactory(ExtensionPointRegistry extensionPoints) {
- }
-
- public ImplementationProvider createImplementationProvider(RuntimeComponent component, CRUDImplementation implementation) {
- return new CRUDImplementationProvider(component, implementation);
- }
-
- public Class<CRUDImplementation> getModelType() {
- return CRUDImplementation.class;
- }
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/crud.CRUDImplementationFactory b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/crud.CRUDImplementationFactory
deleted file mode 100644
index 3cf5de5fa1..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/crud.CRUDImplementationFactory
+++ /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 implementation model factory
-crud.impl.CRUDImplementationFactoryImpl
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
deleted file mode 100644
index 17c98cf706..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
+++ /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 artifact processor extension
-org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://crud#implementation.crud,model=crud.CRUDImplementation,factory=crud.CRUDImplementationFactory
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema
deleted file mode 100644
index 527c626418..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema
+++ /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.
-
-# URI of the XML schema to be used for validation
-sample-implementation-crud.xsd
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory
deleted file mode 100644
index 6ce605197a..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory
+++ /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 implementation extension
-crud.provider.CRUDImplementationProviderFactory;model=crud.CRUDImplementation
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/sample-implementation-crud.xsd b/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/sample-implementation-crud.xsd
deleted file mode 100644
index 447e31bf93..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/main/resources/sample-implementation-crud.xsd
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://crud"
- xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:c="http://crud"
- elementFormDefault="qualified">
-
- <import namespace="http://www.osoa.org/xmlns/sca/1.0"/>
-
- <element name="implementation.crud" type="c:CRUDImplementation"/>
-
- <complexType name="CRUDImplementation">
- <complexContent>
- <extension base="sca:Implementation">
- <attribute name="directory" type="anyURI" use="required"/>
- </extension>
- </complexContent>
- </complexType>
-
-</schema>
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/test/java/crud/CRUDTestCase.java b/branches/trunk-20080910/samples/implementation-crud-extension/src/test/java/crud/CRUDTestCase.java
deleted file mode 100644
index 0bb5cfc361..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/test/java/crud/CRUDTestCase.java
+++ /dev/null
@@ -1,60 +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 crud;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-
-import crud.CRUD;
-
-/**
- * Tests the CRUD implementation extension.
- */
-public class CRUDTestCase extends TestCase {
-
- private SCADomain scaDomain;
- private CRUD crudService;
-
- @Override
- protected void setUp() throws Exception {
- scaDomain = SCADomain.newInstance("crud.composite");
- crudService = scaDomain.getService(CRUD.class, "CRUDServiceComponent");
- }
-
- @Override
- protected void tearDown() throws Exception {
- scaDomain.close();
- }
-
- public void testCRUD() throws Exception {
- String id = crudService.create("ABC");
- Object result = crudService.retrieve(id);
- assertEquals("ABC", result);
-
- crudService.update(id, "EFG");
- result = crudService.retrieve(id);
- assertEquals("EFG", result);
-
- crudService.delete(id);
- result = crudService.retrieve(id);
- assertNull(result);
- }
-}
diff --git a/branches/trunk-20080910/samples/implementation-crud-extension/src/test/resources/crud.composite b/branches/trunk-20080910/samples/implementation-crud-extension/src/test/resources/crud.composite
deleted file mode 100644
index 18745033bb..0000000000
--- a/branches/trunk-20080910/samples/implementation-crud-extension/src/test/resources/crud.composite
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://sample/crud"
- xmlns:sc="http://sample/crud"
- xmlns:c="http://crud"
- name="crud">
-
- <component name="CRUDServiceComponent">
- <c:implementation.crud directory="tmp" />
- </component>
-
-</composite>