Friday, 20 May 2011

OSGi universal shell implementation 1.1.0 released

There is a new 1.1.0 version of OSGi universal shell adapters available.

Changes:
  * Added support of defining commands services with Declarative Services

Command service registration with DS:
<?xml version="1.0" encoding="UTF-8"?>
<component name="shell_test.component">
    <implementation class="...ShellTestService"/>

    <service>
        <provide interface="...ShellTestService"/>
    </service>

    <property name="org.knowhowlab.osgi.shell.group.id" type="String" value="test_group_id"/>
    <property name="org.knowhowlab.osgi.shell.group.name" type="String" value="Test commands"/>
    <property name="org.knowhowlab.osgi.shell.commands" type="String">
        bndinfo#bndinfo <bundleId> - Print information for bundle with <bundleId>
        bndsinfo#bndsinfo - Print information for all bundles
    </property>
...
</component>

Maven artifacts:
<dependency>
    <groupId>org.knowhowlab.osgi.shell</groupId>
    <artifactId>equinox</artifactId>
    <version>1.1.0</version>
</dependency>
<dependency>
    <groupId>org.knowhowlab.osgi.shell</groupId>
    <artifactId>felix</artifactId>
    <version>1.1.0</version>
</dependency>
<dependency>
    <groupId>org.knowhowlab.osgi.shell</groupId>
    <artifactId>felix-gogo</artifactId>
    <version>1.1.0</version>
</dependency>
<dependency>
    <groupId>org.knowhowlab.osgi.shell</groupId>
    <artifactId>knopflerfish</artifactId>
    <version>1.1.0</version>
</dependency>

Cheers,
Dmytro

Saturday, 2 April 2011

OSGi universal shell implementation 1.0.1 released

Hi, There is a new 1.0.1 version of OSGi universal shell adapters available.

Changes:
  * Changed package to org.knowhowlab.osgi.shell
  * Changed maven groupId to org.knowhowlab.osgi.shell
  * Added Apache Felix GoGo Universal Shell Adapter

Maven artifacts:
<dependency>
    <groupId>org.knowhowlab.osgi.shell</groupId>
    <artifactId>equinox</artifactId>
    <version>1.0.1</version>
</dependency>
<dependency>
    <groupId>org.knowhowlab.osgi.shell</groupId>
    <artifactId>felix</artifactId>
    <version>1.0.1</version>
</dependency>
<dependency>
    <groupId>org.knowhowlab.osgi.shell</groupId>
    <artifactId>felix-gogo</artifactId>
    <version>1.0.1</version>
</dependency>
<dependency>
    <groupId>org.knowhowlab.osgi.shell</groupId>
    <artifactId>knopflerfish</artifactId>
    <version>1.0.1</version>
</dependency>

Cheers,
Dmytro

Saturday, 30 October 2010

OSGi Tutorial: 4 ways to activate code in OSGi bundle

Hello everybody!

I would like to present a tutorial in which I show 4 ways how to activate/start code inside your OSGi bundle. All those ways are part of OSGi 4.2 specifications. The goal of the tutorial is to explain in a short form some OSGi specifications chapters with samples. I do not like to make any deep comparison of activation ways, just overview with workable examples. All sources you can find here.

Contents:
  1. Requirements
  2. Use Case details
  3. Bundle Activator
  4. Declarative Services
  5. Blueprint Services
  6. Web Application Bundle
  7. How to run examples
  8. References

Wednesday, 28 July 2010

OSGi MonitorAdmin Implementation: Release 1.0.2

Hello,

I'd like to announce a new release of MonitorAdmin bundle 1.0.2. The major change - support of security permissions.

Changes:
  * change POM packaging to JAR
  * embed org.osgi.service.monitor package
  * refactor package to org.knowhowlab.osgi.monitoradmin
  * change groupId to org.knowhowlab.osgi
  * change license to Apache License 2.0
  * add support of security permissions
  * add local permissions file

Maven artifact:
<dependency>
    <groupId>org.knowhowlab.osgi</groupId>
    <artifactId>monitoradmin</artifactId>
    <version>1.0.2</version>
</dependency>


Cheers,
Dmytro

Friday, 9 July 2010

JMX Management Model Implementation: Release 1.0.2

Hi,

I'd like to announce a new minor release of JMX bundle 1.0.2.

Changes:
  * refactor package to org.knowhowlab.osgi.jmx
  * change groupId to org.knowhowlab.osgi
  * change license to Apache License 2.0
  * add support of MonitorAdmin event to notify through JMX
  * handle errors on bundle start and unregister registered MBeans
  * embed org.osgi.jmx package

Maven artifact:
<dependency>
    <groupId>org.knowhowlab.osgi</groupId>
    <artifactId>jmx</artifactId>
    <version>1.0.2</version>
</dependency>


Cheers,
Dmytro

Thursday, 1 July 2010

Blog update

Hello,

I've just moved blog from http://www.osgilab.org to http://blog.knowhowlab.org. It could be unavailable for couple of days. Hope to solve all problems with host change as soon as possible.

Sorry for inconvenience.

Best regards,
Dmytro

Monday, 28 June 2010

How to replace standard Equinox shell with Apache Felix GoGo

Hello,

I've just spent some time to figure out how to integrate Apache Felix GoGo shell into Eclipse Equinox. I found two steps that should be done for this:
  1. Disable standard Equinox shell and activate GoGo shell as default. Actually, it was not so complicated. One problem, that Equinox shell is a part of system bundle and you cannot just throw it away and replace with another implementation as you can do it with Knopflerfish. Equinox has runtime options to enable and disable console (-console, -noConsole). Then, to enable GoGo we have to install and start 3 GoGo bundles with runtime, shell and commands functionality. Fine! Now we can register shell commands based on GoGo API. Known issue: I could not replace shell when Equinox is started via Eclipse Launcher.
  2. The second and also very important step is how to integrate Equinox shell commands into GoGo shell. I wrote some Equinox->GoGo adapter bundle that tracks Equinox shell services and registers GoGo shell service. This adapter can redirect calls from GoGo to Equinox. It can also add some usage help to Equinox commands if this help is provided by Equinox shell service. 
When above steps are finished (except support of Eclipse Launcher) we can add new shell commands with GoGo and Equinox shell APIs.

Below you can find some logs from my console and the way how you can run this on your computer.