diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-06-05 05:17:47 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-06-05 05:17:47 +0000 |
commit | f052ca9d9dc273dc0f625c9a6ec6eb38d6bc0f3a (patch) | |
tree | c316c1a4a098d965f91aef6422aebb862a88a0f7 /sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl | |
parent | 8fde4cc2b0f89400b21744d67d91db49f1df8318 (diff) |
Setting svn:eol-style for java and xml files
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@951651 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl')
3 files changed, 476 insertions, 476 deletions
diff --git a/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/DeployedComposite.java b/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/DeployedComposite.java index dfd4c9b9ba..6a08a1cfbc 100644 --- a/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/DeployedComposite.java +++ b/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/DeployedComposite.java @@ -1,138 +1,138 @@ -/*
- * 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.something.impl;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
-import org.apache.tuscany.sca.context.CompositeContext;
-import org.apache.tuscany.sca.contribution.Artifact;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.deployment.Deployer;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.ValidationException;
-import org.apache.tuscany.sca.runtime.ActivationException;
-import org.apache.tuscany.sca.runtime.CompositeActivator;
-import org.apache.tuscany.sca.runtime.EndpointRegistry;
-
-public class DeployedComposite {
-
- private String uri;
- private Composite composite;
- private InstalledContribution installedContribution;
- private List<Contribution> dependedOnContributions;
- private Composite domainComposite; // TODO: this is misleadingly named
-
- private CompositeActivator compositeActivator;
- private CompositeContext compositeContext;
- private Deployer deployer;
- private EndpointRegistry endpointRegistry;
- private ExtensionPointRegistry extensionPointRegistry;
-
- public DeployedComposite(Composite composite,
- InstalledContribution ic,
- List<Contribution> dependedOnContributions,
- Deployer deployer,
- CompositeActivator compositeActivator,
- EndpointRegistry endpointRegistry,
- ExtensionPointRegistry extensionPointRegistry) throws ActivationException {
- this.composite = composite;
- this.installedContribution = ic;
- this.dependedOnContributions = dependedOnContributions;
- this.deployer = deployer;
- this.compositeActivator = compositeActivator;
- this.endpointRegistry = endpointRegistry;
- this.extensionPointRegistry = extensionPointRegistry;
- try {
- init();
- } catch (Exception e) {
- throw new ActivationException(e);
- }
- }
-
- protected void init() throws ValidationException, ContributionResolveException, CompositeBuilderException, ActivationException {
-
- List<Contribution> contribution = new ArrayList<Contribution>();
- contribution.add(installedContribution.getContribution());
- contribution.get(0).getDeployables().clear();
- contribution.get(0).getDeployables().add(composite);
-
- Monitor monitor = deployer.createMonitor();
-// TODO: is the ContextMonitor neccessary here?
-// Monitor tcm = monitorFactory.setContextMonitor(monitor);
-// try {
-
- domainComposite = deployer.build(contribution, dependedOnContributions, new HashMap<QName, List<String>>(), monitor);
- monitor.analyzeProblems();
-
-// } finally {
-// monitorFactory.setContextMonitor(tcm);
-// }
-
- compositeContext = new CompositeContext(extensionPointRegistry,
- endpointRegistry,
- domainComposite,
- null, // nothing appears to use the domain name in CompositeContext
- null, // don't need node uri
- deployer.getSystemDefinitions());
-
- CompositeContext.setThreadCompositeContext(compositeContext); // TODO: what is this doing?
-
- compositeActivator.activate(compositeContext, domainComposite);
- compositeActivator.start(compositeContext, domainComposite);
-
- this.uri = getCompositeURI(composite, installedContribution);
- }
-
- public void unDeploy() throws ActivationException {
- compositeActivator.stop(compositeContext, domainComposite);
- compositeActivator.deactivate(domainComposite);
- }
-
- public String getURI() {
- return uri;
- }
-
- /**
- * Deployable composites don't have the uri set so get it from the artifact in the contribution
- * // TODO: fix the Tuscany code so this uri is correctly set and this method isn't needed
- */
- protected String getCompositeURI(Composite c, InstalledContribution ic) {
- for (Artifact a : ic.getContribution().getArtifacts()) {
- if (a.getModel() != null) {
- if (a.getModel() instanceof Composite) {
- Composite cm = a.getModel();
- if (c.getName().equals(cm.getName())) {
- return cm.getURI();
- }
- }
- }
- }
- // shouldn't ever happen
- throw new IllegalStateException("can't determine composte uri");
- }
-}
+/* + * 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.something.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.context.CompositeContext; +import org.apache.tuscany.sca.contribution.Artifact; +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.deployment.Deployer; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.ValidationException; +import org.apache.tuscany.sca.runtime.ActivationException; +import org.apache.tuscany.sca.runtime.CompositeActivator; +import org.apache.tuscany.sca.runtime.EndpointRegistry; + +public class DeployedComposite { + + private String uri; + private Composite composite; + private InstalledContribution installedContribution; + private List<Contribution> dependedOnContributions; + private Composite domainComposite; // TODO: this is misleadingly named + + private CompositeActivator compositeActivator; + private CompositeContext compositeContext; + private Deployer deployer; + private EndpointRegistry endpointRegistry; + private ExtensionPointRegistry extensionPointRegistry; + + public DeployedComposite(Composite composite, + InstalledContribution ic, + List<Contribution> dependedOnContributions, + Deployer deployer, + CompositeActivator compositeActivator, + EndpointRegistry endpointRegistry, + ExtensionPointRegistry extensionPointRegistry) throws ActivationException { + this.composite = composite; + this.installedContribution = ic; + this.dependedOnContributions = dependedOnContributions; + this.deployer = deployer; + this.compositeActivator = compositeActivator; + this.endpointRegistry = endpointRegistry; + this.extensionPointRegistry = extensionPointRegistry; + try { + init(); + } catch (Exception e) { + throw new ActivationException(e); + } + } + + protected void init() throws ValidationException, ContributionResolveException, CompositeBuilderException, ActivationException { + + List<Contribution> contribution = new ArrayList<Contribution>(); + contribution.add(installedContribution.getContribution()); + contribution.get(0).getDeployables().clear(); + contribution.get(0).getDeployables().add(composite); + + Monitor monitor = deployer.createMonitor(); +// TODO: is the ContextMonitor neccessary here? +// Monitor tcm = monitorFactory.setContextMonitor(monitor); +// try { + + domainComposite = deployer.build(contribution, dependedOnContributions, new HashMap<QName, List<String>>(), monitor); + monitor.analyzeProblems(); + +// } finally { +// monitorFactory.setContextMonitor(tcm); +// } + + compositeContext = new CompositeContext(extensionPointRegistry, + endpointRegistry, + domainComposite, + null, // nothing appears to use the domain name in CompositeContext + null, // don't need node uri + deployer.getSystemDefinitions()); + + CompositeContext.setThreadCompositeContext(compositeContext); // TODO: what is this doing? + + compositeActivator.activate(compositeContext, domainComposite); + compositeActivator.start(compositeContext, domainComposite); + + this.uri = getCompositeURI(composite, installedContribution); + } + + public void unDeploy() throws ActivationException { + compositeActivator.stop(compositeContext, domainComposite); + compositeActivator.deactivate(domainComposite); + } + + public String getURI() { + return uri; + } + + /** + * Deployable composites don't have the uri set so get it from the artifact in the contribution + * // TODO: fix the Tuscany code so this uri is correctly set and this method isn't needed + */ + protected String getCompositeURI(Composite c, InstalledContribution ic) { + for (Artifact a : ic.getContribution().getArtifacts()) { + if (a.getModel() != null) { + if (a.getModel() instanceof Composite) { + Composite cm = a.getModel(); + if (c.getName().equals(cm.getName())) { + return cm.getURI(); + } + } + } + } + // shouldn't ever happen + throw new IllegalStateException("can't determine composte uri"); + } +} diff --git a/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/InstalledContribution.java b/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/InstalledContribution.java index 69dc9e6992..fe8c6812ae 100644 --- a/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/InstalledContribution.java +++ b/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/InstalledContribution.java @@ -1,60 +1,60 @@ -/*
- * 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.something.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.contribution.Contribution;
-
-public class InstalledContribution {
-
- private String uri;
- private String url;
- private Contribution contribution;
- private List<Composite> defaultDeployables = new ArrayList<Composite>();
- private List<DeployedComposite> deployedComposites = new ArrayList<DeployedComposite>();
-
- public InstalledContribution(String uri, String url, Contribution contribution) {
- this.uri = uri;
- this.url = url;
- this.contribution = contribution;
- this.defaultDeployables = contribution.getDeployables();
- }
- public Contribution getContribution() {
- return contribution;
- }
- public void setContribution(Contribution contribution) {
- this.contribution = contribution;
- }
- public String getURI() {
- return uri;
- }
- public String getURL() {
- return url;
- }
- public List<Composite> getDefaultDeployables() {
- return defaultDeployables;
- }
- public List<DeployedComposite> getDeployedComposites() {
- return deployedComposites;
- }
-}
+/* + * 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.something.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.contribution.Contribution; + +public class InstalledContribution { + + private String uri; + private String url; + private Contribution contribution; + private List<Composite> defaultDeployables = new ArrayList<Composite>(); + private List<DeployedComposite> deployedComposites = new ArrayList<DeployedComposite>(); + + public InstalledContribution(String uri, String url, Contribution contribution) { + this.uri = uri; + this.url = url; + this.contribution = contribution; + this.defaultDeployables = contribution.getDeployables(); + } + public Contribution getContribution() { + return contribution; + } + public void setContribution(Contribution contribution) { + this.contribution = contribution; + } + public String getURI() { + return uri; + } + public String getURL() { + return url; + } + public List<Composite> getDefaultDeployables() { + return defaultDeployables; + } + public List<DeployedComposite> getDeployedComposites() { + return deployedComposites; + } +} diff --git a/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java b/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java index 55b716e5a6..15cc714896 100644 --- a/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java +++ b/sca-java-2.x/trunk/modules/domain/src/main/java/org/apache/tuscany/sca/something/impl/Section10Impl.java @@ -1,278 +1,278 @@ -/*
- * 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.something.impl;
-
-import java.io.Reader;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.common.java.io.IOHelper;
-import org.apache.tuscany.sca.contribution.Artifact;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionMetadata;
-import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.deployment.Deployer;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.ValidationException;
-import org.apache.tuscany.sca.runtime.ActivationException;
-import org.apache.tuscany.sca.runtime.CompositeActivator;
-import org.apache.tuscany.sca.runtime.EndpointRegistry;
-import org.apache.tuscany.sca.something.Section10;
-import org.oasisopen.sca.NoSuchDomainException;
-import org.oasisopen.sca.NoSuchServiceException;
-import org.oasisopen.sca.client.SCAClientFactory;
-
-public class Section10Impl implements Section10 {
-
- private String domainName;
- private Deployer deployer;
- private Map<String, InstalledContribution> installedContributions = new HashMap<String, InstalledContribution>();
- private CompositeActivator compositeActivator;
- private EndpointRegistry endpointRegistry;
- private ExtensionPointRegistry extensionPointRegistry;
-
- public Section10Impl(String domainName, Deployer deployer, CompositeActivator compositeActivator, EndpointRegistry endpointRegistry, ExtensionPointRegistry extensionPointRegistry) {
- this.domainName = domainName;
- this.deployer = deployer;
- this.compositeActivator = compositeActivator;
- this.endpointRegistry = endpointRegistry;
- this.extensionPointRegistry = extensionPointRegistry;
- }
-
- public void installContribution(String uri, String contributionURL, String metaDataURL, List<String> dependentContributionURIs, boolean deployDeployables) throws ContributionReadException, ActivationException, ValidationException {
- Monitor monitor = deployer.createMonitor();
- Contribution contribution = deployer.loadContribution(URI.create(uri), IOHelper.getLocationAsURL(contributionURL), monitor);
- monitor.analyzeProblems();
- if (metaDataURL != null) {
- mergeContributionMetaData(metaDataURL, contribution);
- }
- installContribution(contribution, dependentContributionURIs, deployDeployables);
- }
-
- private void mergeContributionMetaData(String metaDataURL, Contribution contribution) throws ValidationException {
- ContributionMetadata metaData;
- Monitor monitor = deployer.createMonitor();
- try {
- metaData = deployer.loadXMLDocument(IOHelper.getLocationAsURL(metaDataURL), monitor);
- } catch (Exception e) {
- throw new ValidationException(e);
- }
- monitor.analyzeProblems();
- contribution.getDeployables().addAll(metaData.getDeployables());
- contribution.getImports().addAll(metaData.getImports());
- contribution.getExports().addAll(metaData.getExports());
- }
-
- public void installContribution(Contribution contribution, List<String> dependentContributionURIs, boolean deployDeployables) throws ContributionReadException, ActivationException, ValidationException {
- // TODO: dependentContributionURIs
- InstalledContribution ic = new InstalledContribution(contribution.getURI(), contribution.getLocation(), contribution);
- installedContributions.put(contribution.getURI(), ic);
- if (deployDeployables) {
- for (Composite c : ic.getDefaultDeployables()) {
- deployComposite(c, ic);
- }
- }
- }
-
- public String addDeploymentComposite(String contributionURI, Reader compositeXML) throws ContributionReadException, XMLStreamException, ActivationException, ValidationException {
- Monitor monitor = deployer.createMonitor();
- Composite composite = deployer.loadXMLDocument(compositeXML, monitor);
- monitor.analyzeProblems();
- return addDeploymentComposite(contributionURI, composite);
- }
-
- public String addDeploymentComposite(String contributionURI, Composite composite) throws ActivationException {
- InstalledContribution ic = installedContributions.get(contributionURI);
- if (ic == null) {
- throw new IllegalArgumentException("contribution not installed: " + contributionURI);
- }
- String compositeArtifcatURI = deployer.attachDeploymentComposite(ic.getContribution(), composite, true);
- deployComposite(composite, ic);
- return compositeArtifcatURI;
- }
-
- public void addToDomainLevelComposite(String compositeURI) throws ActivationException {
- String contributionURI = getContributionUriForArtifact(compositeURI);
- InstalledContribution ic = installedContributions.get(contributionURI);
- if (ic == null) {
- throw new IllegalArgumentException("Contribution not installed: " + contributionURI);
- }
- String relativeURI = compositeURI.substring(contributionURI.length()+1);
- for (Artifact a : ic.getContribution().getArtifacts()) {
- if (a.getURI().equals(relativeURI)) {
- deployComposite((Composite) a.getModel(), ic);
- return;
- }
- }
- throw new IllegalArgumentException("composite not found: " + compositeURI);
- }
-
- public void removeFromDomainLevelComposite(String compositeURI) throws ActivationException {
- String contributionURI = getContributionUriForArtifact(compositeURI);
- InstalledContribution ic = installedContributions.get(contributionURI);
- String relativeURI = compositeURI.substring(contributionURI.length()+1);
- for (DeployedComposite dc : ic.getDeployedComposites()) {
- if (relativeURI.equals(dc.getURI())) {
- ic.getDeployedComposites().remove(dc);
- dc.unDeploy();
- return;
- }
- }
- throw new IllegalStateException("composite not deployed: " + compositeURI);
- }
-
- public Composite getDomainLevelComposite() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String getDomainLevelCompositeAsString() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Object getQNameDefinition(String contributionURI, QName definition, QName symbolSpace) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public List<String> removeContribution(String contributionURI) throws ActivationException {
- List<String> removedContributionURIs = new ArrayList<String>();
- InstalledContribution ic = installedContributions.get(contributionURI);
- if (ic != null) {
- removedContributionURIs.add(ic.getURI());
- for (String dependent : getDependentContributions(contributionURI)) {
- removedContributionURIs.addAll(removeContribution(dependent));
- }
- installedContributions.remove(contributionURI);
- for (DeployedComposite dc : ic.getDeployedComposites()) {
- dc.unDeploy();
- }
- ic.getDeployedComposites().clear();
- }
- return removedContributionURIs;
- }
-
- public void updateContribution(String uri, String contributionURL) {
- // TODO Auto-generated method stub
- // is this just removeContribution/installContribution?
- }
- public void updateContribution(Contribution contribution) {
- // TODO Auto-generated method stub
- }
-
- public String updateDeploymentComposite(String uri, Reader compositeXML) {
- // TODO Auto-generated method stub
- // is this removeFromDomainLevelComposite/addDeploymentComposite
- return null;
- }
- public String updateDeploymentComposite(String uri, Composite composite) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void shutdown() throws ActivationException {
- for (String uri : installedContributions.keySet()) {
- removeContribution(uri);
- }
- }
-
- public <T> T getService(Class<T> interfaze, String serviceURI) throws NoSuchServiceException {
- try {
- return SCAClientFactory.newInstance(URI.create(getDomainName())).getService(interfaze, serviceURI);
- } catch (NoSuchDomainException e) {
- // shouldn't ever happen as we know this is the domain so it must exist
- throw new IllegalStateException(e);
- }
- }
-
- public String getDomainName() {
- return domainName;
- }
-
- public List<String> getDeployedCompostes(String contributionURI) {
- ArrayList<String> compositeURIs = new ArrayList<String>();
- for (InstalledContribution ic : installedContributions.values()) {
- for (DeployedComposite dc : ic.getDeployedComposites()) {
- compositeURIs.add(ic.getURI() + "/" + dc.getURI());
- }
- }
- return compositeURIs;
- }
-
- public List<String> getInstalledContributions() {
- return new ArrayList<String>(installedContributions.keySet());
- }
-
- protected String getContributionUriForArtifact(String artifactURI) {
- String contributionURI = null;
- for (String uri : installedContributions.keySet()) {
- if (artifactURI.startsWith(uri)) {
- contributionURI = uri;
- break;
- }
- }
- if (contributionURI == null) {
- throw new IllegalArgumentException("no contribution found for: " + artifactURI);
- }
- return contributionURI;
- }
-
- protected void deployComposite(Composite c, InstalledContribution ic) throws ActivationException {
- List<Contribution> dependentContributions = new ArrayList<Contribution>();
- for (InstalledContribution ics : installedContributions.values()) {
- dependentContributions.add(ics.getContribution());
- }
-
- DeployedComposite dc = new DeployedComposite(c, ic, dependentContributions, deployer, compositeActivator, endpointRegistry, extensionPointRegistry);
- ic.getDeployedComposites().add(dc);
- }
-
- public Set<String> getDependentContributions(String contributionURI) {
- InstalledContribution ic = installedContributions.get(contributionURI);
- if (ic == null) {
- throw new IllegalArgumentException("Contribution not installed: " + contributionURI);
- }
- Set<String> dependentContributionURIs = new HashSet<String>();
- for (InstalledContribution icx : installedContributions.values()) {
- if (ic != icx) {
- List<Contribution> dependencies = icx.getContribution().getDependencies();
- if (dependencies != null && dependencies.contains(ic.getContribution())) {
- dependentContributionURIs.addAll(getDependentContributions(icx.getURI()));
- }
- }
- }
- return dependentContributionURIs;
- }
-
- public Deployer getDeployer() {
- return deployer;
- }
-}
+/* + * 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.something.impl; + +import java.io.Reader; +import java.net.URI; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamException; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.common.java.io.IOHelper; +import org.apache.tuscany.sca.contribution.Artifact; +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.contribution.ContributionMetadata; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.deployment.Deployer; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.ValidationException; +import org.apache.tuscany.sca.runtime.ActivationException; +import org.apache.tuscany.sca.runtime.CompositeActivator; +import org.apache.tuscany.sca.runtime.EndpointRegistry; +import org.apache.tuscany.sca.something.Section10; +import org.oasisopen.sca.NoSuchDomainException; +import org.oasisopen.sca.NoSuchServiceException; +import org.oasisopen.sca.client.SCAClientFactory; + +public class Section10Impl implements Section10 { + + private String domainName; + private Deployer deployer; + private Map<String, InstalledContribution> installedContributions = new HashMap<String, InstalledContribution>(); + private CompositeActivator compositeActivator; + private EndpointRegistry endpointRegistry; + private ExtensionPointRegistry extensionPointRegistry; + + public Section10Impl(String domainName, Deployer deployer, CompositeActivator compositeActivator, EndpointRegistry endpointRegistry, ExtensionPointRegistry extensionPointRegistry) { + this.domainName = domainName; + this.deployer = deployer; + this.compositeActivator = compositeActivator; + this.endpointRegistry = endpointRegistry; + this.extensionPointRegistry = extensionPointRegistry; + } + + public void installContribution(String uri, String contributionURL, String metaDataURL, List<String> dependentContributionURIs, boolean deployDeployables) throws ContributionReadException, ActivationException, ValidationException { + Monitor monitor = deployer.createMonitor(); + Contribution contribution = deployer.loadContribution(URI.create(uri), IOHelper.getLocationAsURL(contributionURL), monitor); + monitor.analyzeProblems(); + if (metaDataURL != null) { + mergeContributionMetaData(metaDataURL, contribution); + } + installContribution(contribution, dependentContributionURIs, deployDeployables); + } + + private void mergeContributionMetaData(String metaDataURL, Contribution contribution) throws ValidationException { + ContributionMetadata metaData; + Monitor monitor = deployer.createMonitor(); + try { + metaData = deployer.loadXMLDocument(IOHelper.getLocationAsURL(metaDataURL), monitor); + } catch (Exception e) { + throw new ValidationException(e); + } + monitor.analyzeProblems(); + contribution.getDeployables().addAll(metaData.getDeployables()); + contribution.getImports().addAll(metaData.getImports()); + contribution.getExports().addAll(metaData.getExports()); + } + + public void installContribution(Contribution contribution, List<String> dependentContributionURIs, boolean deployDeployables) throws ContributionReadException, ActivationException, ValidationException { + // TODO: dependentContributionURIs + InstalledContribution ic = new InstalledContribution(contribution.getURI(), contribution.getLocation(), contribution); + installedContributions.put(contribution.getURI(), ic); + if (deployDeployables) { + for (Composite c : ic.getDefaultDeployables()) { + deployComposite(c, ic); + } + } + } + + public String addDeploymentComposite(String contributionURI, Reader compositeXML) throws ContributionReadException, XMLStreamException, ActivationException, ValidationException { + Monitor monitor = deployer.createMonitor(); + Composite composite = deployer.loadXMLDocument(compositeXML, monitor); + monitor.analyzeProblems(); + return addDeploymentComposite(contributionURI, composite); + } + + public String addDeploymentComposite(String contributionURI, Composite composite) throws ActivationException { + InstalledContribution ic = installedContributions.get(contributionURI); + if (ic == null) { + throw new IllegalArgumentException("contribution not installed: " + contributionURI); + } + String compositeArtifcatURI = deployer.attachDeploymentComposite(ic.getContribution(), composite, true); + deployComposite(composite, ic); + return compositeArtifcatURI; + } + + public void addToDomainLevelComposite(String compositeURI) throws ActivationException { + String contributionURI = getContributionUriForArtifact(compositeURI); + InstalledContribution ic = installedContributions.get(contributionURI); + if (ic == null) { + throw new IllegalArgumentException("Contribution not installed: " + contributionURI); + } + String relativeURI = compositeURI.substring(contributionURI.length()+1); + for (Artifact a : ic.getContribution().getArtifacts()) { + if (a.getURI().equals(relativeURI)) { + deployComposite((Composite) a.getModel(), ic); + return; + } + } + throw new IllegalArgumentException("composite not found: " + compositeURI); + } + + public void removeFromDomainLevelComposite(String compositeURI) throws ActivationException { + String contributionURI = getContributionUriForArtifact(compositeURI); + InstalledContribution ic = installedContributions.get(contributionURI); + String relativeURI = compositeURI.substring(contributionURI.length()+1); + for (DeployedComposite dc : ic.getDeployedComposites()) { + if (relativeURI.equals(dc.getURI())) { + ic.getDeployedComposites().remove(dc); + dc.unDeploy(); + return; + } + } + throw new IllegalStateException("composite not deployed: " + compositeURI); + } + + public Composite getDomainLevelComposite() { + // TODO Auto-generated method stub + return null; + } + + public String getDomainLevelCompositeAsString() { + // TODO Auto-generated method stub + return null; + } + + public Object getQNameDefinition(String contributionURI, QName definition, QName symbolSpace) { + // TODO Auto-generated method stub + return null; + } + + public List<String> removeContribution(String contributionURI) throws ActivationException { + List<String> removedContributionURIs = new ArrayList<String>(); + InstalledContribution ic = installedContributions.get(contributionURI); + if (ic != null) { + removedContributionURIs.add(ic.getURI()); + for (String dependent : getDependentContributions(contributionURI)) { + removedContributionURIs.addAll(removeContribution(dependent)); + } + installedContributions.remove(contributionURI); + for (DeployedComposite dc : ic.getDeployedComposites()) { + dc.unDeploy(); + } + ic.getDeployedComposites().clear(); + } + return removedContributionURIs; + } + + public void updateContribution(String uri, String contributionURL) { + // TODO Auto-generated method stub + // is this just removeContribution/installContribution? + } + public void updateContribution(Contribution contribution) { + // TODO Auto-generated method stub + } + + public String updateDeploymentComposite(String uri, Reader compositeXML) { + // TODO Auto-generated method stub + // is this removeFromDomainLevelComposite/addDeploymentComposite + return null; + } + public String updateDeploymentComposite(String uri, Composite composite) { + // TODO Auto-generated method stub + return null; + } + + public void shutdown() throws ActivationException { + for (String uri : installedContributions.keySet()) { + removeContribution(uri); + } + } + + public <T> T getService(Class<T> interfaze, String serviceURI) throws NoSuchServiceException { + try { + return SCAClientFactory.newInstance(URI.create(getDomainName())).getService(interfaze, serviceURI); + } catch (NoSuchDomainException e) { + // shouldn't ever happen as we know this is the domain so it must exist + throw new IllegalStateException(e); + } + } + + public String getDomainName() { + return domainName; + } + + public List<String> getDeployedCompostes(String contributionURI) { + ArrayList<String> compositeURIs = new ArrayList<String>(); + for (InstalledContribution ic : installedContributions.values()) { + for (DeployedComposite dc : ic.getDeployedComposites()) { + compositeURIs.add(ic.getURI() + "/" + dc.getURI()); + } + } + return compositeURIs; + } + + public List<String> getInstalledContributions() { + return new ArrayList<String>(installedContributions.keySet()); + } + + protected String getContributionUriForArtifact(String artifactURI) { + String contributionURI = null; + for (String uri : installedContributions.keySet()) { + if (artifactURI.startsWith(uri)) { + contributionURI = uri; + break; + } + } + if (contributionURI == null) { + throw new IllegalArgumentException("no contribution found for: " + artifactURI); + } + return contributionURI; + } + + protected void deployComposite(Composite c, InstalledContribution ic) throws ActivationException { + List<Contribution> dependentContributions = new ArrayList<Contribution>(); + for (InstalledContribution ics : installedContributions.values()) { + dependentContributions.add(ics.getContribution()); + } + + DeployedComposite dc = new DeployedComposite(c, ic, dependentContributions, deployer, compositeActivator, endpointRegistry, extensionPointRegistry); + ic.getDeployedComposites().add(dc); + } + + public Set<String> getDependentContributions(String contributionURI) { + InstalledContribution ic = installedContributions.get(contributionURI); + if (ic == null) { + throw new IllegalArgumentException("Contribution not installed: " + contributionURI); + } + Set<String> dependentContributionURIs = new HashSet<String>(); + for (InstalledContribution icx : installedContributions.values()) { + if (ic != icx) { + List<Contribution> dependencies = icx.getContribution().getDependencies(); + if (dependencies != null && dependencies.contains(ic.getContribution())) { + dependentContributionURIs.addAll(getDependentContributions(icx.getURI())); + } + } + } + return dependentContributionURIs; + } + + public Deployer getDeployer() { + return deployer; + } +} |