Re: [OWLAPI-developer] difference between "owlapi-osgidistribution" and "owlapi-distribution" (Ignazio Palmisano)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: [OWLAPI-developer] difference between "owlapi-osgidistribution" and "owlapi-distribution" (Ignazio Palmisano)

Simon Spero-2
[I've been making a lot of OSGI related chamhes for the next owlapi, so I will take this one] 

OSGI is a very complicated way of doing simple things. Or it's a very simple way of doing complicated things. The important thing is, it's a way of doing things, so you need to do some things the OSGI way. 

One of the most fundamental concepts in OSGI is the Bundle. A Bundle is a component of a software system. It can provide services and java packages to a system;  conversely it can consume services and packages from other bundles loaded into the same system. Any package that is not exported from a bundle can only be accessed from within that bundle. 

Each Bundle  must be explicit about what it offers, and what it needs; however a Bundle  is not responsible for saying how it's requirements are to be met. 

Bundles are generally packaged as jar files, with special metadata in the manifest. This metadata is usually generated by the build system. 
The build system can be configured to embedded every depend class inside the bundle that is being built ; however that is not generally the best way of putting together an OSGI system; it makes the jar file bigger, and may make it harder to use alternative packages. 
The other approach is to install bundles providing those packages into the running system. If the dependency is already a bundle, you can just deploy that ; otherwise you can run a wrap command to create a minimalist bundle. 

You can deploy these  bundles by putting them in one of the directories protégé loads its bundles from e.g. the plugins  directory. 

There are more sophisticated ways of deploying bundles and their dependencies, but they require a few changes to the protégé launcher (these include url handlers that can deploy a bundle direct from maven central, and revolvers that can map from package requirements to bundle URLs. 

Simon

Simon 

On Feb 15, 2017 9:26 AM, "Manuel Enrique Puebla Martinez" <[hidden email]> wrote:

Dear Ignazio Palmisano:

You always very attentive to the questions in the forum, grateful.

However, I would like you to elaborate a little more on this comment:
"Ensure any new library you need is available as an OSGi bundle in protect's plugin folder."

I incorporate only 4 new dependencies maven to the file pom.xml of the package "protege-editor-owl", plus three classes programmed by me. I do nothing else, do I need to do anything else when I add new maven dependencies in an OSGI application?


"I have been reviewing the code and detected that the exception is thrown in the line" framework.start (); ", belonging to the method" start ", class" Launcher "."

The project compiles well when I do an "mvn clean package", the problem is when I run it.

I've been communicating with the Protégé project list for almost a week and I can not identify the problem, could you help me?

Here I leave the 4 dependencies that I incorporate:

        <dependency>
           <groupId>net.sourceforge.owlapi</groupId>
           <artifactId>pellet-owlapi-ignazio1977</artifactId>
           <version>2.4.0-ignazio1977</version>
        </dependency>

        <dependency>
           <groupId>net.sourceforge.owlapi</groupId>
           <artifactId>pellet-modularity-ignazio1977</artifactId>
           <version>2.4.0-ignazio1977</version>
        </dependency>

        <dependency>
           <groupId>com.vividsolutions</groupId>
           <artifactId>jts</artifactId>
           <version>1.13</version>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>



Best Regards, Manuel Puebla.




Message: 2
Date: Tue, 14 Feb 2017 17:44:11 +0000
From: Ignazio Palmisano <[hidden email]>
Subject: Re: [OWLAPI-developer] difference between
        "owlapi-osgidistribution" and "owlapi-distribution"
To: [hidden email]
Message-ID:
        <CAD2jOMOAeFEVKxv61+or=YLZydiVm=[hidden email]>
Content-Type: text/plain; charset="utf-8"

On 14 Feb 2017 17:21, "Manuel Enrique Puebla Martinez" <[hidden email]>
wrote:


Hello:

Please, what is the difference between "owlapi-osgidistribution" and
"owlapi-distribution"? I suppose it is that the first one is to work with
OSGI applications.



Both modules are packaged as OSGi bundles. The difference is that the
osgidistribution artifact embeds some libraries, to fit with the prot?g?
distribution.



I am making some modifications to the source code of the project "Prot?g?"
and I am presenting problems with an exception related to the OSGI
framework.



The exception might depend on new required components. Ensure any new
library you need is available as an OSGi bundle in protege's plugin folder.
I.

I continue to use the "owlapi-osgidistribution" version, which uses
"Prot?g?". I wonder if there are other dependencies that in the same way as
OWLAPI, have a version for OSGI applications.


Best Regards, Manuel Puebla.
La @universidad_uci es Fidel. Los jóvenes no fallaremos.
#HastaSiempreComandante
#HastalaVictoriaSiempre

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Owlapi-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/owlapi-developer

_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev