Sunday, July 22
Friday, July 6
Better dependency management with Pax Construct
Had some really useful discussions during the OSGi Community Event in Munich about wrapping complex artifacts such as Hibernate3. The next drop of Pax Construct will try to handle dependencies for you as much as possible (automatically embedding / wrapping / importing them as required) so with one command you can drag an artifact into your OSGi project without having to repeatedly deploy or compile to track down those annoying missing dependencies.
Also planned: OBR support to search for artifacts based on your bundle's imports :)
As ever, let me know via JIRA or email if there's anything that would make OSGi development that little bit easier!
> mcculls @ 00:24 2 comments
Tuesday, July 3
OSGi Alliance Community Event talks now online
My talk from the 2007 OSGi Alliance Community Event is now online:
http://www2.osgi.org/wiki/uploads/Conference/OSGiCommunity-McCulloch.pdf
along with slides from all the other talks - well worth perusing.
http://www2.osgi.org/Conference/2007CommunityEvent
> mcculls @ 04:28 0 comments
Saturday, June 23
Guice-OSGi 0.1.0 released
FYI, I've just made an initial drop of my Guice-OSGi laboratory project:
http://wiki.ops4j.org/confluence/display/ops4j/Guice-OSGi
org.ops4j.guice-osgi.core-0.1.0.jar
org.ops4j.guice-osgi.core-0.1.0-javadoc.jar
org.ops4j.guice-osgi.core-0.1.0-sources.jar
which lets you use Guice to access / register OSGi services - for example:
@Inject
@OSGiServiceRegistration
ExampleService exported;
would register the object injected into 'exported' as an OSGi service, and:
@Inject
@OSGiService
ExampleService imported;
would inject a proxy into 'imported' which delegates to the OSGi service.
example (use 'mvn clean install pax:provision' to try it out)
It's capable of lots more (custom LDAP filters, injected listeners, etc.) but I have a flight to catch in a few hours and need to finish my packing :) The integration tests checked into subversion contain more examples.
It doesn't do everything Spring-OSGi does, but then again it is only one bundle of ~500k ;)
(PS. I've also released 0.1.6 of the Pax Construct tools - busy week!)
> mcculls @ 16:09 0 comments
Tuesday, June 12
The dreaded disk0s2: 0xe0030005 (UNDEFINED)
I've had my macbook for nearly five months and use it as my primary dev box. Last month I took it with me to Sweden to run some OSGi tutorials - before the very first session I calmly closed the lid, wandered over to the conference room and opened it up to see... nothing!
People were already wandering in so decided to do a quick reboot - but instead of the reassuring apple logo I now saw a flashing question mark folder (gulp). Luckily the tutorial was available on the intranet (FYI, it's based on Pax Construct) so I was able to grab a spare laptop and continue.
Anyway after the tutorial session I absentmindedly turned on my macbook, which now started ok!
So is this a new mac feature, auto-repair? Sadly not... since then its behaviour has been erratic - occasional beach-balls, looking like the system had frozen only to return after a few minutes. Tried turning off spotlight indexing (nice performance boost) which helped for a bit but the problem returned. Tried a full archive, erase and re-install with minimum setup which I thought had nailed it, but this weekend my macbook went totally rosak :(
No hard disk, nothing... nowhere to reinstall MacOSX, no chance of recovering data - thankfully I still had the full image backup from a few days ago (plus most of my work is online these days).
So my macbook is now at the local Apple support centre and I'm back to using my trusty Linux box that I built from scratch (and ironically contains a still-working HDD I rescued from an ancient Dell laptop and now use for temporary storage).
So here's the MOTD... if you see any errors like the following in your system log:
disk0s2: 0xe0030005 (UNDEFINED)
make sure you have any critical data backed up and get your macbook checked out asap.
> mcculls @ 20:57 1 comments
Wednesday, May 23
Pax Construct 0.1.5
Hi folks,
By popular demand I've released Pax Construct 0.1.5
http://repository.ops4j.org/maven2/org/ops4j/pax/construct/scripts/0.1.5/scripts-0.1.5.zip
This release has the following improvements:
* simpler project layout
* support for adding repositories, removing bundles, embedding jars
inside bundles, and using bundles (ie. inter-bundle dependencies)
* better error checking and recovery
that makes it a lot easier to construct more complex OSGi projects.
Remaining issues have been pushed to 0.1.6, which is targeted for
mid-to-late June, and will include the project snapshot feature along
with (hopefully!) more documentation and samples.
Please let me know if you have any problems using this new release.
--
Cheers, Stuart
> mcculls @ 16:24 0 comments
Giving a talk at the OSGi Alliance Community Event
Just found out that my talk on using Maven to build OSGi projects has been accepted for the "short talks" section of the OSGi Alliance Community Event!
So, now there's even more reason to attend the event - if only to ask difficult questions / heckle ;)
> mcculls @ 11:29 0 comments
Wednesday, May 9
Convert local Maven repository into remote mirror
Almost finished my round of OSGi tutorials in Malmo, Sweden. It's been a busy time, last weekend I had two sessions back to back from 0830 to 1900! Things are a bit quieter now, so I'm going to spend time on the 0.1.5 release of Pax Construct, improving it based on feedback from the tutorials. I'm also going to add a command to create a template of a bundle that embeds a jarfile, which should make various people happy.
Anyway, on to the real topic of this post - in creating the tutorial I wrote a couple of useful scripts which let you convert your local Maven repository into a remote repository, by fixing up the necessary maven metadata and adding SHA-1 digests. You can grab the scripts from my OPS4J page at http://wiki.ops4j.org/confluence/display/~mcculls/%21sh.
I used these scripts to create an offline repository for the tutorial - by just cleaning out my local repo, running through all the exercises, copying the local repo to another location and running the scripts to add the missing metadata (see example on the !sh page). I also provided a modified settings.xml file which added mirror repos relative to the maven installation (such as file:${M2_HOME}/../../artifacts) for all the main repo ids.
This mean people could work the tutorial offline, and also meant that even when online the network wasn't hammered by everyone downloading exactly the same set of artifacts... the only downside is the extra work keeping the mirror up-to-date.
> mcculls @ 17:13 2 comments