From 0b9c1673d2740d03287e508d70b44e20ac4ae3b9 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 19 May 2012 10:52:10 +0200 Subject: [PATCH] implement new store listener api --- .../main/java/sonia/scm/store/orientdb/OrientDBStore.java | 6 +++++- .../sonia/scm/store/orientdb/OrientDBStoreFactory.java | 8 ++++---- scm-dao-xml/src/main/java/sonia/scm/store/JAXBStore.java | 4 +++- .../src/main/java/sonia/scm/store/JAXBStoreFactory.java | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/scm-dao-orientdb/src/main/java/sonia/scm/store/orientdb/OrientDBStore.java b/scm-dao-orientdb/src/main/java/sonia/scm/store/orientdb/OrientDBStore.java index 4811c50413..0f81bad809 100644 --- a/scm-dao-orientdb/src/main/java/sonia/scm/store/orientdb/OrientDBStore.java +++ b/scm-dao-orientdb/src/main/java/sonia/scm/store/orientdb/OrientDBStore.java @@ -30,6 +30,7 @@ */ + package sonia.scm.store.orientdb; //~--- non-JDK imports -------------------------------------------------------- @@ -43,6 +44,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sonia.scm.orientdb.OrientDBUtil; +import sonia.scm.store.AbstractListenableStore; import sonia.scm.store.Store; import sonia.scm.util.Util; @@ -60,7 +62,7 @@ import javax.xml.bind.JAXBException; * * @param */ -public class OrientDBStore implements Store +public class OrientDBStore extends AbstractListenableStore { /** Field description */ @@ -158,6 +160,7 @@ public class OrientDBStore implements Store * * @param t */ + @Override public void set(T t) { ODatabaseDocumentTx connection = connectionProvider.get(); @@ -178,6 +181,7 @@ public class OrientDBStore implements Store context.createMarshaller().marshal(t, buffer); doc.field(FIELD_DATA, buffer.toString()); doc.save(); + fireEvent(t); } catch (JAXBException ex) { diff --git a/scm-dao-orientdb/src/main/java/sonia/scm/store/orientdb/OrientDBStoreFactory.java b/scm-dao-orientdb/src/main/java/sonia/scm/store/orientdb/OrientDBStoreFactory.java index fa8c53cf8f..7e8c58b308 100644 --- a/scm-dao-orientdb/src/main/java/sonia/scm/store/orientdb/OrientDBStoreFactory.java +++ b/scm-dao-orientdb/src/main/java/sonia/scm/store/orientdb/OrientDBStoreFactory.java @@ -30,6 +30,7 @@ */ + package sonia.scm.store.orientdb; //~--- non-JDK imports -------------------------------------------------------- @@ -46,8 +47,7 @@ import com.orientechnologies.orient.core.metadata.schema.OType; import sonia.scm.SCMContextProvider; import sonia.scm.orientdb.OrientDBUtil; -import sonia.scm.store.Store; -import sonia.scm.store.StoreFactory; +import sonia.scm.store.ListenableStoreFactory; import sonia.scm.util.AssertUtil; //~--- JDK imports ------------------------------------------------------------ @@ -62,7 +62,7 @@ import javax.xml.bind.JAXBException; * @author Sebastian Sdorra */ @Singleton -public class OrientDBStoreFactory implements StoreFactory +public class OrientDBStoreFactory implements ListenableStoreFactory { /** @@ -138,7 +138,7 @@ public class OrientDBStoreFactory implements StoreFactory * @return */ @Override - public Store getStore(Class type, String name) + public OrientDBStore getStore(Class type, String name) { AssertUtil.assertIsNotNull(type); AssertUtil.assertIsNotEmpty(name); diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBStore.java b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBStore.java index d17906bad1..81982e05fc 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBStore.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBStore.java @@ -52,7 +52,7 @@ import javax.xml.bind.Marshaller; * * @param */ -public class JAXBStore implements Store +public class JAXBStore extends AbstractListenableStore { /** the logger for JAXBStore */ @@ -149,6 +149,8 @@ public class JAXBStore implements Store marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.marshal(object, configFile); + + fireEvent(object); } catch (JAXBException ex) { diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBStoreFactory.java b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBStoreFactory.java index a5806d8f94..4fd7ead87b 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBStoreFactory.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBStoreFactory.java @@ -53,7 +53,7 @@ import java.io.IOException; * @author Sebastian Sdorra */ @Singleton -public class JAXBStoreFactory implements StoreFactory +public class JAXBStoreFactory implements ListenableStoreFactory { /** Field description */ @@ -108,7 +108,7 @@ public class JAXBStoreFactory implements StoreFactory * @return */ @Override - public Store getStore(Class type, String name) + public JAXBStore getStore(Class type, String name) { File configFile = new File(configDirectory, name.concat(FILE_EXTENSION));