Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-07-05 04:45:38 +0000
committerslewis2005-07-05 04:45:38 +0000
commitf9e6d26678870576a94a7f6fd1a4075217d33052 (patch)
tree25b301f815174adeaada7a8b71631898079ba30d
parent2baee64a8b8d8870b27c1f8dc2cc998a18bf523a (diff)
downloadorg.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
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java17
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/TransactionEventProcessor.java24
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/events/ISharedObjectCommitEvent.java5
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/events/SharedObjectCommitEvent.java38
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();
+ }
+
+}

Back to the top