Apache Polygene™ (Java Edition)
Composite Oriented Programming on the Java platform
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, Dependency Injection and 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.
You can download released versions from: https://polygene.apache.org/download.html
Build instructions can be found here: http://polygene.apache.org/java/latest/build-system.html
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 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.
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 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.
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.