[ 
https://issues.apache.org/jira/browse/CASSANDRA-8080?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pablo La Greca updated CASSANDRA-8080:
--------------------------------------
    Description: 
EmbeddedCassandraService allows to run cassandra embedded. What's missing is a 
much more clear interface for running cassandra embedded in other applications.

Running cassandra embedded should be much simpler an the user should be able to 
run it and configure it using only an API (no configuration file required).

The user should be able to do something like:

CassandraSever cassandra = Cassandra.newInstance(new File("cassandra.yaml"); 
//creates a cassandra node using a configuration file

Or

CassandraConfig config = new CassandraConfig().seeds("ip1", "ip2");
CassandraServer cassandra = Cassandra.newInstance(config);

Implementing this type of functionality should be simple since cassandra 
already converts the yaml file to a java class. Also there's a system property 
to change the cassandra configuration loader.

It should also be possible to have a client that doesn't need to go through the 
wire to communicate with Cassandra, users should be able to do just:

CassandraServer cassandra ...
Session session = cassandra.createSession();
session.execute(String.format("CREATE KEYSPACE IF NOT EXISTS %s WITH 
replication = {'class':'SimpleStrategy', 'replication_factor':2};", 
applicationName));

This seems to work using directly classes from the package: 
org.apache.cassandra.transport.messages

One other thing, but this seems far more complex to do, is that it should be 
possible to create several cassandra nodes inside a single JVM. This would 
allow to do much more simpler test for cassandra functionality.

  was:
EmbeddedCassandraService allows to run cassandra embedded. What's missing is a 
much more clear interface for running cassandra embedded in other applications.

Running cassandra embedded should be much simpler are the user should be able 
to run it and configure it using only an API (no configuraiton file required).

The user should be able to do something like:

CassandraSever cassandra = Cassandra.newInstance(new File("cassandra.yaml"); 
//creates a cassandra node using a configuration file

Or

CassandraConfig config = new CassandraConfig().seeds("ip1", "ip2");
CassandraServer cassandra = Cassandra.newInstance(config);

Implementing this type of functionality should be simple since cassandra 
already converts the yaml file to a java class. Also there's a system property 
to change the cassandra configuration loader.

It should also be possible to have a client that doesn't need to go through the 
wire to communicate with Cassandra, users should be able to do just:

CassandraServer cassandra ...
Session session = cassandra.createSession();
session.execute(String.format("CREATE KEYSPACE IF NOT EXISTS %s WITH 
replication = {'class':'SimpleStrategy', 'replication_factor':2};", 
applicationName));

This seems to work using directly classes from the package: 
org.apache.cassandra.transport.messages

One other thing, but this seems far more complex to do, is that it should be 
possible to create several cassandra nodes inside a single JVM. This would 
allow to do much more simpler test for cassandra functionality.


> Provide support for running cassandra embedded
> ----------------------------------------------
>
>                 Key: CASSANDRA-8080
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8080
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Packaging
>            Reporter: Pablo La Greca
>
> EmbeddedCassandraService allows to run cassandra embedded. What's missing is 
> a much more clear interface for running cassandra embedded in other 
> applications.
> Running cassandra embedded should be much simpler an the user should be able 
> to run it and configure it using only an API (no configuration file required).
> The user should be able to do something like:
> CassandraSever cassandra = Cassandra.newInstance(new File("cassandra.yaml"); 
> //creates a cassandra node using a configuration file
> Or
> CassandraConfig config = new CassandraConfig().seeds("ip1", "ip2");
> CassandraServer cassandra = Cassandra.newInstance(config);
> Implementing this type of functionality should be simple since cassandra 
> already converts the yaml file to a java class. Also there's a system 
> property to change the cassandra configuration loader.
> It should also be possible to have a client that doesn't need to go through 
> the wire to communicate with Cassandra, users should be able to do just:
> CassandraServer cassandra ...
> Session session = cassandra.createSession();
> session.execute(String.format("CREATE KEYSPACE IF NOT EXISTS %s WITH 
> replication = {'class':'SimpleStrategy', 'replication_factor':2};", 
> applicationName));
> This seems to work using directly classes from the package: 
> org.apache.cassandra.transport.messages
> One other thing, but this seems far more complex to do, is that it should be 
> possible to create several cassandra nodes inside a single JVM. This would 
> allow to do much more simpler test for cassandra functionality.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to