Spring dmServer support for IntelliJ IDEA

IDEA continues to expand support for J2EE application servers and has recently adopted the integration with OSGI-based Spring dmServer.

The features of the new integration include:

  • local and remote run configurations for both 1.0 and 2.0 server families
  • automatic management of the libraries and bundles installed at server runtime
  • dmServer platform archives (PAR) support
  • OSGI-aware intentions for Java and manifest editors
  • dmShell access

If you like to try it out, first download dmServer from SpringSource download center (or use direct links for most recent 2.0.1 or older 1.0 releases — both supported in IDEA).

Once server is here, you can register an installation in IDEA (Settings/Application Servers), which will recognize the version and load configuration properties from appropriate location.

While registering a server, IDEA creates a corresponding OSGI framework instance which will drive the compilation of the code.

Every dmServer comes with pre-installed bundles that are automatically available for every deployed module. Starting from 2.0 it also supports the libraries — the packs of bundles which may be imported as a single unit. IDEA allows to see the installed set of artifacts:

and allows to search for additional ones in the Spring Bundles Repository:

Once the set of libraries is defined, it’s time to start coding!

An integration will help you to maintain the valid set of imported bundles and packages in the plugin manifest,

assist with the gathered knowledge about the set of available packages:

and will validate the actual set of imported packages:

You may use dmServer specific Platform Archives to define a pack of the artifacts to be deployed as a single unit, and define the boundaries for the services and import rules:

Support for dmServer 2.0-specific “plans” that serve the same purpose will be added in near future.

OSGI-aware compilation results (provided by well known “Osmorc” OSGI integration for IDEA) are automatically transformed into the artifacts:

which may be deployedfrom the run configuration:

Both local and remote servers are supported, in the latter case user may configure a ways to deliver the artifacts to remote server via “before run” task.

While the server is running, you may connect to the dmShell and use console commands to control the server state:

If you’re interested please download the plugin and feel free to give your feedback at the forums or our bugtracker.

image description