Solandra
Solandra copied to clipboard
Build fails with cassandra 1.2
I changed the cassandra version from 1.1.0-beta2 --> 1.2.0 in ivy.xml and pom.xml I would love to try solandra, but need features from cassandra 1.2. Anyone have it compiling against 1.2?
compile: [javac] /Users/rj/src/Solandra/build.xml:134: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 34 source files to /Users/rj/src/Solandra/build/classes [javac] /Users/rj/src/Solandra/src/lucandra/CassandraDaemon.java:24: cannot find symbol [javac] symbol : class CassandraDaemon [javac] location: package org.apache.cassandra.thrift [javac] public class CassandraDaemon extends org.apache.cassandra.thrift.CassandraDaemon [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:36: cannot find symbol [javac] symbol : class ConfigurationException [javac] location: package org.apache.cassandra.config [javac] import org.apache.cassandra.config.ConfigurationException; [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:40: cannot find symbol [javac] symbol : class AbstractCassandraDaemon [javac] location: package org.apache.cassandra.service [javac] import org.apache.cassandra.service.AbstractCassandraDaemon; [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:67: reference to ConsistencyLevel is ambiguous, both class org.apache.cassandra.thrift.ConsistencyLevel in org.apache.cassandra.thrift and class org.apache.cassandra.db.ConsistencyLevel in org.apache.cassandra.db match [javac] public static final ConsistencyLevel consistency; [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:557: reference to ConsistencyLevel is ambiguous, both class org.apache.cassandra.thrift.ConsistencyLevel in org.apache.cassandra.thrift and class org.apache.cassandra.db.ConsistencyLevel in org.apache.cassandra.db match [javac] public static void robustInsert(ConsistencyLevel cl, RowMutation... mutations) [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:591: reference to ConsistencyLevel is ambiguous, both class org.apache.cassandra.thrift.ConsistencyLevel in org.apache.cassandra.thrift and class org.apache.cassandra.db.ConsistencyLevel in org.apache.cassandra.db match [javac] public static ListrobustRead(ConsistencyLevel cl, ReadCommand... rc) throws IOException [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:628: reference to ConsistencyLevel is ambiguous, both class org.apache.cassandra.thrift.ConsistencyLevel in org.apache.cassandra.thrift and class org.apache.cassandra.db.ConsistencyLevel in org.apache.cassandra.db match [javac] public static List
robustRead(ByteBuffer key, QueryPath qp, List
columns, ConsistencyLevel cl) [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/dht/RandomPartitioner.java:42: type org.apache.cassandra.db.DecoratedKey does not take parameters [javac] public org.apache.cassandra.db.DecoratedKey decorateKey(ByteBuffer key) [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/dht/RandomPartitioner.java:126: type org.apache.cassandra.db.DecoratedKey does not take parameters [javac] public org.apache.cassandra.db.DecoratedKey convertFromDiskFormat(ByteBuffer fromdisk) [javac] ^ [javac] /Users/rj/src/Solandra/src/solandra/SolandraDaemon.java:32: interface expected here [javac] public class SolandraDaemon implements CassandraDaemon { [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraDaemon.java:31: cannot find symbol [javac] symbol : variable super [javac] location: class lucandra.CassandraDaemon [javac] super.start(); [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:87: cannot find symbol [javac] symbol : class AbstractCassandraDaemon [javac] location: class lucandra.CassandraUtils [javac] configLocation = AbstractCassandraDaemon.class.getClassLoader().getResource(config); [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:92: cannot find symbol [javac] symbol : class AbstractCassandraDaemon [javac] location: class lucandra.CassandraUtils [javac] org.apache.log4j.Logger.getLogger(AbstractCassandraDaemon.class).info("Logging initialized"); [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:112: reference to ConsistencyLevel is ambiguous, both class org.apache.cassandra.thrift.ConsistencyLevel in org.apache.cassandra.thrift and class org.apache.cassandra.db.ConsistencyLevel in org.apache.cassandra.db match [javac] consistency = ConsistencyLevel.valueOf(properties.getProperty("solandra.consistency", ConsistencyLevel.ONE [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:112: reference to ConsistencyLevel is ambiguous, both class org.apache.cassandra.thrift.ConsistencyLevel in org.apache.cassandra.thrift and class org.apache.cassandra.db.ConsistencyLevel in org.apache.cassandra.db match [javac] consistency = ConsistencyLevel.valueOf(properties.getProperty("solandra.consistency", ConsistencyLevel.ONE [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:232: cannot find symbol [javac] symbol : class ConfigurationException [javac] location: class lucandra.CassandraUtils [javac] catch (ConfigurationException e2) [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:267: cannot find symbol [javac] symbol : method activate() [javac] location: class lucandra.CassandraDaemon [javac] daemon.activate(); [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/CassandraUtils.java:297: cannot find symbol [javac] symbol : method deactivate() [javac] location: class lucandra.CassandraDaemon [javac] daemon.deactivate(); [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/IndexWriter.java:622: Pair(T1,T2) has protected access in org.apache.cassandra.utils.Pair [javac] mutationQ = new Pair >(new AtomicInteger(0), [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/dht/RandomPartitioner.java:49: type org.apache.cassandra.db.DecoratedKey does not take parameters [javac] return new org.apache.cassandra.db.DecoratedKey (super.getToken(key), key); [javac] ^ [javac] /Users/rj/src/Solandra/src/lucandra/dht/RandomPartitioner.java:55: type org.apache.cassandra.db.DecoratedKey does not take parameters [javac] return new org.apache.cassandra.db.DecoratedKey (new BigIntegerToken(ByteBufferUtil.string(extractedToken)), key); [javac] ^ [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [javac] 21 errors BUILD FAILED
edit: I guess I was wrong... while trying to debug this, it appears that the 1.2 codebase has changed quite a bit. It appears that while ivy downloaded the right jar, it compiled it against an old one... must have missed a dependency someplace.
I ported solandra to cassanda 1.2 and when running it I now get a thrift error. Build works fine, must just be a config issue:
INFO 17:06:01,835 Using TFramedTransport with a max frame size of 15728640 bytes. INFO 17:06:01,841 Using synchronous/threadpool thrift server on ember-cassandra : 9160 INFO 17:06:01,842 Listening for thrift clients... INFO 17:06:02,843 Sleeping 1237ms to stagger solandra schema creation
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243) Caused by: java.lang.AssertionError at org.apache.cassandra.thrift.ThriftSessionManager.currentSession(ThriftSessionManager.java:51) at org.apache.cassandra.thrift.CassandraServer.state(CassandraServer.java:88) at org.apache.cassandra.thrift.CassandraServer.system_add_keyspace(CassandraServer.java:1344) at lucandra.CassandraUtils.createCassandraSchema(CassandraUtils.java:405) at lucandra.CassandraUtils.startupServer(CassandraUtils.java:285) at solandra.SolandraDaemon.startRPCServer(SolandraDaemon.java:77) at solandra.SolandraDaemon.start(SolandraDaemon.java:55) ... 5 more Cannot start daemon Service exit with a return value of 5
Can you share what you have done... I will try to look into it myself.