You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2007/03/17 19:47:16 UTC

svn commit: r519405 - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/generator/ spi/src/main/java/org/apache/tuscany/spi/generator/ spi/src/main/java/org/apache/tuscany/spi/model/

Author: jmarino
Date: Sat Mar 17 11:47:15 2007
New Revision: 519405

URL: http://svn.apache.org/viewvc?view=rev&rev=519405
Log:
add resource generation

Added:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/DefaultGeneratorContext.java   (with props)
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ResourceGenerator.java   (with props)
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ResourceDefinition.java   (with props)
Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorContext.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java

Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/DefaultGeneratorContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/DefaultGeneratorContext.java?view=auto&rev=519405
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/DefaultGeneratorContext.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/DefaultGeneratorContext.java Sat Mar 17 11:47:15 2007
@@ -0,0 +1,42 @@
+/*
+ * 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.core.generator;
+
+import java.net.URI;
+
+import org.apache.tuscany.spi.generator.GeneratorContext;
+import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
+
+/**
+ * The default implementation of a GeneratorContext
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefaultGeneratorContext implements GeneratorContext {
+    private PhysicalChangeSet changeSet;
+
+
+    public DefaultGeneratorContext(PhysicalChangeSet changeSet) {
+        this.changeSet = changeSet;
+    }
+
+    public PhysicalChangeSet getPhysicalChangeSet() {
+        return changeSet;
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/DefaultGeneratorContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/DefaultGeneratorContext.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java?view=diff&rev=519405&r1=519404&r2=519405
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java Sat Mar 17 11:47:15 2007
@@ -19,6 +19,7 @@
 package org.apache.tuscany.core.generator;
 
 import java.lang.reflect.Type;
+import java.net.URI;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -29,12 +30,14 @@
 import org.apache.tuscany.spi.generator.GeneratorContext;
 import org.apache.tuscany.spi.generator.GeneratorRegistry;
 import org.apache.tuscany.spi.generator.InterceptorGenerator;
+import org.apache.tuscany.spi.generator.ResourceGenerator;
 import org.apache.tuscany.spi.model.BindingDefinition;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.DataType;
 import org.apache.tuscany.spi.model.Implementation;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.ResourceDefinition;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.model.ServiceDefinition;
 import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
@@ -56,6 +59,8 @@
     private Map<Class<?>, InterceptorGenerator> interceptorGenerators =
         new ConcurrentHashMap<Class<?>, InterceptorGenerator>();
 
+    private Map<Class<?>, ResourceGenerator> resourceGenerators = new ConcurrentHashMap<Class<?>, ResourceGenerator>();
+
     public void register(Class<?> clazz, BindingGenerator generator) {
         bindingGenerators.put(clazz, generator);
     }
@@ -64,6 +69,10 @@
         interceptorGenerators.put(clazz, generator);
     }
 
+    public void register(Class<?> clazz, ResourceGenerator generator) {
+        resourceGenerators.put(clazz, generator);
+    }
+
     public void register(Class<?> clazz,
                          ComponentGenerator<? extends ComponentDefinition<? extends Implementation>> generator) {
         componentGenerators.put(clazz, generator);
@@ -168,6 +177,16 @@
         context.getPhysicalChangeSet().addWireDefinition(wireDefinition);
     }
 
+    public URI generate(ResourceDefinition definition, GeneratorContext context) throws GenerationException {
+        Class<?> type = definition.getClass();
+        ResourceGenerator generator = resourceGenerators.get(type);
+        if (generator == null) {
+            throw new GeneratorNotFoundException(type);
+        }
+        return generator.generate(definition, context);
+    }
+
+
     @SuppressWarnings({"unchecked"})
     private PhysicalOperationDefinition mapOperation(Operation o) {
         PhysicalOperationDefinition operation = new PhysicalOperationDefinition();
@@ -208,4 +227,6 @@
         }
         return wireDefinition;
     }
+
+
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorContext.java?view=diff&rev=519405&r1=519404&r2=519405
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorContext.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorContext.java Sat Mar 17 11:47:15 2007
@@ -18,11 +18,6 @@
  */
 package org.apache.tuscany.spi.generator;
 
-import java.net.URI;
-import java.util.List;
-
-import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
-import org.apache.tuscany.spi.model.physical.PhysicalWireDefinition;
 import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
 
 /**
@@ -31,16 +26,11 @@
  * @version $Rev$ $Date$
  */
 public interface GeneratorContext {
-    /**
-     * Returns the runtime id for the resource.
-     *
-     * @param resourceURI the resource id
-     * @return the runtime id for the resource
-     */
-    URI getRuntimeId(URI resourceURI);
 
     /**
-     * TODO should be changed to map runtime id by physical change set
+     * Returns the current changeset.
+     *
+     * @return the current changeset
      */
     PhysicalChangeSet getPhysicalChangeSet();
 

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java?view=diff&rev=519405&r1=519404&r2=519405
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java Sat Mar 17 11:47:15 2007
@@ -18,11 +18,14 @@
  */
 package org.apache.tuscany.spi.generator;
 
+import java.net.URI;
+
 import org.apache.tuscany.spi.model.BindingDefinition;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.Implementation;
 import org.apache.tuscany.spi.model.ReferenceDefinition;
 import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.model.ResourceDefinition;
 
 /**
  * A registry for generators
@@ -38,6 +41,8 @@
 
     void register(Class<?> clazz, InterceptorGenerator generator);
 
+    void register(Class<?> clazz, ResourceGenerator generator);
+
     /**
      * Generates a PhysicalComponentDefinition
      *
@@ -70,5 +75,7 @@
                                                                                 BindingDefinition bindingDefinition,
                                                                                 GeneratorContext context)
         throws GenerationException;
+
+    URI generate(ResourceDefinition definition, GeneratorContext context) throws GenerationException;
 
 }

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ResourceGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ResourceGenerator.java?view=auto&rev=519405
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ResourceGenerator.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ResourceGenerator.java Sat Mar 17 11:47:15 2007
@@ -0,0 +1,42 @@
+/*
+ * 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.spi.generator;
+
+import java.net.URI;
+
+import org.apache.tuscany.spi.model.ResourceDefinition;
+
+/**
+ * Implementations generate physical resource definitions
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ResourceGenerator {
+
+    /**
+     * Updates the change set with a physical resource definition
+     *
+     * @param definition the logical resource definition to generate the physical definition from
+     * @param context    the current generator context
+     * @return the id of the physical resource
+     * @throws GenerationException if an error is encountered updating the change set
+     */
+    URI generate(ResourceDefinition definition, GeneratorContext context) throws GenerationException;
+
+}

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ResourceGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ResourceGenerator.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ResourceDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ResourceDefinition.java?view=auto&rev=519405
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ResourceDefinition.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ResourceDefinition.java Sat Mar 17 11:47:15 2007
@@ -0,0 +1,27 @@
+/*
+ * 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.spi.model;
+
+/**
+ * Represents a resource definition. Resources are provisioned to runtime nodes.
+ *
+ * @version $Rev$ $Date$
+ */
+public class ResourceDefinition {
+}

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ResourceDefinition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ResourceDefinition.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