Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Taal2012-11-02 07:12:05 +0000
committerMartin Taal2012-11-02 07:12:05 +0000
commitfc9330d9ae331abe2351b056d5ab6881b3c4ccdb (patch)
treeea9e230528971f85931455f72dd6184f90365e7f /hibernate
parent82b64c8b5966329827a65c03ac20488cd39fbca9 (diff)
downloadorg.eclipse.emf.teneo-fc9330d9ae331abe2351b056d5ab6881b3c4ccdb.tar.gz
org.eclipse.emf.teneo-fc9330d9ae331abe2351b056d5ab6881b3c4ccdb.tar.xz
org.eclipse.emf.teneo-fc9330d9ae331abe2351b056d5ab6881b3c4ccdb.zip
Added support for mixed content and auditing
Diffstat (limited to 'hibernate')
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbDataStore.java18
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbEntityDataStore.java4
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbSessionDataStore.java5
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java66
-rwxr-xr-xhibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditProcessHandler.java32
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditVersionProvider.java26
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoAuditEntryImpl.java1
-rw-r--r--hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoauditingFactoryImpl.java1
8 files changed, 104 insertions, 49 deletions
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbDataStore.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbDataStore.java
index a93108bf7..6b07ad705 100755
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbDataStore.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbDataStore.java
@@ -195,6 +195,8 @@ public abstract class HbDataStore implements DataStore {
private boolean auditing = false;
private List<EPackage> auditingEPackages = new ArrayList<EPackage>();
+ private AuditHandler auditHandler = null;
+
public EPackage.Registry getPackageRegistry() {
if (packageRegistry == null) {
return PackageRegistryProvider.getInstance().getPackageRegistry();
@@ -293,7 +295,7 @@ public abstract class HbDataStore implements DataStore {
final List<EPackage> epacks = new ArrayList<EPackage>(Arrays.asList(getEPackages()));
auditingEPackages.clear();
for (EPackage ePackage : originalEPackages) {
- auditingEPackages.add(AuditHandler.getInstance().createAuditingEPackage(this, ePackage,
+ auditingEPackages.add(getAuditHandler().createAuditingEPackage(this, ePackage,
getPackageRegistry(), getPersistenceOptions()));
}
epacks.add(TeneoauditingPackage.eINSTANCE);
@@ -626,7 +628,7 @@ public abstract class HbDataStore implements DataStore {
}
// don't consider the auditing eclasses to be a top eclass
- if (AuditHandler.getInstance().getModelElement(eClass) != null) {
+ if (getAuditHandler().getModelElement(eClass) != null) {
return true;
}
if (TeneoauditingPackage.eNS_URI.equals(eClass.getEPackage().getNsURI())) {
@@ -1885,4 +1887,16 @@ public abstract class HbDataStore implements DataStore {
Boolean.toString(auditing));
this.auditing = auditing;
}
+
+ public AuditHandler getAuditHandler() {
+ if (auditHandler == null) {
+ auditHandler = getExtensionManager().getExtension(AuditHandler.class);
+ auditHandler.setDataStore(this);
+ }
+ return auditHandler;
+ }
+
+ public void setAuditHandler(AuditHandler auditHandler) {
+ this.auditHandler = auditHandler;
+ }
} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbEntityDataStore.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbEntityDataStore.java
index 52f29df39..1a8f51eef 100755
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbEntityDataStore.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbEntityDataStore.java
@@ -89,6 +89,10 @@ public class HbEntityDataStore extends HbDataStore implements EntityManagerFacto
/** Initializes this Data Store */
@Override
public void initialize() {
+
+ // start with a fresh one
+ setAuditHandler(null);
+
if (ejb3Configuration != null && isResetConfigurationOnInitialization()) {
ejb3Configuration = null;
}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbSessionDataStore.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbSessionDataStore.java
index 11c303ed0..9001e3d42 100755
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbSessionDataStore.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbSessionDataStore.java
@@ -75,6 +75,9 @@ public class HbSessionDataStore extends HbBaseSessionDataStore {
@Override
public void initialize() {
+ // start with a fresh one
+ setAuditHandler(null);
+
if (hbConfiguration != null && isResetConfigurationOnInitialization()) {
hbConfiguration = null;
}
@@ -241,7 +244,7 @@ public class HbSessionDataStore extends HbBaseSessionDataStore {
}
}
- System.err.println(getMappingXML());
+ // System.err.println(getMappingXML());
getConfiguration().addXML(getMappingXML());
}
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java
index 6ed21c199..169f5dcc0 100644
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditHandler.java
@@ -39,6 +39,7 @@ import org.eclipse.emf.ecore.util.FeatureMapUtil;
import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
import org.eclipse.emf.teneo.Constants;
import org.eclipse.emf.teneo.PersistenceOptions;
+import org.eclipse.emf.teneo.extension.ExtensionPoint;
import org.eclipse.emf.teneo.hibernate.HbDataStore;
import org.eclipse.emf.teneo.hibernate.HbStoreException;
import org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.TeneoAuditEntry;
@@ -53,23 +54,15 @@ import org.hibernate.engine.spi.SessionImplementor;
*
* @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
*/
-public class AuditHandler {
+public class AuditHandler implements ExtensionPoint {
public static final String ID_SEPARATOR = ";";
- private static AuditHandler instance = new AuditHandler();
-
- public static AuditHandler getInstance() {
- return instance;
- }
-
- public static void setInstance(AuditHandler instance) {
- AuditHandler.instance = instance;
- }
-
/** Constructor by id */
private final ConcurrentHashMap<String, Constructor<?>> constructors = new ConcurrentHashMap<String, Constructor<?>>();
+ private HbDataStore dataStore;
+
/**
* Copy the content from the source to the target, the copy action will translate all
* {@link EReference} values to a String containing the id.
@@ -99,12 +92,11 @@ public class AuditHandler {
if (targetEFeature instanceof EAttribute && sourceEFeature instanceof EReference) {
if (sourceEFeature.isMany()) {
for (Object value : (Collection<?>) source.eGet(sourceEFeature)) {
- final String idAsString = AuditHandler.getInstance().entityToIdString(session, value);
+ final String idAsString = entityToIdString(session, value);
((Collection<Object>) auditEntry.eGet(targetEFeature)).add(idAsString);
}
} else {
- final String idAsString = AuditHandler.getInstance().entityToIdString(session,
- source.eGet(sourceEFeature));
+ final String idAsString = entityToIdString(session, source.eGet(sourceEFeature));
auditEntry.eSet(targetEFeature, idAsString);
}
} else {
@@ -112,9 +104,8 @@ public class AuditHandler {
if (FeatureMapUtil.isFeatureMap(sourceEFeature)) {
for (Object value : ((Collection<?>) source.eGet(sourceEFeature))) {
final FeatureMap.Entry sourceEntry = (FeatureMap.Entry) value;
- final EStructuralFeature targetEntryFeature = AuditHandler.getInstance()
- .getAuditingModelElement(sourceEntry.getEStructuralFeature(),
- auditEntry.eClass().getName());
+ final EStructuralFeature targetEntryFeature = getAuditingModelElement(
+ sourceEntry.getEStructuralFeature(), auditEntry.eClass().getName());
final FeatureMap.Entry targetEntry = createFeatureMapEntry(session,
targetEntryFeature, sourceEntry);
((Collection<Object>) auditEntry.eGet(targetEFeature)).add(targetEntry);
@@ -162,7 +153,7 @@ public class AuditHandler {
FeatureMap.Entry sourceEntry) {
Object value = sourceEntry.getValue();
if (sourceEntry.getEStructuralFeature() instanceof EReference) {
- value = AuditHandler.getInstance().entityToIdString(session, value);
+ value = entityToIdString(session, value);
}
return FeatureMapUtil.createEntry(eFeature, value);
}
@@ -231,7 +222,7 @@ public class AuditHandler {
return null;
}
if (auditModelElement instanceof EClass) {
- return (T) StoreUtil.stringToEClass(id);
+ return (T) StoreUtil.stringToEClass(dataStore.getPackageRegistry(), id);
}
return (T) StoreUtil.stringToStructureFeature(id);
}
@@ -252,6 +243,13 @@ public class AuditHandler {
public <T extends EModelElement> T getAuditingModelElement(T modelElement, String qualifier) {
final EAnnotation eAnnotation = modelElement
.getEAnnotation(Constants.ANNOTATION_SOURCE_AUDITING);
+
+ if (eAnnotation == null
+ && modelElement instanceof EStructuralFeature
+ && ((EStructuralFeature) modelElement).getEContainingClass().getEPackage() == XMLTypePackage.eINSTANCE) {
+ return modelElement;
+ }
+
if (eAnnotation == null) {
return null;
}
@@ -264,7 +262,7 @@ public class AuditHandler {
return null;
}
if (modelElement instanceof EClass) {
- return (T) StoreUtil.stringToEClass(id);
+ return (T) StoreUtil.stringToEClass(dataStore.getPackageRegistry(), id);
}
return (T) StoreUtil.stringToStructureFeature(id);
}
@@ -302,12 +300,27 @@ public class AuditHandler {
if (ExtendedMetaData.INSTANCE.getGroup(eStructuralFeature) != null) {
return false;
}
+ if (ExtendedMetaData.INSTANCE.getAffiliation(eStructuralFeature) != null) {
+ return false;
+ }
if (!eStructuralFeature.isChangeable() || eStructuralFeature.isVolatile()
|| eStructuralFeature.isDerived()) {
+ // special case the eclass is mixed
+ if (ExtendedMetaData.INSTANCE.getMixedFeature(eStructuralFeature.getEContainingClass()) != null) {
+ return false;
+ }
+
return true;
}
+ if (eStructuralFeature instanceof EReference) {
+ final EReference eReference = (EReference) eStructuralFeature;
+ if (isNoAuditing(po, eReference.getEType())) {
+ return true;
+ }
+ }
+
return eStructuralFeature.isTransient()
&& (eStructuralFeature instanceof EAttribute
|| ((EReference) eStructuralFeature).getEOpposite() == null
@@ -389,6 +402,11 @@ public class AuditHandler {
eAuditingPackage.getEClassifiers().add(auditingEClass);
setAuditingAssociation(eClass, auditingEClass, null);
+ if (null != eClass.getEAnnotation(ExtendedMetaData.ANNOTATION_URI)) {
+ auditingEClass.getEAnnotations().add(
+ EcoreUtil.copy(eClass.getEAnnotation(ExtendedMetaData.ANNOTATION_URI)));
+ }
+
if (eClass.getEAnnotation(Constants.ANNOTATION_SOURCE_TENEO_JPA_AUDITING) != null) {
final EAnnotation teneoAnnotation = EcoreUtil.copy(eClass
.getEAnnotation(Constants.ANNOTATION_SOURCE_TENEO_JPA));
@@ -463,4 +481,12 @@ public class AuditHandler {
return eAuditingPackage;
}
+
+ public HbDataStore getDataStore() {
+ return dataStore;
+ }
+
+ public void setDataStore(HbDataStore dataStore) {
+ this.dataStore = dataStore;
+ }
} \ No newline at end of file
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditProcessHandler.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditProcessHandler.java
index 63a8637cc..28c0e97c4 100755
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditProcessHandler.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditProcessHandler.java
@@ -69,7 +69,8 @@ public class AuditProcessHandler implements AfterTransactionCompletionProcess,
return false;
}
final EObject eObject = (EObject) entity;
- final EClass auditEClass = AuditHandler.getInstance().getAuditingModelElement(eObject.eClass());
+ final EClass auditEClass = dataStore.getAuditHandler()
+ .getAuditingModelElement(eObject.eClass());
return auditEClass != null;
}
@@ -112,6 +113,10 @@ public class AuditProcessHandler implements AfterTransactionCompletionProcess,
&& (existingAuditWork.getAuditKind() == TeneoAuditKind.ADD && auditWork.getAuditKind() == TeneoAuditKind.DELETE)) {
// delete with a preceding add, don't do anything, get rid of it
auditWorks.remove(existingAuditWork);
+ } else if (existingAuditWork != null
+ && (existingAuditWork.getAuditKind() == TeneoAuditKind.UPDATE && auditWork.getAuditKind() == TeneoAuditKind.ADD)) {
+ // happens if the id has been set manually
+ auditWorks.remove(existingAuditWork);
} else {
auditWorks.remove(existingAuditWork);
@@ -180,7 +185,6 @@ public class AuditProcessHandler implements AfterTransactionCompletionProcess,
}
private void doAuditWorkInSession(Session session, List<AuditWork> auditWorks) {
-
final long commitTime = System.currentTimeMillis();
final List<Object> evictObjects = new ArrayList<Object>();
@@ -195,7 +199,7 @@ public class AuditProcessHandler implements AfterTransactionCompletionProcess,
for (AuditWork auditWork : auditWorks) {
final EObject eObject = (EObject) auditWork.getEntity();
if (lastEClass != eObject.eClass()) {
- auditEntryEClass = AuditHandler.getInstance().getAuditingModelElement(eObject.eClass());
+ auditEntryEClass = dataStore.getAuditHandler().getAuditingModelElement(eObject.eClass());
lastEClass = eObject.eClass();
}
final String auditEntryEntityName = HbUtil.getEntityName(auditEntryEClass);
@@ -207,18 +211,18 @@ public class AuditProcessHandler implements AfterTransactionCompletionProcess,
auditEntry.setTeneo_commit_info(commitInfo);
auditEntry.setTeneo_end(DEFAULT_END_TIMESTAMP);
auditEntry.setTeneo_start(commitTime);
- auditEntry.setTeneo_object_id(AuditHandler.getInstance().entityToIdString(session,
+ auditEntry.setTeneo_object_id(dataStore.getAuditHandler().entityToIdString(session,
auditWork.getEntity()));
if (auditWork.getEntity() instanceof EObject
&& null != ((EObject) auditWork.getEntity()).eContainer()) {
- auditEntry.setTeneo_container_id(AuditHandler.getInstance().entityToIdString(session,
+ auditEntry.setTeneo_container_id(dataStore.getAuditHandler().entityToIdString(session,
((EObject) auditWork.getEntity()).eContainer()));
auditEntry.setTeneo_container_feature_id(((InternalEObject) auditWork.getEntity())
.eContainerFeatureID());
}
- AuditHandler.getInstance().copyContentToAuditEntry(session, (EObject) auditWork.getEntity(),
+ dataStore.getAuditHandler().copyContentToAuditEntry(session, (EObject) auditWork.getEntity(),
auditEntry, auditWork.getAuditKind() != TeneoAuditKind.DELETE);
if (auditWork.getAuditKind() != TeneoAuditKind.ADD) {
@@ -233,13 +237,19 @@ public class AuditProcessHandler implements AfterTransactionCompletionProcess,
infoQuery.setMaxResults(1);
infoQuery.setString("objectId", auditEntry.getTeneo_object_id());
- final TeneoAuditEntry previousEntry = (TeneoAuditEntry) infoQuery.list().get(0);
- previousEntry.setTeneo_end(commitTime - 1);
- evictObjects.add(previousEntry);
+ @SuppressWarnings("unchecked")
+ final List<Object> list = infoQuery.list();
+ if (!list.isEmpty()) {
+ // list can be empty this happens if the item has an id set, then hibernate fires
+ // an update event and not an add event
+ final TeneoAuditEntry previousEntry = (TeneoAuditEntry) list.get(0);
+ previousEntry.setTeneo_end(commitTime - 1);
+ evictObjects.add(previousEntry);
- auditEntry.setTeneo_previous_start(previousEntry.getTeneo_start());
+ auditEntry.setTeneo_previous_start(previousEntry.getTeneo_start());
- session.update(previousEntry);
+ session.update(previousEntry);
+ }
}
session.save(auditEntryEntityName, auditEntry);
evictObjects.add(auditEntry);
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditVersionProvider.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditVersionProvider.java
index 630dc3e11..f0f16ceb4 100644
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditVersionProvider.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/AuditVersionProvider.java
@@ -129,14 +129,14 @@ public class AuditVersionProvider implements ExtensionPoint {
public List<TeneoAuditEntry> getAllAuditEntries(EClass eClass, Object id) {
checkState();
- final EClass auditingEClass = AuditHandler.getInstance().getAuditingModelElement(eClass);
+ final EClass auditingEClass = dataStore.getAuditHandler().getAuditingModelElement(eClass);
final String entityName = auditingEClass.getEAnnotation(Constants.ANNOTATION_SOURCE_TENEO_JPA)
.getDetails().get(Constants.ANNOTATION_KEY_ENTITY_NAME);
final Query qry = getSession()
.createQuery(
"select e from " + entityName
+ " e where teneo_object_id=:objectId order by e.teneo_start");
- final String idAsString = AuditHandler.getInstance().idToString(eClass, id);
+ final String idAsString = dataStore.getAuditHandler().idToString(eClass, id);
qry.setParameter("objectId", idAsString);
final List<TeneoAuditEntry> result = new ArrayList<TeneoAuditEntry>();
for (Object o : qry.list()) {
@@ -156,13 +156,13 @@ public class AuditVersionProvider implements ExtensionPoint {
public TeneoAuditEntry getLatestAuditEntry(EClass eClass, Object id) {
checkState();
- final EClass auditingEClass = AuditHandler.getInstance().getAuditingModelElement(eClass);
+ final EClass auditingEClass = dataStore.getAuditHandler().getAuditingModelElement(eClass);
final String entityName = auditingEClass.getEAnnotation(Constants.ANNOTATION_SOURCE_TENEO_JPA)
.getDetails().get(Constants.ANNOTATION_KEY_ENTITY_NAME);
final Query qry = getSession().createQuery(
"select e from " + entityName + " e where teneo_object_id=:objectId and teneo_end="
+ AuditProcessHandler.DEFAULT_END_TIMESTAMP);
- final String idAsString = AuditHandler.getInstance().idToString(eClass, id);
+ final String idAsString = dataStore.getAuditHandler().idToString(eClass, id);
qry.setParameter("objectId", idAsString);
qry.setMaxResults(1);
return (TeneoAuditEntry) qry.uniqueResult();
@@ -174,9 +174,9 @@ public class AuditVersionProvider implements ExtensionPoint {
* {@link TeneoAuditEntry#getTeneo_start()}.
*/
public EObject getRevision(TeneoAuditEntry auditEntry) {
- final EClass eClass = AuditHandler.getInstance().getModelElement(auditEntry.eClass());
+ final EClass eClass = dataStore.getAuditHandler().getModelElement(auditEntry.eClass());
final long timeStamp = auditEntry.getTeneo_start();
- final AuditReference auditReference = AuditHandler.getInstance().fromString(
+ final AuditReference auditReference = dataStore.getAuditHandler().fromString(
timeStamp + AuditHandler.ID_SEPARATOR + auditEntry.getTeneo_object_id());
return getRevision(eClass, auditReference.getId(), timeStamp);
}
@@ -232,12 +232,12 @@ public class AuditVersionProvider implements ExtensionPoint {
public EObject getRevision(EClass eClass, Object id, long timeStamp) {
checkState();
- final String idAsString = AuditHandler.getInstance().idToString(eClass, id);
+ final String idAsString = dataStore.getAuditHandler().idToString(eClass, id);
final String fullId = timeStamp + AuditHandler.ID_SEPARATOR + idAsString;
if (auditResource.getEObjectFromCache(fullId) != null) {
return auditResource.getEObjectFromCache(fullId);
}
- final EClass auditingEClass = AuditHandler.getInstance().getAuditingModelElement(eClass);
+ final EClass auditingEClass = dataStore.getAuditHandler().getAuditingModelElement(eClass);
final String entityName = auditingEClass.getEAnnotation(Constants.ANNOTATION_SOURCE_TENEO_JPA)
.getDetails().get(Constants.ANNOTATION_KEY_ENTITY_NAME);
@@ -282,7 +282,7 @@ public class AuditVersionProvider implements ExtensionPoint {
if (FeatureMapUtil.isFeatureMap(targetEFeature)) {
for (Object value : ((Collection<?>) auditEntry.eGet(sourceEFeature))) {
final FeatureMap.Entry sourceEntry = (FeatureMap.Entry) value;
- final EStructuralFeature targetEntryFeature = AuditHandler.getInstance()
+ final EStructuralFeature targetEntryFeature = dataStore.getAuditHandler()
.getModelElement(sourceEntry.getEStructuralFeature());
final FeatureMap.Entry targetEntry = createFeatureMapEntry(targetEntryFeature,
sourceEntry, timeStamp);
@@ -290,12 +290,12 @@ public class AuditVersionProvider implements ExtensionPoint {
}
} else if (targetEFeature.isMany()) {
for (Object value : ((Collection<?>) auditEntry.eGet(sourceEFeature))) {
- ((Collection<Object>) target.eGet(targetEFeature)).add(AuditHandler.getInstance()
+ ((Collection<Object>) target.eGet(targetEFeature)).add(dataStore.getAuditHandler()
.convertValue(targetEFeature, value));
}
} else {
target.eSet(targetEFeature,
- AuditHandler.getInstance().convertValue(targetEFeature,
+ dataStore.getAuditHandler().convertValue(targetEFeature,
auditEntry.eGet(sourceEFeature)));
}
}
@@ -334,7 +334,7 @@ public class AuditVersionProvider implements ExtensionPoint {
if (eObject != null) {
return eObject;
}
- final AuditReference reference = AuditHandler.getInstance().fromString(idStr);
+ final AuditReference reference = dataStore.getAuditHandler().fromString(idStr);
final EClass refEClass = dataStore.getEntityNameStrategy().toEClass(reference.getEntityName());
eObject = refEClass.getEPackage().getEFactoryInstance().create(refEClass);
((InternalEObject) eObject).eSetProxyURI(URI.createURI(URI_STR + "#" + idStr));
@@ -385,7 +385,7 @@ public class AuditVersionProvider implements ExtensionPoint {
}
// read the auditEntry from the session
- final AuditReference reference = AuditHandler.getInstance().fromString(uriFragment);
+ final AuditReference reference = dataStore.getAuditHandler().fromString(uriFragment);
final EClass eClass = dataStore.getEntityNameStrategy().toEClass(reference.getEntityName());
EObject version = AuditVersionProvider.this.getRevision(eClass, reference.getId(),
reference.getTimeStamp());
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoAuditEntryImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoAuditEntryImpl.java
index da89baa61..6c210b489 100644
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoAuditEntryImpl.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoAuditEntryImpl.java
@@ -3,7 +3,6 @@
package org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.impl;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoauditingFactoryImpl.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoauditingFactoryImpl.java
index 70dae50c3..0df628c04 100644
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoauditingFactoryImpl.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/auditing/model/teneoauditing/impl/TeneoauditingFactoryImpl.java
@@ -8,7 +8,6 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.*;
import org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.TeneoAuditCommitInfo;
import org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.TeneoAuditEntry;
import org.eclipse.emf.teneo.hibernate.auditing.model.teneoauditing.TeneoAuditKind;

Back to the top