You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2013/06/14 02:11:56 UTC

svn commit: r1492911 - in /accumulo/trunk: conf/examples/1GB/native-standalone/ conf/examples/1GB/standalone/ conf/examples/2GB/native-standalone/ conf/examples/2GB/standalone/ conf/examples/3GB/native-standalone/ conf/examples/3GB/standalone/ conf/exa...

Author: ctubbsii
Date: Fri Jun 14 00:11:55 2013
New Revision: 1492911

URL: http://svn.apache.org/r1492911
Log:
ACCUMULO-1396 simplify specifying target directories from the maven workspace, for developers; updated example files

Modified:
    accumulo/trunk/conf/examples/1GB/native-standalone/accumulo-site.xml
    accumulo/trunk/conf/examples/1GB/standalone/accumulo-site.xml
    accumulo/trunk/conf/examples/2GB/native-standalone/accumulo-site.xml
    accumulo/trunk/conf/examples/2GB/standalone/accumulo-site.xml
    accumulo/trunk/conf/examples/3GB/native-standalone/accumulo-site.xml
    accumulo/trunk/conf/examples/3GB/standalone/accumulo-site.xml
    accumulo/trunk/conf/examples/512MB/native-standalone/accumulo-site.xml
    accumulo/trunk/conf/examples/512MB/standalone/accumulo-site.xml
    accumulo/trunk/conf/examples/vfs-classloader/accumulo-site.xml
    accumulo/trunk/core/src/main/java/org/apache/accumulo/core/conf/Property.java
    accumulo/trunk/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java

Modified: accumulo/trunk/conf/examples/1GB/native-standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/1GB/native-standalone/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/1GB/native-standalone/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/1GB/native-standalone/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -88,6 +88,11 @@
   </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -98,15 +103,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -114,8 +114,6 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 </configuration>

Modified: accumulo/trunk/conf/examples/1GB/standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/1GB/standalone/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/1GB/standalone/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/1GB/standalone/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -88,6 +88,11 @@
   </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -98,15 +103,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -114,8 +114,6 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 </configuration>

Modified: accumulo/trunk/conf/examples/2GB/native-standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/2GB/native-standalone/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/2GB/native-standalone/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/2GB/native-standalone/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -78,6 +78,11 @@
   </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -88,15 +93,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -104,8 +104,6 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 </configuration>

Modified: accumulo/trunk/conf/examples/2GB/standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/2GB/standalone/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/2GB/standalone/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/2GB/standalone/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -91,6 +91,11 @@
     </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -101,15 +106,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -117,8 +117,6 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 </configuration>

Modified: accumulo/trunk/conf/examples/3GB/native-standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/3GB/native-standalone/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/3GB/native-standalone/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/3GB/native-standalone/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -73,6 +73,11 @@
   </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -83,15 +88,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -99,8 +99,6 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 </configuration>

Modified: accumulo/trunk/conf/examples/3GB/standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/3GB/standalone/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/3GB/standalone/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/3GB/standalone/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -78,6 +78,11 @@
   </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -88,15 +93,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -104,8 +104,6 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 </configuration>

Modified: accumulo/trunk/conf/examples/512MB/native-standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/512MB/native-standalone/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/512MB/native-standalone/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/512MB/native-standalone/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -83,6 +83,11 @@
   </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -93,15 +98,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -109,8 +109,6 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 </configuration>

Modified: accumulo/trunk/conf/examples/512MB/standalone/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/512MB/standalone/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/512MB/standalone/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/512MB/standalone/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -89,6 +89,11 @@
   </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -99,15 +104,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -115,8 +115,6 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 </configuration>

Modified: accumulo/trunk/conf/examples/vfs-classloader/accumulo-site.xml
URL: http://svn.apache.org/viewvc/accumulo/trunk/conf/examples/vfs-classloader/accumulo-site.xml?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/conf/examples/vfs-classloader/accumulo-site.xml (original)
+++ accumulo/trunk/conf/examples/vfs-classloader/accumulo-site.xml Fri Jun 14 00:11:55 2013
@@ -83,6 +83,11 @@
   </property>
 
   <property>
+    <name>general.maven.project.basedir</name>
+    <value></value>
+  </property>
+
+  <property>
     <name>general.classpaths</name>
     <!--
        Add the following for hadoop-2.0
@@ -93,15 +98,10 @@
        $HADOOP_PREFIX/share/hadoop/yarn/.*.jar,
     -->
     <value>
-      $ACCUMULO_HOME/server/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-server.jar,
-      $ACCUMULO_HOME/core/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-core.jar,
-      $ACCUMULO_HOME/start/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-start.jar,
-      $ACCUMULO_HOME/fate/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-fate.jar,
-      $ACCUMULO_HOME/proxy/target/classes/,
       $ACCUMULO_HOME/lib/accumulo-proxy.jar,
       $ACCUMULO_HOME/lib/[^.].*.jar,
       $ZOOKEEPER_HOME/zookeeper[^.].*.jar,
