private File getBaseDir() throws Exception { File dir = getWorkDir(); if (Utilities.isWindows()) { dir = new File(dir.getCanonicalPath()); } return dir; }
public boolean getForceStop() { if (Utilities.isWindows()) { return false; } String val = ip.getProperty(PROP_FORCE_STOP); return val != null ? Boolean.valueOf(val).booleanValue() : DEF_VALUE_FORCE_STOP; }
public String getDebugType() { String val = ip.getProperty(PROP_DEBUG_TYPE); if ((DEBUG_TYPE_SHARED.equalsIgnoreCase(val) && Utilities.isWindows()) || DEBUG_TYPE_SOCKET.equalsIgnoreCase(val)) { return val; } return DEF_VALUE_DEBUG_TYPE; }
public @Override boolean isNameCompatible(String simplename, JavaFileObject.Kind kind) { boolean res = super.isNameCompatible(simplename, kind); if (res) { return res; } else if (Utilities.isWindows()) { return nameWithoutExt.equalsIgnoreCase(simplename); } else { return false; } }
private void initFields(String path) { // Set default values if (path == null) { initComboBox(""); // NOI18N } else { if (Utilities.isWindows()) { path = path.replace('/', File.separatorChar); } initComboBox(path); } }
/** * Utility class that makes it easier to access and set Tomcat instance properties. * * @author sherold */ public class TomcatProperties { private static final Logger LOGGER = Logger.getLogger(TomcatProperties.class.getName()); /** Java platform property which is used as a java platform ID */ public static final String PLAT_PROP_ANT_NAME = "platform.ant.name"; // NOI18N public static final String DEBUG_TYPE_SOCKET = "SEL_debuggingType_socket"; // NOI18N public static final String DEBUG_TYPE_SHARED = "SEL_debuggingType_shared"; // NOI18N public static final String BUNDLED_TOMCAT_SETTING = "J2EE/BundledTomcat/Setting"; // NOI18N // properties private static final String PROP_URL = InstanceProperties.URL_ATTR; private static final String PROP_USERNAME = InstanceProperties.USERNAME_ATTR; private static final String PROP_PASSWORD = InstanceProperties.PASSWORD_ATTR; public static final String PROP_SERVER_PORT = InstanceProperties.HTTP_PORT_NUMBER; private static final String PROP_DISPLAY_NAME = InstanceProperties.DISPLAY_NAME_ATTR; public static final String PROP_SHUTDOWN = "admin_port"; // NOI18N public static final String PROP_MONITOR = "monitor_enabled"; // NOI18N public static final String PROP_PROXY_ENABLED = "proxy_enabled"; // NOI18N private static final String PROP_CUSTOM_SCRIPT = "custom_script_enabled"; // NOI18N private static final String PROP_SCRIPT_PATH = "script_path"; // NOI18N private static final String PROP_FORCE_STOP = "forceStopOption"; // NOI18N private static final String PROP_DEBUG_TYPE = "debug_type"; // NOI18N private static final String PROP_DEBUG_PORT = "debugger_port"; // NOI18N private static final String PROP_SHARED_MEM = "shared_memory"; // NOI18N private static final String PROP_JAVA_PLATFORM = "java_platform"; // NOI18N private static final String PROP_JAVA_OPTS = "java_opts"; // NOI18N private static final String PROP_SEC_MANAGER = "securityStartupOption"; // NOI18N private static final String PROP_SOURCES = "sources"; // NOI18N private static final String PROP_JAVADOCS = "javadocs"; // NOI18N private static final String PROP_OPEN_LOG = "openContextLogOnRun"; // NOI18N /** server.xml check timestamp */ private static final String PROP_TIMESTAMP = "timestamp"; // NOI18N private static final String PROP_HOST = "host"; // NOI18N public static final String PROP_RUNNING_CHECK_TIMEOUT = "runningCheckTimeout"; // NOI18N private static final String PROP_INSTANCE_ID = "instance_id"; // NOI18N public static final String PROP_AUTOREGISTERED = "autoregistered"; // NOI18N private static final String PROP_DRIVER_DEPLOYMENT = "driverDeploymentEnabled"; // NOI18N // default values private static final boolean DEF_VALUE_SEC_MANAGER = false; private static final boolean DEF_VALUE_CUSTOM_SCRIPT = false; private static final String DEF_VALUE_SCRIPT_PATH = ""; // NOI18N private static final boolean DEF_VALUE_FORCE_STOP = false; private static final String DEF_VALUE_JAVA_OPTS = ""; // NOI18N private static final String DEF_VALUE_DEBUG_TYPE = Utilities.isWindows() ? DEBUG_TYPE_SHARED : DEBUG_TYPE_SOCKET; private static final boolean DEF_VALUE_MONITOR = true; private static final boolean DEF_VALUE_PROXY_ENABLED = true; private static final int DEF_VALUE_DEBUG_PORT = 11550; private static final int DEF_VALUE_DEBUG_PORT_BUNDLED = 11555; private static final int DEF_VALUE_SERVER_PORT = 8080; public static final int DEF_VALUE_SHUTDOWN_PORT = 8005; public static final int DEF_VALUE_BUNDLED_SERVER_PORT = 8084; public static final int DEF_VALUE_BUNDLED_SHUTDOWN_PORT = 8025; private static final String DEF_VALUE_SHARED_MEM = "tomcat_shared_memory_id"; // NOI18N private static final boolean DEF_VALUE_OPEN_LOG = true; private static final String DEF_VALUE_HOST = "localhost"; // NOI18N public static final int DEF_VALUE_RUNNING_CHECK_TIMEOUT = 2000; private static final String DEF_VALUE_DISPLAY_NAME = NbBundle.getMessage(TomcatProperties.class, "LBL_DefaultDisplayName"); private static final boolean DEF_VALUE_DRIVER_DEPLOYMENT = true; private static final int DEF_VALUE_DEPLOYMENT_TIMEOUT = 120; private TomcatManager tm; private InstanceProperties ip; private File homeDir; private File baseDir; /** Creates a new instance of TomcatProperties */ public TomcatProperties(TomcatManager tm) throws IllegalArgumentException { this.tm = tm; this.ip = tm.getInstanceProperties(); String catalinaHome = null; String catalinaBase = null; String uri = ip.getProperty(PROP_URL); // NOI18N final String home = "home="; // NOI18N final String base = ":base="; // NOI18N final String uriString = "http://"; // NOI18N int uriOffset = uri.indexOf(uriString); int homeOffset = uri.indexOf(home) + home.length(); int baseOffset = uri.indexOf(base, homeOffset); if (homeOffset >= home.length()) { int homeEnd = baseOffset > 0 ? baseOffset : (uriOffset > 0 ? uriOffset - 1 : uri.length()); int baseEnd = uriOffset > 0 ? uriOffset - 1 : uri.length(); catalinaHome = uri.substring(homeOffset, homeEnd); if (baseOffset > 0) { catalinaBase = uri.substring(baseOffset + base.length(), baseEnd); } // Bundled Tomcat home and base dirs can be specified as attributes // specified in BUNDLED_TOMCAT_SETTING file. Tomcat manager URL can // then look like "tomcat:home=$bundled_home:base=$bundled_base" and // therefore remains valid even if Tomcat version changes. (issue# 40659) if (catalinaHome.length() > 0 && catalinaHome.charAt(0) == '$') { FileObject fo = FileUtil.getConfigFile(BUNDLED_TOMCAT_SETTING); if (fo != null) { catalinaHome = fo.getAttribute(catalinaHome.substring(1)).toString(); if (catalinaBase != null && catalinaBase.length() > 0 && catalinaBase.charAt(0) == '$') { catalinaBase = fo.getAttribute(catalinaBase.substring(1)).toString(); } } } } if (catalinaHome == null) { throw new IllegalArgumentException("CATALINA_HOME must not be null."); // NOI18N } homeDir = new File(catalinaHome); if (!homeDir.isAbsolute()) { InstalledFileLocator ifl = InstalledFileLocator.getDefault(); homeDir = ifl.locate(catalinaHome, null, false); } if (!homeDir.exists()) { throw new IllegalArgumentException("CATALINA_HOME directory does not exist."); // NOI18N } if (catalinaBase != null) { baseDir = new File(catalinaBase); if (!baseDir.isAbsolute()) { InstalledFileLocator ifl = InstalledFileLocator.getDefault(); baseDir = ifl.locate(catalinaBase, null, false); if (baseDir == null) { baseDir = new File(System.getProperty("netbeans.user"), catalinaBase); // NOI18N } } } // //parse the old format for backward compatibility // if (uriOffset > 0) { // String theUri = uri.substring (uriOffset + uriString.length ()); // int portIndex = theUri.indexOf (':'); // String host = theUri.substring (0, portIndex - 1); // setHost (host); // //System.out.println("host:"+host); // int portEnd = theUri.indexOf ('/'); // portEnd = portEnd > 0 ? portEnd : theUri.length (); // String port = theUri.substring (portIndex, portEnd - 1); // //System.out.println("port:"+port); // try { // setServerPort (Integer.valueOf (port)); // } catch (NumberFormatException nef) { // org.openide.ErrorManager.getDefault ().log (nef.getLocalizedMessage ()); // } // } ip.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { String name = evt.getPropertyName(); if (PROP_SERVER_PORT.equals(name) || PROP_USERNAME.equals(name) || PROP_PASSWORD.equals(name)) { // update Ant deployment properties file if it exists try { storeAntDeploymentProperties(getAntDeploymentPropertiesFile(), false); } catch (IOException ioe) { Logger.getLogger(TomcatProperties.class.getName()).log(Level.INFO, null, ioe); } } } }); } /** * Stores the Ant deployment properties in the specified file. * * @param create if false the deployment properties file won't be created if it does not exist. * @throws IOException if a problem occurs. */ public void storeAntDeploymentProperties(File file, boolean create) throws IOException { if (!create && !file.exists()) { return; } EditableProperties antProps = new EditableProperties(false); antProps.setProperty("tomcat.home", homeDir.getAbsolutePath()); // NOI18N antProps.setProperty("tomcat.url", getWebUrl()); // NOI18N antProps.setProperty("tomcat.username", getUsername()); // NOI18N file.createNewFile(); FileObject fo = FileUtil.toFileObject(file); FileLock lock = fo.lock(); try { OutputStream os = fo.getOutputStream(lock); try { antProps.store(os); } finally { os.close(); } } finally { lock.releaseLock(); } } /** Returns file the Ant deployment properties are stored in. */ public File getAntDeploymentPropertiesFile() { return new File(System.getProperty("netbeans.user"), getInstanceID() + ".properties"); // NOI18N } /** * Unique instance identifier used to differentiate different Tomcat instances in a human-readable * form, unlike InstanceProperties.URL_ATTR. */ private String getInstanceID() { String name = ip.getProperty(PROP_INSTANCE_ID); if (name != null) { return name; } // generate unique tomcat instance identifier (e.g. tomcat55, tomcat55_1, ... // for Tomcat 5.5.x and tomcat50, tomcat50_1... for Tomcat 5.0.x) String prefix; String serverID; switch (tm.getTomcatVersion()) { case TOMCAT_70: prefix = "tomcat70"; // NIO18N serverID = TomcatFactory.SERVER_ID_70; break; case TOMCAT_60: prefix = "tomcat60"; // NIO18N serverID = TomcatFactory.SERVER_ID_60; break; case TOMCAT_55: prefix = "tomcat55"; // NIO18N serverID = TomcatFactory.SERVER_ID_55; break; case TOMCAT_50: default: prefix = "tomcat50"; // NIO18N serverID = TomcatFactory.SERVER_ID_50; } String[] instanceURLs = Deployment.getDefault().getInstancesOfServer(serverID); for (int i = 0; name == null; i++) { if (i == 0) { name = prefix; } else { name = prefix + "_" + i; // NOI18N } for (String url : instanceURLs) { if (!tm.getUri().equals(url)) { InstanceProperties ip = InstanceProperties.getInstanceProperties(url); if (ip != null) { String anotherName = ip.getProperty(PROP_INSTANCE_ID); if (name.equals(anotherName)) { name = null; break; } } } } } ip.setProperty(PROP_INSTANCE_ID, name); return name; } /** Returns server web url e.g. http://localhost:8080 */ public String getWebUrl() { return "http://" + getHost() + ":" + getServerPort(); // NOI18N } /** Return CATALINA_HOME directory. */ public File getCatalinaHome() { return homeDir; } /** Return CATALINA_BASE directory or null if not defined. */ public File getCatalinaBase() { return baseDir; } /** Return CATALINA_BASE directory if defined, CATALINA_HOME otherwise. */ public File getCatalinaDir() { return baseDir == null ? homeDir : baseDir; } /** Returns the lib directory where for example the JDBC drivers should be deployed. */ public File getLibsDir() { String libsDir = tm.isTomcat50() || tm.isTomcat55() ? "common/lib" : "lib"; // NOI18N return new File(getCatalinaHome(), libsDir); } /** Returns the folder where the HTTP Monitor jar files should be placed */ public File getMonitorLibFolder() { if (tm.isBundledTomcat()) { return new File(baseDir, "nblib"); // NOI18N } return tm.isTomcat60() || tm.isTomcat70() ? new File(homeDir, "lib") // NOI18N : new File(homeDir, "common/lib"); // NOI18N } /** Return the default Tomcat Java endorsed directory. */ public File getJavaEndorsedDir() { if (TomcatVersion.TOMCAT_60 == tm.getTomcatVersion() || TomcatVersion.TOMCAT_70 == tm.getTomcatVersion()) { return new File(getCatalinaHome(), "endorsed"); // NOI18N } else { return new File(getCatalinaHome(), "common/endorsed"); // NOI18N } } public String getUsername() { String val = ip.getProperty(PROP_USERNAME); return val != null ? val : ""; // NOI18N } public void setUsername(String value) { ip.setProperty(PROP_USERNAME, value); } public String getPassword() { String val = ip.getProperty(PROP_PASSWORD); return val != null ? val : ""; // NOI18N } public void setPassword(String value) { ip.setProperty(PROP_PASSWORD, value); } public JavaPlatform getJavaPlatform() { String currentJvm = ip.getProperty(PROP_JAVA_PLATFORM); JavaPlatformManager jpm = JavaPlatformManager.getDefault(); JavaPlatform[] installedPlatforms = jpm.getPlatforms(null, new Specification("J2SE", null)); // NOI18N for (int i = 0; i < installedPlatforms.length; i++) { String platformName = (String) installedPlatforms[i].getProperties().get(PLAT_PROP_ANT_NAME); if (platformName != null && platformName.equals(currentJvm)) { return installedPlatforms[i]; } } // return default platform if none was set return jpm.getDefaultPlatform(); } public void setJavaPlatform(JavaPlatform javaPlatform) { ip.setProperty( PROP_JAVA_PLATFORM, (String) javaPlatform.getProperties().get(PLAT_PROP_ANT_NAME)); } public String getJavaOpts() { String val = ip.getProperty(PROP_JAVA_OPTS); return val != null ? val : DEF_VALUE_JAVA_OPTS; } public void setJavaOpts(String javaOpts) { ip.setProperty(PROP_JAVA_OPTS, javaOpts); } public boolean getSecManager() { String val = ip.getProperty(PROP_SEC_MANAGER); return val != null ? Boolean.valueOf(val).booleanValue() : DEF_VALUE_SEC_MANAGER; } public void setSecManager(boolean enabled) { ip.setProperty(PROP_SEC_MANAGER, Boolean.toString(enabled)); } public boolean getCustomScript() { String val = ip.getProperty(PROP_CUSTOM_SCRIPT); return val != null ? Boolean.valueOf(val).booleanValue() : DEF_VALUE_CUSTOM_SCRIPT; } public void setCustomScript(boolean enabled) { ip.setProperty(PROP_CUSTOM_SCRIPT, Boolean.toString(enabled)); } public String getScriptPath() { String val = ip.getProperty(PROP_SCRIPT_PATH); return val != null ? val : DEF_VALUE_SCRIPT_PATH; } public void setScriptPath(String path) { ip.setProperty(PROP_SCRIPT_PATH, path); } public boolean getForceStop() { if (Utilities.isWindows()) { return false; } String val = ip.getProperty(PROP_FORCE_STOP); return val != null ? Boolean.valueOf(val).booleanValue() : DEF_VALUE_FORCE_STOP; } public void setForceStop(boolean enabled) { ip.setProperty(PROP_FORCE_STOP, Boolean.toString(enabled)); } public String getDebugType() { String val = ip.getProperty(PROP_DEBUG_TYPE); if ((DEBUG_TYPE_SHARED.equalsIgnoreCase(val) && Utilities.isWindows()) || DEBUG_TYPE_SOCKET.equalsIgnoreCase(val)) { return val; } return DEF_VALUE_DEBUG_TYPE; } public void setDebugType(String type) { ip.setProperty(PROP_DEBUG_TYPE, type); } public boolean getMonitor() { String val = ip.getProperty(PROP_MONITOR); return val != null ? Boolean.valueOf(val).booleanValue() : DEF_VALUE_MONITOR; } public void setMonitor(boolean enabled) { ip.setProperty(PROP_MONITOR, Boolean.toString(enabled)); } public boolean getProxyEnabled() { String val = ip.getProperty(PROP_PROXY_ENABLED); return val != null ? Boolean.valueOf(val).booleanValue() : DEF_VALUE_PROXY_ENABLED; } public void setProxyEnabled(boolean enabled) { ip.setProperty(PROP_PROXY_ENABLED, Boolean.toString(enabled)); } public int getDebugPort() { String val = ip.getProperty(PROP_DEBUG_PORT); if (val != null) { try { return Integer.parseInt(val); } catch (NumberFormatException nfe) { Logger.getLogger(TomcatProperties.class.getName()).log(Level.INFO, null, nfe); } } if (tm.isBundledTomcat()) { return DEF_VALUE_DEBUG_PORT_BUNDLED; } else { return DEF_VALUE_DEBUG_PORT; } } public void setDebugPort(int port) { ip.setProperty(PROP_DEBUG_PORT, Integer.toString(port)); } public int getServerPort() { String val = ip.getProperty(PROP_SERVER_PORT); if (val != null) { try { int port = Integer.parseInt(val); if (port >= 0 && port <= 65535) { return port; } } catch (NumberFormatException nfe) { Logger.getLogger(TomcatProperties.class.getName()).log(Level.INFO, null, nfe); } } return tm.isBundledTomcat() ? DEF_VALUE_BUNDLED_SERVER_PORT : DEF_VALUE_SERVER_PORT; } /** this needs to be kept in sync with value in the server.xml conf file */ public void setServerPort(int port) { ip.setProperty(PROP_SERVER_PORT, Integer.toString(port)); } public int getShutdownPort() { String val = ip.getProperty(PROP_SHUTDOWN); if (val != null) { try { int port = Integer.parseInt(val); if (port >= 0 && port <= 65535) { return port; } } catch (NumberFormatException nfe) { Logger.getLogger(TomcatProperties.class.getName()).log(Level.INFO, null, nfe); } } return tm.isBundledTomcat() ? DEF_VALUE_BUNDLED_SHUTDOWN_PORT : DEF_VALUE_SHUTDOWN_PORT; } /** this needs to be kept in sync with value in the server.xml conf file */ public void setShutdownPort(int port) { ip.setProperty(PROP_SHUTDOWN, Integer.toString(port)); } public String getSharedMem() { String val = ip.getProperty(PROP_SHARED_MEM); return val != null && val.length() > 0 ? val : DEF_VALUE_SHARED_MEM; } public void setSharedMem(String val) { ip.setProperty(PROP_SHARED_MEM, val); } public int getDeploymentTimeout() { String val = ip.getProperty(InstanceProperties.DEPLOYMENT_TIMEOUT); if (val != null) { try { int timeout = Integer.parseInt(val); if (timeout >= 1) { return timeout; } } catch (NumberFormatException nfe) { Logger.getLogger(TomcatProperties.class.getName()).log(Level.INFO, null, nfe); } } return DEF_VALUE_DEPLOYMENT_TIMEOUT; } public void setDeploymentTimeout(int timeout) { ip.setProperty(InstanceProperties.DEPLOYMENT_TIMEOUT, Integer.toString(timeout)); } public boolean getDriverDeployment() { String val = ip.getProperty(PROP_DRIVER_DEPLOYMENT); return val != null ? Boolean.valueOf(val).booleanValue() : DEF_VALUE_DRIVER_DEPLOYMENT; } public void setDriverDeployment(boolean enabled) { ip.setProperty(PROP_DRIVER_DEPLOYMENT, Boolean.toString(enabled)); } public List /*<URL>*/ getClasses() { String[] nbFilter = new String[] { "httpmonitor", "schema2beans", /* * The following two jars contains eclipse JDT parser. We have to * exclude it to not to clash with our jsp parser. See issue #115529. */ "jasper-compiler-jdt", "jasper-jdt" }; String[] implFilter = new String[] {"-impl.jar"}; // tomcat libs List retValue = listUrls(new File(homeDir, tm.libFolder()), nbFilter); // NOI18N if (tm.isTomcat60()) { try { retValue.add(new File(homeDir, "bin/tomcat-juli.jar").toURI().toURL()); // NOI18N } catch (MalformedURLException e) { LOGGER.log(Level.WARNING, "$CATALINA_HOME/bin/tomcat-juli.jar not found", e); // NOI18N } } // wsit retValue.addAll(listUrls(new File(homeDir, "common/endorsed"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(homeDir, "shared/lib"), implFilter)); // NOI18N // jwsdp libs retValue.addAll(listUrls(new File(homeDir, "jaxws/lib"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(homeDir, "jaxb/lib"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(homeDir, "jwsdp-shared/lib"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(homeDir, "jaxp/lib"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(homeDir, "jaxrpc/lib"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(homeDir, "jaxr/lib"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(homeDir, "saaj/lib"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(homeDir, "sjsxp/lib"), implFilter)); // NOI18N // other retValue.addAll(listUrls(new File(homeDir, "jstl/lib"), implFilter)); // NOI18N retValue.addAll(listUrls(new File(baseDir, "shared/lib"), nbFilter)); // NOI18N return retValue; } public List /*<URL>*/ getSources() { String path = ip.getProperty(PROP_SOURCES); if (path == null) { return new ArrayList(); } return CustomizerSupport.tokenizePath(path); } public void setSources(List /*<URL>*/ path) { ip.setProperty(PROP_SOURCES, CustomizerSupport.buildPath(path)); tm.getTomcatPlatform().notifyLibrariesChanged(); } public List /*<URL>*/ getJavadocs() { String path = ip.getProperty(PROP_JAVADOCS); if (path == null) { ArrayList list = new ArrayList(); try { // tomcat docs File jspApiDoc = new File(homeDir, "webapps/tomcat-docs/jspapi"); // NOI18N File servletApiDoc = new File(homeDir, "webapps/tomcat-docs/servletapi"); // NOI18N if (jspApiDoc.exists() && servletApiDoc.exists()) { list.add(Util.fileToUrl(jspApiDoc)); list.add(Util.fileToUrl(servletApiDoc)); } else { File j2eeDoc = InstalledFileLocator.getDefault() .locate("docs/javaee6-doc-api.zip", null, false); // NOI18N if (j2eeDoc != null) { list.add(Util.fileToUrl(j2eeDoc)); } } // jwsdp docs File docs = new File(homeDir, "docs/api"); // NOI18N if (docs.exists()) { list.add(Util.fileToUrl(docs)); } } catch (MalformedURLException e) { Exceptions.printStackTrace(e); } return list; } return CustomizerSupport.tokenizePath(path); } public void setJavadocs(List /*<URL>*/ path) { ip.setProperty(PROP_JAVADOCS, CustomizerSupport.buildPath(path)); tm.getTomcatPlatform().notifyLibrariesChanged(); } public void setOpenContextLogOnRun(boolean val) { ip.setProperty(PROP_OPEN_LOG, Boolean.valueOf(val).toString()); } public boolean getOpenContextLogOnRun() { Object val = ip.getProperty(PROP_OPEN_LOG); if (val != null) { return Boolean.valueOf(val.toString()).booleanValue(); } return DEF_VALUE_OPEN_LOG; } public void setTimestamp(long timestamp) { ip.setProperty(PROP_TIMESTAMP, Long.toString(timestamp)); } /** Return last server.xml check timestamp, or -1 if not set */ public long getTimestamp() { String val = ip.getProperty(PROP_TIMESTAMP); if (val != null) { try { return Long.parseLong(val); } catch (NumberFormatException nfe) { Logger.getLogger(TomcatProperties.class.getName()).log(Level.INFO, null, nfe); } } return -1; } /** * Return server.xml file from the catalina base folder if the base folder is used or from the * catalina home folder otherwise. * * <p><b>BEWARE</b>: If the catalina base folder is used but has not bee generated yet, the * server.xml file from the catalina home folder will be returned. */ public File getServerXml() { String confServerXml = "conf/server.xml"; // NIO18N File serverXml = null; if (baseDir != null) { serverXml = new File(baseDir, confServerXml); } if (serverXml == null || !serverXml.exists()) { serverXml = new File(getCatalinaHome(), confServerXml); } return serverXml; } public String getHost() { String val = ip.getProperty(PROP_HOST); return val != null ? val : DEF_VALUE_HOST; } public int getRunningCheckTimeout() { String val = ip.getProperty(PROP_RUNNING_CHECK_TIMEOUT); if (val != null) { try { return Integer.parseInt(val); } catch (NumberFormatException nfe) { Logger.getLogger(TomcatProperties.class.getName()).log(Level.INFO, null, nfe); } } return DEF_VALUE_RUNNING_CHECK_TIMEOUT; } public String getDisplayName() { String val = ip.getProperty(PROP_DISPLAY_NAME); return val != null && val.length() > 0 ? val : DEF_VALUE_DISPLAY_NAME; } // private helper methods ------------------------------------------------- private static List /*<URL>*/ listUrls(final File folder, final String[] filter) { File[] jars = folder.listFiles( new FilenameFilter() { public boolean accept(File dir, String name) { if (!name.endsWith(".jar") || !dir.equals(folder)) { return false; } for (int i = 0; i < filter.length; i++) { if (name.indexOf(filter[i]) != -1) { return false; } } return true; } }); if (jars == null) { return new ArrayList(); } List /*<URL>*/ urls = new ArrayList(jars.length); for (int i = 0; i < jars.length; i++) { try { urls.add(Util.fileToUrl(jars[i])); } catch (MalformedURLException e) { Exceptions.printStackTrace(e); } } return urls; } }