Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/apache/polygene-java

Mirror of Apache Polygene java
https://github.com/apache/polygene-java

attic

Last synced: 2 days ago
JSON representation

Mirror of Apache Polygene java

Awesome Lists containing this project

README

        

# Apache Polygene™ (Java Edition)

> Composite Oriented Programming on the Java platform

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Build Status](https://builds.apache.org/buildStatus/icon?job=Polygene(JavaEdition)-develop-java8-checkDists)](https://builds.apache.org/view/P/view/Polygene/job/Polygene(JavaEdition)-develop-java8-checkDists/)

## What is Apache Polygene™

The short answer is that **Apache Polygene™** is a community based effort exploring Composite Oriented Programming for
domain centric application development. This includes evolved concepts from
[Aspect Oriented Programming](https://en.wikipedia.org/wiki/Aspect-oriented_programming),
[Dependency Injection](https://en.wikipedia.org/wiki/Dependency_injection)
and [Domain Driven Design](https://en.wikipedia.org/wiki/Domain-driven_design).

**Composite Oriented Programming** allows developers to work with _fragments_, smaller than classes, and _compose_
fragments into larger _composites_ which acts like the regular objects. Apache Polygene™ also tackles the enforcement
of _application_ composition, i.e. composites are declared in _modules_, modules are contained in _layers_ and access
between layers are controlled/enforced.

**Apache Polygene™ (Java Edition)**, first Apache Polygene sub-project, is an implementation of Composite Oriented
Programming, using the standard Java platform, without the use of any pre-processors or new language elements.
Everything you know from Java still applies and you can leverage both your experience and toolkits to become more
productive with Composite Oriented Programming today.

The Apache Polygene™ community welcomes any effort exploring Composite Oriented Programming for domain centric
application development using any technology.

Please see https://polygene.apache.org for more information.

## Downloading

You can download released versions from: https://polygene.apache.org/download.html

## Building

Build instructions can be found here: http://polygene.apache.org/java/latest/build-system.html

## Contributing

Polygene™ started in 2007, and is still in heavy development under the umbrella of
the Apache Polygene™ project at the Apache Software Foundation. We would like
developers around the world to participate in the advancement of this
cool, new and challenging technology. We are especially interested in
people willing to help improve the SDK, samples, tutorials, documentation
and other supporting material.

Please see http://polygene.apache.org/community/participate.html and http://zest.apache.org/community/playing_field.html
for more information.

## Opening in your IDE

### IntelliJ IDEA

IntelliJ IDEA Community Edition has everything you need to open Apache Polygene™.
To open the project in IDEA, simply open this repository as a project.
During import, make sure *"Create separate module per source set"* is checked.

### Netbeans

To open Apache Polygene™ in Netbeans you need to install the _Gradle Support_ plugin.
It is directly available via the Update Center (Tools/Plugins: Look for _Gradle Support_).
Then, to open the project in Netbeans, simply open this repository as a project.

### Eclipse

Eclipse supports Gradle based projects out of the box thanks to the Buildship project.
To open the project in Eclipse, simply import this repository as a Gradle project.

## Licensing

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.