Re: IRC session

2007-08-31 Thread Brian O'Neill
(+1)
sure thing, i'll join from the beach.

-brian

On 8/31/07, Eric Dofonsou [EMAIL PROTECTED] wrote:
 +4 ..

 - Original Message 
 From: rs d [EMAIL PROTECTED]
 To: servicemix-dev@geronimo.apache.org
 Sent: Tuesday, August 28, 2007 6:53:59 PM
 Subject: Re: IRC session


 +3 ok.

 On 8/28/07, Kit Plummer [EMAIL PROTECTED] wrote:
 
  On 8/28/07, Bruce Snyder [EMAIL PROTECTED] wrote:
  
   On 8/28/07, Nodet Guillaume [EMAIL PROTECTED] wrote:
Unfortunately I will be traveling until Friday evening.
What about moving it to Monday instead at the same hour ?
3 pm GMT,  11 am EST, 8 am PST
Sorry about that...
  
   +1
  
   Bruce
   --
   perl -e 'print
   unpack(u30,D0G)[EMAIL PROTECTED]5R\F)R=6-E+G-N61ED\!G;6%I;\YC;VT*
   );'
  
   Apache ActiveMQ - http://activemq.org/
   Apache ServiceMix - http://servicemix.org/
   Apache Geronimo - http://geronimo.apache.org/
   Castor - http://castor.org/
  
 
  +2  ; }
 
  --
  Kit Plummer
  Nobody-in-Charge @ Black:Hole:Logic
  http://www.blackholelogic.com
 


   
 
 Park yourself in front of a world of choices in alternative vehicles. Visit 
 the Yahoo! Auto Green Center.
 http://autos.yahoo.com/green_center/



