If WEB-INF/sca-contributions contains contributions then use it automatically without requireing users define it in the web.xml
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1041529 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e421a202d2
commit
7dcd557051
1 changed files with 19 additions and 2 deletions
|
@ -42,6 +42,7 @@ public class WebAppHelper {
|
|||
private static final String ROOT = "/";
|
||||
// The prefix for the parameters in web.xml which configure the folders that contain SCA contributions
|
||||
private static final String CONTRIBUTIONS = "contributions";
|
||||
private static final String DEFAULT_CONTRIBUTIONS = "/WEB-INF/sca-contributions";
|
||||
// The prefix for the parameters in web.xml which configure the individual SCA contributions
|
||||
private static final String CONTRIBUTION = "contribution";
|
||||
private static final String NODE_CONFIGURATION = "node.configuration";
|
||||
|
@ -91,10 +92,14 @@ public class WebAppHelper {
|
|||
configuration = factory.loadConfiguration(url.openStream(), url);
|
||||
} else {
|
||||
configuration = factory.createNodeConfiguration();
|
||||
|
||||
|
||||
boolean explicitContributions = false;
|
||||
Enumeration<String> names = servletContext.getAttributeNames();
|
||||
while (names.hasMoreElements()) {
|
||||
String name = names.nextElement();
|
||||
if (name.equals(CONTRIBUTION) || name.startsWith(CONTRIBUTION + ".")) {
|
||||
explicitContributions = true;
|
||||
// We need to have a way to select one or more folders within the webapp as the contributions
|
||||
String listOfValues = (String)servletContext.getAttribute(name);
|
||||
if (listOfValues != null) {
|
||||
|
@ -107,6 +112,7 @@ public class WebAppHelper {
|
|||
}
|
||||
}
|
||||
} else if (name.equals(CONTRIBUTIONS) || name.startsWith(CONTRIBUTIONS + ".")) {
|
||||
explicitContributions = true;
|
||||
String listOfValues = (String)servletContext.getAttribute(name);
|
||||
if (listOfValues != null) {
|
||||
for (String path : parse(listOfValues)) {
|
||||
|
@ -126,14 +132,25 @@ public class WebAppHelper {
|
|||
}
|
||||
}
|
||||
|
||||
if (configuration.getContributions().isEmpty()) {
|
||||
URL composite = getResource(servletContext, WEB_COMPOSITE);
|
||||
if (configuration.getContributions().isEmpty() || (!explicitContributions && composite != null)) {
|
||||
// TODO: Which path should be the default root
|
||||
configuration.addContribution(getResource(servletContext, ROOT));
|
||||
}
|
||||
URL composite = getResource(servletContext, WEB_COMPOSITE);
|
||||
if (composite != null) {
|
||||
configuration.getContributions().get(0).addDeploymentComposite(composite);
|
||||
}
|
||||
if (!explicitContributions) {
|
||||
URL url = getResource(servletContext, DEFAULT_CONTRIBUTIONS);
|
||||
if (url != null) {
|
||||
File f = new File(url.toURI());
|
||||
if (f.isDirectory()) {
|
||||
for (File n : f.listFiles()) {
|
||||
configuration.addContribution(n.toURI().toURL());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
String nodeURI = (String)servletContext.getAttribute(NODE_URI);
|
||||
if (nodeURI == null) {
|
||||
nodeURI = new File(servletContext.getRealPath(ROOT)).getName();
|
||||
|
|
Loading…
Reference in a new issue