You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@aries.apache.org by Damien Fontaine <df...@rosebud.fr> on 2011/12/05 13:31:13 UTC

Multiple database for one OSGI/JPA bundle

Hi !

I have a little problem with my architecture on Apache Aries/Karaf. I 
hope to post in the right place.

My project is composed of one OSGI/JPA bundle and one database per 
customer but i want several customers on my instance Apache Karaf. So, 
how to have one OSGI bundle for several databases ? Or one OSGI bundle 
per database ?

Thanks,

Damien

Re: Multiple database for one OSGI/JPA bundle

Posted by Damien Fontaine <df...@rosebud.fr>.
Hi Tim,

A third application in Apache Karaf sends messages (with Apache Camel) 
to consume for customers, so i think all bundles should be in the same 
instance, and yes, i know all databases at build time.
I use your second option (Sample blog of Apache Aries), but i need 
several DataSource.

Damien

Le 06/12/11 12:49, Timothy Ward a écrit :
> Hi Damien,
>
> Will all of these customers need to run in the same OSGi framework, 
> and do you know what all of the databases are at build time? I can 
> think of two possible options, but they might not fit with your usage 
> pattern:
>
>  1. Define multiple persistence units in your persistence bundle (a
>     persistence xml can contain lots of persistence unit elements).
>     Each customer application can use their own persistence unit to
>     access the database. This will work as long as the customers use
>     the EntityManagerFactory/EntityManager directly.
>  2. Define one persistence unit that looks up a Datasource as an OSGi
>     service. The customer specific bundle supplies the datasource as a
>     service, and can configure it to point at the right database. This
>     works if you only ever have one customer bundle in the framework
>     at a time.
>
>
>
> If you're interested in a broader explanation of using OSGi 
> persistence bundles then I can recommend looking at the Apache Aries 
> documentation. There's also good coverage of JPA and OSGi in the third 
> chapter of Enterprise OSGi in Action (http://www.manning.com/cummins). 
> You can get 37% off the book if you use the code *eosgi37 *on the 
> manning website.
>
> Regards,
>
> Tim Ward
> -------------------
> Apache Aries PMC member & Enterprise OSGi advocate
> Enterprise OSGi in Action (http://www.manning.com/cummins)
> -------------------
>
>
> ------------------------------------------------------------------------
> Date: Tue, 6 Dec 2011 08:59:24 +0100
> From: dfontaine@rosebud.fr
> To: user@aries.apache.org
> Subject: Re: Multiple database for one OSGI/JPA bundle
>
> Hi Matt,
>
> Sorry, my English is very bad, It's difficult for me to explain my 
> problem.
>
> My Application consists of two bundle :
> - a bundle specific for each customer
> - a bundle for persistence, same for every customer (same api, same 
> implementation)
>
> But each customer has its own database, so each customer has its own 
> persistence unit. I don't known how to attach multiple persistence 
> unit to one bundle. i use OpenJPA and Apache Aries for persistence.
>
> I will test it with a fragment containing a persistence unit.
>
> Thanks
>
> Damien
>
> Le 06/12/11 03:48, Matt Madhavan a écrit :
>
>     Hi Damien,
>     Do not quite understand your exact req! Can you please explain a
>     bit more?
>     Sounds link you may solve your issue with OSGi fragments! But mean
>     while pl explain your req a bit more!
>     Thanks
>     Matt
>     On Dec 5, 2011 6:31 AM, "Damien Fontaine" <dfontaine@rosebud.fr
>     <ma...@rosebud.fr>> wrote:
>
>
>         Hi !
>
>         I have a little problem with my architecture on Apache
>         Aries/Karaf. I hope to post in the right place.
>
>         My project is composed of one OSGI/JPA bundle and one database
>         per customer but i want several customers on my instance
>         Apache Karaf. So, how to have one OSGI bundle for several
>         databases ? Or one OSGI bundle per database ?
>
>         Thanks,
>
>         Damien
>

RE: Multiple database for one OSGI/JPA bundle

Posted by Timothy Ward <ti...@apache.org>.
Hi Damien,

Will all of these customers need to run in the same OSGi framework, and do you know what all of the databases are at build time? I can think of two possible options, but they might not fit with your usage pattern:

Define multiple persistence units in your persistence bundle (a persistence xml can contain lots of persistence unit elements). Each customer application can use their own persistence unit to access the database. This will work as long as the customers use the EntityManagerFactory/EntityManager directly.
Define one persistence unit that looks up a Datasource as an OSGi service. The customer specific bundle supplies the datasource as a service, and can configure it to point at the right database. This works if you only ever have one customer bundle in the framework at a time.


If you're interested in a broader explanation of using OSGi persistence bundles then I can recommend looking at the Apache Aries documentation. There's also good coverage of JPA and OSGi in the third chapter of Enterprise OSGi in Action (http://www.manning.com/cummins). You can get 37% off the book if you use the code eosgi37 on the manning website.

Regards,

Tim Ward
-------------------
Apache Aries PMC member & Enterprise OSGi advocate
Enterprise OSGi in Action (http://www.manning.com/cummins)
-------------------


Date: Tue, 6 Dec 2011 08:59:24 +0100
From: dfontaine@rosebud.fr
To: user@aries.apache.org
Subject: Re: Multiple database for one OSGI/JPA bundle


  


    
  
  
    Hi Matt,

    

    Sorry, my English is very bad, It's difficult for me to explain my
    problem.

    

    My Application consists of two bundle :

    - a bundle specific for each customer

    - a bundle for persistence, same for every customer (same api, same
    implementation)

    

    But each customer has its own database, so each customer has its own
    persistence unit. I don't known how to attach multiple persistence
    unit to one bundle. i use OpenJPA and Apache Aries for persistence.
    

    

    I will test it with a fragment containing a persistence unit.

    

    Thanks 

    

    Damien

    

    Le 06/12/11 03:48, Matt Madhavan a écrit :
    
      Hi Damien,

        Do not quite understand your exact req! Can you please explain a
        bit more?
      Sounds link you may solve your issue with OSGi fragments! But
        mean while pl explain your req a bit more!
      Thanks

        Matt
      On Dec 5, 2011 6:31 AM, "Damien Fontaine"
        <df...@rosebud.fr>
        wrote:

        
          

          Hi !

          

          I have a little problem with my architecture on Apache
          Aries/Karaf. I hope to post in the right place.

          

          My project is composed of one OSGI/JPA bundle and one database
          per customer but i want several customers on my instance
          Apache Karaf. So, how to have one OSGI bundle for several
          databases ? Or one OSGI bundle per database ?

          

          Thanks,

          

          Damien

        
      
     		 	   		  

Re: Multiple database for one OSGI/JPA bundle

Posted by Damien Fontaine <df...@rosebud.fr>.
Hi Matt,

Sorry, my English is very bad, It's difficult for me to explain my problem.

My Application consists of two bundle :
- a bundle specific for each customer
- a bundle for persistence, same for every customer (same api, same 
implementation)

But each customer has its own database, so each customer has its own 
persistence unit. I don't known how to attach multiple persistence unit 
to one bundle. i use OpenJPA and Apache Aries for persistence.

I will test it with a fragment containing a persistence unit.

Thanks

Damien

Le 06/12/11 03:48, Matt Madhavan a écrit :
>
> Hi Damien,
> Do not quite understand your exact req! Can you please explain a bit more?
>
> Sounds link you may solve your issue with OSGi fragments! But mean 
> while pl explain your req a bit more!
>
> Thanks
> Matt
>
> On Dec 5, 2011 6:31 AM, "Damien Fontaine" <dfontaine@rosebud.fr 
> <ma...@rosebud.fr>> wrote:
>
>
>     Hi !
>
>     I have a little problem with my architecture on Apache
>     Aries/Karaf. I hope to post in the right place.
>
>     My project is composed of one OSGI/JPA bundle and one database per
>     customer but i want several customers on my instance Apache Karaf.
>     So, how to have one OSGI bundle for several databases ? Or one
>     OSGI bundle per database ?
>
>     Thanks,
>
>     Damien
>

Re: Multiple database for one OSGI/JPA bundle

Posted by Matt Madhavan <ma...@gmail.com>.
Hi Damien,
Do not quite understand your exact req! Can you please explain a bit more?

Sounds link you may solve your issue with OSGi fragments! But mean while pl
explain your req a bit more!

Thanks
Matt
On Dec 5, 2011 6:31 AM, "Damien Fontaine" <df...@rosebud.fr> wrote:

>
> Hi !
>
> I have a little problem with my architecture on Apache Aries/Karaf. I hope
> to post in the right place.
>
> My project is composed of one OSGI/JPA bundle and one database per
> customer but i want several customers on my instance Apache Karaf. So, how
> to have one OSGI bundle for several databases ? Or one OSGI bundle per
> database ?
>
> Thanks,
>
> Damien
>