Author: remm
Date: Thu Nov 15 15:03:45 2018
New Revision: 1846661
URL: http://svn.apache.org/viewvc?rev=1846661&view=rev
Log:
Add a simple main method to use from a Maven packager pom.
Add new Strings to translate ... Sorry.
Modified:
tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1846661&r1=1846660&r2=1846661&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
[UTF-8] (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
[UTF-8] Thu Nov 15 15:03:45 2018
@@ -142,9 +142,11 @@ hostConfig.undeployVersion=Undeploying o
passwdUserDatabase.readFail=Failed to obtain a complete set of users from
/etc/passwd
+tomcat.invalidCommandLine=Invalid command line arguments [{0}]
tomcat.baseDirMakeFail=Unable to create the directory [{0}] to use as the base
directory
tomcat.baseDirNotDir=The location [{0}] specified for the base directory is
not a directory
tomcat.homeDirMakeFail=Unable to create the directory [{0}] to use as the home
directory
+tomcat.noContextXml=Unable to determine web application context.xml [{0}]
userConfig.database=Exception loading user database
userConfig.deploy=Deploying web application for user [{0}]
Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=1846661&r1=1846660&r2=1846661&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Thu Nov 15
15:03:45 2018
@@ -17,8 +17,11 @@
package org.apache.catalina.startup;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
+import java.net.URI;
import java.net.URL;
import java.security.Principal;
import java.util.ArrayList;
@@ -1307,7 +1310,7 @@ public class Tomcat {
result = webAppContextXml.toURI().toURL();
} catch (MalformedURLException e) {
Logger.getLogger(getLoggerName(getHost(),
contextName)).log(Level.WARNING,
- "Unable to determine web application context.xml " +
docBase, e);
+ sm.getString("tomcat.noContextXml", docBase), e);
}
}
return result;
@@ -1322,8 +1325,73 @@ public class Tomcat {
}
} catch (IOException e) {
Logger.getLogger(getLoggerName(getHost(),
contextName)).log(Level.WARNING,
- "Unable to determine web application context.xml " +
docBase, e);
+ sm.getString("tomcat.noContextXml", docBase), e);
}
return result;
}
+
+ /**
+ * Main executable method for use with a Maven packager.
+ * @param args the command line arguments
+ * @throws Exception if an error occurs
+ */
+ public static void main(String[] args) throws Exception {
+ org.apache.catalina.startup.Tomcat tomcat = new
org.apache.catalina.startup.Tomcat();
+ // Create a Catalina instance and let it parse the configuration files
+ // It will also set a shutdown hook to stop the Server when needed
+ tomcat.init(new ConfigurationSource() {
+ protected final File userDir = new
File(System.getProperty("user.dir"));
+ protected final URI userDirUri = userDir.toURI();
+ @Override
+ public Resource getResource(String name) throws IOException {
+ File f = new File(name);
+ if (!f.isAbsolute()) {
+ f = new File(userDir, name);
+ }
+ if (f.isFile()) {
+ return new Resource(new FileInputStream(f), f.toURI());
+ } else {
+ throw new FileNotFoundException(name);
+ }
+ }
+ @Override
+ public URI getURI(String name) {
+ File f = new File(name);
+ if (!f.isAbsolute()) {
+ f = new File(userDir, name);
+ }
+ if (f.isFile()) {
+ return f.toURI();
+ }
+ return userDirUri.resolve(name);
+ }
+ });
+ boolean await = false;
+ String path = "";
+ // Process command line parameters
+ for (int i = 0; i < args.length; i++) {
+ if (args[i].equals("--war")) {
+ if (++i >= args.length) {
+ throw new
IllegalArgumentException(sm.getString("tomcat.invalidCommandLine", args[i -
1]));
+ }
+ File war = new File(args[i]);
+ tomcat.addWebapp(path, war.getAbsolutePath());
+ } else if (args[i].equals("--path")) {
+ if (++i >= args.length) {
+ throw new
IllegalArgumentException(sm.getString("tomcat.invalidCommandLine", args[i -
1]));
+ }
+ path = args[i];
+ } else if (args[i].equals("--await")) {
+ await = true;
+ } else {
+ throw new
IllegalArgumentException(sm.getString("tomcat.invalidCommandLine", args[i]));
+ }
+ }
+ tomcat.start();
+ // Ideally the utility threads are non daemon
+ if (await) {
+ tomcat.getServer().await();
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]