Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 This diagram captures these relationships:







 Arrows on both ends of a line signify the circular relationship between two modules. (In addition, there are some jars not pictured, such as pentaho-test and pentaho-i18n.) Currently, the mavenization has progressed to the point that these circular dependencies have been removed. This required moving classes from the pentaho/server/src directory into the various maven modules, and in many cases entailed moving those classes into different modules than what the Ant build originally stated. Two new modules were created (pentaho-api and pentaho-quartz-plugin) to break further circular relationships.


In addition to this, some code had to be refactored to break the circular dependencies, including making new classes. These refactorings are all accompanied by tests in the various modules where the code was changed.
Currently, the structure now looks like this:
 




Note, this is with redundant relationships removed. For example, pentaho-util depends on pentaho-api and pentaho-messages. Instead of needing to depend explicitly on both of these, pentaho-util can now just depend on pentaho-api, and pentaho-api will bring along pentaho-messages as a dependency.


Not shown is a relationship between pentaho and pentaho-metadata, pentaho-preconfiguredinstall, pentaho-solutions, and pentaho-data. Pentaho depends on pentaho-metadata for a number of classes, but it currently depends on a jar file to get these from. Once pentaho-metadata and pentaho are complete, pentaho should depend on the maven module for pentaho-metadata. Pentaho depends on the other projects for non-Java code files, and they must be built in order to compile this maven project.



Pentaho-metadata

Info
titleProject dependencies

 
This maven module depends on code from the pentaho source tree. In particular, it is the pentaho-publisher jar that is required to build pentaho-metadata, so you will have to build that before attempting to compile pentaho-metadata. 


We successfully mavenized the pentaho-metadata project.

...

as well as within eclipse:

This maven module depends on code from the pentaho source tree. In particular, it is the pentaho-publisher jar that is required to build pentaho-metadata, so you will have to build that before attempting to compile pentaho-metadata. 

Pentaho-preconfiguredinstall 

...