diff options
| author | slewis | 2005-07-05 04:45:38 +0000 |
|---|---|---|
| committer | slewis | 2005-07-05 04:45:38 +0000 |
| commit | f9e6d26678870576a94a7f6fd1a4075217d33052 (patch) | |
| tree | 25b301f815174adeaada7a8b71631898079ba30d | |
| parent | 2baee64a8b8d8870b27c1f8dc2cc998a18bf523a (diff) | |
| download | org.eclipse.ecf-f9e6d26678870576a94a7f6fd1a4075217d33052.tar.gz org.eclipse.ecf-f9e6d26678870576a94a7f6fd1a4075217d33052.tar.xz org.eclipse.ecf-f9e6d26678870576a94a7f6fd1a4075217d33052.zip | |
Added ISharedObjectCommitEvent interface for commit event types, and implementation class SharedObjectCommitEvent. Modified TransactionEventProcessor and BaseSharedObject use new event interface and class
4 files changed, 58 insertions, 26 deletions
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java index bde3a6f2c..5c3c679aa 100644 --- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java +++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java @@ -36,7 +36,6 @@ import org.eclipse.ecf.provider.Trace; public class BaseSharedObject implements ISharedObject, IIdentifiable { private static long identifier = 0L; - Trace trace = Trace.create("basesharedobject"); ISharedObjectConfig config = null; @@ -45,14 +44,14 @@ public class BaseSharedObject implements ISharedObject, IIdentifiable { protected static long getIdentifier() { return identifier++; } - protected void trace(String msg) { + private void trace(String msg) { if (Trace.ON && trace != null) { - trace.msg(msg); + trace.msg(getID()+":"+msg); } } - protected void traceStack(String msg, Throwable t) { + private void traceStack(String msg, Throwable t) { if (Trace.ON && trace != null) { - trace.dumpStack(t,msg); + trace.dumpStack(t,getID()+":"+msg); } } protected void addEventProcessor(IEventProcessor proc) { @@ -74,7 +73,7 @@ public class BaseSharedObject implements ISharedObject, IIdentifiable { if (ep != null) { if (evt != null) { if (ep.acceptEvent(evt)) { - trace(getID()+":eventProcessor="+ep+":event="+evt); + trace("eventProcessor="+ep+":event="+evt); evt = ep.processEvent(evt); } } @@ -117,7 +116,7 @@ public class BaseSharedObject implements ISharedObject, IIdentifiable { fireEventProcessors(event); } protected void handleUnhandledEvent(Event event) { - trace("Unhandled event:"+event); + trace("handleUnhandledEvent("+event+")"); } /* (non-Javadoc) * @see org.eclipse.ecf.core.ISharedObject#handleEvents(org.eclipse.ecf.core.util.Event[]) @@ -185,8 +184,8 @@ public class BaseSharedObject implements ISharedObject, IIdentifiable { } } - protected void replicate(ID remote) { - trace("replicate(" + remote + ")"); + protected void replicateToRemote(ID remote) { + trace("replicateToRemote(" + remote + ")"); try { // Get current group membership ISharedObjectContext context = getContext(); diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/TransactionEventProcessor.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/TransactionEventProcessor.java index 99646eb0c..5aa1bdcd4 100644 --- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/TransactionEventProcessor.java +++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/TransactionEventProcessor.java @@ -20,10 +20,11 @@ import org.eclipse.ecf.core.ISharedObjectContainerTransaction; import org.eclipse.ecf.core.ISharedObjectContext; import org.eclipse.ecf.core.SharedObjectAddAbortException; import org.eclipse.ecf.core.events.ISharedObjectActivatedEvent; +import org.eclipse.ecf.core.events.ISharedObjectCommitEvent; import org.eclipse.ecf.core.events.ISharedObjectContainerDepartedEvent; import org.eclipse.ecf.core.events.ISharedObjectContainerJoinedEvent; import org.eclipse.ecf.core.events.ISharedObjectCreateResponseEvent; -import org.eclipse.ecf.core.events.RemoteSharedObjectEvent; +import org.eclipse.ecf.core.events.SharedObjectCommitEvent; import org.eclipse.ecf.core.identity.ID; import org.eclipse.ecf.core.util.Event; import org.eclipse.ecf.core.util.IEventProcessor; @@ -36,7 +37,6 @@ import org.eclipse.ecf.provider.Trace; public class TransactionEventProcessor implements IEventProcessor { public static final Trace trace = Trace.create("transactioneventprocessor"); - public static final int DEFAULT_TIMEOUT = 30000; BaseSharedObject sharedObject = null; @@ -48,14 +48,6 @@ public class TransactionEventProcessor implements IEventProcessor { int timeout = DEFAULT_TIMEOUT; int minFailedToAbort = 0; - class CommitEvent extends RemoteSharedObjectEvent { - private static final long serialVersionUID = 6208586597348619413L; - - public CommitEvent(ID senderObj, ID remoteCont) { - super(senderObj, remoteCont, null); - } - } - public TransactionEventProcessor(BaseSharedObject bse, int timeout) { sharedObject = bse; sharedObject.addEventProcessor(this); @@ -165,7 +157,7 @@ public class TransactionEventProcessor implements IEventProcessor { trace("handleDeparted(" + event + ")"); handleDeparted((ISharedObjectContainerDepartedEvent) event); return event; - } else if (event instanceof CommitEvent) { + } else if (event instanceof ISharedObjectCommitEvent) { trace("localCommitted(" + event + ")"); localCommitted(); return event; @@ -189,7 +181,7 @@ public class TransactionEventProcessor implements IEventProcessor { } protected void handlePrimaryActivated(ISharedObjectActivatedEvent event) { - getSharedObject().replicate(null); + getSharedObject().replicateToRemote(null); addParticipants(getContext().getGroupMemberIDs()); setTransactionState(ISharedObjectContainerTransaction.VOTING); } @@ -216,7 +208,7 @@ public class TransactionEventProcessor implements IEventProcessor { // replicate message synchronized (lock) { ID newMember = event.getJoinedContainerID(); - getSharedObject().replicate(newMember); + getSharedObject().replicateToRemote(newMember); if (getTransactionState() == ISharedObjectContainerTransaction.VOTING) addParticipants(new ID[] { newMember }); } @@ -270,8 +262,7 @@ public class TransactionEventProcessor implements IEventProcessor { try { getSharedObject().getContext().sendMessage( fromID, - new CommitEvent(getSharedObject().getID(), - getSharedObject().getLocalID())); + new SharedObjectCommitEvent(getSharedObject().getID())); } catch (Exception e2) { traceStack("Exception in sendCommit to " + fromID, e2); } @@ -292,8 +283,7 @@ public class TransactionEventProcessor implements IEventProcessor { try { getContext().sendMessage( null, - new CommitEvent(getSharedObject().getID(), - getSharedObject().getLocalID())); + new SharedObjectCommitEvent(getSharedObject().getID())); } catch (Exception e2) { doTMAbort(new SharedObjectAddAbortException( "Exception sending commit message", e2, getTimeout())); diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/events/ISharedObjectCommitEvent.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/events/ISharedObjectCommitEvent.java new file mode 100644 index 000000000..04c3e7f23 --- /dev/null +++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/events/ISharedObjectCommitEvent.java @@ -0,0 +1,5 @@ +package org.eclipse.ecf.core.events; + +public interface ISharedObjectCommitEvent extends ISharedObjectEvent { + +} diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/events/SharedObjectCommitEvent.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/events/SharedObjectCommitEvent.java new file mode 100644 index 000000000..e59390ab4 --- /dev/null +++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/events/SharedObjectCommitEvent.java @@ -0,0 +1,38 @@ +package org.eclipse.ecf.core.events; + +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.util.Event; + +public class SharedObjectCommitEvent implements ISharedObjectCommitEvent { + + private static final long serialVersionUID = 4615634472917480497L; + + ID senderSharedObjectID = null; + Event event = null; + + public SharedObjectCommitEvent(ID senderSharedObjectID, Event event) { + super(); + this.senderSharedObjectID = senderSharedObjectID; + this.event = event; + } + + public SharedObjectCommitEvent(ID senderSharedObjectID) { + this(senderSharedObjectID,null); + } + + public ID getSenderSharedObjectID() { + return senderSharedObjectID; + } + + public Event getEvent() { + return event; + } + + public String toString() { + StringBuffer sb = new StringBuffer("SharedObjectCommitEvent["); + sb.append(getSenderSharedObjectID()).append(";"); + sb.append(getEvent()).append("]"); + return sb.toString(); + } + +} |
