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