You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ke...@apache.org on 2007/07/20 10:20:20 UTC
svn commit: r557921 - in
/incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper:
DefaultHelperContextImpl.java HelperContextImpl.java
HelperProviderImpl.java SDOExtendedMetaDataImpl.java
Author: kelvingoodson
Date: Fri Jul 20 01:20:18 2007
New Revision: 557921
URL: http://svn.apache.org/viewvc?view=rev&rev=557921
Log:
TUSCANY-1459 port to branch
Added:
incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/DefaultHelperContextImpl.java
Modified:
incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperContextImpl.java
incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java
incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java
Added: incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/DefaultHelperContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/DefaultHelperContextImpl.java?view=auto&rev=557921
==============================================================================
--- incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/DefaultHelperContextImpl.java (added)
+++ incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/DefaultHelperContextImpl.java Fri Jul 20 01:20:18 2007
@@ -0,0 +1,72 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sdo.helper;
+
+import java.util.Map;
+import java.util.WeakHashMap;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
+
+public class DefaultHelperContextImpl extends HelperContextImpl {
+ public DefaultHelperContextImpl(final boolean extensibleNamespaces) {
+ super(new SDOExtendedMetaDataImpl(new SDOPackageRegistryDelegator()), extensibleNamespaces);
+ }
+
+ public DefaultHelperContextImpl(final boolean extensibleNamespaces, final Map options) {
+ super(new SDOExtendedMetaDataImpl(new SDOPackageRegistryDelegator()), extensibleNamespaces, options);
+ }
+
+ protected static class SDOPackageRegistryDelegator extends EPackageRegistryImpl.Delegator {
+ /**
+ * A map from class loader to its associated registry.
+ */
+ protected Map classLoaderToRegistryMap = new WeakHashMap();
+
+ /**
+ * Returns the package registry associated with the given class loader.
+ * @param classLoader the class loader.
+ * @return the package registry associated with the given class loader.
+ */
+ public synchronized EPackage.Registry getRegistry(final ClassLoader classLoader)
+ {
+ EPackage.Registry result = (EPackage.Registry)classLoaderToRegistryMap.get(classLoader);
+ if (result == null)
+ {
+ if (classLoader == null)
+ {
+ result = HelperContextImpl.getBuiltInModelRegistry();
+ }
+ else
+ {
+ result = new EPackageRegistryImpl(getRegistry(classLoader.getParent()));
+ classLoaderToRegistryMap.put(classLoader, result);
+ }
+ }
+ return result;
+ }
+
+ protected EPackage.Registry delegateRegistry(final ClassLoader classLoader)
+ {
+ return getRegistry(classLoader);
+ }
+ }
+}
Modified: incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperContextImpl.java?view=diff&rev=557921&r1=557920&r2=557921
==============================================================================
--- incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperContextImpl.java (original)
+++ incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperContextImpl.java Fri Jul 20 01:20:18 2007
@@ -24,9 +24,15 @@
import java.util.Iterator;
import java.util.Map;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.api.XMLStreamHelper;
import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.change.ChangePackage;
import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.xml.namespace.XMLNamespacePackage;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
import commonj.sdo.helper.CopyHelper;
import commonj.sdo.helper.DataFactory;
@@ -37,8 +43,6 @@
import commonj.sdo.helper.XMLHelper;
import commonj.sdo.helper.XSDHelper;
-//import org.apache.tuscany.sdo.api.XMLStreamHelper;
-
public class HelperContextImpl implements HelperContext {
/*
* Relationship: HelperContext*Impl* ---1:1---> ExtendedMetaData ---1:1--->
@@ -109,11 +113,18 @@
static protected EPackage.Registry getBuiltInModelRegistry() {
if (builtInModelRegistry == null) {
- builtInModelRegistry = new EPackageRegistryImpl();
+ EPackageRegistryImpl registry = new EPackageRegistryImpl();
for (Iterator iter = TypeHelperImpl.getBuiltInModels().iterator(); iter.hasNext();) {
EPackage ePackage = (EPackage)iter.next();
- builtInModelRegistry.put(ePackage.getNsURI(), ePackage);
+ registry.put(ePackage.getNsURI(), ePackage);
}
+ registry.put(EcorePackage.eNS_URI, EcorePackage.eINSTANCE);
+ registry.put(XMLTypePackage.eNS_URI, XMLTypePackage.eINSTANCE);
+ registry.put(ChangePackage.eNS_URI, ChangePackage.eINSTANCE);
+ registry.put(XMLNamespacePackage.eNS_URI, XMLNamespacePackage.eINSTANCE);
+ registry.put(SDOPackage.eNS_URI, SDOPackage.eINSTANCE);
+
+ builtInModelRegistry = registry;
}
return builtInModelRegistry;
}
Modified: incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java?view=diff&rev=557921&r1=557920&r2=557921
==============================================================================
--- incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java (original)
+++ incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java Fri Jul 20 01:20:18 2007
@@ -23,8 +23,6 @@
import org.apache.tuscany.sdo.spi.HelperProviderBase;
import commonj.sdo.helper.HelperContext;
-import commonj.sdo.impl.HelperProvider;
-
/**
* Create and manage all the default helper INSTANCEs
@@ -36,7 +34,7 @@
//FB HelperContext hc = SDOUtil.createHelperContext();
//FB The defulat HelperContext must use EMF's ClassLoader-delegating EPackage.Registry.INSTANCE, until we provide
//FB another way to get (ClassLoader scope) support for HelperContext.
- HelperContext hc = new HelperContextImpl(new SDOExtendedMetaDataImpl(), false);
+ HelperContext hc = new DefaultHelperContextImpl(false);
typeHelper = hc.getTypeHelper();
dataFactory = hc.getDataFactory();
xmlHelper = hc.getXMLHelper();
Modified: incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java?view=diff&rev=557921&r1=557920&r2=557921
==============================================================================
--- incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java (original)
+++ incubator/tuscany/branches/sdo-1.0-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java Fri Jul 20 01:20:18 2007
@@ -44,7 +44,7 @@
{
public SDOExtendedMetaDataImpl() {
- this(EPackage.Registry.INSTANCE);
+ this(HelperContextImpl.getBuiltInModelRegistry());
}
public SDOExtendedMetaDataImpl(Registry registry) {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org