From 4f2fdc2e73d4b72b1b8203748b12ea57affcc155 Mon Sep 17 00:00:00 2001 From: Vijay Parthasarathy Date: Sat, 3 Aug 2013 11:21:07 -0700 Subject: [PATCH] Fix trigger directory detection code Patch by Vijay, reviewed by jebllis for CASSANDRA-5826 --- {test => conf}/triggers/README.txt | 0 debian/cassandra.install | 1 + examples/triggers/README.txt | 2 +- .../cassandra/triggers/TriggerExecutor.java | 2 +- .../apache/cassandra/utils/FBUtilities.java | 13 ++++++++++--- {triggers => test/conf/triggers}/README.txt | 0 .../data/serialization/2.0/db.RowMutation.bin | Bin 3599 -> 3599 bytes 7 files changed, 13 insertions(+), 5 deletions(-) rename {test => conf}/triggers/README.txt (100%) rename {triggers => test/conf/triggers}/README.txt (100%) 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 698b0b68b9ddcf684c2445abc3d3041ddaa4f938..aa7537806e22cee667589f103b55936347aa114e 100644 GIT binary patch delta 174 zcmeB|>6e+XkNK~U@y3IWj39dALGj6Nc?>4|FzttMZ6^CNaZhGv{EaHhHTfF%Uxd&T s2-AA>Mb@-enV*9L;$ESxE*LCz=xe&8N7L#bAa50MGMCVgLXD delta 174 zcmeB|>6e+XkNE*h#>Rt=j39dALGj6Nc?>4|FzttMZ6^CNaZhGv{EaHhHTfF%Uxd&T s2-AA>Mb@-enV*9L;$ESxE*LCz=xe&8N7L#bAa500XN=A^-pY