Stop worrying.
Get productive.

[fleXive] is a next-generation content repository. It provides a stable and fast store for your documents, images, and structured data.

It can be embedded in your Java EE application or manage data as a standalone server through interfaces like CMIS and WebDAV.

  • Reliable data store, backed by a relational database
  • Native JavaEE 5+ support
  • Complex data structures
  • Fine-grained security
  • WebDAV and CMIS interfaces
  • Fully open source (LGPL, administration GUI: GPL)

Creating content types

FxTypeEdit type = FxTypeEdit.createNew("Product").save();
type.addProperty("name", FxDataType.String1024)
    .setMultiLang(true)
    .save();
type.addProperty("price", FxDataType.Double);
new GroovyTypeBuilder().PRODUCT {
	name  (multilang: true)
	price (dataType: FxDataType.Double)
}
Creating a new type in the administration GUI

A web-based administration GUI allows easy management of data structures in the repository.

You can also use the GUI for rapid prototyping and export the structure definitions as XML or Groovy code.


Creating content

FxContent co = EJBLookup.getContentEngine().initialize("Product");
co.setValue("/name", FxLanguage.ENGLISH, "SuperTronics LCD TV");
co.setValue("/price", 799.0);
co.save();
def b = new GroovyContentBuilder("Product")  
b {
    name  ("SuperTronics LCD TV")
    price (799.0)
}
b.getContent().save()
Creating a structured content in the administration GUI

The web-based administration GUI provides a generic content editor that can be used for all data structures in the repository.

The content editor is a JSF component that can be used in any application using the [fleXive] content repository.


Querying the repository

CmisResultSet rs = EJBLookup.getCmisSearchEngine().search(
    "SELECT name, price FROM Product " +
    "WHERE contains('LCD') AND price < 1000"
);
assert rs.getRowCount() > 0;
def rs = EJBLookup.cmisSearchEngine.search(
    "SELECT name, price FROM Product " +
    "WHERE contains('LCD') AND price < 1000"
)
assert rs.getRowCount() > 0
Querying the repository in the administration GUI

A graphical query builder supports the creation of complex queries in the administration GUI.

You can store frequently used queries, store the results of a query for later use, or export the query to the [fleXive] query language, FxSQL.


Building frontends

Easily create edit forms with [fleXive] JSF components
<fx:content var="product" pk="#{myBean.pk}">
    <fx:value property="name"/>
    <fx:value property="price"/>
</fx:content>

<fx:contentEditor pk="#{myBean.pk}"/>

Generic input and output components make it easy to deal with complex contents and strengthen the separation between UI and the data model.

Note that the [fleXive] repository itself has no dependency on JSF. Support of non-JVM platforms based on CMIS (e.g. PHP, Python, Ruby) is planned in future versions.

HELP!

Got a question? Go to the forums or drop us an email.

The installation instructions provide help for the installer and for deploying [fleXive] applications to common application servers.

The reference documentation contains a thorough documentation for all parts of [fleXive].

Blog