Thanks!

Ciao,
Philipp

> -----Mensaje original-----
> De: Guillaume Nodet [mailto:[EMAIL PROTECTED]
> Enviado el: jueves, 17 de mayo de 2007 15:21
> Para: [EMAIL PROTECTED]
> Asunto: Re: Remote deployment of service assemblies
>
> See http://issues.apache.org/activemq/browse/SM-858
> which has been fixed a few weeks ago in trunk.
>
> On 5/17/07, Rossmanith, Philipp <[EMAIL PROTECTED]>
wrote:
> >
> >
> > Hi,
> >
> > After quite a break, I am back with the issue relating to this
thread.
> > What I did was creating a jsr-181 WSDL first service, for which I
set a
> > ComponentContext *). The setup is different from what had been
outlined
> > earlier, as I am creating a service assembly ZIP based on parameters
I
> > receive.
> >
> > My idea was to obtain a DeliveryChannelImpl from the
ComponentContext
> > and to then follow the steps Guillaume has pointed out below.
> >
> > However, the ComponentContext that is being set by SM is an
> > EndpointComponentContext which doesn't give me access to this
> > information.
> >
> > Any hints of how I can get hold of the JBIContainer or its
> > AdminCommandsServiceMBean?
> >
> > Thanks in advance,
> > Ciao,
> > Philipp
> >
> > *) http://incubator.apache.org/servicemix/servicemix-jsr181.html
> > **) For the moment, I am creating a service assembly zip file for
WSN
> > subscriptions once the service gets invoked. Parameters are the
> > wsa:address, the topic and an identifier.
> >
> > > -----Mensaje original-----
> > > De: Guillaume Nodet [mailto:[EMAIL PROTECTED]
> > > Enviado el: martes, 20 de marzo de 2007 11:21
> > > Para: [EMAIL PROTECTED]
> > > Asunto: Re: Remote deployment of service assemblies
> > >
> > > On 3/20/07, Rossmanith, Philipp <[EMAIL PROTECTED]>
> > wrote:
> > > >
> > > >
> > > > Hi,
> > > >
> > > > > Once you have the JBIContainer, just retrieve the needed
> > interface:
> > > > >   JBIContainer container = dci.getContainer();
> > > > >   AdminCommandsServiceMBean admin =
> > > > container.getAdminCommandsService();
> > > > >
> > > > > Then, you can use it to deploy / undeploy, manage life cycle,
etc
> > ..
> > > > >    admin.installComponent()
> > > > >    admin.startComponent()
> > > > >    admin.listServiceAssemblies() ...
> > > > Ok, that is quite a bit cleaner...
> > > >
> > > > > all the administrative tasks are available from this
interface, so
> > I
> > > > guess
> > > > > the WSDL
> > > > > should be quite easy to write.  On the implementation side,
one
> > way is
> > > > to
> > > > > use
> > > > > jaxb2 (not the full jsr181 though) as done in the
WS-Notification
> > > > > component.
> > > > > See org.apache.servicemix.wsn.component.WSNEndpoint class.
> > > > What I was thinking about was a WSDL wrapper around the
> > > > AdminCommandsServiceMBean methods.
> > > >
> > > > I'm currently investigating the WSN component to use it for
> > > > notifications based on message content (see
> > > >
> >
http://www.nabble.com/how-to-implement-runtime-notifications-based-on-Me
> > > > ssageExchange--content-tf3409844s12049.html), but I must say I'm
> > afraid
> > > > I don't really understand your idea (which may be due to my
limited
> > > > experience with jaxb2).
> > > >
> > > > It seems to me that the wsn component WSNEndpoint uses the
> > annotations
> > > > done in the org.apache.servicemix.wsn.AbstractEndpoint hierarchy
(an
> > > > object of this class is passed in as "pojo" in the constructor)
to
> > > > obtain a class object "endpointInterface" which is then used to
get
> > hold
> > > > of the methods published in that interface. Jaxb2 seems to be
used
> > to
> > > > unmarshal incoming normalized message content and to marshal it
to
> > > > outgoing exchanges (method: process).
> > > >
> > > > However, if I'm ""only"" writing a provider service and not a
> > > > full-fledged component, what would be the advantages of the
approach
> > > > taken in WSNEndpoint?
> > > >
> > > > Or am I misinterpreting, and you're using jaxb2 for creating a
> > jsr181
> > > > code skeleton based on a previously generated WSDL?
> > >
> > >
> > > Yeah,  that's the point.
> > > The WSNEndpoint is used to invoke an annotated POJO generated
> > > from the WSDL like AbstractNotificationBroker.
> > > The AbstractNotificationBroker#init method calls register, which
> > > ultimately
> > > creates a WSNEndpoint with the AbstractNotificationBroker class as
the
> > > pojo.
> > >
> > > So, once the WSDL is written, you can use wsgen to generate the
> > interfaces
> > > and messages, create your own POJO implementation and wrap it with
> > > the WSNEndpoint.  (It makes me think that this class may be put in
> > > servicemix-common).
> > >
> > > But this is only one way to do that. Feel free to use your own if
you
> > > prefer.
> > >
> > > The last question is how do we package that.  I'm thinking about
> > > a SE, but without any support for deployments of SU,
> > > I guess another way could be to leverage the JSR181 component and
> > > just write a SU for it (and another for the http BC i guess).
> > > The last way would be to configure it directly on the JBI
container
> > > without any JBI packaging ...
> > > Need to think about pros / cons ...
> > >
> > > > .. and discussions about servicemix developement should take
place
> > on
> > > > the
> > > > > dev
> > > > > list ... ;-)
> > > > Done :-)
> > >
> > >
> > > Thanks in advance,
> > > > Ciao,
> > > > Philipp
> > > >
> > > > > -----Mensaje original-----
> > > > > De: Guillaume Nodet [mailto:[EMAIL PROTECTED]
> > > > > Enviado el: lunes, 19 de marzo de 2007 16:56
> > > > > Para: [EMAIL PROTECTED]
> > > > > Asunto: Re: Remote deployment of service assemblies
> > > > > Importancia: Baja
> > > > >
> > > > > On 3/19/07, Rossmanith, Philipp
<[EMAIL PROTECTED]>
> > > > wrote:
> > > > > >
> > > > > >
> > > > > > > Currently, remote deployment is not supported by the ant
> > tasks.
> > > > > > > The only way to do currently that is to start a servicemix
> > console
> > > > > > > on the same server, because the console accepts uploads
and
> > will
> > > > > > > be able to point the container to a local file.
> > > > > > >
> > > > > > > The only way using JMX would be to add a method accepting
a
> > byte[]
> > > > > > > parameter which would be the content of the JBI artifact
to
> > > > deploy, or
> > > > > > > creating an management endpoint on the JBI bus (using an
> > > > attachment
> > > > > > > for the JBI archetype).  Not sure what's the best way.
> > > > > > I was thinking about this alternative, as well. There could
be a
> > > > > > provider service that accepts calls having an SA attachment.
It
> > > > could
> > > > > > then obtain this attachment and physically place it in the
> > > > deployment
> > > > > > dir.
> > > > >
> > > > >
> > > > > Using the hot deployer is imo not the best solution.
> > > > > We should use the AdminCommandsService instead (see below)
> > > > >
> > > > > In that way, one could use the same access control mechanism
as
> > for
> > > > the
> > > > > > rest of the service invocations. Another advantage would be
that
> > > > through
> > > > > > the different binding components, the functionality would be
> > > > available
> > > > > > in more than just Java.
> > > > >
> > > > >
> > > > > Yeah, agreed. We just need to define a  clean WSDL for it.
> > > > >
> > > > > However, I'd need to access some JBIContainer properties, such
as
> > the
> > > > > > deployment directory. I assume that the best way to obtain
> > internals
> > > > > > about the JBI container would be to use the client API
> > > > > > (http://incubator.apache.org/servicemix/client-api.html).
> > > > > >
> > > > > > I could then use the following code:
> > > > > > >>
> > > > > > ...
> > > > > > DeliveryChannelImpl dci = (DeliveryChannelImpl)
> > > > > > defaultSMClientInstance.getDeliveryChannel();
> > > > > > JBIContainer container = dci.getContainer();
> > > > > > ...
> > > > > > String deploymentDirPath = container.getDeploymentDirPath();
> > > > > > ...
> > > > > > <<
> > > > > >
> > > > > > However, this hack seems quite (if not: too) dirty. Is there
a
> > more
> > > > > > elegant solution?
> > > > >
> > > > >
> > > > >
> > > > > Once you have the JBIContainer, just retrieve the needed
> > interface:
> > > > >   JBIContainer container = dci.getContainer();
> > > > >   AdminCommandsServiceMBean admin =
> > > > container.getAdminCommandsService();
> > > > >
> > > > > Then, you can use it to deploy / undeploy, manage life cycle,
etc
> > ..
> > > > >    admin.installComponent()
> > > > >    admin.startComponent()
> > > > >    admin.listServiceAssemblies() ...
> > > > >
> > > > > all the administrative tasks are available from this
interface, so
> > I
> > > > guess
> > > > > the WSDL
> > > > > should be quite easy to write.  On the implementation side,
one
> > way is
> > > > to
> > > > > use
> > > > > jaxb2 (not the full jsr181 though) as done in the
WS-Notification
> > > > > component.
> > > > > See org.apache.servicemix.wsn.component.WSNEndpoint class.
> > > > >
> > > > > .. and discussions about servicemix developement should take
place
> > on
> > > > the
> > > > > dev
> > > > > list ... ;-)
> > > > >
> > > > > Thanks in advance,
> > > > > > Ciao,
> > > > > > Philipp
> > > > > >
> > > > > > > -----Mensaje original-----
> > > > > > > De: Guillaume Nodet [mailto:[EMAIL PROTECTED]
> > > > > > > Enviado el: lunes, 19 de marzo de 2007 16:01
> > > > > > > Para: [EMAIL PROTECTED]
> > > > > > > Asunto: Re: Remote deployment of service assemblies
> > > > > > > Importancia: Baja
> > > > > > >
> > > > > > > Currently, remote deployment is not supported by the ant
> > tasks.
> > > > > > > The only way to do currently that is to start a servicemix
> > console
> > > > > > > on the same server, because the console accepts uploads
and
> > will
> > > > > > > be able to point the container to a local file.
> > > > > > >
> > > > > > > The only way using JMX would be to add a method accepting
a
> > byte[]
> > > > > > > parameter which would be the content of the JBI artifact
to
> > > > deploy, or
> > > > > > > creating an management endpoint on the JBI bus (using an
> > > > attachment
> > > > > > > for the JBI archetype).  Not sure what's the best way.
> > > > > > >
> > > > > > > On 3/19/07, Rossmanith, Philipp
> > <[EMAIL PROTECTED]>
> > > > > > wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > In our project, we have several client applications that
> > need to
> > > > > > deploy
> > > > > > > > and undeploy service assemblies at runtime. The majority
of
> > them
> > > > are
> > > > > > > > written in Java, others not.
> > > > > > > >
> > > > > > > > It seems that remote administration is something that
would
> > best
> > > > be
> > > > > > > > handled by the administration Ant tasks.
> > > > > > > >
> > > > > > > > Ant tasks can be called from Java code:
> > > > > > > > http://ant.apache.org/manual/antexternal.html
> > > > > > > >
> > > > > > > > Now I was wondering:
> > > > > > > > If I need to do remote un-/deployment from within client
> > > > > > applications,
> > > > > > > > is there already some existing API for doing that?
Perhaps
> > an
> > > > > > Endpoint
> > > > > > > > accepting service assemblies? If not, would some
> > Java-wrapper
> > > > around
> > > > > > the
> > > > > > > > aforementioned Ant tasks be a viable alternative?
> > > > > > > >
> > > > > > > > Thanks in advance,
> > > > > > > > Ciao,
> > > > > > > > Philipp
> > > > > > > >
> > > > > > > > This e-mail may contain confidential or privileged
> > information.
> > > > Any
> > > > > > > > unauthorised
> > > > > > > > copying, use or distribution of this information is
strictly
> > > > > > prohibited.
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Cheers,
> > > > > > > Guillaume Nodet
> > > > > > > ------------------------
> > > > > > > Architect, LogicBlaze (http://www.logicblaze.com/)
> > > > > > > Blog: http://gnodet.blogspot.com/
> > > > > >
> > > > > > This e-mail may contain confidential or privileged
information.
> > Any
> > > > > > unauthorised
> > > > > > copying, use or distribution of this information is strictly
> > > > prohibited.
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Cheers,
> > > > > Guillaume Nodet
> > > > > ------------------------
> > > > > Architect, LogicBlaze (http://www.logicblaze.com/)
> > > > > Blog: http://gnodet.blogspot.com/
> > > >
> > > > This e-mail may contain confidential or privileged information.
Any
> > > > unauthorised
> > > > copying, use or distribution of this information is strictly
> > prohibited.
> > > >
> > >
> > >
> > >
> > > --
> > > Cheers,
> > > Guillaume Nodet
> > > ------------------------
> > > Architect, LogicBlaze (http://www.logicblaze.com/)
> > > Blog: http://gnodet.blogspot.com/
> >
> > This e-mail may contain confidential or privileged information. Any
> > unauthorised
> > copying, use or distribution of this information is strictly
prohibited.
> >
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Principal Engineer, IONA
> Blog: http://gnodet.blogspot.com/

This e-mail may contain confidential or privileged information. Any unauthorised
copying, use or distribution of this information is strictly prohibited.

Reply via email to