Flex Modularity Framework (Potomac)
Flex Modularity Framework (Potomac)
The Flex Modularity Project (Potomac) is a proposed open source project under the Eclipse Runtime Project.
This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to the Potomac
Since its creation, Eclipse has been in the fore-front of Java modularity. From the original plug-in capabilities, to today's Equinox implementation of OSGi and the Eclipse RCP, Eclipse has tackled tough modularity issues and brought advanced modularity capabilities into the hands of Java developers everywhere. In 2009, ElementRiver
introduced a new framework named Potomac to bring those same capabilities to Adobe's Rich Internet Application platform: Flex.
The Potomac framework was heavily inspired by both the Eclipse RCP and OSGi. As Flex use continues to grow in enterprise environments, more and more Flex developers are looking for frameworks that understand the tough problems that arise in modular applications. Potomac seeks to solve these problems and bring the advanced features which Eclipse has championed for Java, to Flex.
ElementRiver proposes to bring the existing Potomac Framework for Flex (www.potomacframework.org) to Eclipse.org.
The objectives of The Flex Modularity Project (Potomac) are:
- Bring OSGi-like capabilities to Flex
- Provide an extensibility mechanism similar to Eclipse extension points
- Implement a modular UI framework similar to the Eclipse RCP
- Supply developer tooling in support of Potomac
- (Long term) Enable Potomac Flex components to be hosted inside an e4 application
The Flex Modularity Project (Potomac) will provide a comprehensive framework for enterprise Flex development. Potomac will be 100% Flex and Actionscript code and will not have any server-side requirements or dependencies.
At its core, Potomac will provide a new paradigm for modular development with Flex. A Potomac bundle will be similar to an Eclipse plug-in or OSGi bundle. It will contain not only the classes and code, but also the metadata necessary to understand module dependencies, extensions and extension points, and more. Potomac will supply tooling to Adobe's Flash Builder 4 to support Potomac bundle development. This tooling is conceptually similar to PDE, but currently much smaller. It is important to note that, while Potomac is heavily inspired by OSGi and the Eclipse RCP, there will be no attempt to conform to the OSGi specification or to exactly copy Eclipse. Flex and Flash limitations prevent a fully functioning OSGi implementation. Regardless, Potomac will attempt to do things 'the Flex way'. In order to stay true to the Flash platform, Potomac will make design decisions and take direction that may differ from the current Eclipse framework.
Potomac will provide dependency injection. This dependency injection will be both asynchronous and 'bundle-aware'. When an injection request is serviced, Potomac will load any bundles required to satisfy the request. If a bundle that is not yet loaded is required, it will be downloaded from the server and loaded asynchronously. This will happen behind the scenes, without any complex coding required from the application developer.
The UI of a Potomac application will be broken up into composable elements similar to the Eclipse RCP. Each Potomac part will provide features commonly needed by business applications such as input handling,save/dirty workflow, busy state, and selection management. Developers familar with the concepts and paradigms of an Eclipse RCP application will easily understand the architecture of the Potomac UI.
ElementRiver will provide a significant initial contribution including all code from the existing Potomac framework found on www.potomacframework.org.
While its possible to develop and use Potomac without Adobe's Flash Builder IDE, it would be inconvenient. In order to comply with the Eclipse rules on proprietary tools yet still use a full featured Flex IDE, Adobe has graciously agreed to provide each Potomac committer with a free license for Flash Builder 4.
The following individuals are proposed as initial committers to the project:
- Chris Gross (ElementRiver), proposed project lead
- Steve Moore (ElementRiver)
The following Architecture Council members will mentor this
The following individuals, organisations, companies and projects have
expressed interest in this project:
- Turner Broadcasting System, Inc.
- July 15, 2010 - Potomac code available in Eclipse repository
- September 1, 2010 - Potomac v1.0 release