Initial import
Added .travis.yml
Update .travis.yml
Set -source and -target	options for javac in the pom.xml
Reorganized spring context configuration and project model.

* Allow for different build profiles: prod, dev, test etc.
* FIXME: Internal resource files used for database settings. Can be
resolved later.
Added stubs for controllers.
Fixed failing AccountServiceTest

* Added dummy account and user for now
Component auto scan & DAO implementation classes

* Implementation classes for links,places,drops,
media,tags and buckets

* A generic DAO interface and accompanying abstract
implementation class for CRUD and fetch by id (primery key)
operations. This reduces the amount of boilerplate code

* Automatic scanning of components so no bean wiring 
(and mapping in hibernate.cfg.xml) for each of the 
DAOs is necessary. 

* Update the license header in the source files.
Refactoring & Service classes for the domain objects

* Removed the @GeneratedValue from the link, place,
media and tag model objects. The ids for these
objects are generated by a custom sequence generation
DB function

* The service classes serve to mediate interaction
between the presentation land data layers

* Added Log4J and mockito as dependencies to the 
project configuration file (pom.xml)

* Changed the name of the "getById" methods to 
"findById"

* Renamed AbstractHibernateDAOTest to AbstractSwiftRiverTest
as it's a base class for all test cases
Added oauth2.

* Using Sping Security
* Users defined in context configuration and token stored in memory.
Should be enough to support dev in the interim.
Unit tests for the service classes

* For testability, each service class now has a 
mutator method for setting the DAO to be used
for transactions

* Added unit tests for the tag, channel, river, drop
river and bucket services. These tests primarily verify
that the service classes invoke the requisite DAO
methods
Override toString() in model classes

* The toString method has been overridden in all the
model classes. Calling this method now returns a 
JSON representation of the object

* Removed the "name" property from <session-factory>
in hibernate.cfg.xml to prevent hibernate from throwing
a JndiException

* Eagerly fetch drop metadata (links, places, tags and media)
For this the Collections had to be changed to Sets otherwise
Hibernate throws an exception

* Identity model class and DAOs
Added accounts/me endpoint

* Provides a way for applications to get details of the authenticated
user.
Refactoring: Implement DAOs using straight JPA

* Set the base packages of the classes to "com.ushahidi.swiftriver.core"

* At the implementation level, the DAO implementation classes
are now based on JPA but wired to use the Hibernate implementation
(of JPA)

* Replaced the "Hibernate" prefix in the class name the DAO implementation
classes with "Jpa"

* Changed the suffix of the DAOs from "DAO" to "Dao" for consistency
Remove service facades

* In our case,  there is no need for a facade layer to abstract
the services layer. All client requests are sent directly to
the services (which also handle transaction demarcation
and DTO mapping
Rename services package

* Changed the name of the services package to
"com.ushahidi.swiftriver.core.api.service"
Fix logging dependencies

* Added SLF4J dependencies and excluded commons-logging
from the spring-context dependency.
Dao Refactoring

* Renamed the SwiftRiverDao interface to JpaDao

* Changed the data type of the latitude and longitude
properties in the Place model to Double.

* Added  getSequenceNumber() for generating sequence numbers
and accompanying unit test
DTO Mapping classes

* Added classes for mapping the domain objects (entities)
to data transfer objects (DTOs). The DTOs are used for passing
data between the controllers and the service layer. As a first draft,
all the DTOs are Map<String, Object> representations

* Unit tests for the place and tag DTOs
Remove unnecessary services and tests

* The channel service and accompanying test is unnecessary.
Channels are associated with rivers and are eagerly fetched
whenever a river entity is loaded and addition/removal of channels
should be done from the river service