You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Pieter (JIRA)" <ji...@apache.org> on 2012/07/18 17:00:36 UTC

[jira] [Created] (DERBY-5863) Running Derby Network Server in an OSGi container

Pieter created DERBY-5863:
-----------------------------

             Summary: Running Derby Network Server in an OSGi container
                 Key: DERBY-5863
                 URL: https://issues.apache.org/jira/browse/DERBY-5863
             Project: Derby
          Issue Type: Bug
            Reporter: Pieter
            Priority: Minor


I try to deploy the derby and derbynet bundles in an OSGi container and use it as a Derby Network Server. The feature seems to be there, but I did not get it working right away. I also could not find any documentation so I wonder if anyone has actually done it? With some tweaks I got it working, but I think some changes are needed. 

The derby bundle does have an EmbeddedActivator that attempts to bootstrap NetworkServerControlImpl (via DRDAServerStarter) to get an up and running Derby Network Server. However, the derbynet jar containing NetworkServerControlImpl is not an OSGi bundle. 

So my first step was to wrap the derbynet jar and make it a bundle. That was not enough, because NetworkServerControlImpl used derby internal classes which are not exported by the derby bundle. I got around that by creating a fragment-bundle that exports packages needed by derbynet:
{code}
Fragment-Host: derby
Export-Package: org.apache.derby.catalog,
  org.apache.derby.iapi.db,
  org.apache.derby.iapi.error,
  org.apache.derby.iapi.jdbc,
  org.apache.derby.iapi.services.i18n,
  org.apache.derby.iapi.services.info,
  org.apache.derby.iapi.services.io,
  org.apache.derby.iapi.services.jmx,
  org.apache.derby.iapi.services.monitor,
  org.apache.derby.iapi.services.property,
  org.apache.derby.iapi.services.stream,
  org.apache.derby.iapi.store.access.xa,
  org.apache.derby.iapi.tools.i18n,
  org.apache.derby.iapi.util,
  org.apache.derby.impl.jdbc,
  org.apache.derby.mbeans,
  org.apache.derby.security
Import-Package: org.apache.derby.impl.drda
{code}
With this fragment I am able to connect the the Derby Network Server.

Exporting these packages is not nice and I think a more elegant solution is needed. Merging the derbynet jar into the derby jar would fix it, again not a solution that will get much votes I think. Make derbynet a fragment of derby?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (DERBY-5863) Running Derby Network Server in an OSGi container

Posted by "Pieter (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-5863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pieter updated DERBY-5863:
--------------------------

    Description: 
I try to deploy the derby and derbynet bundles in an OSGi container and use it as a Derby Network Server. The feature seems to be there, but I did not get it working right away. I also could not find any documentation so I wonder if anyone has actually done it? With some tweaks I got it working, but I think some changes are needed. 

The derby bundle does have an EmbeddedActivator that attempts to bootstrap NetworkServerControlImpl (via DRDAServerStarter) to get an up and running Derby Network Server. However, the derbynet jar containing NetworkServerControlImpl is not an OSGi bundle. 

So my first step was to wrap the derbynet jar and make it a bundle. That was not enough, because NetworkServerControlImpl used derby internal classes which are not exported by the derby bundle. I got around that by creating a fragment-bundle that exports packages needed by derbynet:

Fragment-Host: derby
Export-Package: org.apache.derby.catalog,
  org.apache.derby.iapi.db,
  org.apache.derby.iapi.error,
  org.apache.derby.iapi.jdbc,
  org.apache.derby.iapi.services.i18n,
  org.apache.derby.iapi.services.info,
  org.apache.derby.iapi.services.io,
  org.apache.derby.iapi.services.jmx,
  org.apache.derby.iapi.services.monitor,
  org.apache.derby.iapi.services.property,
  org.apache.derby.iapi.services.stream,
  org.apache.derby.iapi.store.access.xa,
  org.apache.derby.iapi.tools.i18n,
  org.apache.derby.iapi.util,
  org.apache.derby.impl.jdbc,
  org.apache.derby.mbeans,
  org.apache.derby.security
Import-Package: org.apache.derby.impl.drda

With this fragment I am able to connect the the Derby Network Server.

