Author: jsdelfino
Date: Tue May 9 18:31:29 2006
New Revision: 405588
URL: http://svn.apache.org/viewcvs?rev=405588&view=rev
Log:
Fix for TUSCANY-340 - created ObjectFactories for the different SDO helpers
Added:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/helper/
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/helper/SDOHelper.java
(with props)
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/DataFactoryObjectFactory.java
(with props)
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/TypeHelperObjectFactory.java
(with props)
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XMLHelperObjectFactory.java
(with props)
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOServiceImpl.java
(with props)
Modified:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XSDHelperObjectFactory.java
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOService.java
Added:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/helper/SDOHelper.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/helper/SDOHelper.java?rev=405588&view=auto
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/helper/SDOHelper.java
(added)
+++
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/helper/SDOHelper.java
Tue May 9 18:31:29 2006
@@ -0,0 +1,40 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as
applicable.
+ *
+ * Licensed 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.databinding.sdo.helper;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation used to indicate a field or method that is used to inject an SDO
helper.
+ *
+ * The following helpers are supported:
+ * commonj.sdo.helper.TypeHelper
+ * commonj.sdo.helper.DataFactory
+ * commonj.sdo.helper.XSDHelper
+ * commonj.sdo.helper.XMLHelper
+ *
+ */
[EMAIL PROTECTED]({METHOD, FIELD})
[EMAIL PROTECTED](RUNTIME)
+public @interface SDOHelper {
+
+}
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/helper/SDOHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/helper/SDOHelper.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Added:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/DataFactoryObjectFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/DataFactoryObjectFactory.java?rev=405588&view=auto
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/DataFactoryObjectFactory.java
(added)
+++
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/DataFactoryObjectFactory.java
Tue May 9 18:31:29 2006
@@ -0,0 +1,50 @@
+package org.apache.tuscany.databinding.sdo.injection;
+
+import org.apache.tuscany.core.builder.ContextResolver;
+import org.apache.tuscany.core.builder.ObjectFactory;
+import org.apache.tuscany.core.context.AutowireContext;
+import org.apache.tuscany.core.context.CompositeContext;
+import org.apache.tuscany.core.injection.ObjectCreationException;
+import org.apache.tuscany.databinding.sdo.system.SDOService;
+
+import commonj.sdo.helper.DataFactory;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class DataFactoryObjectFactory implements ObjectFactory<DataFactory> {
+
+
+ private ContextResolver resolver;
+
+ /**
+ * @throws org.apache.tuscany.core.injection.FactoryInitException
+ *
+ */
+ public DataFactoryObjectFactory(ContextResolver resolver) {
+ this.resolver = resolver;
+ }
+
+
+ public DataFactory getInstance() throws ObjectCreationException {
+ CompositeContext parent = resolver.getCurrentContext();
+ if (parent == null) {
+ return null;// FIXME semantic here means required is not followed
+ }
+ if (!(parent instanceof AutowireContext)) {
+ ObjectCreationException e = new ObjectCreationException("Parent
does not implement "
+ + AutowireContext.class.getName());
+ e.setIdentifier(parent.getName());
+ throw e;
+ }
+ AutowireContext ctx = (AutowireContext) parent;
+ SDOService sdoService = ctx.resolveInstance(SDOService.class);
+ return sdoService.getDataFactory();
+ }
+
+ public void setContextResolver(ContextResolver resolver) {
+ this.resolver = resolver;
+ }
+
+
+}
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/DataFactoryObjectFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/DataFactoryObjectFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Added:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/TypeHelperObjectFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/TypeHelperObjectFactory.java?rev=405588&view=auto
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/TypeHelperObjectFactory.java
(added)
+++
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/TypeHelperObjectFactory.java
Tue May 9 18:31:29 2006
@@ -0,0 +1,50 @@
+package org.apache.tuscany.databinding.sdo.injection;
+
+import org.apache.tuscany.core.builder.ContextResolver;
+import org.apache.tuscany.core.builder.ObjectFactory;
+import org.apache.tuscany.core.context.AutowireContext;
+import org.apache.tuscany.core.context.CompositeContext;
+import org.apache.tuscany.core.injection.ObjectCreationException;
+import org.apache.tuscany.databinding.sdo.system.SDOService;
+
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class TypeHelperObjectFactory implements ObjectFactory<TypeHelper> {
+
+
+ private ContextResolver resolver;
+
+ /**
+ * @throws org.apache.tuscany.core.injection.FactoryInitException
+ *
+ */
+ public TypeHelperObjectFactory(ContextResolver resolver) {
+ this.resolver = resolver;
+ }
+
+
+ public TypeHelper getInstance() throws ObjectCreationException {
+ CompositeContext parent = resolver.getCurrentContext();
+ if (parent == null) {
+ return null;// FIXME semantic here means required is not followed
+ }
+ if (!(parent instanceof AutowireContext)) {
+ ObjectCreationException e = new ObjectCreationException("Parent
does not implement "
+ + AutowireContext.class.getName());
+ e.setIdentifier(parent.getName());
+ throw e;
+ }
+ AutowireContext ctx = (AutowireContext) parent;
+ SDOService sdoService = ctx.resolveInstance(SDOService.class);
+ return sdoService.getTypeHelper();
+ }
+
+ public void setContextResolver(ContextResolver resolver) {
+ this.resolver = resolver;
+ }
+
+
+}
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/TypeHelperObjectFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/TypeHelperObjectFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Added:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XMLHelperObjectFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XMLHelperObjectFactory.java?rev=405588&view=auto
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XMLHelperObjectFactory.java
(added)
+++
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XMLHelperObjectFactory.java
Tue May 9 18:31:29 2006
@@ -0,0 +1,50 @@
+package org.apache.tuscany.databinding.sdo.injection;
+
+import org.apache.tuscany.core.builder.ContextResolver;
+import org.apache.tuscany.core.builder.ObjectFactory;
+import org.apache.tuscany.core.context.AutowireContext;
+import org.apache.tuscany.core.context.CompositeContext;
+import org.apache.tuscany.core.injection.ObjectCreationException;
+import org.apache.tuscany.databinding.sdo.system.SDOService;
+
+import commonj.sdo.helper.XMLHelper;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class XMLHelperObjectFactory implements ObjectFactory<XMLHelper> {
+
+
+ private ContextResolver resolver;
+
+ /**
+ * @throws org.apache.tuscany.core.injection.FactoryInitException
+ *
+ */
+ public XMLHelperObjectFactory(ContextResolver resolver) {
+ this.resolver = resolver;
+ }
+
+
+ public XMLHelper getInstance() throws ObjectCreationException {
+ CompositeContext parent = resolver.getCurrentContext();
+ if (parent == null) {
+ return null;// FIXME semantic here means required is not followed
+ }
+ if (!(parent instanceof AutowireContext)) {
+ ObjectCreationException e = new ObjectCreationException("Parent
does not implement "
+ + AutowireContext.class.getName());
+ e.setIdentifier(parent.getName());
+ throw e;
+ }
+ AutowireContext ctx = (AutowireContext) parent;
+ SDOService sdoService = ctx.resolveInstance(SDOService.class);
+ return sdoService.getXMLHelper();
+ }
+
+ public void setContextResolver(ContextResolver resolver) {
+ this.resolver = resolver;
+ }
+
+
+}
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XMLHelperObjectFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XMLHelperObjectFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XSDHelperObjectFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XSDHelperObjectFactory.java?rev=405588&r1=405587&r2=405588&view=diff
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XSDHelperObjectFactory.java
(original)
+++
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/injection/XSDHelperObjectFactory.java
Tue May 9 18:31:29 2006
@@ -37,8 +37,8 @@
throw e;
}
AutowireContext ctx = (AutowireContext) parent;
- SDOService assemblyCtx = ctx.resolveInstance(SDOService.class);
- return assemblyCtx.getHelper();
+ SDOService sdoService = ctx.resolveInstance(SDOService.class);
+ return sdoService.getXSDHelper();
}
public void setContextResolver(ContextResolver resolver) {
Modified:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOService.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOService.java?rev=405588&r1=405587&r2=405588&view=diff
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOService.java
(original)
+++
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOService.java
Tue May 9 18:31:29 2006
@@ -1,5 +1,7 @@
package org.apache.tuscany.databinding.sdo.system;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLHelper;
import commonj.sdo.helper.XSDHelper;
import commonj.sdo.helper.DataFactory;
@@ -8,8 +10,28 @@
*/
public interface SDOService {
- public XSDHelper getHelper();
+ /**
+ * Returns a Type helper
+ * @return
+ */
+ public TypeHelper getTypeHelper();
+ /**
+ * Returns an XML helper
+ * @return
+ */
+ public XMLHelper getXMLHelper();
+
+ /**
+ * Returns an XSD helper
+ * @return
+ */
+ public XSDHelper getXSDHelper();
+
+ /**
+ * Returns a DataFactory
+ * @return
+ */
public DataFactory getDataFactory();
}
Added:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOServiceImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOServiceImpl.java?rev=405588&view=auto
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOServiceImpl.java
(added)
+++
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOServiceImpl.java
Tue May 9 18:31:29 2006
@@ -0,0 +1,87 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as
applicable.
+ *
+ * Licensed 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.databinding.sdo.system;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * Implementation of the SDO service.
+ */
+public class SDOServiceImpl implements SDOService {
+
+ private TypeHelper typeHelper;
+
+ private DataFactory dataFactory;
+
+ private XSDHelper xsdHelper;
+
+ private XMLHelper xmlHelper;
+
+ //FIXME We need one instance of this service per application (SCA
composite instance), using
+ // the TypeHelper created for this particular composite instance. The type
helper to use is a
+ // property of the AssemblyContext in use in the particular composite
instance.
+
+ /**
+ * Constructs a new SDOServiceImpl.
+ *
+ * @param typeHelper
+ */
+ public SDOServiceImpl(TypeHelper typeHelper) {
+ this.typeHelper = typeHelper;
+ dataFactory = SDOUtil.createDataFactory(typeHelper);
+ xsdHelper = SDOUtil.createXSDHelper(typeHelper);
+ xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+ }
+
+ /**
+ * Constructs a new SDOServiceImpl.
+ *
+ * @param typeHelper
+ * @param dataFactory
+ * @param xsdHelper
+ * @param xmlHelper
+ */
+ public SDOServiceImpl(TypeHelper typeHelper, DataFactory dataFactory,
+ XSDHelper xsdHelper, XMLHelper
xmlHelper) {
+ this.typeHelper = typeHelper;
+ this.dataFactory = dataFactory;
+ this.xsdHelper = xsdHelper;
+ this.xmlHelper = xmlHelper;
+ }
+
+ public TypeHelper getTypeHelper() {
+ return typeHelper;
+ }
+
+ public DataFactory getDataFactory() {
+ return dataFactory;
+ }
+
+ public XMLHelper getXMLHelper() {
+ return xmlHelper;
+ }
+
+ public XSDHelper getXSDHelper() {
+ return xsdHelper;
+ }
+
+}
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOServiceImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/system/SDOServiceImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date