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 2006/12/17 21:16:42 UTC

svn commit: r488037 - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/component/scope/ core/src/main/java/org/apache/tuscany/core/implementation/java/ core/src/test/java/org/apache/tuscany/core/component/scope/ core/sr...

Author: jmarino
Date: Sun Dec 17 12:16:41 2006
New Revision: 488037

URL: http://svn.apache.org/viewvc?view=rev&rev=488037
Log:
move handling of scope not found to builders

Added:
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java   (with props)
Removed:
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeNotFoundException.java
Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ScopeRegistryImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderMetadataTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ScopeRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ScopeRegistryImpl.java?view=diff&rev=488037&r1=488036&r2=488037
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ScopeRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ScopeRegistryImpl.java Sun Dec 17 12:16:41 2006
@@ -24,7 +24,6 @@
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.ScopeNotFoundException;
 import org.apache.tuscany.spi.component.ScopeRegistry;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Scope;
@@ -37,9 +36,9 @@
 public class ScopeRegistryImpl implements ScopeRegistry {
 
     private final Map<Scope, ScopeContainer> scopeCache =
-            new ConcurrentHashMap<Scope, ScopeContainer>();
+        new ConcurrentHashMap<Scope, ScopeContainer>();
     private final Map<Scope, ObjectFactory<? extends ScopeContainer>> factoryCache =
-            new ConcurrentHashMap<Scope, ObjectFactory<? extends ScopeContainer>>();
+        new ConcurrentHashMap<Scope, ObjectFactory<? extends ScopeContainer>>();
     private WorkContext workContext;
 
     public ScopeRegistryImpl(WorkContext workContext) {
@@ -61,13 +60,12 @@
         ScopeContainer container = scopeCache.get(scope);
         if (container == null) {
             ObjectFactory<? extends ScopeContainer> factory = factoryCache.get(scope);
-            if (factory == null) {
-                throw new ScopeNotFoundException("Scope object factory not registered for scope", scope.getScope());
+            if (factory != null) {
+                container = factory.getInstance();
+                container.setWorkContext(workContext);
+                container.start();
+                scopeCache.put(scope, container);
             }
-            container = factory.getInstance();
-            container.setWorkContext(workContext);
-            container.start();
-            scopeCache.put(scope, container);
         }
         return container;
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java?view=diff&rev=488037&r1=488036&r2=488037
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java Sun Dec 17 12:16:41 2006
@@ -25,8 +25,10 @@
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.builder.BuilderConfigException;
+import org.apache.tuscany.spi.builder.ScopeNotFoundException;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
 import org.apache.tuscany.spi.host.ResourceHost;
@@ -72,7 +74,11 @@
         if (Scope.MODULE == scope) {
             configuration.setScopeContainer(deployment.getModuleScope());
         } else {
-            configuration.setScopeContainer(scopeRegistry.getScopeContainer(scope));
+            ScopeContainer container = scopeRegistry.getScopeContainer(scope);
+            if (container == null) {
+                throw new ScopeNotFoundException(scope.getScope());
+            }
+            configuration.setScopeContainer(container);
         }
         if (definition.getInitLevel() != null) {
             configuration.setInitLevel(definition.getInitLevel());
@@ -148,7 +154,7 @@
             } else {
                 String name = resource.getName();
                 boolean optional = resource.isOptional();
-                Class<Object> type = (Class<Object>)resource.getType();
+                Class<Object> type = (Class<Object>) resource.getType();
                 ResourceObjectFactory<Object> factory;
                 String mappedName = resource.getMappedName();
                 if (mappedName == null) {

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java?view=diff&rev=488037&r1=488036&r2=488037
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ScopeRegistryTestCase.java Sun Dec 17 12:16:41 2006
@@ -19,7 +19,6 @@
 package org.apache.tuscany.core.component.scope;
 
 import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.ScopeNotFoundException;
 import org.apache.tuscany.spi.component.ScopeRegistry;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Scope;
@@ -58,50 +57,20 @@
         RequestScopeObjectFactory factory = new RequestScopeObjectFactory();
         scopeRegistry.registerFactory(Scope.REQUEST, factory);
         scopeRegistry.deregisterFactory(Scope.REQUEST);
-        try {
-            scopeRegistry.getScopeContainer(Scope.REQUEST);
-            fail();
-        } catch (ScopeNotFoundException e) {
-            // expected
-        }
+        assertNull(scopeRegistry.getScopeContainer(Scope.REQUEST));
         ConversationalScopeObjectFactory convFactory = new ConversationalScopeObjectFactory(scopeRegistry, null);
         scopeRegistry.registerFactory(Scope.CONVERSATION, convFactory);
         scopeRegistry.deregisterFactory(Scope.CONVERSATION);
-        try {
-            scopeRegistry.getScopeContainer(Scope.CONVERSATION);
-            fail();
-        } catch (ScopeNotFoundException e) {
-            // expected
-        }
+        assertNull(scopeRegistry.getScopeContainer(Scope.CONVERSATION));
     }
 
     public void testScopeNotRegistered() throws Exception {
         WorkContext workContext = new WorkContextImpl();
         ScopeRegistry scopeRegistry = new ScopeRegistryImpl(workContext);
-        try {
-            scopeRegistry.getScopeContainer(Scope.REQUEST);
-            fail();
-        } catch (ScopeNotFoundException e) {
-            // expected
-        }
-        try {
-            scopeRegistry.getScopeContainer(Scope.SESSION);
-            fail();
-        } catch (ScopeNotFoundException e) {
-            // expected
-        }
-        try {
-            scopeRegistry.getScopeContainer(Scope.CONVERSATION);
-            fail();
-        } catch (ScopeNotFoundException e) {
-            // expected
-        }
-        try {
-            scopeRegistry.getScopeContainer(Scope.STATELESS);
-            fail();
-        } catch (ScopeNotFoundException e) {
-            // expected
-        }
+        assertNull(scopeRegistry.getScopeContainer(Scope.REQUEST));
+        assertNull(scopeRegistry.getScopeContainer(Scope.SESSION));
+        assertNull(scopeRegistry.getScopeContainer(Scope.CONVERSATION));
+        assertNull(scopeRegistry.getScopeContainer(Scope.STATELESS));
     }
 
 

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderMetadataTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderMetadataTestCase.java?view=diff&rev=488037&r1=488036&r2=488037
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderMetadataTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderMetadataTestCase.java Sun Dec 17 12:16:41 2006
@@ -2,9 +2,11 @@
 
 import java.lang.reflect.Constructor;
 
+import org.apache.tuscany.spi.builder.ScopeNotFoundException;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.ScopeRegistry;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.implementation.java.ConstructorDefinition;
@@ -67,6 +69,18 @@
         JavaComponentBuilder builder = new JavaComponentBuilder();
         JavaAtomicComponent component = (JavaAtomicComponent) builder.build(parent, definition, deploymentContext);
         assertEquals(Scope.MODULE, component.getScope());
+    }
+
+    public void testUnknownScope() throws Exception {
+        JavaComponentBuilder builder = new JavaComponentBuilder();
+        builder.setScopeRegistry(EasyMock.createNiceMock(ScopeRegistry.class));
+        definition.getImplementation().getComponentType().setImplementationScope(new Scope("foo"));
+        try {
+            builder.build(parent, definition, deploymentContext);
+            fail();
+        } catch (ScopeNotFoundException e) {
+            // expected
+        }
     }
 
     public void testServiceInterfaces() throws Exception {

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java?view=auto&rev=488037
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java Sun Dec 17 12:16:41 2006
@@ -0,0 +1,29 @@
+/*
+ * 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.builder;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ScopeNotFoundException extends BuilderConfigException {
+
+    public ScopeNotFoundException(String scope) {
+        super("Scope not found", scope);
+    }
+}

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

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

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java?view=diff&rev=488037&r1=488036&r2=488037
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java Sun Dec 17 12:16:41 2006
@@ -28,7 +28,13 @@
  */
 public interface ScopeRegistry {
 
-    ScopeContainer getScopeContainer(Scope scope) throws ScopeNotFoundException;
+    /**
+     * Returns the scope container for the given scope or null if one not found
+     *
+     * @param scope the scope
+     * @return the scope container for the given scope or null if one not found
+     */
+    ScopeContainer getScopeContainer(Scope scope);
 
     <T extends ScopeContainer> void registerFactory(Scope scope, ObjectFactory<T> factory);
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org