mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-08 22:45:45 +01:00
implement new store listener api
This commit is contained in:
@@ -30,6 +30,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package sonia.scm.store.orientdb;
|
package sonia.scm.store.orientdb;
|
||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
@@ -43,6 +44,7 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import sonia.scm.orientdb.OrientDBUtil;
|
import sonia.scm.orientdb.OrientDBUtil;
|
||||||
|
import sonia.scm.store.AbstractListenableStore;
|
||||||
import sonia.scm.store.Store;
|
import sonia.scm.store.Store;
|
||||||
import sonia.scm.util.Util;
|
import sonia.scm.util.Util;
|
||||||
|
|
||||||
@@ -60,7 +62,7 @@ import javax.xml.bind.JAXBException;
|
|||||||
*
|
*
|
||||||
* @param <T>
|
* @param <T>
|
||||||
*/
|
*/
|
||||||
public class OrientDBStore<T> implements Store<T>
|
public class OrientDBStore<T> extends AbstractListenableStore<T>
|
||||||
{
|
{
|
||||||
|
|
||||||
/** Field description */
|
/** Field description */
|
||||||
@@ -158,6 +160,7 @@ public class OrientDBStore<T> implements Store<T>
|
|||||||
*
|
*
|
||||||
* @param t
|
* @param t
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void set(T t)
|
public void set(T t)
|
||||||
{
|
{
|
||||||
ODatabaseDocumentTx connection = connectionProvider.get();
|
ODatabaseDocumentTx connection = connectionProvider.get();
|
||||||
@@ -178,6 +181,7 @@ public class OrientDBStore<T> implements Store<T>
|
|||||||
context.createMarshaller().marshal(t, buffer);
|
context.createMarshaller().marshal(t, buffer);
|
||||||
doc.field(FIELD_DATA, buffer.toString());
|
doc.field(FIELD_DATA, buffer.toString());
|
||||||
doc.save();
|
doc.save();
|
||||||
|
fireEvent(t);
|
||||||
}
|
}
|
||||||
catch (JAXBException ex)
|
catch (JAXBException ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package sonia.scm.store.orientdb;
|
package sonia.scm.store.orientdb;
|
||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
@@ -46,8 +47,7 @@ import com.orientechnologies.orient.core.metadata.schema.OType;
|
|||||||
|
|
||||||
import sonia.scm.SCMContextProvider;
|
import sonia.scm.SCMContextProvider;
|
||||||
import sonia.scm.orientdb.OrientDBUtil;
|
import sonia.scm.orientdb.OrientDBUtil;
|
||||||
import sonia.scm.store.Store;
|
import sonia.scm.store.ListenableStoreFactory;
|
||||||
import sonia.scm.store.StoreFactory;
|
|
||||||
import sonia.scm.util.AssertUtil;
|
import sonia.scm.util.AssertUtil;
|
||||||
|
|
||||||
//~--- JDK imports ------------------------------------------------------------
|
//~--- JDK imports ------------------------------------------------------------
|
||||||
@@ -62,7 +62,7 @@ import javax.xml.bind.JAXBException;
|
|||||||
* @author Sebastian Sdorra
|
* @author Sebastian Sdorra
|
||||||
*/
|
*/
|
||||||
@Singleton
|
@Singleton
|
||||||
public class OrientDBStoreFactory implements StoreFactory
|
public class OrientDBStoreFactory implements ListenableStoreFactory
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -138,7 +138,7 @@ public class OrientDBStoreFactory implements StoreFactory
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public <T> Store<T> getStore(Class<T> type, String name)
|
public <T> OrientDBStore<T> getStore(Class<T> type, String name)
|
||||||
{
|
{
|
||||||
AssertUtil.assertIsNotNull(type);
|
AssertUtil.assertIsNotNull(type);
|
||||||
AssertUtil.assertIsNotEmpty(name);
|
AssertUtil.assertIsNotEmpty(name);
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ import javax.xml.bind.Marshaller;
|
|||||||
*
|
*
|
||||||
* @param <T>
|
* @param <T>
|
||||||
*/
|
*/
|
||||||
public class JAXBStore<T> implements Store<T>
|
public class JAXBStore<T> extends AbstractListenableStore<T>
|
||||||
{
|
{
|
||||||
|
|
||||||
/** the logger for JAXBStore */
|
/** the logger for JAXBStore */
|
||||||
@@ -149,6 +149,8 @@ public class JAXBStore<T> implements Store<T>
|
|||||||
|
|
||||||
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
|
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
|
||||||
marshaller.marshal(object, configFile);
|
marshaller.marshal(object, configFile);
|
||||||
|
|
||||||
|
fireEvent(object);
|
||||||
}
|
}
|
||||||
catch (JAXBException ex)
|
catch (JAXBException ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ import java.io.IOException;
|
|||||||
* @author Sebastian Sdorra
|
* @author Sebastian Sdorra
|
||||||
*/
|
*/
|
||||||
@Singleton
|
@Singleton
|
||||||
public class JAXBStoreFactory implements StoreFactory
|
public class JAXBStoreFactory implements ListenableStoreFactory
|
||||||
{
|
{
|
||||||
|
|
||||||
/** Field description */
|
/** Field description */
|
||||||
@@ -108,7 +108,7 @@ public class JAXBStoreFactory implements StoreFactory
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public <T> Store<T> getStore(Class<T> type, String name)
|
public <T> JAXBStore<T> getStore(Class<T> type, String name)
|
||||||
{
|
{
|
||||||
File configFile = new File(configDirectory, name.concat(FILE_EXTENSION));
|
File configFile = new File(configDirectory, name.concat(FILE_EXTENSION));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user