getExtraAttributeMap() {
- return extraAttrMap;
- }
-
- /**
- * Get a named extra attribute.
- */
- public String getExtraAttribute(String key) {
- return (String) extraAttrMap.get(key);
- }
-
- /**
- * Set an extra attribute with a given name.
- *
- * @param key
- * the name of the extra attribute
- * @param value
- * the value of the extra attribute
- */
- public void setExtraAttribute(String key, String value) {
- extraAttrMap.put(key, value);
- }
-
/**
* Return the bean class name this descriptor is used for.
*
diff --git a/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPersistIds.java b/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPersistIds.java
index ceb40920e..57626e88c 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPersistIds.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPersistIds.java
@@ -246,7 +246,7 @@ public class BeanPersistIds implements Serializable {
*/
public void notifyCacheAndListener() {
- BeanPersistListener> listener = beanDescriptor.getPersistListener();
+ BeanPersistListener listener = beanDescriptor.getPersistListener();
// any change invalidates the query cache
beanDescriptor.queryCacheClear();
diff --git a/src/test/java/com/avaje/tests/basic/TestExplicitInsert.java b/src/test/java/com/avaje/tests/basic/TestExplicitInsert.java
index cab07c774..e6277344e 100644
--- a/src/test/java/com/avaje/tests/basic/TestExplicitInsert.java
+++ b/src/test/java/com/avaje/tests/basic/TestExplicitInsert.java
@@ -2,6 +2,7 @@ package com.avaje.tests.basic;
import java.util.List;
+import com.avaje.tests.model.basic.MyEBasicConfigStartup;
import org.junit.Assert;
import org.junit.Test;
@@ -10,10 +11,16 @@ import com.avaje.ebean.Ebean;
import com.avaje.ebean.EbeanServer;
import com.avaje.tests.model.basic.EBasic;
+import static org.junit.Assert.assertEquals;
+
public class TestExplicitInsert extends BaseTestCase {
@Test
- public void test() {
+ public void test() throws InterruptedException {
+
+ Thread.sleep(100);
+
+ MyEBasicConfigStartup.resetCounters();
EBasic b = new EBasic();
b.setName("exp insert");
@@ -34,9 +41,22 @@ public class TestExplicitInsert extends BaseTestCase {
Assert.assertNotNull(b2.getId());
Assert.assertTrue(!b.getId().equals(b2.getId()));
- List list = server.find(EBasic.class).where().in("id",b.getId(), b2.getId()).findList();
+ List list = server.find(EBasic.class).where().in("id", b.getId(), b2.getId()).findList();
- Assert.assertEquals(2, list.size());
+ assertEquals(2, list.size());
+
+ b2.setName("do an update");
+ server.save(b2);
+
+ server.delete(b);
+ server.delete(b2);
+
+ // just sleep a little to allow the background thread to fire
+ Thread.sleep(100);
+
+ assertEquals(2, MyEBasicConfigStartup.insertCount.get());
+ assertEquals(1, MyEBasicConfigStartup.updateCount.get());
+ assertEquals(2, MyEBasicConfigStartup.deleteCount.get());
}
}
diff --git a/src/test/java/com/avaje/tests/model/basic/MyEBasicConfigStartup.java b/src/test/java/com/avaje/tests/model/basic/MyEBasicConfigStartup.java
index 385c412d5..2f5b70268 100644
--- a/src/test/java/com/avaje/tests/model/basic/MyEBasicConfigStartup.java
+++ b/src/test/java/com/avaje/tests/model/basic/MyEBasicConfigStartup.java
@@ -2,15 +2,23 @@ package com.avaje.tests.model.basic;
import java.util.HashSet;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicLong;
import com.avaje.ebean.config.ServerConfig;
-import com.avaje.ebean.event.BeanPersistListener;
-import com.avaje.ebean.event.BulkTableEvent;
-import com.avaje.ebean.event.BulkTableEventListener;
-import com.avaje.ebean.event.ServerConfigStartup;
+import com.avaje.ebean.event.*;
public class MyEBasicConfigStartup implements ServerConfigStartup {
+ public static AtomicLong insertCount = new AtomicLong();
+ public static AtomicLong updateCount = new AtomicLong();
+ public static AtomicLong deleteCount = new AtomicLong();
+
+ public static void resetCounters() {
+ insertCount.set(0);
+ updateCount.set(0);
+ deleteCount.set(0);
+ }
+
public void onStart(ServerConfig serverConfig) {
serverConfig.add(new EbasicPersistList());
@@ -35,32 +43,31 @@ public class MyEBasicConfigStartup implements ServerConfigStartup {
}
- public static class EbasicPersistList implements BeanPersistListener {
+ public static class EbasicPersistList extends AbstractBeanPersistListener {
- public boolean inserted(EBasic bean) {
- System.out.println("-- EBasic inserted " + bean.getId());
+ @Override
+ public boolean isRegisterFor(Class> cls) {
+ return EBasic.class.isAssignableFrom(cls);
+ }
+
+ public boolean inserted(Object bean) {
+ insertCount.incrementAndGet();
+ System.out.println("-- EBasic inserted " + ((EBasic)bean).getId());
return false;
}
- public boolean updated(EBasic bean, Set updatedProperties) {
- System.out.println("-- EBasic updated " + bean.getId()+" updatedProperties: "+updatedProperties);
+ public boolean updated(Object bean, Set updatedProperties) {
+ updateCount.incrementAndGet();
+ System.out.println("-- EBasic updated " + ((EBasic)bean).getId()+" updatedProperties: "+updatedProperties);
return false;
}
- public boolean deleted(EBasic bean) {
- System.out.println("-- EBasic deleted " + bean.getId());
+ public boolean deleted(Object bean) {
+ deleteCount.incrementAndGet();
+ System.out.println("-- EBasic deleted " + ((EBasic)bean).getId());
return false;
}
- public void remoteInsert(Object id) {
- }
-
- public void remoteUpdate(Object id) {
- }
-
- public void remoteDelete(Object id) {
- }
-
}
}