Add license.

Signed-off-by: kaisar <kaisar@smartitengineering.com>
Merge remote branch 'imyousuf/content' into content
Fix error in parsing the resource URI.

The internal and external URI is different in format.

Signed-off-by: kaisar <kaisar@smartitengineering.com>
Passes parsing status and Representation.

Signed-off-by: kaisar <kaisar@smartitengineering.com>
Move workspace related interface/classes to their own package

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Remove dates from resource definition as they do not need them

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Add a content type reader service to load types by workspace id

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Add WorkspaceService implementation with full dao implementation

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Add injection for WorkspaceService into SmartContentSPI

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Move TemplateType to common as it will be used across packages

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Introduce ResourceTemplate for representation and variation

Workspace should be able to provide Representation and Variation templates
to providers so that they can generate presentations of content type and
field respectively.

Next steps would be -
 * Implement the the new APIs
 * Add their creation factories in API
 * Implement persisting them
 * Implement reading them

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Add implementation of the new ResourceTemplate API

Also add workspaceId to resource template so that workspace it belongs to
can be identified easily.

Next steps would be -
 * Implement persisting them
 * Implement reading them

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Add API for CRUD operations on ResourceTemplate

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Use private modules instead of generic modules

This is done to ensure we can control which configurations to expose and
which not to, to other modules. This requirement was clear because of the
requirement of workspace service.

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Return an immutable collection instead of new array list

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Add Friendlies to Workspace API

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Modify operations for resources to accept workspaceId for put/delete

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>
Fix the error occurring in the fieldDefs.

The fieldDefs was not cleared after adding in the contentTypes. So the
fields of previous contentTypes are also in the current fieldDefs.

Signed-off-by: kaisar <kaisar@smartitengineering.com>
Add logger.

Signed-off-by: kaisar <kaisar@smartitengineering.com>
Add an abstract WorkspaceService implementation

Its primarily added so that it is possible to load a workspace with all
and the workspace only. It would be particularly useful for caching

Signed-off-by: Imran M Yousuf <imyousuf@smartitengineering.com>