Skip to content


Repository files navigation

Apache Polygene™ (Java Edition)

Composite Oriented Programming on the Java platform

License Build Status

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 for more information.


You can download released versions from:


Build instructions can be found here:


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 and 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.


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

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.