defaultmuleclasspathconfig.java

来自「提供ESB 应用mule源代码 提供ESB 应用mule源代码」· Java 代码 · 共 152 行

JAVA
152
字号
/* * $Id: DefaultMuleClassPathConfig.java 10699 2008-02-05 15:19:32Z romikk $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.module.boot;import java.io.File;import java.io.FileFilter;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Iterator;import java.util.List;/** * Constructs a default set of JAR Urls located under Mule home folder. */public class DefaultMuleClassPathConfig{    protected static final String MULE_DIR = "/lib/mule";    protected static final String USER_DIR = "/lib/user";    protected static final String OPT_DIR = "/lib/opt";    private List urls = new ArrayList();    /**     * Constructs a new DefaultMuleClassPathConfig.     * @param muleHome Mule home directory     * @param muleBase Mule base directory     */    public DefaultMuleClassPathConfig(File muleHome, File muleBase)    {        /**         * Pick up any local jars, if there are any. Doing this here insures that any         * local class that override the global classes will in fact do so.         */        try        {            if (!muleHome.getCanonicalFile().equals(muleBase.getCanonicalFile()))            {                File userOverrideDir = new File(muleBase, USER_DIR);                this.addFile(userOverrideDir);                this.addFiles(this.listJars(userOverrideDir));            }        }        catch (IOException ioe)        {            System.out.println("Unable to check to see if there are local jars to load: " + ioe.toString());        }        File userDir = new File(muleHome, USER_DIR);        this.addFile(userDir);        this.addFiles(this.listJars(userDir));        File muleDir = new File(muleHome, MULE_DIR);        this.addFile(muleDir);        this.addFiles(this.listJars(muleDir));        File optDir = new File(muleHome, OPT_DIR);        this.addFile(optDir);        this.addFiles(this.listJars(optDir));    }    /**     * Getter for property 'urls'.     *     * @return A copy of 'urls'. Items are java.net.URL     */    public List getURLs()    {        return new ArrayList(this.urls);    }    /**     * Setter for property 'urls'.     *     * @param urls Value to set for property 'urls'.     */    public void addURLs(List urls)    {        if (urls != null && !urls.isEmpty())        {            this.urls.addAll(urls);        }    }    /**     * Add a URL to Mule's classpath.     *     * @param url folder (should end with a slash) or jar path     */    public void addURL(URL url)    {        this.urls.add(url);    }    public void addFiles(List files)    {        for (Iterator i = files.iterator(); i.hasNext();)        {            this.addFile((File)i.next());        }    }    public void addFile(File jar)    {        try        {            this.addURL(jar.getAbsoluteFile().toURI().toURL());        }        catch (MalformedURLException mux)        {            throw new RuntimeException("Failed to construct a classpath URL", mux);        }    }    /**     * Find and if necessary filter the jars for classpath.     *     * @return a list of {@link File}s     */    protected List listJars(File path)    {        File[] jars = path.listFiles(new FileFilter()        {            public boolean accept(File pathname)            {                try                {                    return pathname.getCanonicalPath().endsWith(".jar");                }                catch (IOException e)                {                    throw new RuntimeException(e.getMessage());                }            }        });        return jars == null ? Collections.EMPTY_LIST : Arrays.asList(jars);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?