diff options
author | Martin Taal | 2009-12-28 18:27:45 +0000 |
---|---|---|
committer | Martin Taal | 2009-12-28 18:27:45 +0000 |
commit | c401b6cb272a27a75c3b98c17774d3c6a309fbc4 (patch) | |
tree | 8da7712a43ad12a61540ad93653bcea9a78d4e8c /plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src | |
parent | d42f4bf9a38608f28fc14d9edf27e1dd1318fe56 (diff) | |
download | cdo-c401b6cb272a27a75c3b98c17774d3c6a309fbc4.tar.gz cdo-c401b6cb272a27a75c3b98c17774d3c6a309fbc4.tar.xz cdo-c401b6cb272a27a75c3b98c17774d3c6a309fbc4.zip |
[295160] [Hibernate] Additional changes for annotations in xml
[266457] [Hibernate] Add/Adjust version ranges for all dependencies
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src')
9 files changed, 117 insertions, 26 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOBasicMapper.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOBasicMapper.java index bd59fb7e09..152dbe3c60 100644 --- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOBasicMapper.java +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOBasicMapper.java @@ -1,5 +1,5 @@ -/*************************************************************************** - * Copyright (c) 2004 - 2009 Springsite B.V. and others +/** + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) 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 @@ -7,7 +7,8 @@ * * Contributors: * Martin Taal - initial API and implementation - **************************************************************************/ + * Eike Stepper - maintenance + */ package org.eclipse.emf.cdo.server.hibernate.internal.teneo; import org.eclipse.emf.ecore.EAttribute; diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOEFeatureAnnotator.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOEFeatureAnnotator.java index 1eb7c843bd..caa7e13309 100644 --- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOEFeatureAnnotator.java +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOEFeatureAnnotator.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. and others + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) 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 diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOEntityMapper.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOEntityMapper.java index 490ce0b850..1d6da81d82 100644 --- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOEntityMapper.java +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOEntityMapper.java @@ -1,13 +1,3 @@ -/*************************************************************************** - * Copyright (c) 2004 - 2009 Springsite B.V. 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 - **************************************************************************/ package org.eclipse.emf.cdo.server.hibernate.internal.teneo; import org.eclipse.emf.cdo.eresource.EresourcePackage; diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOManyAttributeMapper.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOManyAttributeMapper.java index 7825bbacd9..62f865a946 100644 --- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOManyAttributeMapper.java +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOManyAttributeMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. and others + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) 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 diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOMappingContext.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOMappingContext.java index 95cc883bca..f274ccfaac 100644 --- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOMappingContext.java +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOMappingContext.java @@ -1,5 +1,5 @@ -/*************************************************************************** - * Copyright (c) 2004 - 2009 Springsite B.V. and others +/** + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) 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 @@ -7,7 +7,8 @@ * * Contributors: * Martin Taal - initial API and implementation - **************************************************************************/ + * Eike Stepper - maintenance + */ package org.eclipse.emf.cdo.server.hibernate.internal.teneo; import org.eclipse.emf.cdo.server.internal.hibernate.tuplizer.CDOENumIntegerType; diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOXmlPersistenceContentHandler.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOXmlPersistenceContentHandler.java new file mode 100644 index 0000000000..2fc0e58880 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/CDOXmlPersistenceContentHandler.java @@ -0,0 +1,94 @@ +/**
+ * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) 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.hibernate.internal.teneo;
+
+import org.eclipse.emf.cdo.server.hibernate.internal.teneo.bundle.OM;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.teneo.PackageRegistryProvider;
+import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage;
+import org.eclipse.emf.teneo.annotations.xml.XmlPersistenceContentHandler;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+
+/**
+ * With cdo packages are registered at runtime so if the package in the xml is not yet present then be lenient about it.
+ *
+ * @author <a href="mtaal@elver.org">Martin Taal</a>
+ */
+public class CDOXmlPersistenceContentHandler extends XmlPersistenceContentHandler
+{
+ private PAnnotatedEPackage localPAPackage = null;
+
+ // is also present in super class, should be made protected there
+ private static final int ROOT = 0;
+
+ @Override
+ public void characters(char[] ch, int start, int length) throws SAXException
+ {
+ // unknown epackage, ignore for now
+ if (localPAPackage == null)
+ {
+ return;
+ }
+
+ super.characters(ch, start, length);
+ }
+
+ @Override
+ public void endElement(String uri, String localName, String qName) throws SAXException
+ {
+ // unknown epackage, ignore for now
+ if (localPAPackage == null)
+ {
+ return;
+ }
+
+ super.endElement(uri, localName, qName);
+ }
+
+ @Override
+ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
+ {
+ if (getParseState() != ROOT)
+ {
+ if (localName.equals("epackage"))
+ {
+ final String nameSpaceUri = attributes.getValue("namespace-uri");
+ final EPackage ePackage = PackageRegistryProvider.getInstance().getPackageRegistry().getEPackage(nameSpaceUri);
+ if (ePackage != null)
+ {
+ localPAPackage = getPAnnotatedModel().getPAnnotated(ePackage);
+ }
+ else
+ {
+ localPAPackage = null;
+ }
+
+ if (localPAPackage == null)
+ {
+ OM.LOG.warn("No EPackage found for namespace " + nameSpaceUri
+ + ". This is not a problem if this EPackage is registered later.");
+ }
+ }
+
+ // unknown epackage, ignore for now
+ if (localPAPackage == null)
+ {
+ return;
+ }
+ }
+
+ super.startElement(uri, localName, qName, attributes);
+ }
+}
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 281a2b4adf..9e0b7d2090 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 @@ -1,5 +1,5 @@ /** - * Copyright (c) 2004 - 2009 Springsite B.V. and others + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) 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 @@ -7,7 +7,7 @@ * * Contributors: * Martin Taal - initial API and implementation - * Eike Stepper - bug 238300 + * Eike Stepper - maintenance */ package org.eclipse.emf.cdo.server.hibernate.internal.teneo; @@ -72,7 +72,7 @@ public class TeneoHibernateMappingProvider extends HibernateMappingProvider TRACER.trace(mapping); } - // System.err.println(mapping); + System.err.println(mapping); configuration.addXML(mapping); if (TRACER.isEnabled()) diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProviderFactory.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProviderFactory.java index a743f59d74..2b11f3ca39 100644 --- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProviderFactory.java +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProviderFactory.java @@ -1,10 +1,10 @@ /** - * Copyright (c) 2004 - 2009 Springsite B.V. and others + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) 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 diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/CDOHelper.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/CDOHelper.java index eb180a9b3e..56af808b64 100644 --- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/CDOHelper.java +++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/teneo/CDOHelper.java @@ -1,5 +1,5 @@ -/*************************************************************************** - * Copyright (c) 2004 - 2009 Springsite B.V. and others +/** + * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) 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 @@ -7,16 +7,19 @@ * * Contributors: * Martin Taal - initial API and implementation - **************************************************************************/ + * Eike Stepper - maintenance + */ package org.eclipse.emf.cdo.server.hibernate.teneo; import org.eclipse.emf.cdo.server.hibernate.internal.teneo.CDOEFeatureAnnotator; import org.eclipse.emf.cdo.server.hibernate.internal.teneo.CDOManyAttributeMapper; import org.eclipse.emf.cdo.server.hibernate.internal.teneo.CDOMappingContext; +import org.eclipse.emf.cdo.server.hibernate.internal.teneo.CDOXmlPersistenceContentHandler; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.teneo.PersistenceOptions; import org.eclipse.emf.teneo.annotations.mapper.EFeatureAnnotator; +import org.eclipse.emf.teneo.annotations.xml.XmlPersistenceContentHandler; import org.eclipse.emf.teneo.extension.ExtensionManager; import org.eclipse.emf.teneo.extension.ExtensionManagerFactory; import org.eclipse.emf.teneo.extension.ExtensionUtil; @@ -65,6 +68,8 @@ public class CDOHelper extensionManager.registerExtension(ExtensionUtil.createExtension(ManyAttributeMapper.class, CDOManyAttributeMapper.class, false)); + extensionManager.registerExtension(ExtensionUtil.createExtension(XmlPersistenceContentHandler.class, + CDOXmlPersistenceContentHandler.class, false)); // extensionManager.registerExtension(ExtensionUtil.createExtension(BasicMapper.class, CDOBasicMapper.class, // false)); } |