Exporting these packages is not nice and I think a more elegant solution is needed. Merging the derbynet jar into the derby jar would fix it, again not a solution that will get much votes I think. Make derbynet a fragment of derby?

  was:
I try to deploy the derby and derbynet bundles in an OSGi container and use it as a Derby Network Server. The feature seems to be there, but I did not get it working right away. I also could not find any documentation so I wonder if anyone has actually done it? With some tweaks I got it working, but I think some changes are needed. 

The derby bundle does have an EmbeddedActivator that attempts to bootstrap NetworkServerControlImpl (via DRDAServerStarter) to get an up and running Derby Network Server. However, the derbynet jar containing NetworkServerControlImpl is not an OSGi bundle. 

So my first step was to wrap the derbynet jar and make it a bundle. That was not enough, because NetworkServerControlImpl used derby internal classes which are not exported by the derby bundle. I got around that by creating a fragment-bundle that exports packages needed by derbynet:
{code}
Fragment-Host: derby
Export-Package: org.apache.derby.catalog,
  org.apache.derby.iapi.db,
  org.apache.derby.iapi.error,
  org.apache.derby.iapi.jdbc,
  org.apache.derby.iapi.services.i18n,
  org.apache.derby.iapi.services.info,
  org.apache.derby.iapi.services.io,
  org.apache.derby.iapi.services.jmx,
  org.apache.derby.iapi.services.monitor,
  org.apache.derby.iapi.services.property,
  org.apache.derby.iapi.services.stream,
  org.apache.derby.iapi.store.access.xa,
  org.apache.derby.iapi.tools.i18n,
  org.apache.derby.iapi.util,
  org.apache.derby.impl.jdbc,
  org.apache.derby.mbeans,
  org.apache.derby.security
Import-Package: org.apache.derby.impl.drda
{code}
With this fragment I am able to connect the the Derby Network Server.

Exporting these packages is not nice and I think a more elegant solution is needed. Merging the derbynet jar into the derby jar would fix it, again not a solution that will get much votes I think. Make derbynet a fragment of derby?

    
> Running Derby Network Server in an OSGi container
> -------------------------------------------------
>
>                 Key: DERBY-5863
>                 URL: https://issues.apache.org/jira/browse/DERBY-5863
>             Project: Derby
>          Issue Type: Bug
>            Reporter: Pieter
>            Priority: Minor
>
> I try to deploy the derby and derbynet bundles in an OSGi container and use it as a Derby Network Server. The feature seems to be there, but I did not get it working right away. I also could not find any documentation so I wonder if anyone has actually done it? With some tweaks I got it working, but I think some changes are needed. 
> The derby bundle does have an EmbeddedActivator that attempts to bootstrap NetworkServerControlImpl (via DRDAServerStarter) to get an up and running Derby Network Server. However, the derbynet jar containing NetworkServerControlImpl is not an OSGi bundle. 
> So my first step was to wrap the derbynet jar and make it a bundle. That was not enough, because NetworkServerControlImpl used derby internal classes which are not exported by the derby bundle. I got around that by creating a fragment-bundle that exports packages needed by derbynet:
> Fragment-Host: derby
> Export-Package: org.apache.derby.catalog,
>   org.apache.derby.iapi.db,
>   org.apache.derby.iapi.error,
>   org.apache.derby.iapi.jdbc,
>   org.apache.derby.iapi.services.i18n,
>   org.apache.derby.iapi.services.info,
>   org.apache.derby.iapi.services.io,
>   org.apache.derby.iapi.services.jmx,
>   org.apache.derby.iapi.services.monitor,
>   org.apache.derby.iapi.services.property,
>   org.apache.derby.iapi.services.stream,
>   org.apache.derby.iapi.store.access.xa,
>   org.apache.derby.iapi.tools.i18n,
>   org.apache.derby.iapi.util,
>   org.apache.derby.impl.jdbc,
>   org.apache.derby.mbeans,
>   org.apache.derby.security
> Import-Package: org.apache.derby.impl.drda
> With this fragment I am able to connect the the Derby Network Server.
> Exporting these packages is not nice and I think a more elegant solution is needed. Merging the derbynet jar into the derby jar would fix it, again not a solution that will get much votes I think. Make derbynet a fragment of derby?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira