Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lightblueseas/persistence-api

Project for that holds base classes for persistence like base entity or base business objects and mapper for mapping between them
https://github.com/lightblueseas/persistence-api

data-initialization database entity java-8 jpa persistence-api rest rest-api rest-client

Last synced: 3 months ago
JSON representation

Project for that holds base classes for persistence like base entity or base business objects and mapper for mapping between them

Awesome Lists containing this project

README

        

persistence-api
====================

[![Build Status](https://travis-ci.org/lightblueseas/persistence-api.svg?branch=master)](https://travis-ci.org/lightblueseas/persistence-api)
[![license apache2](https://img.shields.io/badge/license-apache2-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/be62e9b55fb444818a70be678a5a1fb8)](https://www.codacy.com/app/tatjana19/persistence-api?utm_source=github.com&utm_medium=referral&utm_content=lightblueseas/persistence-api&utm_campaign=badger)
[![Open Issues](https://img.shields.io/github/issues/lightblueseas/persistence-api.svg?style=flat)](https://github.com/lightblueseas/persistence-api/issues)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/de.alpharogroup/persistence-api/badge.svg)](https://maven-badges.herokuapp.com/maven-central/de.alpharogroup/persistence-api)

The persistence-api is the parent project that provides api module projects for implement jpa projects. It tends to be easy to understand and uses different standards like JPA and or-mapper framework hibernate and spring for dependency injection.

Here is a simple description of the important module projects:

# entities-api

The entities-api module project provides several interfaces like Versionable, Activatable, Validatable that can be implemented from entity or domain classes

# base-entities

The base-entities module project provides abstract entity classes like versionable, activatable, validatable and other useful base entity classes.

# business-api

The business-api module project provides business intefaces and abstract classes for execute crud processes.

# data-api

The data-api module project provides generic repository intefaces.

- contains attribute converter classes for the new java 8 java.time package.

# data-initialization

The data-initialization module project provides only one abstract class AbstractDatabaseInitialization that provides callback methods for initialization of a database. The callback methods can be overwritten to provide custom behavior if needed.

# data-usertype

The data-usertype module project provides specific usertype classes.

# domain-api

The domain-api module project provides generic base domain classes and service intefaces.

# domain-mapper

The domain-mapper module project provides generic mapper classes that use the dozzer framework for map entity classes to domain specific classes.

# rest-api

The domain-api module project provides rest intefaces and abstract classes for execute crud processes.

# rest-client

The rest-client module project provides an abstract rest client for test rest services. It uses the cxf framework from apache.

## License

The source code comes under the liberal Apache License V2.0, making persistence-api great for all types of back end applications.

## Maven dependency

Maven dependency is now on sonatype.
Check out [sonatype repository](https://oss.sonatype.org/index.html#nexus-search;gav~de.alpharogroup~persistence-api~~~) for latest snapshots and releases.

Add the following maven dependencies to your project `pom.xml` if you want to import the core functionality:

You can first define the version properties:


...

6.6
${persistence-api.version}
${persistence-api.version}
${persistence-api.version}
${persistence-api.version}
${persistence-api.version}
${persistence-api.version}
${persistence-api.version}
${persistence-api.version}
${persistence-api.version}
${persistence-api.version}
...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of base-entities:


...


de.alpharogroup
base-entities
${base-entities.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of business-api:


...


de.alpharogroup
business-api
${business-api.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of base-service-api:


...


de.alpharogroup
base-service-api
${base-service-api.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of data-api:


...


de.alpharogroup
data-api
${data-api.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of data-initialization:


...


de.alpharogroup
data-initialization
${data-initialization.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of data-usertype:


...


de.alpharogroup
data-usertype
${data-usertype.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of domain-api:


...


de.alpharogroup
domain-api
${domain-api.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of domain-mapper:


...


de.alpharogroup
domain-mapper
${domain-mapper.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of rest-api:


...


de.alpharogroup
rest-api
${rest-api.version}

...

Add the following maven dependency to your project `pom.xml` if you want to import the functionality of rest-client:


...


de.alpharogroup
rest-client
${rest-client.version}

...

## Want to Help and improve it? ###

The source code for persistence-api are on GitHub. Please feel free to fork and send pull requests!

Create your own fork of [lightblueseas/persistence-api/fork](https://github.com/lightblueseas/persistence-api/fork)

To share your changes, [submit a pull request](https://github.com/lightblueseas/persistence-api/pull/new/master).

Don't forget to add new units tests on your changes.

## Contacting the Developer

Do not hesitate to contact the persistence-api developers with your questions, concerns, comments, bug reports, or feature requests.
- Feature requests, questions and bug reports can be reported at the [issues page](https://github.com/lightblueseas/persistence-api/issues).

## Note

No animals were harmed in the making of this library.

# Donations

If you like this library, please consider a donation through paypal:
PayPal this

or over bitcoin or bitcoin-cash with:

1Jzso5h7U82QCNmgxxSCya1yUK7UVcSXsW

or over ether with:

0xaB6EaE10F352268B0CA672Dd6e999C86344D49D8

or over flattr:
Flattr this

## Credits

|Travis CI|
|:-:|
|![Travis CI](https://travis-ci.com/images/logos/TravisCI-Full-Color.png)|
|Many thanks to [Travis CI](https://travis-ci.org) for providing a free continuous integration service for open source projects.|

# Similar projects

Here is a list of awesome projects for persistence:

* [mardao](https://github.com/sosandstrom/mardao) Mardao Architect's Java DAO generator.
* [spring-data](https://github.com/spring-projects/spring-data-jpa) Simplifies the development of creating a JPA-based data access layer.