-- 
Brian ONeill
Source Equity (http://www.sourceequity.com)
jBIZint (http://www.jbizint.org)
Technical Architect, Gestalt LLC (http://www.gestalt-llc.com)
mobile:215.588.6024


Re: IRC sessions on ServiceMix 4.0 design (was Re: ServiceMix 4.0)

2007-08-25 Thread Brian O'Neill
works for me.
-brian

On 8/25/07, Nodet Guillaume [EMAIL PROTECTED] wrote:
 Ok, sounds like we have enough people.
 So we just need to find a data and an hour.
 What about Friday 3 pm GMT,  11 am EST, 8 am PST
 Adrian, I'm not sure how to find a time that would suits you...
 Other propositions are welcome...

 Cheers,
 Guillaume Nodet

 On Aug 24, 2007, at 11:04 AM, Nodet Guillaume wrote:

  Any other people interested ?
 
  Cheers,
  Guillaume Nodet
 
  On Aug 23, 2007, at 3:37 PM, Kit Plummer wrote:
 
  I'd be up for a few chat sessions!
 
  On 8/23/07, Nodet Guillaume [EMAIL PROTECTED] wrote:
 
  Btw, if there is sufficient interest, we could organize irc meetings
  to discuss these topics and post the log to the dev list for
  archiving
  and later discussion.
 
  Cheers,
  Guillaume Nodet
 
  On Aug 22, 2007, at 4:59 PM, Nodet Guillaume wrote:
 
  As I explained in the other thread, I've been working on a new API
  for ServiceMix 4.0.
  Hopefully this will serve as an input for JBI 2.0.
  This API is available at  https://svn.apache.org/repos/asf/
  incubator/servicemix/branches/servicemix-4.0/api
 
  So here a few key changes:
* clean integration with OSGi
* the NormalizedMessage can contain not only XML
* no more components
* no more JBI packaging (just use OSGi bundles)
* move the Channel to the Endpoint
* use push delivery instead of pulling exchanges
* introduce a single interface for identifying the Target of an
  Exchange
 
  As we remove components, everything goes down to the endpoint which
  become a key feature.
 
  The endpoint must implement the Endpoint interface.  In OSGi, the
  NMR would listen to endpoints
  registered in the OSGi registry and call the registry to register /
  unregister the endpoints.
  As part of the endpoint registration, the NMR would inject a
  Channel into them, thus actually activating the
  endpoint.  I guess I could write a sequence diagram for that
  (anybody knows a good tool for uml ?).
  In a non OSGI environment, the Endpoint will be registered in the
  Registry by calling the register method
  somehow.
 
  The Endpoint receives Exchange to be processed on the process
  method.
  I think we should keep the JBI 1.0 semantics and the endpoint use
  the same process as for JBI 1.0, which is
  send the exchange back using the Channel (with the response /
  fault / error / done).  This will put the threading,
  transactions and security burden on the container itself.  Which
  means it is easier to write JBI apps :-)
 
  Exchanges can be created using the Channel#createExchange method.
  The only change I'd like to
  integrate in the messaging API is to allow for non xml payloads and
  maybe untyped attachments.  The body
  could be converted automatically to a given type if supported (I
  think Camel does it nicely, so I'm thinking of
  shamelessly copying the converter layer).  I have added a few
  helper methods on the exchanges and
  messages (copy, copyFrom, ensureReReadable, display) to ease
  message management.
 
  For the deployment part, there is no packaging anymore.  One would
  deploy an OSGi bundle that would
  register the needed endpoints in the OSGi registry.  For certain
  types of endpoints, we may need an external
  activation process (such as creating a server socket for listening
  to HTTP requests) that may need to be shared
  across endpoints of a given type.  In such a case, you would deploy
  a component that listens to new
  endpoints implementing HttpEndpoint for example.  When a new
  endpoint is registered, the listener would
  activate a server socket that could be shared across all http
  endpoints.   In a different way, if we have  a BPEL
  engine, the bpel component  would listen for new bundles and look
  for a specific file containing deployment
  information. The component would register new endpoints in the OSGi
  registry as needed (we could do that
  for jaxws pojos using cxf for example).
  So I said there is no more components, because this feature is not
  in the api anymore, but we will certainly need
  these components for some use cases.   For simple endpoints, you
  would not need any component at all.
  Another benefit is that you can easily deploy a whole application
  inside a single OSGi bundle.  Using spring-osgi,
  the bundle would just consist in a spring configuration file
  containing the endpoints declaration and expose them
  as OSGi services.
 
  Of course, we need to write a JBI 1.0 compatibility layer, and we
  could have an intermediate layer where SAs and
  JBI components could be OSGi bundles directly, thus leveraging the
  OSGi classloading mechanism.
 
  The thing I'm not completely sure about if the Target interface
  which aims to identify the target of an exchange.
  I'm thinking that some metadata are associated with endpoints (like
  service name, interface name, wsdl
  location, etc..).   These metadatas could be used to retrieve
  targets using the Registry.  

Re: Spring extensions to OSGi (was Re: ServiceMix 4.0)

2007-08-24 Thread Brian O'Neill
Guillaume,

Just getting grounded...

Would SM 4.0 leverage Felix to get OSGi capabilities?

I took a grep through the code, it doesn't look like it uses it at all
right now:
[EMAIL PROTECTED]:~/dev/apache.org/servicemix- grep -r elix *
and osgi appears only in the eclipse plugins.

Just verifying, OSGi is a brand new dependency for SM, right?

Which leads me to my second question,  do you think the dependency
would be a hard dependency (on the actual felix impl), or would it be
implementation agnostic? (e.g. able to run on Equinox as well)

I am going to pull felix now and start playing around with it.

-brian

On 8/24/07, Guillaume Nodet [EMAIL PROTECTED] wrote:
 
 
  One topic not covered in this excellent post is a standard mechanism
  to provide access to other endpoint metadata (e.g. the WSDL file) -
  having that as a standard OSGi metadata would be cool (e.g. a WSDL
  URI)
 
  Yeah, I have had a closer look at how OSGi provides URL handlers.
  This is not as simple as I thought it would be.  OSGI defines
  a bundle: protocol that can be used to access resources in the bundle.
  Unfortunately, the url has to contain the bundle id, which means that
  the URLs have to be built dynamically.  I'm sure we can create a spring
  bean factory to create those dynamically though...
  Or a post factory processor that would process the URIs to rewrite them
  and include the bundle id.
 
  This way, the service could contain a WSDL_URL property associated
  with it (when registered in the OSGi registry) that would be a bundle url
  pointing to the wsdl inside the bundle.  This would solve one of JBI
  limitation
  which is the ability to have complex WSDLs definitions including other
  WSDL or XSD.
 

 I've been thinking about that a bit more.
 It seems to me that using a kind of PropertyPlaceHolder (i.e. a
 BeanFactoryPostProcessor) sounds like a good idea.
 It could check all properties and perform replacement of an url like:
bundle-ext://org/test/dummy.wsdl
 to
bundle://7.0/org/test/dummy.wsdl
 where 7.0 is the bundle id.

 Another extension could be a spring bean factory that expose a blob of
 xml to an url
 for other bundles to consume.  Inside your spring definition file, one
 would have:

 smx-osgi:export-xml url=org/test/dummy.wsdl
   wsdl:description ...
  ...
   /wsdl:description
 /smx:osgi

 Thus a single configuration file (the spring one) could contain blob
 of xml (well,
 not only xml i guess) that could be exposed as an url.

 I think the first idea will prove really useful to expose a WSDL to
 other bundles.
 I'm not so sure about the second one...

 --
 Cheers,
 Guillaume Nodet
 
 Blog: http://gnodet.blogspot.com/



-- 
Brian ONeill
Source Equity (http://www.sourceequity.com)
jBIZint (http://www.jbizint.org)
Technical Architect, Gestalt LLC (http://www.gestalt-llc.com)
mobile:215.588.6024


Re: ServiceMix 4.0

2007-08-22 Thread Brian O'Neill
Fanastic.  Once we get consensus on the direction (your first few
points), I wonder if we shouldn't break this email out to discuss the
specifics.

On 8/22/07, Nodet Guillaume [EMAIL PROTECTED] wrote:
 As I explained in the other thread, I've been working on a new API
 for ServiceMix 4.0.
 Hopefully this will serve as an input for JBI 2.0.
 This API is available at  https://svn.apache.org/repos/asf/incubator/
 servicemix/branches/servicemix-4.0/api

 So here a few key changes:
* clean integration with OSGi
* the NormalizedMessage can contain not only XML
* no more components
* no more JBI packaging (just use OSGi bundles)
* move the Channel to the Endpoint
* use push delivery instead of pulling exchanges
* introduce a single interface for identifying the Target of an
 Exchange

Excellent!  Spot on.

 As we remove components, everything goes down to the endpoint which
 become a key feature.

 The endpoint must implement the Endpoint interface.  In OSGi, the NMR
 would listen to endpoints
 registered in the OSGi registry and call the registry to register /
 unregister the endpoints.
 As part of the endpoint registration, the NMR would inject a Channel
 into them, thus actually activating the
 endpoint.  I guess I could write a sequence diagram for that (anybody
 knows a good tool for uml ?).
 In a non OSGI environment, the Endpoint will be registered in the
 Registry by calling the register method
 somehow.

RE: uml tool
Bruce, I've struggled with the same.  I actually run
Parallels/VMWare+Visio, just to keep compatibility with others I have
to interact with.  FLOSS community desperately needs a architecture
tool.

 The Endpoint receives Exchange to be processed on the process method.
 I think we should keep the JBI 1.0 semantics and the endpoint use the
 same process as for JBI 1.0, which is
 send the exchange back using the Channel (with the response / fault /
 error / done).  This will put the threading,
 transactions and security burden on the container itself.  Which
 means it is easier to write JBI apps :-)

+1

 Exchanges can be created using the Channel#createExchange method.
 The only change I'd like to
 integrate in the messaging API is to allow for non xml payloads and
 maybe untyped attachments.  The body
 could be converted automatically to a given type if supported (I
 think Camel does it nicely, so I'm thinking of
 shamelessly copying the converter layer).  I have added a few helper
 methods on the exchanges and
 messages (copy, copyFrom, ensureReReadable, display) to ease message
 management.


I haven't looked at Camel converters, but would you consider adding a
contentType and contentEncoding mimicing the headers of HTTP  SIP.
The endpoint can then use the type and encoding to determine how to
handle the content.

 For the deployment part, there is no packaging anymore.  One would
 deploy an OSGi bundle that would
 register the needed endpoints in the OSGi registry.  For certain
 types of endpoints, we may need an external
 activation process (such as creating a server socket for listening to
 HTTP requests) that may need to be shared
 across endpoints of a given type.  In such a case, you would deploy a
 component that listens to new
 endpoints implementing HttpEndpoint for example.  When a new endpoint
 is registered, the listener would
 activate a server socket that could be shared across all http
 endpoints.   In a different way, if we have  a BPEL
 engine, the bpel component  would listen for new bundles and look
 for a specific file containing deployment
 information. The component would register new endpoints in the OSGi
 registry as needed (we could do that
 for jaxws pojos using cxf for example).
 So I said there is no more components, because this feature is not in
 the api anymore, but we will certainly need
 these components for some use cases.   For simple endpoints, you
 would not need any component at all.
 Another benefit is that you can easily deploy a whole application
 inside a single OSGi bundle.  Using spring-osgi,
 the bundle would just consist in a spring configuration file
 containing the endpoints declaration and expose them
 as OSGi services.

sweet.

 Of course, we need to write a JBI 1.0 compatibility layer, and we
 could have an intermediate layer where SAs and
 JBI components could be OSGi bundles directly, thus leveraging the
 OSGi classloading mechanism.

 The thing I'm not completely sure about if the Target interface which
 aims to identify the target of an exchange.
 I'm thinking that some metadata are associated with endpoints (like
 service name, interface name, wsdl
 location, etc..).   These metadatas could be used to retrieve targets
 using the Registry.  We could plug in different
 mechanisms to query the metadata (simple lookup per id, policy based,
 etc...).  And the result itself could be
 not only a single Endpoint, but could include some policies like:
 load balance between all the endpoint implementing
 the given 

Re: checkstyle on the se-archectype

2007-07-10 Thread Brian O'Neill

Unfortunately those are different errors, because I'm getting them in
the code generated by the maven archetype.

After fixing the checkstyle errors, I had to fix a couple PMD errors.

Now, I'm on to making the test pass, which is generating:
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'jbi' defined in class path resource
[spring.xml]: Invocation of init method failed; nested exception is
java.lang.NoSuchMethodError:
org.springframework.jmx.support.ConnectorServerFactoryBean.setObjectName(Ljava/lang/String;)V


I'm guessing this is a spring version problem. Trying to track it down now.

-brian

On 7/10/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:


While trying to build from the source from the trunk.. Meven 2 JBI Plugin 
failed fo me ith check style errors..

GraphArtifactCollector.java:58:37: More than 7 parameters
JbiComponentDescriptorWriter.java:37:15: More than 7 parameters

Do you have the same errors?

Regards,
Rabi Mishra
http://rabisblog.blogspot.com/



From: [EMAIL PROTECTED] on behalf of Brian O'Neill
Sent: Tue 7/10/2007 11:52 PM
To: servicemix-dev@geronimo.apache.org
Subject: checkstyle on the se-archectype



Following the se tutorial:
http://incubator.apache.org/servicemix/hello-world-se.html

The code produced from the mvn archetype failed the checkstyle check
(with errors).

Has anyone else experienced this?

(I also had to go in and update the version in the pom.xml, so it
would pull a current release of sm)

-brian

--
Brian ONeill
Source Equity (http://www.sourceequity.com http://www.sourceequity.com/ )
jBIZint (http://www.jbizint.org http://www.jbizint.org/ )
Technical Architect, Gestalt LLC (http://www.gestalt-llc.com 
http://www.gestalt-llc.com/ )
mobile:215.588.6024





The information contained in this electronic message and any attachments to 
this message are intended for the exclusive use of the addressee(s) and may 
contain proprietary, confidential or privileged information. If you are not the 
intended recipient, you should not disseminate, distribute or copy this e-mail. 
Please notify the sender immediately and destroy all copies of this message and 
any attachments.

WARNING: Computer viruses can be transmitted via email. The recipient should 
check this email and any attachments for the presence of viruses. The company 
accepts no liability for any damage caused by any virus transmitted by this 
email.

www.wipro.com



--
Brian ONeill
Source Equity (http://www.sourceequity.com)
jBIZint (http://www.jbizint.org)
Technical Architect, Gestalt LLC (http://www.gestalt-llc.com)
mobile:215.588.6024


servcemix-sca: pmd violations fix

2007-06-22 Thread Brian O'Neill

All,

I'm trying to resurrect servicemix-sca (out of the sandbox).
It had two pmd violations that needed fixing before it would compile.

I submitted the patch here:
https://issues.apache.org/activemq/browse/SM-973

best regards,
-brian

--
Brian ONeill
Source Equity (http://www.sourceequity.com)
jBIZint (http://www.jbizint.org)
Technical Architect, Gestalt LLC (http://www.gestalt-llc.com)
mobile:215.588.6024


Progress w/ Servicemix-SCA

2007-06-22 Thread Brian O'Neill

All,

See below.  We are working to get servicemix-sca up and running again.
Presently, I'm adding the repo to the servicemix-sca so it can find
its timestamped dependencies.

best,
-brian

On 6/22/07, Guillaume Nodet [EMAIL PROTECTED] wrote:

I think the repo has been removed from the root pom.
Just add it in the servicemix-sca pom.


On 6/22/07, Brian O'Neill  [EMAIL PROTECTED] wrote:
 Guillaume,

 Looks like that artifact is there.  Let me check the poms and repo
 list to make sure that repo is in there.

 -brian

 On 6/22/07, Brian O'Neill [EMAIL PROTECTED] wrote:
  I'll see if I can find it in that repo, but here is the report:
  1) org.apache.tuscany:tuscany-common:jar:20060317
 
 
 
Try downloading the file manually from the project website.
 
 
 
Then, install it using the command:
 
mvn install:install-file -DgroupId=org.apache.tuscany
  -DartifactId=tuscany-common \
 
-Dversion=20060317 -Dpackaging=jar -Dfile=/path/to/file
 
 
 
  That is just one of the missing dependencies.  It can't find any of
  the timestamped versions.
 
  -brian
 
 
  On 6/22/07, Guillaume Nodet  [EMAIL PROTECTED] wrote:
   Which artifacts are missing ?
   The sca should use some timestamped artifacts for Tuscany and they
should be
   available on a servicemix repo at   http://servicemix.org/m2-repo/
  
   On 6/22/07, Kit Plummer
[EMAIL PROTECTED]
   wrote:
That's cool.  I just turned off PMD.  ; }
   
There's a ton of missing artifacts for me...the same is true for
Tuscany
so I'm just guessing I'm not aligned with a repo somewhere...
   
Kit
   

Kit Plummer
Advanced Programs
Raytheon Mission Systems
520.360.4729 (cell)
520.545.9246 (desk)
kitplummer (im)
   
Brian O'Neill wrote:
 Guillaume,

 Thanks for the help around the checkstyle errors. After I got past
 that, I had to fix two PMD violations.  The diff is attached.
Could
 you commit the changes?

 best regards,
 -brian



  


 Index:
  
src/main/java/org/apache/servicemix/sca/ScaEndpoint.java

  
===
 ---
  
src/main/java/org/apache/servicemix/sca/ScaEndpoint.java
(revision 549589)
 +++
  
src/main/java/org/apache/servicemix/sca/ScaEndpoint.java
(working copy)
 @@ -90,7 +90,7 @@
  classes.add(mth.getReturnType ());
  classes.add(params[0]);
  }
 -jaxbContext = JAXBContext.newInstance(classes.toArray(new
   Class[0]));
 +jaxbContext = JAXBContext.newInstance(classes.toArray(new
   Class[classes.size()]));
  }

  public void deactivate() throws Exception {
 Index:
  
src/main/java/org/apache/servicemix/sca/handler/ExternalJbiServiceClient.java

  
===
 ---
  
src/main/java/org/apache/servicemix/sca/handler/ExternalJbiServiceClient.java
   (revision 549589)
 +++
  
src/main/java/org/apache/servicemix/sca/handler/ExternalJbiServiceClient.java
   (working copy)
 @@ -78,7 +78,7 @@
  NormalizedMessage in =
   inout.createMessage();
   inout.setInMessage (in);
  in.setContent(new StringSource(baos.toString()));
 -boolean sent = channel.sendSync(inout);
 + //boolean sent = channel.sendSync(inout);
  // TODO: check for error ?
  NormalizedMessage out =
   inout.getOutMessage();
  Object response =
   context.createUnmarshaller().unmarshal(out.getContent());
   
  
  
  
   --
   Cheers,
   Guillaume Nodet
   
   Principal Engineer, IONA
   Blog: http://gnodet.blogspot.com/
 
 
  --
  Brian ONeill
  Source Equity ( http://www.sourceequity.com)
  jBIZint (http://www.jbizint.org)
  Technical Architect, Gestalt LLC (http://www.gestalt-llc.com)
  mobile:215.588.6024
 


 --
 Brian ONeill
 Source Equity (http://www.sourceequity.com)
 jBIZint (http://www.jbizint.org )
 Technical Architect, Gestalt LLC (http://www.gestalt-llc.com)
 mobile:215.588.6024




--

Cheers,
Guillaume Nodet

Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/



--
Brian ONeill
Source Equity (http://www.sourceequity.com)
jBIZint (http://www.jbizint.org)
Technical Architect, Gestalt LLC (http://www.gestalt-llc.com)
mobile:215.588.6024