/** * This private worker method attempts to find [java_home]/lib/tools.jar. Note: The tools.jar is a * part of the SDK, it is not present in the JRE. * * @return If tools.jar can be found, a File representing tools.jar. <br> * If tools.jar cannot be found, null. */ private static Resource findToolsJar(Config config, Log log, RefBoolean useOurOwn) { log.info("Instrumentation", "looking for tools.jar"); String javaHome = System.getProperty("java.home"); Resource javaHomeFile = ResourcesImpl.getFileResourceProvider().getResource(javaHome); Resource toolsJarFile = javaHomeFile.getRealResource("lib" + File.separator + "tools.jar"); if (toolsJarFile.exists()) { useOurOwn.setValue(false); return toolsJarFile; } log.info("Instrumentation", "couldn't find tools.jar at: " + toolsJarFile.getAbsolutePath()); // If we're on an IBM SDK, then remove /jre off of java.home and try again. if (javaHomeFile.getAbsolutePath().endsWith(SEP + "jre")) { javaHomeFile = javaHomeFile.getParentResource(); toolsJarFile = javaHomeFile.getRealResource("lib" + SEP + "tools.jar"); if (!toolsJarFile.exists()) { log.info("Instrumentation", "for IBM SDK couldn't find " + toolsJarFile.getAbsolutePath()); } else { useOurOwn.setValue(false); return toolsJarFile; } } else if (System.getProperty("os.name").toLowerCase().indexOf("mac") >= 0) { // If we're on a Mac, then change the search path to use ../Classes/classes.jar. if (javaHomeFile.getAbsolutePath().endsWith(SEP + "Home")) { javaHomeFile = javaHomeFile.getParentResource(); toolsJarFile = javaHomeFile.getRealResource("Classes" + SEP + "classes.jar"); if (!toolsJarFile.exists()) { log.info("Instrumentation", "for Mac OS couldn't find " + toolsJarFile.getAbsolutePath()); } else { useOurOwn.setValue(false); return toolsJarFile; } } } // if the engine could not find the tools.jar it is using it's own version try { toolsJarFile = createToolsJar(config); } catch (IOException e) { log.error("Instrumentation", e); } if (!toolsJarFile.exists()) { log.info("Instrumentation", "could not be created " + toolsJarFile.getAbsolutePath()); return null; } log.info("Instrumentation", "found " + toolsJarFile.getAbsolutePath()); return toolsJarFile; }
private void checkOldClientFile(ConfigWeb config) { ExtensionResourceFilter filter = new ExtensionResourceFilter(".script", false); // move old structured file in new structure try { Resource dir = config.getClientScopeDir(), trgres; Resource[] children = dir.listResources(filter); String src, trg; int index; for (int i = 0; i < children.length; i++) { src = children[i].getName(); index = src.indexOf('-'); trg = StorageScopeFile.getFolderName( src.substring(0, index), src.substring(index + 1), false); trgres = dir.getRealResource(trg); if (!trgres.exists()) { trgres.createFile(true); ResourceUtil.copy(children[i], trgres); } // children[i].moveTo(trgres); children[i].delete(); } } catch (Throwable t) { } }
/** @throws PageException */ private void doUpdate() throws PageException { String message = "missing attribute for tag schedule with action update"; String detail = "required attributes are [startDate, startTime, URL, interval, operation]"; Resource file = null; // if(publish) { if (!StringUtil.isEmpty(strFile) && !StringUtil.isEmpty(strPath)) { file = ResourceUtil.toResourceNotExisting(pageContext, strPath); file = file.getRealResource(strFile); } else if (!StringUtil.isEmpty(strFile)) { file = ResourceUtil.toResourceNotExisting(pageContext, strFile); } else if (!StringUtil.isEmpty(strPath)) { file = ResourceUtil.toResourceNotExisting(pageContext, strPath); } if (file != null) pageContext .getConfig() .getSecurityManager() .checkFileLocation(pageContext.getConfig(), file, serverPassword); // missing attributes if (startdate == null || starttime == null || url == null || interval == null) throw new ApplicationException(message, detail); // timeout if (requesttimeout < 0) requesttimeout = pageContext.getRequestTimeout(); // username/password Credentials cr = null; if (username != null) cr = CredentialsImpl.toCredentials(username, password); try { ScheduleTask st = new ScheduleTaskImpl( task, file, startdate, starttime, enddate, endtime, url, port, interval, requesttimeout, cr, ProxyDataImpl.getInstance(proxyserver, proxyport, proxyuser, proxypassword), resolveurl, publish, hidden, readonly, paused, autoDelete); scheduler.addScheduleTask(st, true); } catch (Exception e) { throw Caster.toPageException(e); } // }
private static Resource getBinDirectory(Config config) { Resource dir = ConfigWebUtil.getConfigServerDirectory(config); if (dir == null || !dir.isWriteable() || !dir.isReadable()) dir = ResourceUtil.toResource( CFMLEngineFactory.getClassLoaderRoot(SystemUtil.getLoaderClassLoader())); else { dir = dir.getRealResource("bin"); if (!dir.exists()) dir.mkdir(); } return dir; }
private static void addAttachIfNecessary(Config config, Log log) { String srcName = null, trgName = null; String archBits = (SystemUtil.getJREArch() == SystemUtil.ARCH_64) ? "64" : "32"; // Windows if (SystemUtil.isWindows()) { trgName = "attach.dll"; srcName = "windows" + archBits + "/" + trgName; } // Linux else if (SystemUtil.isLinux()) { trgName = "libattach.so"; srcName = "linux" + archBits + "/" + trgName; } // Solaris else if (SystemUtil.isSolaris()) { trgName = "libattach.so"; srcName = "solaris" + archBits + "/" + trgName; } // Mac OSX else if (SystemUtil.isMacOSX()) { trgName = "libattach.dylib"; srcName = "macosx" + archBits + "/" + trgName; } if (srcName != null) { // create dll if necessary Resource binDir = getBinDirectory(config); Resource trg = binDir.getRealResource(trgName); if (!trg.exists() || trg.length() == 0) { log.info("Instrumentation", "deploy /resource/bin/" + srcName + " to " + trg); InputStream src = InfoImpl.class.getResourceAsStream("/resource/bin/" + srcName); try { IOUtil.copy(src, trg, true); } catch (IOException e) { log.log(Log.LEVEL_ERROR, "Instrumentation", e); } } // set directory to library path SystemUtil.addLibraryPathIfNoExist(binDir, log); } }
private static Resource createToolsJar(Config config) throws IOException { Resource dir = getDeployDirectory(config); String os = "bsd"; // used for Mac OS X if (SystemUtil.isWindows()) { os = "windows"; } else if (SystemUtil.isLinux()) { // not MacOSX os = "linux"; } else if (SystemUtil.isSolaris()) { os = "solaris"; } String name = "tools-" + os + "-" + TOOLS_VERSION + ".jar"; Resource trg = dir.getRealResource(name); if (!trg.exists() || trg.length() == 0) { InputStream jar = InfoImpl.class.getResourceAsStream("/resource/lib/" + name); IOUtil.copy(jar, trg, true); } return trg; }
@Override public void init(lucee.runtime.config.Config config, Resource searchDir) throws IOException, SearchException { this.config = config; this.searchDir = searchDir; this.searchFile = searchDir.getRealResource("search.xml"); if (!searchFile.exists() || searchFile.length() == 0) createSearchFile(searchFile); DOMParser parser = new DOMParser(); InputStream is = null; try { is = engine.getIOUtil().toBufferedInputStream(searchFile.getInputStream()); InputSource source = new InputSource(is); parser.parse(source); } catch (SAXException e) { throw new SearchException(e); } finally { engine.getIOUtil().closeSilent(is); } doc = parser.getDocument(); readCollections(config); }