You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/05/03 09:49:46 UTC
svn commit: r534745 -
/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/
Author: jsdelfino
Date: Thu May 3 00:49:45 2007
New Revision: 534745
URL: http://svn.apache.org/viewvc?view=rev&rev=534745
Log:
Added a factory for the CRUD implementation.
Added:
incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationFactory.java (with props)
incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationImpl.java (with props)
incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/DefaultCRUDImplementationFactory.java (with props)
Modified:
incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementation.java
incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProcessor.java
incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProvider.java
incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDModuleActivator.java
Modified: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementation.java?view=diff&rev=534745&r1=534744&r2=534745
==============================================================================
--- incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementation.java (original)
+++ incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementation.java Thu May 3 00:49:45 2007
@@ -18,22 +18,7 @@
*/
package crud;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.tuscany.assembly.AssemblyFactory;
-import org.apache.tuscany.assembly.ConstrainingType;
import org.apache.tuscany.assembly.Implementation;
-import org.apache.tuscany.assembly.Property;
-import org.apache.tuscany.assembly.Reference;
-import org.apache.tuscany.assembly.Service;
-import org.apache.tuscany.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.interfacedef.java.JavaFactory;
-import org.apache.tuscany.interfacedef.java.JavaInterface;
-import org.apache.tuscany.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospector;
-import org.apache.tuscany.policy.Intent;
-import org.apache.tuscany.policy.PolicySet;
/**
* The model representing a sample CRUD implementation in an SCA assembly model.
@@ -47,106 +32,20 @@
* @version $$Rev$$ $$Date: 2007-04-23 19:18:54 -0700 (Mon, 23 Apr
* 2007) $$
*/
-public class CRUDImplementation implements Implementation {
-
- private Service crudService;
- private String directory;
-
- /**
- * Constructs a new CRUD implementation.
- */
- public CRUDImplementation(AssemblyFactory assemblyFactory,
- JavaFactory javaFactory,
- JavaInterfaceIntrospector introspector) {
-
- // 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 = introspector.introspect(CRUD.class);
- } catch (InvalidInterfaceException e) {
- throw new IllegalArgumentException(e);
- }
- JavaInterfaceContract interfaceContract = javaFactory.createJavaInterfaceContract();
- interfaceContract.setInterface(javaInterface);
- crudService.setInterfaceContract(interfaceContract);
- }
+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() {
- return directory;
- }
+ 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) {
- this.directory = directory;
- }
-
- public ConstrainingType getConstrainingType() {
- // CRUD implementations do not support constrainingTypes
- return null;
- }
-
- public List<Property> getProperties() {
- // CRUD implementations do not support properties
- return Collections.emptyList();
- }
-
- public List<Service> getServices() {
- // CRUD implementations provide a single fixed CRUD service
- return Collections.singletonList(crudService);
- }
-
- public List<Reference> getReferences() {
- // CRUD implementations do not support properties
- return Collections.emptyList();
- }
-
- public String getURI() {
- // CRUD implementations don't have a URI
- return null;
- }
-
- public void setConstrainingType(ConstrainingType constrainingType) {
- // CRUD implementations do not support constrainingTypes
- }
-
- public void setURI(String uri) {
- // CRUD implementations don't have a URI
- }
-
- public List<PolicySet> getPolicySets() {
- // CRUD implementations do not support policy sets
- return Collections.emptyList();
- }
-
- public List<Intent> getRequiredIntents() {
- // CRUD implementations do not support intents
- return Collections.emptyList();
- }
-
- public List<Object> getExtensions() {
- // CRUD implementations do not support extensions
- return Collections.emptyList();
- }
-
- public boolean isUnresolved() {
- // CRUD implementations are always resolved
- return false;
- }
-
- public void setUnresolved(boolean unresolved) {
- // CRUD implementations are always resolved
- }
+ public void setDirectory(String directory);
}
Added: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationFactory.java?view=auto&rev=534745
==============================================================================
--- incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationFactory.java (added)
+++ incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationFactory.java Thu May 3 00:49:45 2007
@@ -0,0 +1,36 @@
+/*
+ * 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;
+
+/**
+ * A factory for the sample CRUD implementation model.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface CRUDImplementationFactory {
+
+ /**
+ * Creates a new CRUD implementation.
+ *
+ * @return
+ */
+ CRUDImplementation createCRUDImplementation();
+
+}
Propchange: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationImpl.java?view=auto&rev=534745
==============================================================================
--- incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationImpl.java (added)
+++ incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationImpl.java Thu May 3 00:49:45 2007
@@ -0,0 +1,135 @@
+/*
+ * 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 java.util.Collections;
+import java.util.List;
+
+import org.apache.tuscany.assembly.AssemblyFactory;
+import org.apache.tuscany.assembly.ConstrainingType;
+import org.apache.tuscany.assembly.Property;
+import org.apache.tuscany.assembly.Reference;
+import org.apache.tuscany.assembly.Service;
+import org.apache.tuscany.interfacedef.InvalidInterfaceException;
+import org.apache.tuscany.interfacedef.java.JavaFactory;
+import org.apache.tuscany.interfacedef.java.JavaInterface;
+import org.apache.tuscany.interfacedef.java.JavaInterfaceContract;
+import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospector;
+import org.apache.tuscany.policy.Intent;
+import org.apache.tuscany.policy.PolicySet;
+
+/**
+ * The model representing a sample CRUD implementation in an SCA assembly model.
+ *
+ * @version $$Rev$$ $$Date: 2007-04-23 19:18:54 -0700 (Mon, 23 Apr
+ * 2007) $$
+ */
+public class CRUDImplementationImpl implements CRUDImplementation {
+
+ private Service crudService;
+ private String directory;
+
+ /**
+ * Constructs a new CRUD implementation.
+ */
+ public CRUDImplementationImpl(AssemblyFactory assemblyFactory,
+ JavaFactory javaFactory,
+ JavaInterfaceIntrospector introspector) {
+
+ // 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 = introspector.introspect(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 List<PolicySet> getPolicySets() {
+ // The sample CRUD implementation does not support policy sets
+ return Collections.emptyList();
+ }
+
+ public List<Intent> getRequiredIntents() {
+ // The sample CRUD implementation does not support intents
+ return Collections.emptyList();
+ }
+
+ public List<Object> getExtensions() {
+ // The sample CRUD implementation does not support extensions
+ return Collections.emptyList();
+ }
+
+ public boolean isUnresolved() {
+ // The sample CRUD implementation is always resolved
+ return false;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ // The sample CRUD implementation is always resolved
+ }
+
+}
Propchange: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProcessor.java?view=diff&rev=534745&r1=534744&r2=534745
==============================================================================
--- incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProcessor.java (original)
+++ incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProcessor.java Thu May 3 00:49:45 2007
@@ -25,14 +25,11 @@
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
-import org.apache.tuscany.assembly.AssemblyFactory;
import org.apache.tuscany.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.contribution.resolver.ArtifactResolver;
import org.apache.tuscany.contribution.service.ContributionReadException;
import org.apache.tuscany.contribution.service.ContributionResolveException;
import org.apache.tuscany.contribution.service.ContributionWriteException;
-import org.apache.tuscany.interfacedef.java.JavaFactory;
-import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospector;
/**
* Implements a STAX artifact processor for CRUD implementations.
@@ -47,14 +44,10 @@
public class CRUDImplementationProcessor implements StAXArtifactProcessor<CRUDImplementation> {
private static final QName IMPLEMENTATION_CRUD = new QName("http://crud", "implementation.crud");
- private AssemblyFactory assemblyFactory;
- private JavaFactory javaFactory;
- private JavaInterfaceIntrospector introspector;
+ private CRUDImplementationFactory crudFactory;
- public CRUDImplementationProcessor(AssemblyFactory assemblyFactory, JavaFactory javaFactory, JavaInterfaceIntrospector introspector) {
- this.assemblyFactory = assemblyFactory;
- this.javaFactory = javaFactory;
- this.introspector = introspector;
+ public CRUDImplementationProcessor(CRUDImplementationFactory crudFactory) {
+ this.crudFactory = crudFactory;
}
public QName getArtifactType() {
@@ -77,7 +70,7 @@
String directory = reader.getAttributeValue(null, "directory");
// Create an initialize the CRUD implementation model
- CRUDImplementation implementation = new CRUDImplementationProvider(assemblyFactory, javaFactory, introspector);
+ CRUDImplementation implementation = crudFactory.createCRUDImplementation();
implementation.setDirectory(directory);
// Skip to end element
Modified: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProvider.java?view=diff&rev=534745&r1=534744&r2=534745
==============================================================================
--- incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDImplementationProvider.java Thu May 3 00:49:45 2007
@@ -41,7 +41,7 @@
* @version $$Rev$$ $$Date: 2007-04-23 19:18:54 -0700 (Mon, 23 Apr
* 2007) $$
*/
-public class CRUDImplementationProvider extends CRUDImplementation implements ImplementationProvider,
+public class CRUDImplementationProvider extends CRUDImplementationImpl implements ImplementationProvider,
ImplementationActivator {
/**
Modified: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDModuleActivator.java?view=diff&rev=534745&r1=534744&r2=534745
==============================================================================
--- incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDModuleActivator.java (original)
+++ incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/CRUDModuleActivator.java Thu May 3 00:49:45 2007
@@ -22,10 +22,10 @@
import java.util.Map;
import org.apache.tuscany.assembly.AssemblyFactory;
-import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.core.ExtensionPointRegistry;
import org.apache.tuscany.core.ModuleActivator;
+import org.apache.tuscany.core.runtime.RuntimeAssemblyFactory;
import org.apache.tuscany.interfacedef.java.JavaFactory;
import org.apache.tuscany.interfacedef.java.impl.DefaultJavaFactory;
import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospectorExtensionPoint;
@@ -42,42 +42,31 @@
private CRUDImplementationProcessor implementationArtifactProcessor;
- public void start(ExtensionPointRegistry registry) {
-
- // Add the CRUD implementation extension to the StAXArtifactProcessor
- // extension point
- StAXArtifactProcessorExtensionPoint artifactProcessors = registry
- .getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
-
- // FIXME: How to pass the assembly factory from the core to extensions?
- AssemblyFactory assemblyFactory = registry.getExtensionPoint(AssemblyFactory.class);
- if (assemblyFactory == null) {
- assemblyFactory = new DefaultAssemblyFactory();
- }
-
- JavaFactory javaFactory = registry.getExtensionPoint(JavaFactory.class);
- if (javaFactory == null) {
- javaFactory = new DefaultJavaFactory();
- }
-
- JavaInterfaceIntrospectorExtensionPoint introspectorExtensionPoint = registry
- .getExtensionPoint(JavaInterfaceIntrospectorExtensionPoint.class);
- implementationArtifactProcessor = new CRUDImplementationProcessor(assemblyFactory, javaFactory,
- introspectorExtensionPoint);
- artifactProcessors.addExtension(implementationArtifactProcessor);
- }
-
public Map<Class, Object> getExtensionPoints() {
// This module extension does not contribute any new
// extension point
return null;
}
+ public void start(ExtensionPointRegistry registry) {
+
+ // Create the CRUD implementation factory
+ AssemblyFactory assemblyFactory = new RuntimeAssemblyFactory();
+ JavaFactory javaFactory = new DefaultJavaFactory();
+ JavaInterfaceIntrospectorExtensionPoint introspector = registry.getExtensionPoint(JavaInterfaceIntrospectorExtensionPoint.class);
+ CRUDImplementationFactory crudFactory = new DefaultCRUDImplementationFactory(assemblyFactory, javaFactory, introspector);
+
+ // Add the CRUD implementation extension to the StAXArtifactProcessor
+ // extension point
+ StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+ implementationArtifactProcessor = new CRUDImplementationProcessor(crudFactory);
+ processors.addExtension(implementationArtifactProcessor);
+ }
+
public void stop(ExtensionPointRegistry registry) {
// Remove the contributed extensions
- StAXArtifactProcessorExtensionPoint artifactProcessors = registry
- .getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
- artifactProcessors.removeExtension(implementationArtifactProcessor);
+ StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+ processors.removeExtension(implementationArtifactProcessor);
}
}
Added: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/DefaultCRUDImplementationFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/DefaultCRUDImplementationFactory.java?view=auto&rev=534745
==============================================================================
--- incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/DefaultCRUDImplementationFactory.java (added)
+++ incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/DefaultCRUDImplementationFactory.java Thu May 3 00:49:45 2007
@@ -0,0 +1,49 @@
+/*
+ * 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.assembly.AssemblyFactory;
+import org.apache.tuscany.interfacedef.java.JavaFactory;
+import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospector;
+
+/**
+ * A default factory for the CRUD implementation model.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefaultCRUDImplementationFactory implements CRUDImplementationFactory {
+
+ private AssemblyFactory assemblyFactory;
+ private JavaFactory javaFactory;
+ private JavaInterfaceIntrospector introspector;
+
+ public DefaultCRUDImplementationFactory(AssemblyFactory assemblyFactory,
+ JavaFactory javaFactory,
+ JavaInterfaceIntrospector introspector) {
+ this.assemblyFactory = assemblyFactory;
+ this.javaFactory = javaFactory;
+ this.introspector = introspector;
+ }
+
+ public CRUDImplementation createCRUDImplementation() {
+ return new CRUDImplementationProvider(assemblyFactory, javaFactory, introspector);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/DefaultCRUDImplementationFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/samples/implementation-crud/src/main/java/crud/DefaultCRUDImplementationFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org