summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-M2/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-M2/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java')
-rw-r--r--branches/sca-java-M2/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java119
1 files changed, 0 insertions, 119 deletions
diff --git a/branches/sca-java-M2/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java b/branches/sca-java-M2/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
deleted file mode 100644
index 4e99b888da..0000000000
--- a/branches/sca-java-M2/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * 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.container.groovy;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.tuscany.spi.ObjectFactory;
-import org.apache.tuscany.spi.builder.BuilderConfigException;
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-import groovy.lang.GroovyClassLoader;
-import groovy.lang.GroovyObject;
-import org.codehaus.groovy.control.CompilationFailedException;
-
-/**
- * Extension point for creating {@link GroovyAtomicComponent}s from an assembly configuration
- *
- * @version $$Rev$$ $$Date$$
- */
-public class GroovyComponentBuilder extends ComponentBuilderExtension<GroovyImplementation> {
-
- protected Class<GroovyImplementation> getImplementationType() {
- return GroovyImplementation.class;
- }
-
- public Component build(CompositeComponent parent,
- ComponentDefinition<GroovyImplementation> componentDefinition,
- DeploymentContext deploymentContext)
- throws BuilderConfigException {
-
- String name = componentDefinition.getName();
- GroovyImplementation implementation = componentDefinition.getImplementation();
- GroovyComponentType componentType = implementation.getComponentType();
-
- int initLevel = componentType.getInitLevel();
-
- // get list of services provided by this component
- Collection<ServiceDefinition> collection = componentType.getServices().values();
- List<Class<?>> services = new ArrayList<Class<?>>(collection.size());
- for (ServiceDefinition serviceDefinition : collection) {
- services.add(serviceDefinition.getServiceContract().getInterfaceClass());
- }
-
- // get the Groovy classloader for this deployment component
- GroovyClassLoader groovyClassLoader = (GroovyClassLoader) deploymentContext.getExtension("groovy.classloader");
- if (groovyClassLoader == null) {
- groovyClassLoader = new GroovyClassLoader(deploymentContext.getClassLoader());
- deploymentContext.putExtension("groovy.classloader", groovyClassLoader);
- }
-
- // create the implementation class for the script
- Class<? extends GroovyObject> groovyClass;
- try {
- String script = implementation.getScript();
- // REVIEW JFM can we cache the class?
- groovyClass = groovyClassLoader.parseClass(script);
- } catch (CompilationFailedException e) {
- BuilderConfigException bce = new BuilderConfigException(e);
- bce.setIdentifier(name);
- throw bce;
- }
- // TODO deal with init and destroy
-
- GroovyConfiguration configuration = new GroovyConfiguration();
- configuration.setName(name);
- configuration.setGroovyClass(groovyClass);
- configuration.setParent(parent);
- // get the scope container for this component's scope
- Scope scope = componentType.getLifecycleScope();
- if (Scope.MODULE == scope) {
- configuration.setScopeContainer(deploymentContext.getModuleScope());
- } else {
- configuration.setScopeContainer(scopeRegistry.getScopeContainer(scope));
- }
-
-
- configuration.setWireService(wireService);
- configuration.setWorkContext(workContext);
- configuration.setInitLevel(initLevel);
- configuration.setServices(services);
- GroovyAtomicComponent component = new GroovyAtomicComponent(configuration, null);
-
- // handle properties
- for (Property<?> property : componentType.getProperties().values()) {
- ObjectFactory<?> factory = property.getDefaultValueFactory();
- if (factory != null) {
- component.addPropertyFactory(property.getName(), factory);
- }
- }
- return component;
- }
-
-
-}