summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/tags/2.0.1-RC1/modules/node-api/src/main/java/org/apache/tuscany/sca/node/configuration/ContributionConfiguration.java
blob: ee790f54bf84415e30511aa2033df4b4442e228e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/*
 * 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.node.configuration;

import java.io.InputStream;
import java.io.Reader;
import java.net.URI;
import java.net.URL;
import java.util.List;

/**
 * Configuration for an SCA contribution used by the SCA node
 */
public interface ContributionConfiguration {
    /**
     * Get the URI of the contribution
     * @return The URI of the contribution
     */
    String getURI();

    /**
     * Set the URI of the contribution
     * @param uri The URI of the contribution
     */
    ContributionConfiguration setURI(String uri);

    /**
     * Get the location of the contribution
     * @return The location of the contribution
     */
    String getLocation();

    /**
     * Set the location of the contribution
     * @param location The location of the contribution
     */
    ContributionConfiguration setLocation(String location);

    /**
     * Get the list of deployment composites that are attached to the contribution
     * @return A list of deployment composites
     */
    List<DeploymentComposite> getDeploymentComposites();

    /**
     * Add a deployment composite to this contribution
     * @param deploymentComposite The deployment composite
     * @return
     */
    ContributionConfiguration addDeploymentComposite(DeploymentComposite deploymentComposite);

    /**
     * Create a deployment composite and add it to the contribution configuration
     * @param location The location is either relative to the contribution or
     * @return
     */
    ContributionConfiguration addDeploymentComposite(URI location);

    /**
     * Attach a deployment composite to this contribution
     * @param location
     * @return
     */
    ContributionConfiguration addDeploymentComposite(URL location);

    /**
     * Attach a deployment composite to this contribution
     * @param content The string that contains the XML description of the SCA composite
     * @return
     */
    ContributionConfiguration addDeploymentComposite(String content);

    /**
     * Attach a deployment composite to this contribution
     * @param content The XML description of the SCA composite from a reader
     * @return
     */
    ContributionConfiguration addDeploymentComposite(Reader content);
    /**
     * Attach a deployment composite to this contribution
     * @param content The XML description of the SCA composite from an input stream
     * @return
     */
    ContributionConfiguration addDeploymentComposite(InputStream content);

    /**
     * Set if the deployable composites should be started when the contribution is installed
     * @param startDeployables  whether or not deployable composites should be started. The default is false.
     */
    void setStartDeployables(boolean startDeployables);

    /**
     * Tests if the deployable composites should be started when the contribution is installed
     */
    boolean isStartDeployables();

    /**
     * Gets the URIs of any dependent contributions. The dependent contributions are the
     * contributions that will be used to resolve any imports used by this contribution.
     * @return the URIs of any dependent contribution
     */
    List<String> getDependentContributionURIs();

    /**
     * Sets the dependent contribution URIs for this contribution. The dependent contributions are the
     * contributions that will be used to resolve any imports used by this contribution.
     * @param dependentContributionURIs
     */
    void setDependentContributionURIs(List<String> dependentContributionURIs);

    /**
     * Get the contribution meta data url. This is sca-contribution.xml data that is added to any 
     * existing meta-inf/sca-contribution.xml file within the contribution.
     * @return the metadata url string
     */
    String getMetaDataURL();

    /**
     * Set the contribution meta data url. This is sca-contribution.xml data that is added to any 
     * existing meta-inf/sca-contribution.xml file within the contribution.
     * @param metaDataURL  the url string to the metadata file.
     */
    void setMetaDataURL(String metaDataURL);
}