This project aims at providing Apache Wave code reorganized to follow a Maven project structure (one project sanely split into modules). This way, one expects the project to be easier to understand and faster to build and test.
- JDK 6
- Maven 3.0.3 or newer
- Protocol Buffers 2.4.1 compiler installed (protoc)
On Ubuntu 12.04/Linux Mint 13 execute:
sudo apt-get install protobuf-compiler
On Mac OS X (with brew) execute:
cd /usr/local
git l -- Library/Formula/protobuf.rb
git co -b proto241 544209f
brew install protobuf
git co master
git br -d proto241
On Windows :
Download the protobuf from https://code.google.com/p/protobuf/ and extract the protoc.exe
And then edit build-proto.properties to match your installation.
To allow more memory for the compilation process please do the following On Linux/Mac :
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m"
On Windows :
set MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m"
Basically, if you want a WIAB JAR file ready to run, you just have to run the following command: mvn clean package
This will eventually:
- Compile protobuf source files (*.proto) into Java code;
- Compile a string-template parser;
- Run that parser against template files (*.st) in order to generate more Java code;
- Compile GXP templates;
- Compile GWT modules;
- Create the runnable server JAR.
Meanwhile, some tests will be executed, while others won't mostly due to the fact they take too long to run, sometimes even hours. Be aware!! In order to execute them, we provide the following Maven parameters: -Plarge-tests -Pgwt-tests -Pmongodb-tests
For instance,
mvn clean package -Pmongodb-tests
will run the regular tests plus the Mongo DB related ones.
In order to run the Wave In A Box bundle, be sure to configure your server instance:
vi wiab-distribution/target/wiab-distribution-0.3-SNAPSHOT/server.config
And then, start the server:
cd wiab-distribution/target/wiab-distribution-0.3-SNAPSHOT/
./run-server.sh
Now just point your browser to the host and port you've configured in your server.config.
Look in the project issues.