Some of you may already have heard the big news. Osmorc will be a bundled plugin in the next major release of IDEA, which is codenamed Maia and will most likely become IDEA 9.
The first Maia EAP releases already contain Osmorc. We are currently also adding changes we do for the Maia version to the IDEA 8 version and will have some more releases of Osmorc for IDEA 8, but eventually at some point in the future we will switch to only develop the Maia version.
You should be able to open projects using Osmorc with Maia and find that they still work. Be sure to make a backup of your project settings as you might not be able to open it with IDEA 8 and find that it still works there afterwards. Maia-Osmorc for example converts all Equinox run configurations to enhanced OSGi bundle run configurations. That kind of enhanced OSGi Bundle run configuration is not available in the current Osmorc release for IDEA 8. It will be available in the next IDEA 8 version, though.
Please note that issues for Maia-Osmorc should be posted on the component OSGI Support in the project IDEA Feedback. Please also post new feature requests in that area and not in the old Osmorc project.
After a few months of work we have finally released Osmorc 0.13.0, which can be downloaded using IntelliJ’s plugin manager. The most notable new feature is integration with IntelliJs Maven plugin:
- Osmorc can now detect if your maven configuration indicates that the project is an OSGi bundle and will automatically create/update an Osmorc facet, once you synchronize your POM with IntelliJ.
- Manifest headers that are configured with the maven-bundle-plugin will be read from your POM and entered into the facet configuration.
- When you open the POM, Osmorc will detect and highlight any dependencies which are not OSGi-ready (e.g are missing the OSGi headers in their manifest).
- As a quick fix for this situation Osmorc now contains a search dialog which helps you in finding an OSGi-capable replacement for these dependencies inside the Springsource repository.
- Osmorc will also add the repository URLs for the Springsource Repository to your POM, if you chose to import a library from there through the search dialog.
There were also some minor improvements:
- The default rule which is used for bundlifying non-OSGi libraries is now “Import-Package: *;resolution:=optional”. This is the same rule that is used within the maven-bundle-plugin and should therefore work in most cases.
- Bnd configuration files which were set up in the facet configuration are now actually used -there were ignored in the past.
As always, we are asking for your feedback on this new version. Feel free to drop us a line here or file an issue at our Issue Tracker.
This release fixes some bugs (see this version in Jira) and brings the following notable changes and features:
- Added autocompletion for known manifest header names.
- Equinox 3.4 source bundles are now used correctly.
- Reworked additional JAR contents section in facet configuration. Source files and directories are now selected via a file chooser and a destination name that will most times be correct is inferred.
- Splitted the facet editor into smaller parts.
- Changes to files belonging to the additional JAR contents of a bundle now trigger a rebuild of the JAR.
- Added specific Equinox, Bnd and Spring DM headers to the headers known by Osmorc.
Note that you’ll have to edit each entry in the additional JAR contents since the paths are now stored differently. In most cases selecting an entry, clicking “Edit” and confirming the default choices will suffice.
Osmorc won a “Honorable Mention” prize at the “IntelliJIDEAL Plugin 2008 contest”.
Developing Osmorc and the positive and helpful feedback from its users is already highly motivating. The prize adds to this motivation.
After one year in development and 11 releases the plugin is far from being finished. We feel that it’s already quite useful, but there’s so much that can be done, that should be done and that will be done to further improve it.
Stay tuned for another year of Osmorc updates.
This end of year release has some new features for running Equinox products and applications and fixes a critical bug in the OSGi Bundles run configuration.
The critical bug prevented the usage of the OSGi Bundles run configuration in most cases. So anyone using or trying to use it should update.
For the Equinox run configuration type the following features were added:
- additional JVM parameters can specified.
- additional Equinox parameters can be specified.
- the runtime directory can be specified
- products and applications based on Eclipse 3.1 and 3.2 can be run
A regular expression can be specified to filter out files from the additional JAR contents.
Thanks for contributions for this release to Nick Pratt.
0.10.0 comes with the following changes and new features:
- OSGi bundles run configuration: bundles which are part of the framework can now be started.
- OSGi bundles run configuration: libraries which are themselves OSGi bundles can now be started.
- Multiple rules can now be applied when building a library bundle.
- Bundle version from facet dialog is now correctly built into the manifest.
- Library cache can now be deleted with a button in library building dialog.
- Fragment bundles are now handled correctly when manifest files are edited manually.
- The classpath used by the run configurations to start the OSGi container now only contains what is needed to start the container.
- Added spell checking for manifest header names.
It’s actually possible to get Felix fully running with Osmorc. You need to download the additional bundle org.osgi.core - named “OSGi core API’s” on Felix’ download page. After installing this bundle in the bundle folder of your Felix installation you will need to recreate the associated framework instance in Osmorc to make Osmorc aware of the changes.
Thanks to Richard S. Hall for pointing out that my statement about Felix not exporting the core OSGi packages was wrong.
This release brings the integration of one more framework type: Concierge OSGi (thanks to Alain Greppin) for the initial code),
Note: The Concierge and Felix framework types cannot be used as the base for projects which use manually edited manifest files if the modules of such a project import any of the core OSGi classes - such as BundleActivator.Neither of those two framework types exports those packages and so, dependencies won’t be created to the bundles containing those classes. The end result is then that your BundleActivator won’t be compileable. You can use them as framework instances for launching bundles in the generic “OSGi Bundles” run configuration, though.
The generic “OSGi Bundles” run configuration type got some enhancements. Start levels for the selected bundles can be set and it’s also possible to specify boot delegation and system packages for Felix and Knopflerfish framework instances.
The “Eclipse Equinox” run configurations now check whether there is an Equinox framework instance selected for the project and puts out helpful error messages if that is not the case.
For people letting Osmorc generate the manifest files via bnd there is a new configuration page where rules for the creation of bundles from libraries can be specified.
As always some bugs were also fixed.
Currently Osmorc’s ErrorHandler is deactivated. So you won’t be able to click the “Blame Osmorc” button. The ErrorHandler causes some strange errors on Mac OSX which we are currently investigating. Please post your bug reports manually on Osmorc’s JIRA for the time being.
This release has only one major change: Osmorc now runs on IDEA 8.
Porting Osmorc to IDEA 8 wasn’t as much of a pain as I originally thought. So only 5 days after the 0.7.0 release here’s Osmorc for all those waiting to run it on IDEA 8.
A note to those using 0.7.0: There is one inconvenience in the 0.7.0 release that is fixed in 0.8.0. With 0.7.0 you have to rebuild your modules manually after a change before starting an Equinox run configuration. With 0.8.0 the rebuild of changed modules and with that the rebuild of the bundle JAR files is triggered by the run configuration.
Here’s another Osmorc release.
The biggest new feature is running of Eclipse Equinox applications and products. We have a new run configuration type named “Eclipse Equinox” that will allow you to specify a product or an application to run. It’s still kind of basic, though. You cannot specify which bundles to install. We currently install all bundles of a project.
There’s still no handling of additional library jars, but if your bundles don’t use any libraries that are not available as bundles, it should work. You will need to specify the Eclipse plugin.xml as additional JAR contents in the facet settings to make it work. The documentation contains more information about that.
Defining additional JAR contents may also be useful to people not using Equinox. Take a look at the facet settings and the documentation available through IDEA’s help system.
With this release Osmorc can also handle modules with more than one content root. Osmorc scans all content roots of a module when it searches for manifest files or files defined as additional JAR contents and takes the first matching file.
The bundle dependency resolver that is used when Osmorc generates the manifest files has also been improved. More work will be done on this areas — as on any other — in future releases.
This release will most likely be the last release for IDEA 7. The next one — 0.8.0 — will be the first release for IDEA 8.
