Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Taal2009-03-19 12:23:55 +0000
committerMartin Taal2009-03-19 12:23:55 +0000
commit61dacf3eabf9f880b2cc5aa633b7608745af2952 (patch)
treeb80b901e8165f0326134002494f0a1ec5749eccb
parentcc078da2908a30e485f6c47089a6773acf315529 (diff)
downloadcdo-61dacf3eabf9f880b2cc5aa633b7608745af2952.tar.gz
cdo-61dacf3eabf9f880b2cc5aa633b7608745af2952.tar.xz
cdo-61dacf3eabf9f880b2cc5aa633b7608745af2952.zip
Solved compile issues hibernate
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java60
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/mappings/meta.hbm.xml92
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateEPackage.java45
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernatePackageHandler.java221
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java19
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/SystemInformation.java58
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOInterceptor.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/Hibernate AllTests (OSGi).launch390
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/src/app.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/AllTests.java2
11 files changed, 238 insertions, 659 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java
index 9969aa731f..6e31e207a1 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java
@@ -16,26 +16,16 @@ import org.eclipse.emf.cdo.server.internal.hibernate.HibernateMappingProvider;
import org.eclipse.emf.cdo.server.internal.hibernate.HibernateStore;
import org.eclipse.emf.cdo.server.internal.hibernate.HibernateUtil;
-import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.om.trace.ContextTracer;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
-import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
import org.eclipse.emf.teneo.extension.ExtensionManager;
import org.eclipse.emf.teneo.extension.ExtensionManagerFactory;
import org.eclipse.emf.teneo.hibernate.cdo.CDOHelper;
import org.hibernate.cfg.Configuration;
-import java.io.ByteArrayInputStream;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Properties;
@@ -93,53 +83,15 @@ public class TeneoHibernateMappingProvider extends HibernateMappingProvider
final Properties properties = HibernateUtil.getInstance().getPropertiesFromStore(getHibernateStore());
- // TODO: handle nested package structures
- final List<EPackage> epacks = new ArrayList<EPackage>();
- final ResourceSet rs = new ResourceSetImpl();
- rs.getPackageRegistry().put(EcorePackage.eNS_URI, EcorePackage.eINSTANCE);
- rs.getPackageRegistry().put(XMLTypePackage.eNS_URI, XMLTypePackage.eINSTANCE);
- rs.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new EcoreResourceFactoryImpl());
-
- for (EPackage ePackage : getHibernateStore().getPackageHandler().getEPackages())
- {
- if (TRACER.isEnabled())
- {
- TRACER.trace("Using ePackage : " + ePackage.getName() + " - " + ePackage.getNsURI());
- }
-
- final String ecoreStr = ePackage.getEcore();
- if (ecoreStr == null)
- {
- // happens at initialization time
- continue;
- }
-
- // this assumes that the (default) encoding is the same on both the client and server
- final ByteArrayInputStream bis = new ByteArrayInputStream(ecoreStr.getBytes());
-
- // fool the resourceset by passing a fake uri
- final URI epackageURI = URI.createURI(ePackage.getNsURI());
- final Resource resource = rs.createResource(epackageURI);
- try
- {
- resource.load(bis, Collections.EMPTY_MAP);
-
- // now the toplevel content should be EPackage
- for (Object contentObject : resource.getContents())
- {
- epacks.addAll(resolveSubPackages((EPackage)contentObject));
- }
- }
- catch (Exception e)
- {
- throw WrappedException.wrap(e);
- }
- }
-
// translate the list of EPackages to an array
+ final List<EPackage> epacks = getHibernateStore().getPackageHandler().getEPackages();
final EPackage[] ePackageArray = epacks.toArray(new EPackage[epacks.size()]);
properties.put("teneo.mapping.also_map_as_class", "false");
- return CDOHelper.getInstance().generateMapping(ePackageArray, properties, extensionManager);
+ String hbm = CDOHelper.getInstance().generateMapping(ePackageArray, properties, extensionManager);
+ System.err.println(hbm);
+ // to solve an issue with older versions of teneo
+ hbm = hbm.replaceAll("_cont", "cont");
+ return hbm;
}
// this will check the global package registry and read the epackages from
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/mappings/meta.hbm.xml b/plugins/org.eclipse.emf.cdo.server.hibernate/mappings/meta.hbm.xml
index 752bc9002b..257dac4f16 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/mappings/meta.hbm.xml
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/mappings/meta.hbm.xml
@@ -2,73 +2,51 @@
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.eclipse.emf.cdo.internal.common.model">
- <class name="org.eclipse.emf.cdo.common.model.CDOClassProxy" table="cdo_classes_proxy" lazy="false">
- <id column="id" type="int">
+ <class name="CDOPackageUnitImpl" table="cdo_package_unit" lazy="false" entity-name="CDOPackageUnit">
+
+ <id column="id" type="long">
<generator class="increment" />
</id>
- <many-to-one name="classRef" class="org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl" column="cdoClassProxy"
- not-null="false" cascade="all" access="field" />
+
+ <property name="state" access="field" />
+ <property name="type" access="field" />
+ <property name="originalType" access="field" />
+ <property name="timeStamp" access="field" />
+
+ <array name="packageInfos" cascade="all, delete-orphan" access="field" inverse="true">
+ <key />
+ <list-index />
+ <one-to-many class="CDOPackageInfoImpl"/>
+ </array>
+
</class>
- <class name="org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl" table="cdo_classes_ref" lazy="false">
- <id column="id" type="int">
- <generator class="increment" />
- </id>
- <property name="packageURI" column="packageURI" type="string" not-null="true" access="field" />
- <property name="classifierID" column="classifier" type="int" not-null="true" access="field" />
- </class>
+ <class name="CDOPackageInfoImpl" table="cdo_package_info" lazy="false">
- <class name="CDOModelElementImpl" table="cdo_modelelements" lazy="false">
- <id name="serverInfo" column="id" type="int">
+ <id column="id" type="long">
<generator class="increment" />
</id>
- <property name="name" type="string" not-null="true" length="255" />
- </class>
-
- <joined-subclass name="CDOPackageImpl" table="cdo_packages" lazy="false" extends="CDOModelElementImpl">
- <key />
- <property name="packageURI" column="uri" type="string" not-null="true" length="255" />
- <property name="ecore" type="text" not-null="false" length="32767"/>
- <property name="dynamic" type="boolean" not-null="true" />
- <property name="parentURI" column="parentUri" type="string" length="255" />
+
+ <many-to-one name="packageUnit" entity-name="CDOPackageUnit" not-null="false" access="field"/>
+
+ <property name="packageURI" not-null="true" length="255" access="field" />
+ <property name="parentURI" length="255" access="field" />
<property name="metaIDRange" type="org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOIDMetaRangeUserType"
- not-null="true">
+ not-null="true" access="field">
<column name="metaIDStart" />
<column name="metaIDSize" />
</property>
- <list name="classes" lazy="false" cascade="all, delete-orphan" access="field">
- <key />
- <list-index />
- <one-to-many class="CDOClassImpl" />
- </list>
- </joined-subclass>
+ </class>
- <joined-subclass name="CDOClassImpl" table="cdo_classes" lazy="false" extends="CDOModelElementImpl">
- <key />
- <property name="classifierID" column="classifier" type="int" not-null="true" />
- <property name="abstract" column="abstract" type="boolean" not-null="true" />
- <list name="superTypes" lazy="false" cascade="merge,persist,save-update,lock,refresh" access="field">
- <key>
- <column name="supertype" />
- </key>
- <list-index />
- <many-to-many class="org.eclipse.emf.cdo.common.model.CDOClassProxy" />
- </list>
- <list name="features" lazy="false" cascade="all, delete-orphan" access="field">
- <key />
- <list-index />
- <one-to-many class="CDOFeatureImpl" />
- </list>
- </joined-subclass>
+ <class name="org.eclipse.emf.cdo.server.internal.hibernate.HibernateEPackage" table="cdo_hibernate_epackage" lazy="false">
+ <id name="nsUri" access="property"/>
+ <property name="EPackageBlob" access="property"/>
+ </class>
- <joined-subclass name="CDOFeatureImpl" table="cdo_features" extends="CDOModelElementImpl" lazy="false">
- <key />
- <property name="featureID" column="feature" type="int" not-null="true" />
- <property name="type" type="org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOTypeUserType" not-null="false" />
- <many-to-one name="referenceTypeProxy" class="org.eclipse.emf.cdo.common.model.CDOClassProxy" column="reftype"
- not-null="false" cascade="persist, merge, save-update, evict, replicate, lock, refresh"
- access="field" />
- <property name="many" type="boolean" not-null="true" />
- <property name="containment" type="boolean" not-null="false" />
- </joined-subclass>
-</hibernate-mapping> \ No newline at end of file
+ <class name="org.eclipse.emf.cdo.server.internal.hibernate.SystemInformation" table="cdo_system_information" lazy="false">
+ <id column="id" type="int">
+ <generator class="increment" />
+ </id>
+ <property name="creationTime"/>
+ </class>
+ </hibernate-mapping> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateEPackage.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateEPackage.java
new file mode 100644
index 0000000000..836efea848
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateEPackage.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2004 - 2009 Martin Taal and others. and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal - initial API and implementation
+ * Eike Stepper - maintenance
+ */
+package org.eclipse.emf.cdo.server.internal.hibernate;
+
+/**
+ * Wraps the EPackage of a CDOPackageUnit.
+ *
+ * @author Martin Taal
+ */
+public class HibernateEPackage
+{
+ private String nsUri;
+
+ public String getNsUri()
+ {
+ return nsUri;
+ }
+
+ public void setNsUri(String nsUri)
+ {
+ this.nsUri = nsUri;
+ }
+
+ private byte[] ePackageBlob;
+
+ public byte[] getEPackageBlob()
+ {
+ return ePackageBlob;
+ }
+
+ public void setEPackageBlob(byte[] ePackageBlob)
+ {
+ this.ePackageBlob = ePackageBlob;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernatePackageHandler.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernatePackageHandler.java
index 36dc09afa9..058536cf2f 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernatePackageHandler.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernatePackageHandler.java
@@ -11,22 +11,18 @@
*/
package org.eclipse.emf.cdo.server.internal.hibernate;
-import org.eclipse.emf.cdo.common.model.CDOPackageInfo;
import org.eclipse.emf.cdo.common.model.EMFUtil;
import org.eclipse.emf.cdo.server.IStoreAccessor;
import org.eclipse.emf.cdo.server.internal.hibernate.bundle.OM;
import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageRegistry;
import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageUnit;
-import org.eclipse.net4j.util.ObjectUtil;
import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.io.IOUtil;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
import org.eclipse.net4j.util.om.trace.ContextTracer;
-import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EStructuralFeature;
import org.hibernate.Criteria;
import org.hibernate.Session;
@@ -54,6 +50,10 @@ public class HibernatePackageHandler extends Lifecycle
{
private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, HibernatePackageHandler.class);
+ private static final boolean ZIP_PACKAGE_BYTES = true;
+
+ private static final String CDO_PACKAGE_UNIT_ENTITY_NAME = "CDOPackageUnit";
+
private Configuration configuration;
private SessionFactory sessionFactory;
@@ -99,19 +99,6 @@ public class HibernatePackageHandler extends Lifecycle
ePackages.add(ePackage);
}
- XXX(); // XXX Still needed?
- // for (EPackage ePackage : ePackages)
- // {
- // // force resolve
- // if (ePackage.getClassCount() == 0)
- // {
- // if (TRACER.isEnabled())
- // {
- // TRACER.trace("Returning " + ePackage.getNsURI());
- // }
- // }
- // }
-
return ePackages;
}
@@ -134,25 +121,23 @@ public class HibernatePackageHandler extends Lifecycle
try
{
+ // first store and update the new packageunits and the epackages
for (InternalCDOPackageUnit packageUnit : packageUnits)
{
- XXX(); // XXX Really on a per EPackage base?
- for (EPackage ePackage : packageUnit.getEPackages(true))
- {
- if (ePackageExistsAndIsUnchanged(ePackage))
- {
- OM.LOG.warn("EPackage " + ePackage.getNsURI() + " already exists not persisting it again!");
- continue;
- }
+ session.saveOrUpdate("CDOPackageUnit", packageUnit);
- if (TRACER.isEnabled())
- {
- TRACER.trace("Persisting EPackage " + ePackage.getNsURI());
- }
-
- session.saveOrUpdate(ePackage);
- updated = true;
+ if (packageUnit.getPackageInfos().length > 0)
+ {
+ final HibernateEPackage hbEPackage = new HibernateEPackage();
+ final String rootNSUri = packageUnit.getTopLevelPackageInfo().getPackageURI();
+ hbEPackage.setNsUri(rootNSUri);
+ final EPackage.Registry registry = hibernateStore.getRepository().getPackageRegistry();
+ final EPackage rootEPackage = registry.getEPackage(rootNSUri);
+ hbEPackage.setEPackageBlob(EMFUtil.getEPackageBytes(rootEPackage, true, registry));
+ session.saveOrUpdate(packageUnit);
}
+
+ updated = true;
}
tx.commit();
@@ -175,59 +160,6 @@ public class HibernatePackageHandler extends Lifecycle
}
}
- protected boolean ePackageExistsAndIsUnchanged(EPackage newEPackage)
- {
- for (EPackage ePackage : getPackageRegistry().getEPackages())
- {
- if (ePackage.getClassCount() > 0 && ePackage.getNsURI().equals(newEPackage.getNsURI()))
- {
- String ecore = ePackage.getEcore();
- String newEcore = newEPackage.getEcore();
- return ObjectUtil.equals(ecore, newEcore);
- }
- }
-
- return false;
- }
-
- public void writePackage(EPackage ePackage)
- {
- XXX(); // XXX Is this method needed?
-
- if (ePackageExistsAndIsUnchanged(ePackage))
- {
- OM.LOG.warn("EPackage " + ePackage.getNsURI() + " already exists not persisting it again!");
- return;
- }
-
- Session session = getSessionFactory().openSession();
- Transaction tx = session.beginTransaction();
- boolean err = true;
- try
- {
- if (TRACER.isEnabled())
- {
- TRACER.trace("Persisting EPackage " + ePackage.getNsURI());
- }
-
- session.saveOrUpdate(ePackage);
- tx.commit();
- err = false;
- }
- finally
- {
- if (err)
- {
- tx.rollback();
- }
-
- session.close();
- }
-
- reset();
- hibernateStore.reInitialize();
- }
-
public Collection<InternalCDOPackageUnit> getPackageUnits()
{
readPackageUnits();
@@ -237,26 +169,22 @@ public class HibernatePackageHandler extends Lifecycle
// protected void readPackage(EPackage ePackage)
public EPackage[] loadPackageUnit(InternalCDOPackageUnit packageUnit)
{
- if (ePackage.getClassCount() > 0)
- { // already initialized go away
- return;
- }
-
+ final String nsUri = packageUnit.getTopLevelPackageInfo().getPackageURI();
if (TRACER.isEnabled())
{
- TRACER.trace("Reading EPackage with uri " + ePackage.getNsURI() + " from db");
+ TRACER.trace("Reading EPackages with root uri " + nsUri + " from db");
}
Session session = getSessionFactory().openSession();
-
+ session.beginTransaction();
try
{
- Criteria criteria = session.createCriteria(EPackage.class);
- criteria.add(Expression.eq("packageURI", ePackage.getNsURI()));
+ Criteria criteria = session.createCriteria(HibernateEPackage.class);
+ criteria.add(Expression.eq("nsUri", nsUri));
List<?> list = criteria.list();
if (list.size() != 1)
{
- throw new IllegalArgumentException("EPackage with uri " + ePackage.getNsURI() + " not present in the db");
+ throw new IllegalArgumentException("EPackage with uri " + nsUri + " not present in the db");
}
if (TRACER.isEnabled())
@@ -264,57 +192,24 @@ public class HibernatePackageHandler extends Lifecycle
TRACER.trace("Found " + list.size() + " EPackages in DB");
}
- EPackage dbPackage = (EPackage)list.get(0);
+ final HibernateEPackage hbEPackage = (HibernateEPackage)list.get(0);
if (TRACER.isEnabled())
{
- TRACER.trace("Read EPackage: " + ePackage.getName());
+ TRACER.trace("Read EPackage: " + nsUri);
}
- ((InternalEPackage)ePackage).setServerInfo(dbPackage.getServerInfo());
- ((InternalEPackage)ePackage).setName(dbPackage.getName());
- ((InternalEPackage)ePackage).setEcore(dbPackage.getEcore());
- ((InternalEPackage)ePackage).setMetaIDRange(ePackage.getMetaIDRange());
-
- final List<EClass> eClasses = new ArrayList<EClass>();
- for (EClass eClass : EMFUtil.getPersistentClasses(dbPackage))
- {
- eClasses.add(eClass);
- for (EClassProxy proxy : ((InternalEClass)eClass).getSuperTypeProxies())
- {
- proxy.setCDOPackageManager(hibernateStore.getRepository().getPackageRegistry());
- }
-
- for (EStructuralFeature feature : eClass.getFeatures())
- {
- final InternalCDOFeature internalFeature = (InternalCDOFeature)feature;
- internalFeature.setContainingClass(eClass);
- if (internalFeature.getReferenceTypeProxy() != null)
- {
- internalFeature.getReferenceTypeProxy().setCDOPackageManager(
- hibernateStore.getRepository().getPackageRegistry());
- }
- }
-
- // // force indices to be set
- // if (TODO.getAllPersistentFeatures(eClass).length > 0)
- // {
- // ((InternalEClass)eClass).getFeatureIndex(0);
- // }
- }
-
- ((InternalEPackage)ePackage).setClasses(eClasses);
+ final EPackage rootEPackage = EMFUtil.createEPackage(nsUri, hbEPackage.getEPackageBlob(), ZIP_PACKAGE_BYTES,
+ hibernateStore.getRepository().getPackageRegistry());
+ return EMFUtil.getAllPackages(rootEPackage);
}
finally
{
+ session.getTransaction().commit();
session.close();
}
-
- if (TRACER.isEnabled())
- {
- TRACER.trace("Finished reading EPackages");
- }
}
+ @SuppressWarnings("unchecked")
protected void readPackageUnits()
{
if (packageUnits == null || packageUnits.size() == 0)
@@ -324,32 +219,18 @@ public class HibernatePackageHandler extends Lifecycle
TRACER.trace("Reading EPackages from db");
}
- Collection<InternalCDOPackageUnit> result = new ArrayList<InternalCDOPackageUnit>();
Session session = getSessionFactory().openSession();
try
{
- Criteria criteria = session.createCriteria(EPackage.class);
+ Criteria criteria = session.createCriteria(CDO_PACKAGE_UNIT_ENTITY_NAME);
List<?> list = criteria.list();
if (TRACER.isEnabled())
{
- TRACER.trace("Found " + list.size() + " EPackages in DB");
- }
-
- for (Object object : list)
- {
- EPackage ePackage = (EPackage)object;
- if (TRACER.isEnabled())
- {
- TRACER.trace("Read EPackage: " + ePackage.getName());
- }
-
- result.add(new CDOPackageInfo(ePackage.getNsURI(), ePackage.getParentURI(), ePackage.isDynamic(), ePackage
- .getMetaIDRange()));
- ((InternalEPackage)ePackage).setPackageManager(hibernateStore.getRepository().getPackageRegistry());
+ TRACER.trace("Found " + list.size() + " CDOPackageUnits in DB");
}
- packageUnits = result;
+ packageUnits = (Collection<InternalCDOPackageUnit>)list;
}
finally
{
@@ -445,6 +326,42 @@ public class HibernatePackageHandler extends Lifecycle
}
}
+ SystemInformation getSystemInformation()
+ {
+ Session session = getSessionFactory().openSession();
+ session.beginTransaction();
+ try
+ {
+ final Criteria c = session.createCriteria(SystemInformation.class);
+ List<?> l = c.list();
+
+ final SystemInformation systemInformation;
+ if (l.size() == 0)
+ {
+ systemInformation = new SystemInformation();
+ systemInformation.setFirstTime(true);
+ systemInformation.setCreationTime(System.currentTimeMillis());
+ session.saveOrUpdate(systemInformation);
+ }
+ else if (l.size() > 1)
+ {
+ throw new IllegalStateException(
+ "More than one records in the cdo_system_information table, this is an illegal situation");
+ }
+ else
+ {
+ systemInformation = (SystemInformation)l.get(0);
+ systemInformation.setFirstTime(false);
+ }
+ return systemInformation;
+ }
+ finally
+ {
+ session.getTransaction().commit();
+ session.close();
+ }
+ }
+
protected void initSchema()
{
if (TRACER.isEnabled())
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
index b5a72618a7..aeb3f27f60 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
@@ -14,7 +14,6 @@ package org.eclipse.emf.cdo.server.internal.hibernate;
import org.eclipse.emf.cdo.common.id.CDOIDLibraryDescriptor;
import org.eclipse.emf.cdo.common.id.CDOIDLibraryProvider;
import org.eclipse.emf.cdo.common.id.CDOIDObjectFactory;
-import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.server.ISession;
import org.eclipse.emf.cdo.server.ITransaction;
import org.eclipse.emf.cdo.server.IView;
@@ -71,6 +70,8 @@ public class HibernateStore extends Store implements IHibernateStore
private boolean doDropSchema = false;
+ private SystemInformation systemInformation;
+
public HibernateStore(IHibernateMappingProvider mappingProvider)
{
super(TYPE, set(ChangeFormat.REVISION), set(RevisionTemporality.NONE), set(RevisionParallelism.NONE));
@@ -157,7 +158,7 @@ public class HibernateStore extends Store implements IHibernateStore
public long getCreationTime()
{
- return CDORevision.UNSPECIFIED_DATE;
+ return getSystemInformation().getCreationTime();
}
public HibernatePackageHandler getPackageHandler()
@@ -311,4 +312,18 @@ public class HibernateStore extends Store implements IHibernateStore
org.eclipse.emf.cdo.server.hibernate.internal.id.bundle.OM.BUNDLE);
}
}
+
+ public boolean isFirstTime()
+ {
+ return getSystemInformation().isFirstTime();
+ }
+
+ private SystemInformation getSystemInformation()
+ {
+ if (systemInformation == null)
+ {
+ systemInformation = getPackageHandler().getSystemInformation();
+ }
+ return systemInformation;
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
index bf5aa746cf..2968849a83 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStoreAccessor.java
@@ -445,8 +445,7 @@ public class HibernateStoreAccessor extends StoreAccessor implements IHibernateS
@Override
protected void detachObjects(CDOID[] detachedObjects, long revised, OMMonitor monitor)
{
- // TODO: implement HibernateStoreAccessor.detachObjects(detachedObjects)
- throw new UnsupportedOperationException();
+ // handled by the write method
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/SystemInformation.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/SystemInformation.java
new file mode 100644
index 0000000000..62d6c9991b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/SystemInformation.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2004 - 2009 Martin Taal and others. and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Martin Taal - initial API and implementation
+ * Eike Stepper - maintenance
+ */
+package org.eclipse.emf.cdo.server.internal.hibernate;
+
+/**
+ * Stores system related information, is used to keep track that CDO is started for the first time. There should only be
+ * one SystemInformation object in the database.
+ *
+ * @author Martin Taal
+ */
+public class SystemInformation
+{
+ private long id = 1;
+
+ private long creationTime;
+
+ private boolean firstTime = false;
+
+ public boolean isFirstTime()
+ {
+ return firstTime;
+ }
+
+ public void setFirstTime(boolean firstTime)
+ {
+ this.firstTime = firstTime;
+ }
+
+ public long getId()
+ {
+ return id;
+ }
+
+ public void setId(long id)
+ {
+ // on purposely not changing the id
+ // this.id = id;
+ }
+
+ public long getCreationTime()
+ {
+ return creationTime;
+ }
+
+ public void setCreationTime(long creationTime)
+ {
+ this.creationTime = creationTime;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOInterceptor.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOInterceptor.java
index ea2776b0ae..eeddd891ca 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOInterceptor.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/tuplizer/CDOInterceptor.java
@@ -11,6 +11,7 @@
*/
package org.eclipse.emf.cdo.server.internal.hibernate.tuplizer;
+import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.server.internal.hibernate.HibernateUtil;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
@@ -32,6 +33,10 @@ public class CDOInterceptor extends EmptyInterceptor
@Override
public String getEntityName(Object object)
{
+ if (!(object instanceof CDORevision))
+ {
+ return object.getClass().getName();
+ }
InternalCDORevision revision = HibernateUtil.getInstance().getCDORevision(object);
return revision.getEClass().getName();
}
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/Hibernate AllTests (OSGi).launch b/plugins/org.eclipse.emf.cdo.tests.hibernate/Hibernate AllTests (OSGi).launch
deleted file mode 100644
index 5941f0d7e8..0000000000
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/Hibernate AllTests (OSGi).launch
+++ /dev/null
@@ -1,390 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="org.eclipse.emf.cdo,org.eclipse.emf.cdo.common,org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.server.hibernate,org.eclipse.emf.cdo.server.hibernate.id,org.eclipse.net4j,org.eclipse.net4j.jvm,org.eclipse.net4j.tcp,org.eclipse.net4j.util"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/AllTests.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.hibernate.AllTests"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests.hibernate"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dosgi.console"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.emf.cdo.server.product"/>
-<stringAttribute key="selectedPlugin" value="org.eclipse.osgi"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.net4j.buddies.chat/debug" value="true"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.net4j.tcp/debug" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.repository" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.emf.cdo.common/debug.protocol" value="true"/>
-<mapEntry key="org.eclipse.net4j.util/debug.lifecycle.dump" value="true"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.util" value="true"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AbstractInformationControlManager" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.net4j.jms.server/debug.store" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFileMaps" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.net4j.db/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j.buddies.chat.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/debug/workingSets" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/stateSaveRestore" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.net4j.jms/debug.protocol" value="true"/>
-<mapEntry key="org.eclipse.help/debug/toc" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder/stats" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug/storage" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.types" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.net4j.buddies/debug" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.emf.cdo.server.hibernate/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j/debug.signal" value="true"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.net4j.db.hsqldb/debug.sql" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.net4j/debug.buffer" value="true"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.repository" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.examples/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.net4j.util/debug.registry" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.revision" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.transaction" value="true"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.emf.cdo.server.hibernate.id/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/perf.revision" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.net4j/set.signal.thread.name" value="false"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.session" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebugglobal" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.net4j.db.hsqldb/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j.jms.admin/debug.protocol" value="true"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.store" value="true"/>
-<mapEntry key="org.eclipse.net4j.http.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.protocol" value="true"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.equinox.security.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/uses" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.common/perf.revision" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.common/debug.model" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.common/perf.revision.reading" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.net4j/debug.connector" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.equinox.security/debug/loginFramework" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.net4j.buddies.server/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.net4j/debug.acceptor" value="true"/>
-<mapEntry key="org.eclipse.net4j.buddies.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo/perf" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.net4j.jvm/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/markers" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.net4j.util/debug.lifecycle" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo.examples.spring/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.ui.intro/flags/noBrowser" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.equinox.security/debug" value="false"/>
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j.examples/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/generatedFiles" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.common/debug.revision" value="true"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.net4j.jms.server.jdbc/debug" value="true"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.net4j.util/debug.om" value="true"/>
-<mapEntry key="org.eclipse.net4j.jms.server/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j.db.mysql/debug" value="true"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.net4j.util/debug" value="true"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.net4j.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.resource" value="true"/>
-<mapEntry key="org.eclipse.net4j.debug/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j.db.derby/debug.sql" value="true"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.ui/test" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.transaction" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo.server.db/debug" value="true"/>
-<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
-<mapEntry key="org.eclipse.net4j/debug.selector" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo.common/perf" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j.db/debug.sql" value="true"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.common/debug.id" value="true"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.net4j.util/debug.concurrency" value="true"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo.common/perf.revision.writing" value="false"/>
-<mapEntry key="org.eclipse.net4j.jms.admin/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j.db.derby/debug" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.model" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.help/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.ui/test.bulk_add" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.common/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.net4j.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.jdt.apt.core/debug/compilationEnv" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.session" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.adapter" value="true"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.net4j.tcp/protocol.registration.timeout" value="10000"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.net4j.db.mysql/debug.sql" value="true"/>
-<mapEntry key="org.eclipse.net4j.util.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
-<mapEntry key="org.eclipse.net4j.buddies.common/debug" value="true"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.protocol" value="true"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.net4j.jms.server/debug.protocol" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.net4j/debug.channel" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo/perf.revision.loading" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.revision" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.view" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/formatter" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.net4j.http.common/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/failure" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.resource" value="true"/>
-<mapEntry key="org.eclipse.net4j.http/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.apt.pluggable.core/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.net4j/debug.buffer.stream" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-</mapAttribute>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/app.properties b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/app.properties
index e8345b5098..f880a73987 100644
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/app.properties
+++ b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/app.properties
@@ -10,7 +10,7 @@ hibernate.connection.driver_class=org.hsqldb.jdbcDriver
hibernate.connection.url=jdbc:hsqldb:mem:cdohibernate
hibernate.connection.username=sa
hibernate.connection.password=
-#hibernate.connection.autocommit=true
+hibernate.connection.autocommit=true
hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
#--------------------------------------------------------------
diff --git a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/AllTests.java b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/AllTests.java
index a6a7035784..ca2cba6551 100644
--- a/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/AllTests.java
+++ b/plugins/org.eclipse.emf.cdo.tests.hibernate/src/org/eclipse/emf/cdo/tests/hibernate/AllTests.java
@@ -27,9 +27,9 @@ public class AllTests
TestSuite suite = new TestSuite("Tests for CDO using Hibernate");
suite.addTestSuite(HbViewTest.class);
suite.addTestSuite(HbCDOAutomaticPackageRefTest.class);
+ suite.addTestSuite(HbContainmentTest.class);
suite.addTestSuite(HbCDOPackageRefTest.class);
suite.addTestSuite(HbPackageRegistryTest.class);
- suite.addTestSuite(HbContainmentTest.class);
suite.addTestSuite(HbResourceTest.class);
suite.addTestSuite(HbComplexTest.class);
suite.addTestSuite(HbTransactionDeadLockTest.class);

Back to the top