You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2007/03/18 19:49:20 UTC
svn commit: r519666 - in
/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation:
POJOPhysicalComponentBuilder.java java/JavaPhysicalComponentBuilder.java
system/builder/SystemPhysicalComponentBuilder.java
Author: jboynes
Date: Sun Mar 18 11:49:19 2007
New Revision: 519666
URL: http://svn.apache.org/viewvc?view=rev&rev=519666
Log:
create common base class for builders of POJO-based implementations
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/POJOPhysicalComponentBuilder.java (with props)
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/POJOPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/POJOPhysicalComponentBuilder.java?view=auto&rev=519666
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/POJOPhysicalComponentBuilder.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/POJOPhysicalComponentBuilder.java Sun Mar 18 11:49:19 2007
@@ -0,0 +1,53 @@
+/*
+ * 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.core.implementation;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Init;
+
+import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
+import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilderRegistry;
+import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.component.ScopeRegistry;
+import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
+import org.apache.tuscany.core.implementation.system.model.SystemPhysicalComponentDefinition;
+
+/**
+ * Base class for PhysicalComponentBuilders that build components based on POJOs.
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class POJOPhysicalComponentBuilder<PCD extends PhysicalComponentDefinition, C extends Component>
+ implements PhysicalComponentBuilder<PCD, C> {
+
+ private final PhysicalComponentBuilderRegistry builderRegistry;
+ private final ScopeRegistry scopeRegistry;
+
+ protected POJOPhysicalComponentBuilder(
+ @Reference(name = "builderRegistry")PhysicalComponentBuilderRegistry builderRegistry,
+ @Reference(name = "scopeRegistry")ScopeRegistry scopeRegistry) {
+ this.builderRegistry = builderRegistry;
+ this.scopeRegistry = scopeRegistry;
+ }
+
+ @Init
+ void init() {
+ builderRegistry.register(SystemPhysicalComponentDefinition.class, this);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/POJOPhysicalComponentBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/POJOPhysicalComponentBuilder.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java?view=diff&rev=519666&r1=519665&r2=519666
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java Sun Mar 18 11:49:19 2007
@@ -25,35 +25,33 @@
import org.osoa.sca.annotations.Reference;
+import org.apache.tuscany.core.component.InstanceFactoryProvider;
+import org.apache.tuscany.core.implementation.POJOPhysicalComponentBuilder;
+import org.apache.tuscany.core.injection.CallbackWireObjectFactory2;
+import org.apache.tuscany.core.injection.InstanceObjectFactory;
+import org.apache.tuscany.core.model.physical.instancefactory.InjectionSource;
+import static org.apache.tuscany.core.model.physical.instancefactory.InjectionSource.ValueSourceType.CALLBACK;
+import static org.apache.tuscany.core.model.physical.instancefactory.InjectionSource.ValueSourceType.REFERENCE;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalComponentDefinition;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireSourceDefinition;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireTargetDefinition;
+import org.apache.tuscany.core.wire.WireObjectFactory2;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.builder.BuilderException;
-import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilderRegistry;
-import org.apache.tuscany.spi.builder.physical.WireAttacher;
import org.apache.tuscany.spi.builder.physical.WireAttachException;
+import org.apache.tuscany.spi.builder.physical.WireAttacher;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
import org.apache.tuscany.spi.services.classloading.ClassLoaderRegistry;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.ProxyService;
import org.apache.tuscany.spi.wire.Wire;
-import org.apache.tuscany.core.component.InstanceFactoryProvider;
-import org.apache.tuscany.core.injection.CallbackWireObjectFactory2;
-import org.apache.tuscany.core.injection.InstanceObjectFactory;
-import org.apache.tuscany.core.model.physical.instancefactory.InjectionSource;
-import static org.apache.tuscany.core.model.physical.instancefactory.InjectionSource.ValueSourceType.CALLBACK;
-import static org.apache.tuscany.core.model.physical.instancefactory.InjectionSource.ValueSourceType.REFERENCE;
-import org.apache.tuscany.core.model.physical.java.JavaPhysicalComponentDefinition;
-import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireSourceDefinition;
-import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireTargetDefinition;
-import org.apache.tuscany.core.wire.WireObjectFactory2;
-
/**
* The physical component builder for Java implementation types. Responsible for creating the Component runtime artifact
* from a physical component definition
@@ -63,30 +61,22 @@
* @param <GROUP> the component group id type
*/
public class JavaPhysicalComponentBuilder<T, GROUP>
- implements PhysicalComponentBuilder<JavaPhysicalComponentDefinition<T, GROUP>, JavaComponent<T, GROUP>>,
- WireAttacher<JavaComponent, JavaPhysicalWireSourceDefinition, JavaPhysicalWireTargetDefinition> {
+ extends POJOPhysicalComponentBuilder<JavaPhysicalComponentDefinition<T, GROUP>, JavaComponent<T, GROUP>>
+ implements WireAttacher<JavaComponent, JavaPhysicalWireSourceDefinition, JavaPhysicalWireTargetDefinition> {
// Classloader registry
private ClassLoaderRegistry classLoaderRegistry;
- // Scope registry
- private ScopeRegistry scopeRegistry;
-
private WorkContext workContext;
private ProxyService proxyService;
- /**
- * Injects builder registry.
- *
- * @param registry PhysicalComponentBuilder registry.
- */
- @Reference
- public void setBuilderRegistry(PhysicalComponentBuilderRegistry registry) {
- registry.register(JavaPhysicalComponentDefinition.class, this);
+ public JavaPhysicalComponentBuilder(
+ @Reference(name = "builderRegistry")PhysicalComponentBuilderRegistry builderRegistry,
+ @Reference(name = "scopeRegistry")ScopeRegistry scopeRegistry) {
+ super(builderRegistry, scopeRegistry);
}
-
@Reference
public void setWorkContext(WorkContext workContext) {
this.workContext = workContext;
@@ -98,6 +88,16 @@
}
/**
+ * Injects classloader registry.
+ *
+ * @param classLoaderRegistry Class loader registry.
+ */
+ @Reference
+ public void setClassLoaderRegistry(ClassLoaderRegistry classLoaderRegistry) {
+ this.classLoaderRegistry = classLoaderRegistry;
+ }
+
+ /**
* Builds a component from its physical component definition.
*
* @param componentDefinition Physical component definition of the component to be built.
@@ -110,33 +110,11 @@
InstanceFactoryProvider<T> provider = componentDefinition.getProvider();
JavaComponent<T, GROUP> component = new JavaComponent<T, GROUP>(componentId, provider, null, null, 0, -1, -1);
- setScopeContainer(componentDefinition, component);
-
setInstanceFactoryClass(componentDefinition, component);
return component;
}
- /**
- * Injects classloader registry.
- *
- * @param classLoaderRegistry Class loader registry.
- */
- @Reference
- public void setClassLoaderRegistry(ClassLoaderRegistry classLoaderRegistry) {
- this.classLoaderRegistry = classLoaderRegistry;
- }
-
- /**
- * Injects scope registry.
- *
- * @param scopeRegistry Scope registry.
- */
- @Reference
- public void setScopeRegistry(ScopeRegistry scopeRegistry) {
- this.scopeRegistry = scopeRegistry;
- }
-
/*
* Sets the instance factory class.
*/
@@ -151,15 +129,6 @@
Class<InstanceFactory<?>> instanceFactoryClass = null;
component.setInstanceFactoryClass(instanceFactoryClass);
*/
- }
-
- /*
- * Set the scope container.
- */
- private void setScopeContainer(JavaPhysicalComponentDefinition componentDefinition, JavaComponent component) {
- Scope scope = componentDefinition.getScope();
- ScopeContainer scopeContainer = scopeRegistry.getScopeContainer(scope);
- component.setScopeContainer(scopeContainer);
}
/**
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java?view=diff&rev=519666&r1=519665&r2=519666
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java Sun Mar 18 11:49:19 2007
@@ -20,14 +20,13 @@
import java.net.URI;
-import org.osoa.sca.annotations.Reference;
-import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Reference;
import org.apache.tuscany.core.component.InstanceFactoryProvider;
+import org.apache.tuscany.core.implementation.POJOPhysicalComponentBuilder;
import org.apache.tuscany.core.implementation.system.component.SystemComponent;
import org.apache.tuscany.core.implementation.system.model.SystemPhysicalComponentDefinition;
-import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilderRegistry;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.ScopeRegistry;
@@ -37,22 +36,12 @@
*/
@EagerInit
public class SystemPhysicalComponentBuilder<T, GROUP>
- implements PhysicalComponentBuilder<SystemPhysicalComponentDefinition<T, GROUP>, SystemComponent<T, GROUP>> {
-
- private final PhysicalComponentBuilderRegistry builderRegistry;
- private final ScopeRegistry scopeRegistry;
-
+ extends POJOPhysicalComponentBuilder<SystemPhysicalComponentDefinition<T, GROUP>, SystemComponent<T, GROUP>> {
public SystemPhysicalComponentBuilder(
@Reference(name = "builderRegistry")PhysicalComponentBuilderRegistry builderRegistry,
@Reference(name = "scopeRegistry")ScopeRegistry scopeRegistry) {
- this.builderRegistry = builderRegistry;
- this.scopeRegistry = scopeRegistry;
- }
-
- @Init
- void init() {
- builderRegistry.register(SystemPhysicalComponentDefinition.class, this);
+ super(builderRegistry, scopeRegistry);
}
public SystemComponent<T, GROUP> build(SystemPhysicalComponentDefinition<T, GROUP> definition) {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org