Skip to content

Plasma is a data store agnostic, object mapping and object query framework written in a Java™ with Maven tools for metadata ingestion and conversion

License

Notifications You must be signed in to change notification settings

plasma-framework/plasma

Repository files navigation

big-iconPlasma

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

About

Plasma is a data store agnostic, object mapping and object query framework written in a Java™ with Maven tools for metadata ingestion and conversion

Resources

License

Stars

Watchers

Forks

Packages

No packages published