diff --git a/test/triggers/README.txt b/conf/triggers/README.txt similarity index 100% rename from test/triggers/README.txt rename to conf/triggers/README.txt diff --git a/debian/cassandra.install b/debian/cassandra.install index d7a22428ba..5dba772b79 100644 --- a/debian/cassandra.install +++ b/debian/cassandra.install @@ -6,6 +6,7 @@ conf/cassandra-rackdc.properties etc/cassandra conf/commitlog_archiving.properties etc/cassandra conf/cassandra-topology.properties etc/cassandra conf/log4j-tools.properties etc/cassandra +conf/triggers/* etc/cassandra/triggers debian/cassandra.in.sh usr/share/cassandra debian/cassandra.conf etc/security/limits.d debian/cassandra-sysctl.conf etc/sysctl.d diff --git a/examples/triggers/README.txt b/examples/triggers/README.txt index 73461446ff..a99fa98acc 100644 --- a/examples/triggers/README.txt +++ b/examples/triggers/README.txt @@ -11,7 +11,7 @@ Installation: ============ change directory to /examples/triggers run "ant jar" -Copy build/trigger-example.jar to /triggers/ +Copy build/trigger-example.jar to /triggers/ Copy conf/* to /conf/ Create column family configured in InvertedIndex.properties Example: Keyspace1.InvertedIndex as configured in InvertedIndex.properties diff --git a/src/java/org/apache/cassandra/triggers/TriggerExecutor.java b/src/java/org/apache/cassandra/triggers/TriggerExecutor.java index c3a2c44053..c6feb845b8 100644 --- a/src/java/org/apache/cassandra/triggers/TriggerExecutor.java +++ b/src/java/org/apache/cassandra/triggers/TriggerExecutor.java @@ -42,7 +42,7 @@ public class TriggerExecutor private final Map cachedTriggers = Maps.newConcurrentMap(); private final ClassLoader parent = Thread.currentThread().getContextClassLoader(); - private final File triggerDirectory = new File(FBUtilities.cassandraHomeDir(), "triggers"); + private final File triggerDirectory = FBUtilities.cassandraTriggerDir(); private volatile ClassLoader customClassLoader; private TriggerExecutor() diff --git a/src/java/org/apache/cassandra/utils/FBUtilities.java b/src/java/org/apache/cassandra/utils/FBUtilities.java index 379c0eb951..7873ce72ca 100644 --- a/src/java/org/apache/cassandra/utils/FBUtilities.java +++ b/src/java/org/apache/cassandra/utils/FBUtilities.java @@ -69,6 +69,7 @@ public class FBUtilities private static ObjectMapper jsonMapper = new ObjectMapper(new JsonFactory()); public static final BigInteger TWO = new BigInteger("2"); + private static final String DEFAULT_TRIGGER_DIR = "triggers"; private static volatile InetAddress localInetAddress; private static volatile InetAddress broadcastInetAddress; @@ -341,10 +342,16 @@ public class FBUtilities return scpurl.getFile(); } - public static File cassandraHomeDir() + public static File cassandraTriggerDir() { - String libDir = new File(FBUtilities.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent(); - return new File(new File(libDir).getParent()); + File triggerDir; + if (System.getProperty("cassandra.triggers_dir") != null) + triggerDir = new File(System.getProperty("cassandra.triggers_dir")); + else + triggerDir = new File(FBUtilities.class.getClassLoader().getResource(DEFAULT_TRIGGER_DIR).getFile()); + if (!triggerDir.exists()) + throw new RuntimeException("Trigger Directory doesnt exist, please create inside conf."); + return triggerDir; } public static String getReleaseVersionString() diff --git a/triggers/README.txt b/test/conf/triggers/README.txt similarity index 100% rename from triggers/README.txt rename to test/conf/triggers/README.txt diff --git a/test/data/serialization/2.0/db.RowMutation.bin b/test/data/serialization/2.0/db.RowMutation.bin index 698b0b68b9..aa7537806e 100644 Binary files a/test/data/serialization/2.0/db.RowMutation.bin and b/test/data/serialization/2.0/db.RowMutation.bin differ