-
Notifications
You must be signed in to change notification settings - Fork 26
Development environment
Following setup guide is for Eclipse, but shouldn't be very different for others. Before you start make sure you have Maven and EGit plugins for Eclipse installed.
Clone github repo (use your own fork) form command line:
git clone [email protected]:elasticinbox/elasticinbox.git elasticinbox
or from Eclipse:
- File > Import > Git > Projects form Git > Clone…
- Enter
[email protected]/elasticinbox/elasticinbox.git
(protocol SSH) - Chose destination folder and Finish
Now import Maven project:
- File > Import > Maven > Existing Maven Projects
- Select path where you cloned git repo into
- You will need only following packages:
Finally, update Eclipse with local git repo info:
- Select all elasticinbox packages in Package Explorer
- Right click on selection > Team > Share Project… > Git
- Check "Use or create repository in parent folder or project" and click Finish
Done!
You will need Cassandra running on your dev host and create keyspace and column families. See config/elasticinbox.cml for setup instructions.
Next, configure ElasticInbox: config/elasticinbox.yaml
Key points for ElasticInbox config:
- Check Cassandra configuration (
cassandra_hosts
,cassandra_cluster_name
,cassandra_keyspace
) - For development you may want to use your local file system as a blob store. Make sure
blobstore_write_profile
points to the filesystem profile and thatbasedir
andcontainer
folders exist (container should be subfolder of basedir, i.e. /basedir/container).
Finally you may want to enable DEBUG in config/logback.xml.
ElasticInbox uses OSGi bundles and Pax Tools. To build from source you will need Maven 3 and:
mvn clean install
If you would like to build and run (skipping integration test) use command below. By default it will run using Equinox. Change profile (-P) to use Felix. For profiling use "visualvm" profile.
mvn clean install pax:provision -DskipITs -P[visualvm|felix|equinox]
For integration tests run:
mvn clean integration-test
Note: Currently unit and integration tests require local Cassandra setup.
To build package (package will be available at /assembly/target
):
mvn clean package -Passembly