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/05/05 06:17:17 UTC
svn commit: r399945 - in /incubator/tuscany/sandbox/jboynes/sca:
core2/src/main/java/org/apache/tuscany/core/context/scope/
spi/src/main/java/org/apache/tuscany/spi/context/
Author: jmarino
Date: Thu May 4 21:17:16 2006
New Revision: 399945
URL: http://svn.apache.org/viewcvs?rev=399945&view=rev
Log:
add scope registry and cleanup aggregate context
Added:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java?rev=399945&r1=399944&r2=399945&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/CompositeScopeContext.java Thu May 4 21:17:16 2006
@@ -13,10 +13,8 @@
*/
package org.apache.tuscany.core.context.scope;
-import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
import org.apache.tuscany.core.AbstractLifecycle;
import org.apache.tuscany.model.Scope;
@@ -27,7 +25,6 @@
import org.apache.tuscany.spi.context.ScopeInitializationException;
import org.apache.tuscany.spi.context.ScopeRuntimeException;
import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.context.WorkContext;
import org.apache.tuscany.spi.event.Event;
/**
@@ -39,13 +36,11 @@
public class CompositeScopeContext extends AbstractLifecycle implements ScopeContext<CompositeContext> {
// Composite component contexts in this scope keyed by parent
- private Map<CompositeContext, List<CompositeContext>> contexts = new ConcurrentHashMap<CompositeContext, List<CompositeContext>>();
- private WorkContext workContext;
+ private final List<CompositeContext> contexts;
- public CompositeScopeContext(WorkContext workContext) {
+ public CompositeScopeContext() {
setName("Composite Scope");
- assert(workContext != null): "Work context was null";
- this.workContext = workContext;
+ contexts = new CopyOnWriteArrayList<CompositeContext>();
}
public Scope getScope() {
@@ -65,15 +60,7 @@
public void register(CompositeContext context) {
checkInit();
- CompositeContext module = workContext.getCurrentModule();
- List<CompositeContext> ctxs = contexts.get(module);
- if (ctxs == null) {
- ctxs = new ArrayList<CompositeContext>();
- }
- synchronized (ctxs) {
- ctxs.add(context);
- }
- contexts.put(module, ctxs);
+ contexts.add(context);
}
public Object getInstance(CompositeContext context) throws TargetException {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java?rev=399945&r1=399944&r2=399945&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java Thu May 4 21:17:16 2006
@@ -23,8 +23,8 @@
public static final Object HTTP_IDENTIFIER = new Object();
- private Map<AtomicContext, Map<Object, InstanceContext>> contexts;
- private Map<Object, List<InstanceContext>> destroyQueues;
+ private final Map<AtomicContext, Map<Object, InstanceContext>> contexts;
+ private final Map<Object, List<InstanceContext>> destroyQueues;
public HttpSessionScopeContext(WorkContext workContext) {
super("Session Scope", workContext);
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java?rev=399945&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ScopeRegistryImpl.java Thu May 4 21:17:16 2006
@@ -0,0 +1,48 @@
+package org.apache.tuscany.core.context.scope;
+
+import java.util.List;
+import java.util.Map;
+import java.util.ArrayList;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.ScopeContext;
+import org.apache.tuscany.spi.context.ScopeRegistry;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class ScopeRegistryImpl implements ScopeRegistry {
+
+ private final Map<CompositeContext, List<ScopeContext>> cache;
+ private final List<ObjectFactory<ScopeContext>> factories;
+
+ public ScopeRegistryImpl() {
+ cache = new ConcurrentHashMap<CompositeContext, List<ScopeContext>>();
+ factories = new CopyOnWriteArrayList<ObjectFactory<ScopeContext>>();
+ }
+
+ public List<ScopeContext> getScopeContexts(CompositeContext module) {
+ List<ScopeContext> scopes = cache.get(module);
+ if (scopes == null){
+ scopes = new ArrayList<ScopeContext>();
+ for (ObjectFactory<ScopeContext> factory : factories) {
+ scopes.add(factory.getInstance());
+ }
+ cache.put(module,scopes);
+ }
+ return scopes;
+ }
+
+ public void registerFactory(ObjectFactory<ScopeContext> factory) {
+ factories.add(factory);
+ }
+
+ public void deRegisterFactory(ObjectFactory<ScopeContext> factory) {
+ factories.remove(factory);
+ }
+
+
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java?rev=399945&r1=399944&r2=399945&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeRegistry.java Thu May 4 21:17:16 2006
@@ -15,10 +15,15 @@
import java.util.List;
+import org.apache.tuscany.common.ObjectFactory;
+
/**
* @version $$Rev$$ $$Date$$
*/
public interface ScopeRegistry {
List<ScopeContext> getScopeContexts(CompositeContext module);
+
+ void registerFactory(ObjectFactory<ScopeContext> factory);
+
}