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/11/25 10:42:51 UTC

svn commit: r479110 - 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/system/component/ core/src/test/java/org/apache/tuscany/core/component/sc...

Author: jmarino
Date: Sat Nov 25 01:42:50 2006
New Revision: 479110

URL: http://svn.apache.org/viewvc?view=rev&rev=479110
Log:
move methods from PersistentScopeContainer to ScopeContainer; add destroyInstance() to AtomicComponent

Removed:
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PersistentScopeContainer.java
Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/AbstractScopeContainer.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/AbstractScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/AbstractScopeContainer.java?view=diff&rev=479110&r1=479109&r2=479110
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/AbstractScopeContainer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/AbstractScopeContainer.java Sat Nov 25 01:42:50 2006
@@ -30,6 +30,7 @@
 import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.component.TargetNotFoundException;
+import org.apache.tuscany.spi.component.PersistenceException;
 import org.apache.tuscany.spi.event.Event;
 import org.apache.tuscany.spi.event.EventFilter;
 import org.apache.tuscany.spi.event.RuntimeEventListener;
@@ -122,6 +123,21 @@
             return ctx.getInstance();
         }
         throw new TargetNotFoundException(component.getName());
+    }
+
+    public void persistNew(AtomicComponent component, String id, Object instance, long expiration)
+        throws PersistenceException {
+        throw new UnsupportedOperationException("Scope does not support persistence");
+
+    }
+
+    public void persist(AtomicComponent component, String id, Object instance, long expiration)
+        throws PersistenceException {
+        throw new UnsupportedOperationException("Scope does not support persistence");
+    }
+
+    public void remove(AtomicComponent component) throws PersistenceException {
+        throw new UnsupportedOperationException("Scope does not support persistence");
     }
 
     protected Map<EventFilter, List<RuntimeEventListener>> getListeners() {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java?view=diff&rev=479110&r1=479109&r2=479110
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java Sat Nov 25 01:42:50 2006
@@ -24,7 +24,7 @@
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.PersistenceException;
-import org.apache.tuscany.spi.component.PersistentScopeContainer;
+import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.component.TargetNotFoundException;
 import org.apache.tuscany.spi.component.WorkContext;
@@ -42,7 +42,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class ConversationalScopeContainerImpl extends AbstractScopeContainer implements PersistentScopeContainer {
+public class ConversationalScopeContainerImpl extends AbstractScopeContainer implements ScopeContainer {
     private Store nonDurableStore;
     private Map<AtomicComponent, AtomicComponent> components;
 
@@ -85,15 +85,10 @@
 
     @Override
     public Object getInstance(AtomicComponent component) throws TargetException {
-        String conversationID = (String) workContext.getIdentifier(Scope.CONVERSATION);
-        if (conversationID == null) {
-            TargetException e = new TargetException("Conversation id not set in context");
-            e.setIdentifier(component.getName());
-            throw e;
-        }
+        String conversationId = getconversationId(component);
         try {
             workContext.setCurrentAtomicComponent(component);
-            Object instance = nonDurableStore.readRecord(component, conversationID);
+            Object instance = nonDurableStore.readRecord(component, conversationId);
             if (instance != null) {
                 return instance;
             } else {
@@ -108,15 +103,10 @@
     }
 
     public Object getAssociatedInstance(AtomicComponent component) throws TargetException {
-        String conversationID = (String) workContext.getIdentifier(Scope.CONVERSATION);
-        if (conversationID == null) {
-            TargetException e = new TargetException("Conversation id not set in context");
-            e.setIdentifier(component.getName());
-            throw e;
-        }
+        String conversationId = getconversationId(component);
         try {
             workContext.setCurrentAtomicComponent(component);
-            Object instance = nonDurableStore.readRecord(component, conversationID);
+            Object instance = nonDurableStore.readRecord(component, conversationId);
             if (instance != null) {
                 return instance;
             } else {
@@ -128,7 +118,7 @@
             workContext.setCurrentAtomicComponent(null);
         }
     }
-    
+
     public void persistNew(AtomicComponent component, String id, Object instance, long expiration)
         throws PersistenceException {
         try {
@@ -147,9 +137,10 @@
         }
     }
 
-    public void remove(AtomicComponent component, String id) throws PersistenceException {
+    public void remove(AtomicComponent component) throws PersistenceException {
+        String conversationId = getconversationId(component);
         try {
-            nonDurableStore.removeRecord(component, id);
+            nonDurableStore.removeRecord(component, conversationId);
         } catch (StoreWriteException e) {
             throw new PersistenceException(e);
         }
@@ -159,4 +150,13 @@
         throw new UnsupportedOperationException();
     }
 
+    private String getconversationId(AtomicComponent component) {
+        String conversationId = (String) workContext.getIdentifier(Scope.CONVERSATION);
+        if (conversationId == null) {
+            TargetException e = new TargetException("Conversation id not set in context");
+            e.setIdentifier(component.getName());
+            throw e;
+        }
+        return conversationId;
+    }
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java?view=diff&rev=479110&r1=479109&r2=479110
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java Sat Nov 25 01:42:50 2006
@@ -92,6 +92,10 @@
         throw new UnsupportedOperationException();
     }
 
+    public void destroyInstance() {
+        throw new UnsupportedOperationException();
+    }
+
     public void addInboundWire(InboundWire wire) {
         throw new UnsupportedOperationException();
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java?view=diff&rev=479110&r1=479109&r2=479110
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerPersistenceTestCase.java Sat Nov 25 01:42:50 2006
@@ -21,7 +21,7 @@
 import java.util.UUID;
 
 import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.PersistentScopeContainer;
+import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.TargetNotFoundException;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.model.Scope;
@@ -37,7 +37,7 @@
  * @version $Rev$ $Date$
  */
 public class ConversationalScopeContainerPersistenceTestCase extends TestCase {
-    private PersistentScopeContainer container;
+    private ScopeContainer container;
     private WorkContext context;
 
     /**
@@ -99,7 +99,7 @@
         Foo foo = new Foo();
         container.persistNew(component, id, foo, System.currentTimeMillis() + 100000);
         assertEquals(foo, container.getInstance(component));
-        container.remove(component, id);
+        container.remove(component);
         try {
             container.getAssociatedInstance(component);
             fail();
@@ -120,7 +120,7 @@
         Foo foo = new Foo();
         container.persistNew(component, id, foo, System.currentTimeMillis() + 100000);
         assertEquals(foo, container.getInstance(component));
-        container.remove(component, id);
+        container.remove(component);
         Foo foo2 = (Foo) container.getInstance(component);
         assertNotNull(foo2);
         assertNotSame(foo, foo2);

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java?view=diff&rev=479110&r1=479109&r2=479110
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java Sat Nov 25 01:42:50 2006
@@ -62,5 +62,6 @@
      */
     Object createInstance() throws ObjectCreationException;
 
+    void destroyInstance();
 
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java?view=diff&rev=479110&r1=479109&r2=479110
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java Sat Nov 25 01:42:50 2006
@@ -61,4 +61,33 @@
      */
     Object getAssociatedInstance(AtomicComponent component) throws TargetException;
 
+    /**
+     * Persists a new component implementation instance, equivalent to an insert or append operation
+     *
+     * @param component  the owning component
+     * @param id         the id associated with the instance
+     * @param instance   the instance to persist
+     * @param expiration the expiration in milliseconds
+     * @throws org.apache.tuscany.spi.component.PersistenceException
+     */
+    void persistNew(AtomicComponent component, String id, Object instance, long expiration) throws PersistenceException;
+
+    /**
+     * Persists a component implementation instance, equivalent to an update operation
+     *
+     * @param component  the owning component
+     * @param id         the id associated with the instance
+     * @param instance   the instance to persist
+     * @param expiration the expiration in milliseconds
+     * @throws org.apache.tuscany.spi.component.PersistenceException
+     */
+    void persist(AtomicComponent component, String id, Object instance, long expiration) throws PersistenceException;
+
+    /**
+     * Removes a component implementation instance associated with the current context from persistent storage
+     *
+     * @param component the owning component
+     * @throws org.apache.tuscany.spi.component.PersistenceException
+     */
+    void remove(AtomicComponent component) throws PersistenceException;
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java?view=diff&rev=479110&r1=479109&r2=479110
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java Sat Nov 25 01:42:50 2006
@@ -55,7 +55,6 @@
     private final int initLevel;
 
 
-
     protected AtomicComponentExtension(String name,
                                        CompositeComponent parent,
                                        ScopeContainer scopeContainer,
@@ -133,6 +132,10 @@
         assert wires != null && wires.size() > 0;
         referenceWires.put(wires.get(0).getReferenceName(), wires);
         onReferenceWires(multiplicityClass, wires);
+    }
+
+    public void destroyInstance() {
+        scopeContainer.remove(this);
     }
 
     protected void onReferenceWire(OutboundWire wire) {



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