Version 1

    Komodo is being designed to utilize the simplicity of the JCR repository through the Modeshape framework. This framework is being wrapped via the Polyglotter project which is being designed as "a set of libraries offering pluggable support for transforming data from one form to another". (see Polyglotter/polyglotter · GitHub)

     

    Komodo will have to instantiate the base class Polyglotter():

     

    Sample:   new Polyglotter( REPOSITORY_STORE_PARENT_PATH, MODESHAPE_CONFIGURATION_PATH );

     

    public Polyglotter( final String repositoryStoreParentPath ,final String modeShapeConfigurationPath ) {
         modeler = new ModeShapeModeler( repositoryStoreParentPath, modeShapeConfigurationPath );
    }
    
    

     

    ... which create an instance of a Manager()

     

    public ModeShapeModeler( final String repositoryStoreParentPath, final String modeShapeConfigurationPath ) {
        manager =  new Manager( repositoryStoreParentPath, modeShapeConfigurationPath );
    }
    
    

     

    which caches the paths and creates an instance of ModelTypeManagerImpl via modelTypeManager() method and JcrRepository and ModeShapeEngine via repository() method.

     

    public class Manager {
         public static final String REPOSITORY_STORE_PARENT_PATH_PROPERTY = "org.modeshape.modeler.repositoryStoreParentPath";
         private ModeShapeEngine modeShape;
         private JcrRepository repository;
         private ModelTypeManagerImpl modelTypeManager;
         public final String modeShapeConfigurationPath;
    
         public Manager( final String repositoryStoreParentPath, final String modeShapeConfigurationPath ) {
             System.setProperty( REPOSITORY_STORE_PARENT_PATH_PROPERTY, repositoryStoreParentPath );
              this.modeShapeConfigurationPath = modeShapeConfigurationPath;
         }
    
    

     

    Access to nodes and properties will be via the Model and ModelObject classes via the ModeShapeModeler


    more to come......