diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta1-RC1/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta1-RC1/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta1-RC1/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java b/sca-java-2.x/tags/2.0-Beta1-RC1/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java deleted file mode 100644 index cafa772a25..0000000000 --- a/sca-java-2.x/tags/2.0-Beta1-RC1/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java +++ /dev/null @@ -1,166 +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.sca.node2; - -import java.util.Properties; - -import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint; -import org.apache.tuscany.sca.core.UtilityExtensionPoint; -import org.apache.tuscany.sca.core.assembly.RuntimeAssemblyFactory; -import org.apache.tuscany.sca.deployment.Deployer; -import org.apache.tuscany.sca.node2.impl.NodeImpl; -import org.apache.tuscany.sca.runtime.CompositeActivator; -import org.apache.tuscany.sca.runtime.EndpointRegistry; -import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistryFactory; -import org.apache.tuscany.sca.runtime.RuntimeProperties; -import org.apache.tuscany.sca.work.WorkScheduler; - -public class NodeFactory { - - private Deployer deployer; - private ExtensionPointRegistry extensionPointRegistry; - private CompositeActivator compositeActivator; - private ExtensibleDomainRegistryFactory domainRegistryFactory; - private RuntimeAssemblyFactory assemblyFactory; - - /** - * A helper method to simplify creating a Node with an installed contributions - * @param compositeURI URI of a composite to run relative to the first contribution - * if compositeURI is null then all deployable composites in the first contribution will be run - * @param contributionURLs URLs to contributions to install - * @return a Node with installed contributions - */ - public static Node createNode(String compositeURI, String... contributionURLs) { - try { - - Node node = newInstance().createOneoffNode(); - String uri = ""; - for (int i=contributionURLs.length-1; i>-1; i--) { - boolean runDeployables = (i==0) && (compositeURI == null); - int lastDot = contributionURLs[i].lastIndexOf('.'); - int lastSep = contributionURLs[i].lastIndexOf("/"); - if (lastDot > -1 && lastSep > -1 && lastDot > lastSep) { - uri = contributionURLs[i].substring(lastSep+1, lastDot); - } else { - uri = contributionURLs[i]; - } - - node.installContribution(uri, contributionURLs[i], null, null, runDeployables); - } - if (compositeURI != null) { - if (uri.endsWith("/")) { - uri = uri + compositeURI; - } else { - uri = uri + "/" + compositeURI; - } - node.addToDomainLevelComposite(uri); - } - return node; - - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static NodeFactory newInstance() { - return new NodeFactory(null); - } - public static NodeFactory newInstance(Properties config) { - return new NodeFactory(config); - } - - protected NodeFactory(Properties config) { - init(config); - } - - public Node createNode(String domainURI) { - String domainName = getDomainName(domainURI); - EndpointRegistry endpointRegistry = domainRegistryFactory.getEndpointRegistry(domainURI, domainName); - return new NodeImpl(domainName, deployer, compositeActivator, endpointRegistry, extensionPointRegistry, null); - } - - protected Node createOneoffNode() { - EndpointRegistry endpointRegistry = domainRegistryFactory.getEndpointRegistry("default", "default"); - return new NodeImpl("default", deployer, compositeActivator, endpointRegistry, extensionPointRegistry, this); - } - - public void stop() { - deployer.stop(); - extensionPointRegistry.stop(); - } - - protected void init(Properties config) { - if (config == null) { - config = new Properties(); - config.setProperty("defaultScheme", "vm"); - config.setProperty("defaultDomainName", "default"); - } - this.extensionPointRegistry = new DefaultExtensionPointRegistry(); - extensionPointRegistry.start(); - - FactoryExtensionPoint modelFactories = extensionPointRegistry.getExtensionPoint(FactoryExtensionPoint.class); - this.assemblyFactory = new RuntimeAssemblyFactory(extensionPointRegistry); - modelFactories.addFactory(assemblyFactory); - - UtilityExtensionPoint utilities = extensionPointRegistry.getExtensionPoint(UtilityExtensionPoint.class); - this.compositeActivator = utilities.getUtility(CompositeActivator.class); - this.deployer = utilities.getUtility(Deployer.class); - utilities.getUtility(RuntimeProperties.class).setProperties(config); - utilities.getUtility(WorkScheduler.class); - - // Initialize the Tuscany module activators - // The module activators will be started - extensionPointRegistry.getExtensionPoint(ModuleActivatorExtensionPoint.class); - - this.domainRegistryFactory = ExtensibleDomainRegistryFactory.getInstance(extensionPointRegistry); - - } - /** - * Get the Deployer. The Deployer can be used to create contribution artifacts - * when configuring a Node programatically. - * @return the Deployer - */ - public Deployer getDeployer() { - return deployer; - } - - /** - * Get the AssemblyFactory. The AssemblyFactory can be used to create contribution - * artifact contents when configuring a Node programatically. - * @return the AssemblyFactory - */ - public AssemblyFactory getAssemblyFactory() { - return assemblyFactory; - } - - private String getDomainName(String domainURI) { - int scheme = domainURI.indexOf(':'); - int qm = domainURI.indexOf('?'); - if (qm == -1) { - return domainURI.substring(scheme+1); - } else { - return domainURI.substring(scheme+1, qm); - } - } -} |