Help

Built with Seam

You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.

Extensible project management tooling environment with Seam Forge

Seam Forge is a tool to rapidly scaffold your project (of any technology, core plugins currently centralized around Java and Java EE) and additionally provides generation of CRUD screens/and a rapid web-start experience.

The system is CDI and plugin-based, with capabilities including distributed plugin download and installation for extended functionality, as well as a full-fledged event-driven shell interface.

Current functionality includes:
  • scaffolding a Java EE or other project, with generation of CRUD screens
  • Intelligent manipulation of EE specification metadata through Shrinkwrap Descriptors
  • Manipulation of Maven project meta-data and dependencies
  • Post processing and manipulation of existing projects.
  • Targets multiple runtimes (such as JBoss AS, Weld SE, GlassFish, or other non-web technologies)

The scope of this project is quite large, so it is recommended that you have an existing understanding of the problem domain, as well as familiarity with Maven.

Ideas for student project plugins, from most technically demanding to least:
  • Create a modified CDI event bus with which plugins can communicate changesets and listen for relevant changes to which they should take action or respond. For example, if the new-jsp plugin creates a new JSP, the security plugin should be able to respond to that event, and be given the chance to add security constraints to that page; however, policies will need to be established so that plugins do not repeat tasks or fire infinite chains of events. A prototype modified CDI event bus extension is ready to be extended, and can be found in the Forge sources https://github.com/seam/forge/tree/master/event-bus
  • Create a plugin to reuse Maven archetypes to create an extensible framework which allows plugins to guide the creation and manipulation of the generated project. To do this, a wrapper around Maven Archetypes will need to be introduced which provides a questionnaire for the user to complete, as well as defining the generation/manipulation lifecycle, and providing sensible callbacks.
  • Create a set of plugins to administer and monitor a JBoss AS server instance or Cluster. This would require extensive knowledge of JBoss AS deployments and functionality.
  • Create a Maven Plugin to download and install the most recent version of SeamForge from the JBoss Nexus Repository.