| # Apache Polygene™ (Java Edition) |
| |
| > Composite Oriented Programming on the Java platform |
| |
| [](https://opensource.org/licenses/Apache-2.0) |
| [-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. |
| |
| |