Author: ctubbsii Date: Tue Jun 11 19:33:53 2013 New Revision: 1491920 URL: http://svn.apache.org/r1491920 Log: ACCUMULO-1496 slightly more optimized version using scannotation
Added: accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/annotations/ accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/annotations/AccumuloService.java - copied, changed from r1491869, accumulo/branches/ACCUMULO-1496/api/src/main/java/org/apache/accumulo/api/annotations/AccumuloService.java Removed: accumulo/branches/ACCUMULO-1496/api/ Modified: accumulo/branches/ACCUMULO-1496/assemble/pom.xml accumulo/branches/ACCUMULO-1496/bin/accumulo accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java accumulo/branches/ACCUMULO-1496/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java accumulo/branches/ACCUMULO-1496/pom.xml accumulo/branches/ACCUMULO-1496/proxy/src/main/java/org/apache/accumulo/proxy/Proxy.java accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/master/Master.java accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/trace/TraceServer.java accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Admin.java accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Initialize.java accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/ZooKeeperMain.java accumulo/branches/ACCUMULO-1496/start/pom.xml accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/Main.java accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java Modified: accumulo/branches/ACCUMULO-1496/assemble/pom.xml URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/assemble/pom.xml?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/assemble/pom.xml (original) +++ accumulo/branches/ACCUMULO-1496/assemble/pom.xml Tue Jun 11 19:33:53 2013 @@ -52,10 +52,6 @@ </dependency> <dependency> <groupId>org.apache.accumulo</groupId> - <artifactId>accumulo-api</artifactId> - </dependency> - <dependency> - <groupId>org.apache.accumulo</groupId> <artifactId>accumulo-core</artifactId> </dependency> <dependency> Modified: accumulo/branches/ACCUMULO-1496/bin/accumulo URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/bin/accumulo?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/bin/accumulo (original) +++ accumulo/branches/ACCUMULO-1496/bin/accumulo Tue Jun 11 19:33:53 2013 @@ -29,9 +29,7 @@ script=$( basename "$SOURCE" ) . "$bin"/config.sh START_JAR=$ACCUMULO_HOME/lib/accumulo-start.jar -API_JAR=$ACCUMULO_HOME/lib/accumulo-api.jar -SCANNOTATION_JAR=$ACCUMULO_HOME/lib/scannotation.jar -JAVASSIST_JAR=$ACCUMULO_HOME/lib/javassist.jar +SCANNOTATION_JARS=$ACCUMULO_HOME/lib/scannotation.jar:$ACCUMULO_HOME/lib/javassist.jar # # Resolve a program to its installation directory @@ -84,7 +82,7 @@ esac XML_FILES=${ACCUMULO_HOME}/conf LOG4J_JAR=$(find $HADOOP_PREFIX/lib $HADOOP_PREFIX/share/hadoop/common/lib -name 'log4j*.jar' -print 2>/dev/null | head -1) -CLASSPATH=${XML_FILES}:${API_JAR}:${JAVASSIST_JAR}:${SCANNOTATION_JAR}:${START_JAR}:${LOG4J_JAR} +CLASSPATH=${XML_FILES}:${SCANNOTATION_JARS}:${START_JAR}:${LOG4J_JAR} if [ -z "$JAVA_HOME" -o ! -d "$JAVA_HOME" ]; then echo "JAVA_HOME is not set or is not a directory. Please make sure it's set globally or in conf/accumulo-env.sh" Modified: accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java (original) +++ accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java Tue Jun 11 19:33:53 2013 @@ -19,7 +19,6 @@ package org.apache.accumulo.core.file.rf import java.util.ArrayList; import java.util.List; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.cli.Help; import org.apache.accumulo.core.conf.AccumuloConfiguration; import org.apache.accumulo.core.data.ByteSequence; @@ -29,6 +28,7 @@ import org.apache.accumulo.core.data.Val import org.apache.accumulo.core.file.FileUtil; import org.apache.accumulo.core.file.blockfile.impl.CachableBlockFile; import org.apache.accumulo.core.file.rfile.RFile.Reader; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; Modified: accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java (original) +++ accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/CreateToken.java Tue Jun 11 19:33:53 2013 @@ -23,7 +23,6 @@ import java.io.PrintStream; import jline.console.ConsoleReader; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.cli.ClientOpts.Password; import org.apache.accumulo.core.cli.ClientOpts.PasswordConverter; @@ -33,6 +32,7 @@ import org.apache.accumulo.core.client.s import org.apache.accumulo.core.client.security.tokens.AuthenticationToken.TokenProperty; import org.apache.accumulo.core.client.security.tokens.PasswordToken; import org.apache.accumulo.core.security.CredentialHelper; +import org.apache.accumulo.start.annotations.AccumuloService; import com.beust.jcommander.Parameter; Modified: accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java (original) +++ accumulo/branches/ACCUMULO-1496/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java Tue Jun 11 19:33:53 2013 @@ -37,7 +37,6 @@ import java.util.UUID; import jline.console.ConsoleReader; import jline.console.history.FileHistory; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; @@ -142,6 +141,7 @@ import org.apache.accumulo.core.util.she import org.apache.accumulo.core.util.shell.commands.UsersCommand; import org.apache.accumulo.core.util.shell.commands.WhoAmICommand; import org.apache.accumulo.fate.zookeeper.ZooReader; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.commons.cli.BasicParser; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.HelpFormatter; Modified: accumulo/branches/ACCUMULO-1496/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java (original) +++ accumulo/branches/ACCUMULO-1496/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java Tue Jun 11 19:33:53 2013 @@ -27,9 +27,9 @@ import java.util.Map; import java.util.Properties; import java.util.regex.Pattern; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.cli.Help; import org.apache.accumulo.core.util.Pair; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.commons.io.FileUtils; import com.beust.jcommander.IStringConverter; Modified: accumulo/branches/ACCUMULO-1496/pom.xml URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/pom.xml?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/pom.xml (original) +++ accumulo/branches/ACCUMULO-1496/pom.xml Tue Jun 11 19:33:53 2013 @@ -72,7 +72,6 @@ <maven>${maven.min-version}</maven> </prerequisites> <modules> - <module>api</module> <module>trace</module> <module>core</module> <module>fate</module> @@ -212,11 +211,6 @@ </dependency> <dependency> <groupId>org.apache.accumulo</groupId> - <artifactId>accumulo-api</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.accumulo</groupId> <artifactId>accumulo-core</artifactId> <version>${project.version}</version> </dependency> Modified: accumulo/branches/ACCUMULO-1496/proxy/src/main/java/org/apache/accumulo/proxy/Proxy.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/proxy/src/main/java/org/apache/accumulo/proxy/Proxy.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/proxy/src/main/java/org/apache/accumulo/proxy/Proxy.java (original) +++ accumulo/branches/ACCUMULO-1496/proxy/src/main/java/org/apache/accumulo/proxy/Proxy.java Tue Jun 11 19:33:53 2013 @@ -23,11 +23,11 @@ import java.io.InputStream; import java.lang.reflect.Constructor; import java.util.Properties; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.cli.Help; import org.apache.accumulo.core.conf.AccumuloConfiguration; import org.apache.accumulo.minicluster.MiniAccumuloCluster; import org.apache.accumulo.proxy.thrift.AccumuloProxy; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.log4j.Logger; import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TCompactProtocol; Modified: accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java (original) +++ accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/gc/SimpleGarbageCollector.java Tue Jun 11 19:33:53 2013 @@ -36,7 +36,6 @@ import java.util.concurrent.ExecutorServ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.cli.Help; import org.apache.accumulo.core.client.AccumuloException; @@ -86,6 +85,7 @@ import org.apache.accumulo.server.util.O import org.apache.accumulo.server.util.TServerUtils; import org.apache.accumulo.server.util.TabletIterator; import org.apache.accumulo.server.zookeeper.ZooLock; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.accumulo.trace.instrument.CountSampler; import org.apache.accumulo.trace.instrument.Sampler; import org.apache.accumulo.trace.instrument.Span; Modified: accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/master/Master.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/master/Master.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/master/Master.java (original) +++ accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/master/Master.java Tue Jun 11 19:33:53 2013 @@ -37,7 +37,6 @@ import java.util.TreeSet; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; @@ -154,6 +153,7 @@ import org.apache.accumulo.server.util.T import org.apache.accumulo.server.util.time.SimpleTimer; import org.apache.accumulo.server.zookeeper.ZooLock; import org.apache.accumulo.server.zookeeper.ZooReaderWriter; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader; import org.apache.accumulo.trace.instrument.thrift.TraceWrap; import org.apache.accumulo.trace.thrift.TInfo; Modified: accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java (original) +++ accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java Tue Jun 11 19:33:53 2013 @@ -27,7 +27,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.impl.MasterClient; @@ -73,6 +72,7 @@ import org.apache.accumulo.server.proble import org.apache.accumulo.server.problems.ProblemType; import org.apache.accumulo.server.security.SecurityConstants; import org.apache.accumulo.server.util.EmbeddedWebServer; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.accumulo.trace.instrument.Tracer; import org.apache.hadoop.fs.FileSystem; import org.apache.log4j.Logger; Modified: accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java (original) +++ accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java Tue Jun 11 19:33:53 2013 @@ -64,7 +64,6 @@ import java.util.concurrent.atomic.Atomi import javax.management.ObjectName; import javax.management.StandardMBean; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; @@ -199,6 +198,7 @@ import org.apache.accumulo.server.zookee import org.apache.accumulo.server.zookeeper.ZooLock; import org.apache.accumulo.server.zookeeper.ZooReaderWriter; import org.apache.accumulo.start.Platform; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader; import org.apache.accumulo.start.classloader.vfs.ContextManager; import org.apache.accumulo.trace.instrument.Span; Modified: accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/trace/TraceServer.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/trace/TraceServer.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/trace/TraceServer.java (original) +++ accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/trace/TraceServer.java Tue Jun 11 19:33:53 2013 @@ -23,7 +23,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.TimeUnit; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.BatchWriterConfig; @@ -50,6 +49,7 @@ import org.apache.accumulo.server.client import org.apache.accumulo.server.conf.ServerConfiguration; import org.apache.accumulo.server.util.time.SimpleTimer; import org.apache.accumulo.server.zookeeper.ZooReaderWriter; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.accumulo.start.classloader.AccumuloClassLoader; import org.apache.accumulo.trace.instrument.Span; import org.apache.accumulo.trace.thrift.RemoteSpan; Modified: accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Admin.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Admin.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Admin.java (original) +++ accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Admin.java Tue Jun 11 19:33:53 2013 @@ -22,7 +22,6 @@ import java.util.List; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; @@ -38,6 +37,7 @@ import org.apache.accumulo.core.security import org.apache.accumulo.server.cli.ClientOpts; import org.apache.accumulo.server.client.HdfsZooInstance; import org.apache.accumulo.server.security.SecurityConstants; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.accumulo.trace.instrument.Tracer; import org.apache.log4j.Logger; Modified: accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Initialize.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Initialize.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Initialize.java (original) +++ accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/Initialize.java Tue Jun 11 19:33:53 2013 @@ -25,7 +25,6 @@ import java.util.UUID; import jline.console.ConsoleReader; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.cli.Help; import org.apache.accumulo.core.client.AccumuloSecurityException; @@ -57,6 +56,7 @@ import org.apache.accumulo.server.securi import org.apache.accumulo.server.security.SecurityConstants; import org.apache.accumulo.server.tabletserver.TabletTime; import org.apache.accumulo.server.zookeeper.ZooReaderWriter; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; Modified: accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/ZooKeeperMain.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/ZooKeeperMain.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/ZooKeeperMain.java (original) +++ accumulo/branches/ACCUMULO-1496/server/src/main/java/org/apache/accumulo/server/util/ZooKeeperMain.java Tue Jun 11 19:33:53 2013 @@ -16,13 +16,13 @@ */ package org.apache.accumulo.server.util; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.cli.Help; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.util.CachedConfiguration; import org.apache.accumulo.server.client.HdfsZooInstance; import org.apache.accumulo.server.conf.ServerConfiguration; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; Modified: accumulo/branches/ACCUMULO-1496/start/pom.xml URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/start/pom.xml?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/start/pom.xml (original) +++ accumulo/branches/ACCUMULO-1496/start/pom.xml Tue Jun 11 19:33:53 2013 @@ -30,10 +30,6 @@ <artifactId>scannotation</artifactId> </dependency> <dependency> - <groupId>org.apache.accumulo</groupId> - <artifactId>accumulo-api</artifactId> - </dependency> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-vfs2</artifactId> </dependency> Modified: accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/Main.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/Main.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/Main.java (original) +++ accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/Main.java Tue Jun 11 19:33:53 2013 @@ -16,22 +16,15 @@ */ package org.apache.accumulo.start; -import java.io.IOException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.net.URL; import java.util.ArrayList; -import java.util.Collections; import java.util.Set; -import org.apache.accumulo.api.annotations.AccumuloService; import org.apache.accumulo.start.classloader.AccumuloClassLoader; -import org.scannotation.AnnotationDB; public class Main { - private static AnnotationDB annotationDatabase; - public static void main(String[] args) throws Exception { Runnable r = null; @@ -41,10 +34,8 @@ public class Main { ClassLoader cl = (ClassLoader) vfsClassLoader.getMethod("getClassLoader", new Class[] {}).invoke(null, new Object[] {}); Thread.currentThread().setContextClassLoader(cl); - URL[] urls = (URL[]) vfsClassLoader.getMethod("getURLs", new Class[] {}).invoke(null, new Object[] {}); - if (args.length == 0) { - printUsage(cl, urls); + printUsage(); System.exit(1); } final String argsToPass[] = new String[args.length - 1]; @@ -60,14 +51,7 @@ public class Main { System.out.println(runTMP.getField("VERSION").get(null)); return; } else { - for (String className : loadAnnotationDB(urls, AccumuloService.class)) { - Class<?> runTMPCandidate = cl.loadClass(className); - if (args[0].equals(runTMPCandidate.getAnnotation(AccumuloService.class).value())) { - runTMP = runTMPCandidate; - break; - } - } - + runTMP = getAccumuloServiceClassByKeyword(args[0]); if (runTMP == null) { try { runTMP = cl.loadClass(args[0]); @@ -111,11 +95,10 @@ public class Main { } } - private static void printUsage(ClassLoader cl, URL[] urls) throws IOException, ClassNotFoundException { + private static void printUsage() throws Exception { ArrayList<String> keywords = new ArrayList<String>(20); - for (String className : loadAnnotationDB(urls, AccumuloService.class)) { - Class<?> runTMPCandidate = cl.loadClass(className); - keywords.add(runTMPCandidate.getAnnotation(AccumuloService.class).value()); + for (String keyword : getAccumuloServiceKeywords()) { + keywords.add(keyword); } keywords.add("classpath"); keywords.add("version"); @@ -129,14 +112,16 @@ public class Main { System.out.println("accumulo " + kwString + " | <accumulo class> args"); } - protected synchronized static Set<String> loadAnnotationDB(URL[] urls, Class<?> annotationClass) throws IOException { - if (annotationDatabase == null) { - AnnotationDB database = new AnnotationDB(); - database.setScanClassAnnotations(true); - database.scanArchives(urls); - annotationDatabase = database; - } - Set<String> retVal = annotationDatabase.getAnnotationIndex().get(annotationClass.getName()); - return retVal == null ? (retVal = Collections.emptySet()) : retVal; + private static Set<String> getAccumuloServiceKeywords() throws Exception { + Class<?> vfsClassLoader = AccumuloClassLoader.getClassLoader().loadClass("org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader"); + @SuppressWarnings("unchecked") + Set<String> keywords = (Set<String>) vfsClassLoader.getMethod("getAccumuloServiceKeywords").invoke(null); + return keywords; + } + + private static Class<?> getAccumuloServiceClassByKeyword(String keyword) throws Exception { + Class<?> vfsClassLoader = AccumuloClassLoader.getClassLoader().loadClass("org.apache.accumulo.start.classloader.vfs.AccumuloVFSClassLoader"); + Class<?> serviceClass = (Class<?>) vfsClassLoader.getMethod("getAccumuloServiceClassByKeyword", String.class).invoke(null, keyword); + return serviceClass; } } Copied: accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/annotations/AccumuloService.java (from r1491869, accumulo/branches/ACCUMULO-1496/api/src/main/java/org/apache/accumulo/api/annotations/AccumuloService.java) URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/annotations/AccumuloService.java?p2=accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/annotations/AccumuloService.java&p1=accumulo/branches/ACCUMULO-1496/api/src/main/java/org/apache/accumulo/api/annotations/AccumuloService.java&r1=1491869&r2=1491920&rev=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/api/src/main/java/org/apache/accumulo/api/annotations/AccumuloService.java (original) +++ accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/annotations/AccumuloService.java Tue Jun 11 19:33:53 2013 @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.accumulo.api.annotations; +package org.apache.accumulo.start.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; Modified: accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java URL: http://svn.apache.org/viewvc/accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java?rev=1491920&r1=1491919&r2=1491920&view=diff ============================================================================== --- accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java (original) +++ accumulo/branches/ACCUMULO-1496/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java Tue Jun 11 19:33:53 2013 @@ -24,7 +24,10 @@ import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import org.apache.accumulo.start.annotations.AccumuloService; import org.apache.accumulo.start.classloader.AccumuloClassLoader; import org.apache.accumulo.start.classloader.vfs.providers.HdfsFileProvider; import org.apache.commons.vfs2.CacheStrategy; @@ -37,6 +40,7 @@ import org.apache.commons.vfs2.impl.Defa import org.apache.commons.vfs2.impl.FileContentInfoFilenameFactory; import org.apache.commons.vfs2.impl.VFSClassLoader; import org.apache.log4j.Logger; +import org.scannotation.AnnotationDB; /** * This class builds a hierarchy of Classloaders in the form of: @@ -283,19 +287,73 @@ public class AccumuloVFSClassLoader { }); } - public static URL[] getURLs() { + private static AnnotationDB annotationDatabase; + + private static void loadAnnotationDatabase() { + if (annotationDatabase == null) { + AnnotationDB database = new AnnotationDB(); + database.setScanClassAnnotations(true); + try { + database.scanArchives(getAccumuloServiceURLs()); + } catch (Exception e) { + throw new RuntimeException(e); + } + annotationDatabase = database; + } + } + + public static Set<String> getAccumuloServiceClasses() { + loadAnnotationDatabase(); + Set<String> retVal = annotationDatabase.getAnnotationIndex().get(AccumuloService.class.getName()); + if (retVal == null) + retVal = Collections.emptySet(); + return retVal; + } + + public static Class<?> getAccumuloServiceClassByKeyword(String keyword) { + Set<String> classNames = getAccumuloServiceClasses(); + for (String className : classNames) { + try { + Class<?> candidate = getClassLoader().loadClass(className); + if (candidate.getAnnotation(AccumuloService.class).value().equals(keyword)) + return candidate; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + return null; + } + + public static Set<String> getAccumuloServiceKeywords() { + TreeSet<String> keywords = new TreeSet<String>(); + Set<String> classNames = getAccumuloServiceClasses(); + for (String className : classNames) { + try { + keywords.add(getClassLoader().loadClass(className).getAnnotation(AccumuloService.class).value()); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + return keywords; + } + + public static URL[] getAccumuloServiceURLs() { ArrayList<URL> urls = new ArrayList<URL>(20); try { ClassLoader cl = getClassLoader(); while (cl != null && cl != ClassLoader.getSystemClassLoader()) { if (cl instanceof URLClassLoader) { URLClassLoader ucl = (URLClassLoader) cl; - for (URL u : ucl.getURLs()) - urls.add(u); + for (URL u : ucl.getURLs()) { + if (u.toExternalForm().contains("accumulo")) + urls.add(u); + } } else if (cl instanceof VFSClassLoader) { VFSClassLoader vcl = (VFSClassLoader) cl; - for (FileObject f : vcl.getFileObjects()) - urls.add(f.getURL()); + for (FileObject f : vcl.getFileObjects()) { + if (f.getURL().toExternalForm().contains("accumulo")) + urls.add(f.getURL()); + } } cl = cl.getParent(); }