Skip to content
This repository has been archived by the owner on Feb 5, 2020. It is now read-only.
abollini edited this page Nov 3, 2012 · 4 revisions

Welcome to the JDynA framework wiki!

What is it?

JDynA is a JAVA library for the management of persistable object properties in a dynamic fashion. The structure of domain objects can be modified by adding, removing or altering properties, also via web UI, without need for any change in the database.

How does it work?

The JDynA framework provides java classes mapped with Hibernate to manage an extensible persistent data model. The basic object of the JDynA framework are:

  • AnagraficaObject: the central class of the framework. Domain objects need to extend this class or embed it. In this way its can be configured at runtime to store typed properties in a RDBMS friendly way
  • PropertyDefinition: the class that describe the structural aspects (data type, required, repeatable, etc.) of the attribute of your object model that need to be persisted
  • AWidget: an abstract class that provide support in rendering, editing and validation for the different data type
  • AValue: an abstract class used to wrap the actual value to persist
  • Property: keep together the AValue and the PropertyDefinition

The jdyna-web modules provide web components (Spring Controller) to configure your data model via webUI, visualize and edit your domain objects.

Which data types are supported?

The JDynA framework currently supports:

  • text field (with regex validation, multiline support)
  • date field (with or without time)
  • link field (text to display and actual link)
  • file field
  • number (range validation)
  • boolean
  • classification (textual values taken from tree configurable at runtime via UI with any level of deph and stored in the DB as references to the "classification" entry - foreing key contraints)
  • subject keywords (textual values taken from flat controlled lists configurable at runtime, editing is done via autocomplete and "open controlled list" are supported - new values are automatically added to the list if the controlled list is configured as open)
  • pointer field (references to other persistent object, providing autocomplete for editing and foreign key constraint at the RDBMS level, display of the "linked object" configured via Expression Language, filtering on set of linkable object)
  • composition of any of the previous data types (visualization and edit is done via AJAX with pagination and lazy loading)

How mature is it?

JDynA was developed in 2007. It is actually used in production by several proprietary projects by CILEA the company that has originally developed it. This mean that the idea and the main concept around that are at the base of the JDynA framework is mature and stable. On the other side as the framework as been embedded in the other projects and (as far as we know) used only by the original developers there is the need to do some clean up removing "customizations" and "workarounds" and making the code more usable out of box in external project without the need of "copy and paste". The documentation is in a very early stage, javadoc, bestpractice and tutorials about the usage need to be mostly produced. As we have now started a new open source project DSpace-CRIS that will make use of the JDynA framework we hope that work done for this project will raise attention also to the JDynA framework self

Clone this wiki locally