@@ -109,9 +109,7 @@
       $HADOOP_PREFIX/[^.].*.jar,
       $HADOOP_PREFIX/lib/[^.].*.jar,
     </value>
-    <description>Classpaths that accumulo checks for updates and class files.
-      When using the Security Manager, please remove the ".../target/classes/" values.
-    </description>
+    <description>Classpaths that accumulo checks for updates and class files.</description>
   </property>
 
   <!-- VFS ClassLoader Settings -->

Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/conf/Property.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/conf/Property.java?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/core/src/main/java/org/apache/accumulo/core/conf/Property.java (original)
+++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/conf/Property.java Fri Jun 14 00:11:55 2013
@@ -364,7 +364,14 @@ public enum Property {
   @Interpolated
   VFS_CLASSLOADER_CACHE_DIR(AccumuloVFSClassLoader.VFS_CACHE_DIR, "${java.io.tmpdir}" + File.separator + "accumulo-vfs-cache-${user.name}",
       PropertyType.ABSOLUTEPATH, "Directory to use for the vfs cache. The cache will keep a soft reference to all of the classes loaded in the VM."
-          + " This should be on local disk on each node with sufficient space. It defaults to ${java.io.tmpdir}/accumulo-vfs-cache-${user.name}");
+          + " This should be on local disk on each node with sufficient space. It defaults to ${java.io.tmpdir}/accumulo-vfs-cache-${user.name}"),
+  
+  @Interpolated
+  @Experimental
+  GENERAL_MAVEN_PROJECT_BASEDIR(AccumuloClassLoader.MAVEN_PROJECT_BASEDIR_PROPERTY_NAME, AccumuloClassLoader.DEFAULT_MAVEN_PROJECT_BASEDIR_VALUE,
+      PropertyType.ABSOLUTEPATH, "Set this to automatically add maven target/classes directories to your dynamic classpath"),
+  
+  ;
   
   private String key, defaultValue, description;
   private PropertyType type;

Modified: accumulo/trunk/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java?rev=1492911&r1=1492910&r2=1492911&view=diff
==============================================================================
--- accumulo/trunk/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java (original)
+++ accumulo/trunk/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java Fri Jun 14 00:11:55 2013
@@ -25,7 +25,10 @@ import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -45,6 +48,7 @@ public class AccumuloClassLoader {
   
   public static final String CLASSPATH_PROPERTY_NAME = "general.classpaths";
   
+  /* @formatter:off */
   public static final String ACCUMULO_CLASSPATH_VALUE = 
       "$ACCUMULO_HOME/conf,\n" + 
           "$ACCUMULO_HOME/lib/[^.].*.jar,\n" + 
@@ -57,6 +61,10 @@ public class AccumuloClassLoader {
           "$HADOOP_PREFIX/share/hadoop/hdfs/.*.jar,\n" +
           "$HADOOP_PREFIX/share/hadoop/mapreduce/.*.jar,\n"
           ;
+  /* @formatter:on */
+  
+  public static final String MAVEN_PROJECT_BASEDIR_PROPERTY_NAME = "general.maven.project.basedir";
+  public static final String DEFAULT_MAVEN_PROJECT_BASEDIR_VALUE = "";
   
   private static String SITE_CONF;
   
@@ -208,6 +216,8 @@ public class AccumuloClassLoader {
       return new ArrayList<URL>();
     String[] cps = replaceEnvVars(cp, System.getenv()).split(",");
     ArrayList<URL> urls = new ArrayList<URL>();
+    for (String classpath : getMavenClasspaths())
+      addUrl(classpath, urls);
     for (String classpath : cps) {
       if (!classpath.startsWith("#")) {
         addUrl(classpath, urls);
@@ -216,6 +226,27 @@ public class AccumuloClassLoader {
     return urls;
   }
   
+  private static Set<String> getMavenClasspaths() {
+    String baseDirname = AccumuloClassLoader.getAccumuloString(MAVEN_PROJECT_BASEDIR_PROPERTY_NAME, DEFAULT_MAVEN_PROJECT_BASEDIR_VALUE);
+    if (baseDirname == null || baseDirname.trim().isEmpty())
+      return Collections.emptySet();
+    Set<String> paths = new TreeSet<String>();
+    findMavenTargetClasses(paths, new File(baseDirname.trim()), 0);
+    return paths;
+  }
+  
+  private static void findMavenTargetClasses(Set<String> paths, File file, int depth) {
+    if (depth > 3)
+      return;
+    if (file.isDirectory()) {
+      File[] children = file.listFiles();
+      for (File child : children)
+        findMavenTargetClasses(paths, child, depth + 1);
+    } else if ("pom.xml".equals(file.getName())) {
+      paths.add(file.getParentFile().getAbsolutePath() + File.separator + "target" + File.separator + "classes");
+    }
+  }
+  
   public static synchronized ClassLoader getClassLoader() throws IOException {
     if (classloader == null) {
       ArrayList<URL> urls = findAccumuloURLs();