[infinispan-commits] Infinispan SVN: r446 - in trunk/core/src: main/java/org/infinispan/notifications/cachemanagerlistener/event and 3 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Fri Jun 12 07:02:39 EDT 2009
Author: manik.surtani at jboss.com
Date: 2009-06-12 07:02:38 -0400 (Fri, 12 Jun 2009)
New Revision: 446
Modified:
trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifier.java
trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierImpl.java
trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/event/EventImpl.java
trunk/core/src/main/java/org/infinispan/remoting/transport/Transport.java
trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/JGroupsTransport.java
trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierImplTest.java
trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierTest.java
Log:
Provide view ID in view change notification
Modified: trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifier.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifier.java 2009-06-12 11:01:41 UTC (rev 445)
+++ trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifier.java 2009-06-12 11:02:38 UTC (rev 446)
@@ -21,7 +21,7 @@
* Notifies all registered listeners of a viewChange event. Note that viewChange notifications are ALWAYS sent
* immediately.
*/
- void notifyViewChange(List<Address> members, Address myAddress);
+ void notifyViewChange(List<Address> members, Address myAddress, int viewId);
void notifyCacheStarted(String cacheName);
Modified: trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierImpl.java 2009-06-12 11:01:41 UTC (rev 445)
+++ trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierImpl.java 2009-06-12 11:02:38 UTC (rev 446)
@@ -55,10 +55,11 @@
this.cacheManager = cacheManager;
}
- public void notifyViewChange(List<Address> members, Address myAddress) {
+ public void notifyViewChange(List<Address> members, Address myAddress, int viewId) {
if (!viewChangedListeners.isEmpty()) {
EventImpl e = new EventImpl();
e.setLocalAddress(myAddress);
+ e.setViewId(viewId);
e.setNewMemberList(members);
e.setCacheManager(cacheManager);
e.setType(Event.Type.VIEW_CHANGED);
Modified: trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/event/EventImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/event/EventImpl.java 2009-06-12 11:01:41 UTC (rev 445)
+++ trunk/core/src/main/java/org/infinispan/notifications/cachemanagerlistener/event/EventImpl.java 2009-06-12 11:02:38 UTC (rev 446)
@@ -18,16 +18,18 @@
Type type;
List<Address> newMemberList;
Address localAddress;
+ int viewId;
public EventImpl() {
}
- public EventImpl(String cacheName, CacheManager cacheManager, Type type, List<Address> newMemberList, Address localAddress) {
+ public EventImpl(String cacheName, CacheManager cacheManager, Type type, List<Address> newMemberList, Address localAddress, int viewId) {
this.cacheName = cacheName;
this.cacheManager = cacheManager;
this.type = type;
this.newMemberList = newMemberList;
this.localAddress = localAddress;
+ this.viewId = viewId;
}
public String getCacheName() {
@@ -66,6 +68,14 @@
return localAddress;
}
+ public int getViewId() {
+ return viewId;
+ }
+
+ public void setViewId(int viewId) {
+ this.viewId = viewId;
+ }
+
public void setLocalAddress(Address localAddress) {
this.localAddress = localAddress;
}
@@ -77,7 +87,7 @@
EventImpl event = (EventImpl) o;
- if (cacheManager != null ? !cacheManager.equals(event.cacheManager) : event.cacheManager != null) return false;
+ if (viewId != event.viewId) return false;
if (cacheName != null ? !cacheName.equals(event.cacheName) : event.cacheName != null) return false;
if (localAddress != null ? !localAddress.equals(event.localAddress) : event.localAddress != null) return false;
if (newMemberList != null ? !newMemberList.equals(event.newMemberList) : event.newMemberList != null)
@@ -90,10 +100,10 @@
@Override
public int hashCode() {
int result = cacheName != null ? cacheName.hashCode() : 0;
- result = 31 * result + (cacheManager != null ? cacheManager.hashCode() : 0);
result = 31 * result + (type != null ? type.hashCode() : 0);
result = 31 * result + (newMemberList != null ? newMemberList.hashCode() : 0);
result = 31 * result + (localAddress != null ? localAddress.hashCode() : 0);
+ result = 31 * result + viewId;
return result;
}
@@ -104,6 +114,7 @@
", type=" + type +
", newMemberList=" + newMemberList +
", localAddress=" + localAddress +
+ ", viewId=" + viewId +
'}';
}
}
Modified: trunk/core/src/main/java/org/infinispan/remoting/transport/Transport.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/remoting/transport/Transport.java 2009-06-12 11:01:41 UTC (rev 445)
+++ trunk/core/src/main/java/org/infinispan/remoting/transport/Transport.java 2009-06-12 11:02:38 UTC (rev 446)
@@ -123,4 +123,5 @@
@Stop
void stop();
+ int getViewId();
}
Modified: trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/JGroupsTransport.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/JGroupsTransport.java 2009-06-12 11:01:41 UTC (rev 445)
+++ trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/JGroupsTransport.java 2009-06-12 11:02:38 UTC (rev 446)
@@ -113,6 +113,10 @@
}
}
+ public int getViewId() {
+ return (int) channel.getView().getVid().getId();
+ }
+
public void stop() {
try {
if (channel != null && channel.isOpen()) {
@@ -270,6 +274,7 @@
public Address getAddress() {
if (address == null && channel != null) {
address = new JGroupsAddress(channel.getAddress());
+// address = new JGroupsAddress(channel.getLocalAddress());
}
return address;
}
@@ -396,7 +401,7 @@
// now notify listeners - *after* updating the coordinator. - JBCACHE-662
if (needNotification && notifier != null) {
- notifier.notifyViewChange(members, getAddress());
+ notifier.notifyViewChange(members, getAddress(), (int) newView.getVid().getId());
}
// Wake up any threads that are waiting to know about who the coordinator is
Modified: trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierImplTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierImplTest.java 2009-06-12 11:01:41 UTC (rev 445)
+++ trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierImplTest.java 2009-06-12 11:02:38 UTC (rev 446)
@@ -28,11 +28,12 @@
public void testNotifyViewChanged() {
Address a = EasyMock.createNiceMock(Address.class);
List<Address> addresses = Collections.emptyList();
- n.notifyViewChange(addresses, a);
+ n.notifyViewChange(addresses, a, 100);
assert cl.invocationCount == 1;
assert ((ViewChangedEvent) cl.getEvent()).getLocalAddress() == a;
assert ((ViewChangedEvent) cl.getEvent()).getNewMemberList() == addresses;
+ assert ((ViewChangedEvent) cl.getEvent()).getViewId() == 100;
assert cl.getEvent().getType() == Event.Type.VIEW_CHANGED;
}
Modified: trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierTest.java 2009-06-12 11:01:41 UTC (rev 445)
+++ trunk/core/src/test/java/org/infinispan/notifications/cachemanagerlistener/CacheManagerNotifierTest.java 2009-06-12 11:02:38 UTC (rev 446)
@@ -2,11 +2,11 @@
import static org.easymock.EasyMock.*;
import org.infinispan.Cache;
-import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.infinispan.config.Configuration;
import org.infinispan.manager.CacheManager;
import org.infinispan.remoting.transport.Address;
import org.infinispan.test.TestingUtil;
+import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
@@ -17,9 +17,8 @@
CacheManager cm1;
CacheManager cm2;
- @AfterMethod
- public void tearDown()
- {
+ @AfterMethod
+ public void tearDown() {
TestingUtil.killCacheManagers(cm1, cm2);
}
@@ -43,7 +42,7 @@
CacheManagerNotifier mockNotifier = createMock(CacheManagerNotifier.class);
CacheManagerNotifier origNotifier = TestingUtil.replaceComponent(cm1, CacheManagerNotifier.class, mockNotifier, true);
try {
- mockNotifier.notifyViewChange(isA(List.class), eq(myAddress));
+ mockNotifier.notifyViewChange(isA(List.class), eq(myAddress), anyInt());
replay(mockNotifier);
// start a second cache.
Cache c2 = cm2.getCache("cache");
More information about the infinispan-commits
mailing list