summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/tags/2.0-Beta2-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyHostConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta2-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyHostConfig.java')
-rw-r--r--sca-java-2.x/tags/2.0-Beta2-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyHostConfig.java167
1 files changed, 0 insertions, 167 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta2-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyHostConfig.java b/sca-java-2.x/tags/2.0-Beta2-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyHostConfig.java
deleted file mode 100644
index e92d7a0bf6..0000000000
--- a/sca-java-2.x/tags/2.0-Beta2-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyHostConfig.java
+++ /dev/null
@@ -1,167 +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.tomcat;
-
-import java.io.File;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.apache.catalina.Context;
-import org.apache.catalina.Lifecycle;
-import org.apache.catalina.LifecycleListener;
-import org.apache.catalina.startup.HostConfig;
-
-/**
- * A Tuscany customized HostConfig that adds support for SCA contributions
- * to be deployed along with the usual .war files.
- */
-public class TuscanyHostConfig extends HostConfig {
-
- protected File scaBase = null;
-
- @Override
- protected void deployApps() {
-
- File appBase = appBase();
- File configBase = configBase();
- // Deploy XML descriptors from configBase
- deployDescriptors(configBase, configBase.list());
- // Deploy WARs, and loop if additional descriptors are found
- deployWARs(appBase, appBase.list());
- // TUSCANY: Deploy any SCA contibutions
- deploySCAContributions(appBase, appBase.list());
- // Deploy expanded folders
- deployDirectories(appBase, appBase.list());
- }
-
- protected void deploySCAContributions(File appBase, String[] files) {
- if (files == null)
- return;
-
- for (int i = 0; i < files.length; i++) {
-
- File scafile = new File(appBase, files[i]);
-
- if (scafile.isFile() && isSCAContribution(scafile)) {
-
- // Calculate the context path and make sure it is unique
- String contextPath = "/" + files[i].replace('#','/');
- int period = contextPath.lastIndexOf(".");
- if (period >= 0)
- contextPath = contextPath.substring(0, period);
-
- if (isServiced(contextPath))
- continue;
-
- String file = files[i];
-
- deploySCAContribution(contextPath, scafile, file);
-
- }
-
- }
-
- }
-
- protected String tuscanyContextClass = "org.apache.tuscany.sca.tomcat.TuscanyContextConfig";
-
- protected void deploySCAContribution(String contextPath, File dir, String file) {
- if (deploymentExists(contextPath))
- return;
-
- DeployedApplication deployedApp = new DeployedApplication(contextPath);
-
- // Deploy the application in this WAR file
- if(log.isInfoEnabled())
- log.info("Deploying SCA contibution: " + file);
-
- // Populate redeploy resources with the WAR file
- deployedApp.redeployResources.put(dir.getAbsolutePath(), new Long(dir.lastModified()));
-
- try {
- Context context = (Context) Class.forName(contextClass).newInstance();
- if (context instanceof Lifecycle) {
-
- // Tuscany: change to use the Tuscany ContextConfig class
- Class clazz = Class.forName(tuscanyContextClass);
-
- LifecycleListener listener =
- (LifecycleListener) clazz.newInstance();
- ((Lifecycle) context).addLifecycleListener(listener);
- }
- context.setPath(contextPath);
- context.setDocBase(file);
-
- host.addChild(context);
- // If we're unpacking WARs, the docBase will be mutated after
- // starting the context
- if (unpackWARs && (context.getDocBase() != null)) {
- String name = null;
- String path = context.getPath();
- if (path.equals("")) {
- name = "ROOT";
- } else {
- if (path.startsWith("/")) {
- name = path.substring(1);
- } else {
- name = path;
- }
- }
- name = name.replace('/', '#');
- File docBase = new File(name);
- if (!docBase.isAbsolute()) {
- docBase = new File(appBase(), name);
- }
- deployedApp.redeployResources.put(docBase.getAbsolutePath(),
- new Long(docBase.lastModified()));
- addWatchedResources(deployedApp, docBase.getAbsolutePath(), context);
- } else {
- addWatchedResources(deployedApp, null, context);
- }
- } catch (Throwable t) {
- log.error(sm.getString("hostConfig.deployJar.error", file), t);
- }
-
- deployed.put(contextPath, deployedApp);
- }
-
- protected boolean isSCAContribution(File file) {
- ZipFile zip = null;
- ZipEntry entry = null;
- try {
- try {
- zip = new ZipFile(file);
- entry = zip.getEntry("META-INF/sca-contribution.xml");
- } catch (Exception e) {
- }
-
- return (entry != null);
-
- } finally {
- if (zip != null) {
- try {
- zip.close();
- } catch (Throwable t) {
- }
- }
- }
- }
-
-}