Plasma
TerraMeta Software, Inc.
PlasmaSDO® and PlasmaQuery® are registered Trademarks of TerraMeta Software, Inc.
Overview
Plasma is a data store agnostic, object mapping and object query framework written in a Java™ with Maven tools for metadata ingestion and conversion.
Detailed Documentation
Document | Description |
---|---|
Plasma Quickstart HBase (POJO) | Step by step guide for end-to-end HBase persistence with code samples using Plasma annotated Java POJO's as sole metadata source |
Plasma Quickstart MySql (POJO) | Step by step guide for end-to-end MySql persistence with code samples using Plasma annotated Java POJO's as sole metadata source |
Plasma Quickstart MySql (UML) | Step by step guide for end-to-end MySql persistence with code samples using Plasma annotated UML as metadata source |
Plasma Architecture Overview | General technical background plus architecture components with examples |
Plasma UML Profile Specification | Specification for the UML profile used for annotating UML models for use with Plasma |
Plasma API DOCS | Generated javadoc API documentation tree |
How It Works
At its core, the Plasma implementation contains a directed graph or digraph model and a set of metadata driven graph traversal algorithms. Data Objects under Plasma form a digraph transparently as a client manipulates the SDO API, graph edges or links being automatically created and used internally to manage associations between Data Object nodes. Clients can assemble a Data Graph ad-hoc or query for a graph. Several API implementing the Visitor pattern[1] are then available to facilitate custom traversal operations on a graph.
Code Generation. The build-time code generation (provisioning) tools are compatible-with but not dependent upon any Integrated Development Environment (IDE), but are rather are geared for larger scale enterprise projects needing support for Maven and continuous integration build environments such as Hudson. Build files typically access a set of command-line provisioning tools using the Plasma Maven Plugin triggering a variety of operations. In general, application UML model artifacts in XMI format[2] annotated with the Plasma UML Profile are first loaded and merged using the FUML runtime, then projected as a whole or in part onto an intermediate provisioning model, typically in-memory. The provisioning model is then merged with configuration information and transformed into one of several available target outputs, comprised of source code or models specific to a particular context or technology platform. Where a particular technology target is not provided, the intermediate provisioning model can be marshaled as XML, custom transformations using XSLT for instance converting the provisioning XML document into almost any target format.
Requirements
Java Runtime
The latest JDK or JRE version 1.7.xx or 1.8.xx for Linux, Windows, or Mac OS X must be installed in your environment; we recommend the Oracle JDK. To check the Java version installed, run the command:
$ java -version
Plasma is tested with the Oracle JDKs; it may work with other JDKs such as Open JDK, but it has not been tested with them. Once you have installed the JDK, you'll need to set the JAVA_HOME environment variable.
Getting Started
Add the following dependencies to any Apache Maven POM files (or your build system's equivalent configuration), in order to make use of Plasma classes.
All versions of Plasma can be found on Maven Central.
Plasma
For the Plasma library use the following artifact.
<dependency>
<groupId>org.plasma</groupId>
<artifactId>plasma-core</artifactId>
<version>x.y.z</version>
</dependency>
Detailed Documentation
Document | Description |
---|---|
Plasma Quickstart HBase (POJO) | Step by step guide for end-to-end HBase persistence with code samples using Plasma annotated Java POJO's as sole metadata source |
Plasma Quickstart MySql (POJO) | Step by step guide for end-to-end MySql persistence with code samples using Plasma annotated Java POJO's as sole metadata source |
Plasma Quickstart MySql (UML) | Step by step guide for end-to-end MySql persistence with code samples using Plasma annotated UML as metadata source |
Plasma Architecture Overview | General technical background plus architecture components with examples |
Plasma UML Profile Specification | Specification for the UML profile used for annotating UML models for use with Plasma |
Plasma API DOCS | Generated javadoc API documentation tree |