You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

With SYNCOPE-620, the source tree was restructured in order to ease maintenance, allow easier extendability and obtain more modularity.

Source tree up to 1.2.X

Up to 1.2.X, the effective source tree (e.g. excluding utility modules providing the standalone distribution, .deb artifacts, installer, ...) is organized into four main modules:

  1. common
    JAR library including
    1. JAX-RS 2.0 REST services definition
    2. Java transfer objects (TO) to be used with REST services  
  2. client
    JAR library with utilities for invoking REST services 
  3. core
    WAR web application exposing the REST interface and implementing the whole business logic including provisioning, workflow management and persistence to an internal RDBMS via JPA.
  4. console
    WAR web application providing rich GUI for interacting with core

When creating a new project from archetype, the core and console sub-modules generated are actually web applications empowering the WAR overlays feature.

The nice part about this is that generated projects can easily override any single file from the official Syncope Maven artifacts; the major drawbacks are that the whole Maven artifacts need to be downloaded, and that any single feature to be implemented must be thought as a "deviation" from the standard behavior; moreover, even if some features are not required in the specific project (Activiti workflow adapter, Camel integration, ...) the related dependencies are still to be carried over, because they are part of the official artifacts.

Source tree starting fro 2_0_X

Starting with 2.0.0, the modules were re-organized according to the following package diagram (where packages are Maven modules, actually):

The general approach taken with this refactoring was to split, where possible and meaningful, the existing code into API and implementation, and to introduce new modules for each relevant feature.

  • No labels