1 10 11 package org.mule.modules.boot; 12 13 import java.io.File ; 14 import java.io.FileFilter ; 15 import java.io.IOException ; 16 import java.net.MalformedURLException ; 17 import java.net.URL ; 18 import java.util.ArrayList ; 19 import java.util.LinkedList ; 20 import java.util.List ; 21 22 25 public class DefaultMuleClassPathConfig 26 { 27 protected static final String FOLDER_MULE = "/lib/mule"; 28 protected static final String FOLDER_OPT = "/lib/opt"; 29 protected static final String FOLDER_USER = "/lib/user"; 30 31 private List urls = new LinkedList (); 32 33 36 public DefaultMuleClassPathConfig(File muleHome, File muleBase) 37 { 38 try 39 { 40 addURL(new URL ("file://" + muleHome.getAbsolutePath() + FOLDER_USER + "/")); 43 addURL(new URL ("file://" + muleHome.getAbsolutePath() + FOLDER_MULE + "/")); 44 addURL(new URL ("file://" + muleHome.getAbsolutePath() + FOLDER_OPT + "/")); 45 46 51 try { 52 if (!muleHome.getCanonicalFile().equals(muleBase.getCanonicalFile())) 53 { 54 addURL(new URL ("file://" + muleBase.getAbsolutePath() + FOLDER_USER + "/")); 55 File [] muleJars = listJars(muleBase, FOLDER_USER); 56 for (int i = 0; i < muleJars.length; i++) 57 { 58 File jar = muleJars[i]; 59 addURL(jar.toURL()); 60 } 61 } 62 } catch (IOException ioe) { 63 System.out.println("Unable to check to see if there are local jars to load: " + ioe.toString()); 64 } 65 66 File [] muleJars = listJars(muleHome, FOLDER_USER); 67 for (int i = 0; i < muleJars.length; i++) 68 { 69 File jar = muleJars[i]; 70 addURL(jar.toURL()); 71 } 72 73 muleJars = listJars(muleHome, FOLDER_MULE); 74 for (int i = 0; i < muleJars.length; i++) 75 { 76 File jar = muleJars[i]; 77 addURL(jar.toURL()); 78 } 79 80 muleJars = listJars(muleHome, FOLDER_OPT); 81 for (int i = 0; i < muleJars.length; i++) 82 { 83 File jar = muleJars[i]; 84 addURL(jar.toURL()); 85 } 86 87 } 88 catch (MalformedURLException e) 89 { 90 throw new RuntimeException ("Failed to construct a classpath URL", e); 91 } 92 93 } 94 95 100 public List getURLs() 101 { 102 return new ArrayList (this.urls); 103 } 104 105 110 public void addURLs(List urls) 111 { 112 if (urls != null && !urls.isEmpty()) 113 { 114 this.urls.addAll(urls); 115 } 116 } 117 118 123 public void addURL(URL url) 124 { 125 this.urls.add(url); 126 } 127 128 134 protected File [] listJars(File muleDir, String muleSubfolder) 135 { 136 File path = new File (muleDir, muleSubfolder); 137 138 File [] jars = path.listFiles(new FileFilter () 139 { 140 public boolean accept(File pathname) 141 { 142 try 143 { 144 return pathname.getCanonicalPath().endsWith(".jar"); 145 } 146 catch (IOException e) 147 { 148 throw new RuntimeException (e.getMessage()); 149 } 150 } 151 }); 152 153 return jars == null ? new File [0] : jars; 154 } 155 } 156 | Popular Tags |