Hello.
Ideally, I'd like to replace the long repetitive code from all the
existing projects blueprints (and future projects too). We have
something like the following sequence in every project :
<?xml version="1.0" encoding="UTF-8"?>
<blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprintz.xsd
http://camel.apache.org/schema/blueprint
http://camel.apache.org/schema/blueprint/camel-blueprint.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0
http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
<reference
id="myUnitOfWorkFactory"
interface="x.y.z.MyMDCUnitOfWorkFactory" />
<reference
id="support"
interface="x.y.z.Support" />
<bean
id="oneEventNotifier"
class="org.apache.camel.spi.EventNotifier"
factory-ref="support"
factory-method="makeSupportEventNotifierForX" />
<bean
id="otherEventNotifier"
class="org.apache.camel.spi.EventNotifier"
factory-ref="support"
factory-method="makeSupportEventNotifierForY" />
<reference
id="tools"
interface="x.y.z.Tools" />
<reference
id="myDS"
interface="javax.sql.DataSource"
filter="(osgi.jndi.service.name=jdbc/our-ds)" />
<camelContext
id="my-context"
streamCache="true"
useMDCLogging="true"
xmlns="http://camel.apache.org/schema/blueprint">
And it should be easier to manage provided services, beans and so on
changing only the CamelContext or its associated registry. Something
like that :
<?xml version="1.0" encoding="UTF-8"?>
<blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprintz.xsd
http://camel.apache.org/schema/blueprint
http://camel.apache.org/schema/blueprint/camel-blueprint.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0
http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
<reference
id="myCamelContextFactory"
interface="???" />
<camelContext
id="my-context"
streamCache="true"
useMDCLogging="true"
xmlns="http://camel.apache.org/schema/blueprint">
Then, adding new services from an external part of the system doesn't
need projects modifications any more.
What is my problem, is what kind of "hook" I can use to change the
CamelContext a,d/or its Registry.
Is it clearer ?
Anyway, thanks again for your help.
Regards.
Le ven. 17 juin 2022 à 14:28, ski n <[email protected]> a écrit :
>
> Hi,
>
> It's good to provide a code example to see what you tried.
>
> Have you also tried to combine it with route configuration?
>
> https://camel.apache.org/manual/route-configuration.html
>
> This is available from 3.12.
>
> Raymond
>
> On Thu, Jun 16, 2022 at 7:43 PM j vh <[email protected]> wrote:
>
> > Hello,
> > btw... I'm using Camel 3.13.0 for this work.
> > ...jvh003