You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2009/12/06 11:33:24 UTC
svn commit: r887658 -
/tuscany/sca-java-2.x/trunk/distribution/tomcat/tomcat-servlet/src/main/java/org/apache/tuscany/sca/war/Installer.java
Author: antelder
Date: Sun Dec 6 10:33:23 2009
New Revision: 887658
URL: http://svn.apache.org/viewvc?rev=887658&view=rev
Log:
Update the installer to explicitly add the TuscanyHostConfig to Host definitions in conf/server.xml as there doesn't seem to be any way to do that programatically
Modified:
tuscany/sca-java-2.x/trunk/distribution/tomcat/tomcat-servlet/src/main/java/org/apache/tuscany/sca/war/Installer.java
Modified: tuscany/sca-java-2.x/trunk/distribution/tomcat/tomcat-servlet/src/main/java/org/apache/tuscany/sca/war/Installer.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/distribution/tomcat/tomcat-servlet/src/main/java/org/apache/tuscany/sca/war/Installer.java?rev=887658&r1=887657&r2=887658&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/distribution/tomcat/tomcat-servlet/src/main/java/org/apache/tuscany/sca/war/Installer.java (original)
+++ tuscany/sca-java-2.x/trunk/distribution/tomcat/tomcat-servlet/src/main/java/org/apache/tuscany/sca/war/Installer.java Sun Dec 6 10:33:23 2009
@@ -114,11 +114,7 @@
throw new IllegalStateException("conf/server.xml not found: " + serverXml.getAbsolutePath());
}
removeServerXml(serverXml);
- File propFile = new File(tuscanyWAR, "tuscany.properties");
- if (propFile.isFile()) {
- propFile.delete();
- }
-
+ removeHostConfigXml(serverXml);
}
private boolean doInstall() {
@@ -155,9 +151,44 @@
// Add Tuscany LifecycleListener to Tomcat server.xml
updateServerXml(serverXml);
+ // Add Tuscany HostConfig to Hosts definitions in server.xml
+ updateHostConfigXml(serverXml);
+
+ // Add Tuscany specific default web.xml
+ addTuscanyWebXml();
+
return true;
}
+ private static final String tuscanyWebXML =
+ "\r\n\r\n" + " <!-- Tuscany Listener and Filter definitions -->\r\n" +
+ " <listener>\r\n" +
+ " <listener-class>org.apache.tuscany.sca.host.webapp.TuscanyContextListener</listener-class>\r\n" +
+ " </listener>\r\n" +
+ "\r\n" +
+ " <filter>\r\n" +
+ " <filter-name>tuscany</filter-name>\r\n" +
+ " <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>\r\n" +
+ " </filter>\r\n" +
+ "\r\n" +
+ " <filter-mapping>\r\n" +
+ " <filter-name>tuscany</filter-name>\r\n" +
+ " <url-pattern>/*</url-pattern>\r\n" +
+ " </filter-mapping>";
+
+ private void addTuscanyWebXml() {
+ File tuscanyWebXmlFile = new File(catalinaBase, "/conf/tuscany-web.xml");
+ if (!(tuscanyWebXmlFile.exists())) {
+ File webXmlFile = new File(catalinaBase, "/conf/web.xml");
+ if (!(webXmlFile.exists())) {
+ throw new IllegalStateException("conf/web.xml not found: " + webXmlFile.getAbsolutePath());
+ }
+ String webXML = readAll(webXmlFile);
+ String newWebXml = replace(webXML, "<web-app", "<web-app", ">", ">" + tuscanyWebXML);
+ writeAll(tuscanyWebXmlFile, newWebXml);
+ }
+ }
+
private File findTuscanyTomcatJar(File tuscanyWAR) {
File lib = new File(tuscanyWAR, "/tomcat-lib");
for (File f : lib.listFiles()) {
@@ -168,6 +199,7 @@
return null;
}
+
static final String tuscanyListener =
"\r\n" + " <!-- Tuscany plugin for Tomcat -->\r\n"
+ " <Listener className=\"org.apache.tuscany.sca.tomcat.TuscanyLifecycleListener\" />";
@@ -179,7 +211,6 @@
backup(serverXmlFile);
writeAll(serverXmlFile, newServerXml);
}
-
}
private void removeServerXml(File serverXmlFile) {
@@ -188,7 +219,23 @@
String newServerXml = replace(serverXML, "<Server", "<Server", ">" + tuscanyListener, ">");
writeAll(serverXmlFile, newServerXml);
}
+ }
+
+ static final String tuscanyHostConfig = " hostConfigClass=\"org.apache.tuscany.sca.tomcat.TuscanyHostConfig\" >";
+
+ private void updateHostConfigXml(File serverXmlFile) {
+ String serverXML = readAll(serverXmlFile);
+ String newServerXml = replace(serverXML, "<Host", "<Host", ">", tuscanyHostConfig);
+ backup(serverXmlFile);
+ writeAll(serverXmlFile, newServerXml);
+ }
+ private void removeHostConfigXml(File serverXmlFile) {
+ String serverXML = readAll(serverXmlFile);
+ if (serverXML.contains(tuscanyHostConfig)) {
+ String newServerXml = replace(serverXML, "<Host", "<Host", tuscanyHostConfig, ">");
+ writeAll(serverXmlFile, newServerXml);
+ }
}
private String replace(String inputText, String begin, String newBegin, String end, String newEnd) {