Intermittent failures when building scripting modules

2008-06-16 Thread Simon Nash

I see the following error quite frequently when building
samples/calculator-script.  I have also seen a similar exception
when building the implementation-script module.  Has anyone else
seen this?  Any ideas as to the cause?

  Simon

Running calculator.CalculatorTestCase
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.568 sec  FA
ILURE!
testCalculator(calculator.CalculatorTestCase)  Time elapsed: 2.523 sec   ERRO
R!
java.lang.NoSuchMethodError: javax.script.Bindings.put(Ljava/lang/String;Ljava/l
ang/Object;)Ljava/lang/Object;
at org.apache.tuscany.sca.implementation.script.engines.TuscanyJRubyScri
ptEngine$3.defineReadonly(TuscanyJRubyScriptEngine.java:299)
at org.jruby.Ruby.defineReadonlyVariable(Ruby.java:1016)
at org.jruby.RubyClassPathVariable.createClassPathVariable(RubyClassPath
Variable.java:44)
at org.jruby.Ruby$1.load(Ruby.java:659)
at org.jruby.runtime.load.LoadService.smartLoad(LoadService.java:307)
at org.jruby.runtime.load.LoadService.require(LoadService.java:333)
at org.jruby.RubyKernel$1.load(RubyKernel.java:245)
at org.jruby.runtime.load.LoadService.autoload(LoadService.java:355)
at org.jruby.RubyModule.getConstantAt(RubyModule.java:887)
at org.jruby.Ruby.getModule(Ruby.java:459)
at org.jruby.javasupport.JavaSupport.getJavaModule(JavaSupport.java:175)

at org.jruby.javasupport.JavaSupport.getJavaObjectClass(JavaSupport.java
:189)
at org.jruby.javasupport.JavaObject.init(JavaObject.java:62)
at org.jruby.javasupport.JavaObject.wrap(JavaObject.java:72)
at org.jruby.javasupport.Java.primitive_to_java(Java.java:764)
at org.jruby.javasupport.Java.ruby_to_java(Java.java:796)
at org.apache.tuscany.sca.implementation.script.engines.TuscanyJRubyScri
ptEngine.rubyToJava(TuscanyJRubyScriptEngine.java:221)
at org.apache.tuscany.sca.implementation.script.engines.TuscanyJRubyScri
ptEngine.rubyToJava(TuscanyJRubyScriptEngine.java:217)
at org.apache.tuscany.sca.implementation.script.engines.TuscanyJRubyScri
ptEngine.evalNode(TuscanyJRubyScriptEngine.java:420)
at org.apache.tuscany.sca.implementation.script.engines.TuscanyJRubyScri
ptEngine.eval(TuscanyJRubyScriptEngine.java:193)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:62)
at org.apache.tuscany.sca.implementation.script.ScriptInvokerFactory.ini
t(ScriptInvokerFactory.java:111)
at org.apache.tuscany.sca.implementation.script.ScriptInvokerFactory.cre
ateInvoker(ScriptInvokerFactory.java:83)
at org.apache.tuscany.sca.extension.helper.impl.ImplementationImplementa
tionProvider$InvokerProxy.init(ImplementationImplementationProvider.java:95)
at org.apache.tuscany.sca.extension.helper.impl.ImplementationImplementa
tionProvider$InvokerProxy.invoke(ImplementationImplementationProvider.java:89)
at org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCAB
indingInvoker.java:61)
at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JD
KInvocationHandler.java:287)
at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JD
KInvocationHandler.java:154)
at $Proxy5.subtract(Unknown Source)
at calculator.CalculatorServiceImpl.subtract(CalculatorServiceImpl.java:
58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementat
ionInvoker.invoke(JavaImplementationInvoker.java:132)
at org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCAB
indingInvoker.java:61)
at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JD
KInvocationHandler.java:287)
at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JD
KInvocationHandler.java:154)
at $Proxy4.subtract(Unknown Source)
at calculator.CalculatorTestCase.testCalculator(CalculatorTestCase.java:
47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
 

Re: Tracking Tuscany extensions, was: Distribution zips and what they contain, was: SCA runtimes

2008-06-16 Thread Simon Nash

Raymond Feng wrote:

Hi, Mike.

It's a very good summary. The different perspectives are now well 
separated and they should be discussed on different threads to avoid 
further confusions :-).


Please see some more comments inline.


I added a couple of responses on specific points below.

  Simon


Thanks,
Raymond

--
From: Mike Edwards [EMAIL PROTECTED]
Sent: Friday, June 13, 2008 2:08 PM
To: tuscany-dev@ws.apache.org
Subject: Re: Tracking Tuscany extensions, was: Distribution zips and 
what they contain, was: SCA runtimes



Simon Nash wrote:
Actually this isn't quite what I was saying.  (Sorry that I wasn't 
clear.)

I'm talking about the lowest level components that we distribute as
binaries, not about larger groupings that are created from these 
components

to provide convenient aggregations of functionality.  These groupings
might be useful as well, as you are suggesting here and Graham suggested
in his recent post.

So back to the basic components.  I see no value at this level in 
breaking
things down any lower than a unit of functionality that might be 
included

or excluded as a whole from some valid scenario.  To give an example,
I wouldn't put everything related to Web services in a single basic
component, because some users might want to create a minimal Web 
services

configuration without Web services security and/or Web services policy.
I also wouldn't put assembly and core in the same basic component,
because some users might just want the Tuscany model without the
Tuscany runtime.  But I would put interface and assembly together in the
same basic component, because there are no cases where one would be used
without the other, and I would put core, core-databinding and 
databinding

together in the same basic component for the same reason.

  Simon


Simon,

I'm not clear what components you are talking about here.

It seems to me that we have things are different granularities, for 
different purposes and for different users, something like this 
(starting at the smallest):


a) Basic modules, as we have today.
   These are largely for Tuscany developers, but they should represent 
a level of development

   independence.

   Some folk (including me) believe that it is these modules that 
should be OSGi bundles.
   If there really is NO reason to separate functionality, then we 
should merge modules at this

   level.  I don't think that is necessary at present.


+1. The OSGi bundles are the basic units to constitute the tuscany 
runtime and they formally defines the SPI contracts across the modules. 
Maven modules are the static/structural reflection of the same idea.



There could reasons why a developer would want to separate functionality
into multiple modules even though these modules are never separated when
assembling the larger aggregrations at the b) and c) level.  I see a few
ways to handle this situation:
 1) Optimize the module split around developer convenience and let the
basic module structure reflect this.  This could create finer-grained
modules than are needed by the b) and c) levels.
 2) Optimize the module split around the granularity that is needed by
the b) and c) levels.  This could create coarser-grained modules than
are ideal from a developer perspective.
 3) Create an additional level in the hierarchy between the a) and b)
levels as defined here.  This creates confusion and complexity.

I have been arguing for some combination of 2) and 3).  As a result of
this discussion, I'd like to explore the alternative of using 1) in
combination with a strengthened role for the b) level.  This might
provide the advantages of 2) and 3) without their disadvantages.
So I'd like to suggest that we try to make progress at the b) level
first and come back to the a) level when we know what the b) level
looks like.



b) A variety of functional components, that represent sets of coherent 
functions.


   Each consists of a series of the basic modules, aggregated together.
   Their function in life is to assist developers of applications that 
embed some level of

   Tuscany capability (including tools, Tuscany itself and so on)

   These are probably not agreed by folk today - we have work to do 
here to define these.
   You demonstrate the problem in your example above - you want Basic 
Web Services separate from
   Web Services Security - but for an end user, the step from using 
the first to using the

   second is a trivial addition of @required=integrity to the SCDL.

   Anyone care to have a go at defining these compoennts?



What physical representations of this layer? A library/collection of 
bundles like Eclispe feature?


c) A small number of large packages aimed at supporting end users in a 
series of environments and

   with a specific set of functionality

   Frankly, the average end user would prefer as few of these as 
possible. 1 is ideal.
   However, I recognise that we are likely to have

[jira] Assigned: (TUSCANY-2298) Incorrect service endpoint when wsdl.service is used with Service webservice binding

2008-06-15 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash reassigned TUSCANY-2298:
---

Assignee: Simon Nash

 Incorrect service endpoint when wsdl.service is used with Service webservice 
 binding
 

 Key: TUSCANY-2298
 URL: https://issues.apache.org/jira/browse/TUSCANY-2298
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension, Java SCA Tomcat 
 Integration
Affects Versions: Java-SCA-1.2
Reporter: Vamsavardhana Reddy
Assignee: Simon Nash
 Fix For: Java-SCA-Next


 Web Service Binding Specification Spec v1.00 - Sec 2.1 - lines 38 to 41:
 38 o Service:
 39 WSDL-namespace-URI#wsdl.service(service-name)
 40 In this case, all the endpoints in the WSDL Service that have equivalent 
 PortTypes with
 41 the SCA service or reference must be available to the SCA service or 
 reference.
 When wsdlElement is of 'Service' type, service must be available on all ports 
 corresponding to the service.  The following is the wsdl I am using for 
 'AService':
 {code}
 ?xml version=1.0 encoding=UTF-8?
 wsdl:definitions 
 targetNamespace=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:soap12=http://schemas.xmlsoap.org/wsdl/soap12/; 
 xmlns:ns0=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; 
 xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; 
 xmlns:ns1=http://org.apache.axis2/xsd; 
 xmlns:wsaw=http://www.w3.org/2006/05/addressing/wsdl; 
 xmlns:xs=http://www.w3.org/2001/XMLSchema; 
 xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; 
 xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/;
   wsdl:types
 xs:schema attributeFormDefault=qualified 
 elementFormDefault=qualified 
 targetNamespace=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:ns=http://wsbinding.vtest.sca.tuscany.apache.org;
 xs:element name=getGreetings
 xs:complexType
 xs:sequence
 xs:element minOccurs=0 name=param0 
 nillable=true type=xs:string/
 /xs:sequence
 /xs:complexType
 /xs:element
 xs:element name=getGreetingsResponse
 xs:complexType
 xs:sequence
 xs:element minOccurs=0 name=return 
 nillable=true type=xs:string/
 /xs:sequence
 /xs:complexType
 /xs:element
 /xs:schema
   /wsdl:types
   wsdl:message name=getGreetingsRequest
 wsdl:part name=parameters element=ns0:getGreetings
 /wsdl:part
   /wsdl:message
   wsdl:message name=getGreetingsResponse
 wsdl:part name=parameters element=ns0:getGreetingsResponse
 /wsdl:part
   /wsdl:message
   wsdl:portType name=AServicePortType
 wsdl:operation name=getGreetings
   wsdl:input message=ns0:getGreetingsRequest 
 wsaw:Action=urn:getGreetings
 /wsdl:input
   wsdl:output message=ns0:getGreetingsResponse 
 wsaw:Action=urn:getGreetingsResponse
 /wsdl:output
 /wsdl:operation
   /wsdl:portType
   wsdl:binding name=AServiceSOAP12Binding type=ns0:AServicePortType
 soap12:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap12:operation soapAction=urn:getGreetings style=document/
   wsdl:input
 soap12:body use=literal/
   /wsdl:input
   wsdl:output
 soap12:body use=literal/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServicePortTypeBinding type=ns0:AServicePortType
 soap:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap:operation soapAction=/
   wsdl:input
 soap:body use=literal/
   /wsdl:input
   wsdl:output
 soap:body use=literal/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServiceHttpBinding type=ns0:AServicePortType
 http:binding verb=POST/
 wsdl:operation name=getGreetings
   http:operation location=AService/getGreetings/
   wsdl:input
 mime:content part=getGreetings type=text/xml/
   /wsdl:input
   wsdl:output
 mime:content part=getGreetings type=text/xml/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServiceSOAP11Binding type=ns0:AServicePortType
 soap:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap:operation soapAction=urn:getGreetings style=document/
   wsdl:input
 soap:body use=literal/
   /wsdl:input
   wsdl:output
 soap:body use=literal/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding

Re: Branching for Release 1.3 was: Re: Release 1.3?

2008-06-15 Thread Simon Nash

Simon Laws wrote:

On Sat, Jun 14, 2008 at 12:11 AM, Luciano Resende [EMAIL PROTECTED]
wrote:


I'm done with the JSR 250 issues, and got a clean build from latest
svn revision.

On Fri, Jun 13, 2008 at 1:34 PM, Simon Laws [EMAIL PROTECTED]
wrote:

On Fri, Jun 13, 2008 at 9:32 PM, Raymond Feng [EMAIL PROTECTED]

wrote:

I just checked in some improvements in the databinding area after a full
clean build. Now I will stay away from the code :-).

Thanks,
Raymond
--
From: Simon Laws [EMAIL PROTECTED]
Sent: Friday, June 13, 2008 11:16 AM
To: tuscany-dev@ws.apache.org
Subject: Branching for Release 1.3 was: Re: Release 1.3?


 I'm just trying to finish up the changes required to unhook the old

domain

modules from the runtime, tests and samples. Then I'm pretty much done
with
things I want to do before cutting the R1.3 branch. I'm planning on

doing

this first thing tomorrow morning UK time. Can you let me know if there
are
changes you are working on that you want to finish before I cut the
branch.
Also if there are changes you have that don't need to go in the branch

can

you hold back for a little while as I get this done. Obviously I'd like

to

keep the trunk as stable as possible for the next 12 hours so if people
have
time to give the code a spin and do a build that would be great.
Particularly after I've checked in the build changes related to domain.
I'll
post when I'm done.

Regards

Simon



Great, thanks Raymond.  I'll do an update and another build. Could you do
the same to try the domain removal changes I checked in?

Simon




--
Luciano Resende
Apache Tuscany Committer
http://people.apache.org/~lresende http://people.apache.org/%7Elresende
http://lresende.blogspot.com/



OK, thanks everyone. I've now taken the branch for 1.3 so feel free to do as
you will with trunk. I'll start the process of tidying release, removing the
dead modules etc. shortly. I've created a Java-SCA-1.3 category in JIRA so
any new issues for the branch in there please.

Thanks

Simon


I checked in a fix for TUSCANY-2298 as r668020.  I did a full build
before and after applying the patch, and everything was OK.

  Simon



[jira] Resolved: (TUSCANY-2298) Incorrect service endpoint when wsdl.service is used with Service webservice binding

2008-06-15 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash resolved TUSCANY-2298.
-

   Resolution: Fixed
Fix Version/s: (was: Java-SCA-Next)
   Java-SCA-1.3

Fixed under r668025 in trunk, and r668020 in the 1.3 branch.

 Incorrect service endpoint when wsdl.service is used with Service webservice 
 binding
 

 Key: TUSCANY-2298
 URL: https://issues.apache.org/jira/browse/TUSCANY-2298
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension, Java SCA Tomcat 
 Integration
Affects Versions: Java-SCA-1.2
Reporter: Vamsavardhana Reddy
Assignee: Simon Nash
 Fix For: Java-SCA-1.3


 Web Service Binding Specification Spec v1.00 - Sec 2.1 - lines 38 to 41:
 38 o Service:
 39 WSDL-namespace-URI#wsdl.service(service-name)
 40 In this case, all the endpoints in the WSDL Service that have equivalent 
 PortTypes with
 41 the SCA service or reference must be available to the SCA service or 
 reference.
 When wsdlElement is of 'Service' type, service must be available on all ports 
 corresponding to the service.  The following is the wsdl I am using for 
 'AService':
 {code}
 ?xml version=1.0 encoding=UTF-8?
 wsdl:definitions 
 targetNamespace=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:soap12=http://schemas.xmlsoap.org/wsdl/soap12/; 
 xmlns:ns0=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; 
 xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; 
 xmlns:ns1=http://org.apache.axis2/xsd; 
 xmlns:wsaw=http://www.w3.org/2006/05/addressing/wsdl; 
 xmlns:xs=http://www.w3.org/2001/XMLSchema; 
 xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; 
 xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/;
   wsdl:types
 xs:schema attributeFormDefault=qualified 
 elementFormDefault=qualified 
 targetNamespace=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:ns=http://wsbinding.vtest.sca.tuscany.apache.org;
 xs:element name=getGreetings
 xs:complexType
 xs:sequence
 xs:element minOccurs=0 name=param0 
 nillable=true type=xs:string/
 /xs:sequence
 /xs:complexType
 /xs:element
 xs:element name=getGreetingsResponse
 xs:complexType
 xs:sequence
 xs:element minOccurs=0 name=return 
 nillable=true type=xs:string/
 /xs:sequence
 /xs:complexType
 /xs:element
 /xs:schema
   /wsdl:types
   wsdl:message name=getGreetingsRequest
 wsdl:part name=parameters element=ns0:getGreetings
 /wsdl:part
   /wsdl:message
   wsdl:message name=getGreetingsResponse
 wsdl:part name=parameters element=ns0:getGreetingsResponse
 /wsdl:part
   /wsdl:message
   wsdl:portType name=AServicePortType
 wsdl:operation name=getGreetings
   wsdl:input message=ns0:getGreetingsRequest 
 wsaw:Action=urn:getGreetings
 /wsdl:input
   wsdl:output message=ns0:getGreetingsResponse 
 wsaw:Action=urn:getGreetingsResponse
 /wsdl:output
 /wsdl:operation
   /wsdl:portType
   wsdl:binding name=AServiceSOAP12Binding type=ns0:AServicePortType
 soap12:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap12:operation soapAction=urn:getGreetings style=document/
   wsdl:input
 soap12:body use=literal/
   /wsdl:input
   wsdl:output
 soap12:body use=literal/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServicePortTypeBinding type=ns0:AServicePortType
 soap:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap:operation soapAction=/
   wsdl:input
 soap:body use=literal/
   /wsdl:input
   wsdl:output
 soap:body use=literal/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServiceHttpBinding type=ns0:AServicePortType
 http:binding verb=POST/
 wsdl:operation name=getGreetings
   http:operation location=AService/getGreetings/
   wsdl:input
 mime:content part=getGreetings type=text/xml/
   /wsdl:input
   wsdl:output
 mime:content part=getGreetings type=text/xml/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServiceSOAP11Binding type=ns0:AServicePortType
 soap:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap:operation soapAction=urn:getGreetings style=document/
   wsdl:input
 soap:body use

Re: Tracking Tuscany extensions, was: Distribution zips and what they contain, was: SCA runtimes

2008-06-12 Thread Simon Nash

Jean-Sebastien Delfino wrote:

Raymond Feng wrote:

Hi,

There are a few patterns we use to determine if a maven module is 
required. Let's take the contribution stuff as an example.


1) contribution contains the interfaces for the contribution model and 
default implementation classes, SPIs and extension points
2) contribution-xml deals with the reading/writing the xml document 
for the sca-contribution.xml
3) contribution-java, contribution-namspace, contribution-resource 
deal with a specific perspective of the contribution, for example, 
namespace, java, resource
4) contribution-osgi, contribution-groovy support specific packaging 
schemes of the SCA contributions.


Please note there is a tree-like dependency graph. I don't think it 
makes sense to merge the siblings into one module. Since an ancestor 
(for example contribution) are shared by mulitple children (-xml, 
-osgi, etc), it also not desirable to merge the common ancestor with 
other modules.


For databinding related modules, we have a similar strcuture:
1) databinding: The base model, SPIs and transformers for various XML 
technologies
2) databinding-jaxb, databinding-sdo, databinding-axiom, ... The 
individual databinding technologies
3) core-databinding: A set of hook code that leverage the databinding 
framework in the invocation chains (data transformation interceptors)


We can use 1 as the data transformation utility in 
binding/implementation or even 3rd party code without 3. We can also 
pick one or more modules from 2.


What I'm trying to point out is that our maven module structure 
reflects the nature of the feature units and dependencies fairly well. 
IMO, each module maps well into an OSGi bundle. IMHO, both the maven 
module and OSGi bundle follow the same principles and the results 
should be consistent.


Thanks,
Raymond



+1 to all that, makes a lot of sense to me!


Sorry, but it doesn't make sense to me.  If there is no user scenario
that can pull in contribution-java but not contribution-resource,
or vice versa, I don't see why we would choose to expose these in
our distro as separate bundles.  For the databindings, there are
user scenarios in which a subset would be needed by different users,
so things like databinding-jaxb and databinding-sdo should be in
separate bundles.  However, core-databinding and databinding would
always be used together, so should be in the same bundle.

There might be a reason for keeping these modules separate in the
maven build, to reflect an internal functional split.  This internal
structure is not relevant to Tuscany users and should not be exposed
to them.

I think our distro should have a bundle for a minimal basic core and
bunldes for additional optional components that can be used in
different combinations.  The granularity of these bundles should be
determined by what possible combinations make sense for people using
the binary distro.

  Simon



Re: Tracking Tuscany extensions, was: Distribution zips and what they contain, was: SCA runtimes

2008-06-12 Thread Simon Nash

Graham Charters wrote:

+1 from me also.  We shouldn't confuse modularity purely with
versioning or whether something can be used on its own.  It's also
about being able to make different combinations of modules to fit
different deployment profiles.


I agree with that, and this should be considered as part of the
use cases that would determine the granularity of the bundles.
If there is no possible deployment profile that can include A and
not B, or vice versa, then I don't see a case for having A and B
as separate bundles.


I think it was Ant who first brought up the distinction between what
make sense in terms of modularity and what makes sense from a user's
perspective.  I think having 1 bundle per Tuscany module and
third-party jar is fine so long as we provide some way of aggregating
those in ways that make sense for how users will consume them.  For
example, I as a user might want to think in terms of a core runtime +
implementation type X and binding Y.  That's three concepts to me, not
123 bundles.


This might be valuable as well as a higher-level grouping of bundles
into different functional profiles.  But it doesn't change the
fundamental question of what is the minimum independently aggregatable
unit of functionality that is encapsulated in a single bundle.

  Simon


Hope this make sense.

Regards, Graham.

2008/6/12 Jean-Sebastien Delfino [EMAIL PROTECTED]:

Raymond Feng wrote:

Hi,

There are a few patterns we use to determine if a maven module is
required. Let's take the contribution stuff as an example.

1) contribution contains the interfaces for the contribution model and
default implementation classes, SPIs and extension points
2) contribution-xml deals with the reading/writing the xml document for
the sca-contribution.xml
3) contribution-java, contribution-namspace, contribution-resource deal
with a specific perspective of the contribution, for example, namespace,
java, resource
4) contribution-osgi, contribution-groovy support specific packaging
schemes of the SCA contributions.

Please note there is a tree-like dependency graph. I don't think it makes
sense to merge the siblings into one module. Since an ancestor (for example
contribution) are shared by mulitple children (-xml, -osgi, etc), it also
not desirable to merge the common ancestor with other modules.

For databinding related modules, we have a similar strcuture:
1) databinding: The base model, SPIs and transformers for various XML
technologies
2) databinding-jaxb, databinding-sdo, databinding-axiom, ... The
individual databinding technologies
3) core-databinding: A set of hook code that leverage the databinding
framework in the invocation chains (data transformation interceptors)

We can use 1 as the data transformation utility in binding/implementation
or even 3rd party code without 3. We can also pick one or more modules from
2.

What I'm trying to point out is that our maven module structure reflects
the nature of the feature units and dependencies fairly well. IMO, each
module maps well into an OSGi bundle. IMHO, both the maven module and OSGi
bundle follow the same principles and the results should be consistent.

Thanks,
Raymond


+1 to all that, makes a lot of sense to me!

--
Jean-Sebastien







Re: Test failure: org.apache.tuscany.sca.vtest.javaapi.apis.callablereference.CallableReferenceTestCase.testGetConversation()

2008-06-12 Thread Simon Nash

Simon Nash wrote:

Raymond Feng wrote:

Hi,

Do any of you see this failure too?


Yes, I see it.  It appears the test is wrong, and this is now showing
up because of my recent check-in r666738 in which I fixed a problem
where the conversation object was incorrectly being returned as null
even though there is an active conversation.

This test appears to be checking for the incorrect behaviour.  The
call b.testNullConversation() creates a conversation, since the
BComponent interface is @Conversational and BComponentImpl has
@Scope(CONVERSATION).  Calling RequestContext.getConversation()
while this method is active should return non-null, not null.


I fixed this test case under r667036.

  Simon


  Simon


Thanks,
Raymond

org.apache.tuscany.sca.vtest.javaapi.apis.callablereference.CallableReferenceTestCase.testGetConversation() 



java.lang.AssertionError:  at org.junit.Assert.fail(Assert.java:69)
 at org.junit.Assert.assertTrue(Assert.java:32)
 at org.junit.Assert.assertNull(Assert.java:256)
 at org.junit.Assert.assertNull(Assert.java:265)
 at 
org.apache.tuscany.sca.vtest.javaapi.apis.callablereference.impl.BComponentImpl.testNullConversation(BComponentImpl.java:67) 


 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 

 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 


 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:133) 

 at 
org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61) 

 at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286) 

 at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154) 


 at $Proxy14.testNullConversation(Unknown Source)
 at 
org.apache.tuscany.sca.vtest.javaapi.apis.callablereference.CallableReferenceTestCase.testGetConversation(CallableReferenceTestCase.java:103) 


 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 

 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 


 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99) 

 at 
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81) 

 at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) 

 at 
org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) 

 at 
org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
 at 
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:75) 

 at 
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:36) 

 at 
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) 

 at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) 

 at 
org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
 at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) 

 at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 

 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) 

 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) 

 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 

 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 











Re: Build issues...

2008-06-12 Thread Simon Nash

Simon Laws wrote:

I'm trying to apply the patches on TUSCANY-2347 so these issues here may be
caused by these changes however

The first problem I see is that I get a NPE in samples/helloworld-bpel.

Caused by: java.lang.NullPointerException
at
org.apache.tuscany.sca.implementation.bpel.xml.BPELPartnerLinkElement.getRolePortType(BPELPartnerLinkElement.java:82)
at
org.apache.tuscany.sca.implementation.bpel.xml.BPELPartnerLinkElement.getMyRolePortType(BPELPartnerLinkElement.java:73)
at
org.apache.tuscany.sca.implementation.bpel.impl.BPELImplementationProcessor.generateComponentType(BPELImplementationProcessor.java:228)
at
org.apache.tuscany.sca.implementation.bpel.impl.BPELImplementationProcessor.resolve(BPELImplementationProcessor.java:152)


I just did a clean checkout and build and I'm not seeing this problem.

  Simon


The failure is because in

private PortType getRolePortType( String theRole ) {
if( theRole == null ) return null;
if ( theRole.equals( pLinkType.getRole1Name() ) ) {

pLinkType is null. The only place that my IDE tells me that this is set is
during BPELDocumentProcessor.resolve()

However there is a line at the top of BPELDocumentProcessor.resolve() which
jumps out if the model is already resolved

if (model == null || !model.isUnresolved())
return;

As far as I can tell the model will always be resolved because
BPELDocumentProcessor.read() does.

processDefinition = indexRead2(artifactURL);
processDefinition.setURI(artifactURI);
processDefinition.setUnresolved(false);

Now this code hasn't changed in the last few days so this must work somehow.
So I'm just putting this out there so that someone can point out the error
of my ways while I investigate;-)

Simon





Re: SVN build process.

2008-06-12 Thread Simon Nash

Simon Laws wrote:

On Thu, Jun 12, 2008 at 10:22 AM, ant elder [EMAIL PROTECTED] wrote:


20 minutes! what sort of super machine do you have, its approaching an hour
on my machine!

I do agree with the principal though. I think one of the problems is its
just getting so big we try to take short cuts by not always building
everything, in the restructuring of future releases thats being talked
about
on other threads maybe we should try to break up the build somehow so some
parts can be more independent parts of the build somehow to make it a bit
smaller and faster.

  ...ant

On Thu, Jun 12, 2008 at 10:15 AM, Giorgio Zoppi [EMAIL PROTECTED]
wrote:


Hi,
i've a proposal for current svn. We could make most of our effort to
make the svn compile.
I suggest to trying a fresh build before committing meaniful things
and after committing.
It's matter of 20 minutes but it saves us more times. If doens't
compile, you might fix or disable
what it doens't compile. For example yesterday the corba tests module
didn't work from a fresh build.


Ciao,
Giorgio.
---
Venceremos adelante, o victoria o muerte!



I agree with Giorgio. We've seen a few breaks recently. I'm sure I'm to
blame for some of them (i need to say that as I'm sure I'll cause one later
having said this). Building the whole thing is getting really onerous but
until we reorg the build we have to do it. We won't address this for 1.3 but
I would like to see this high on the agenda for post 1.3.


+1 for this.  I would like to help make this reorg happen.

The good news is that the full build is running OK now, after my
recent commit to correct a bad test case that started failing
yesterday when I fixed a bug.  Apologies to those who have been
inconvenienced by this.

  Simon



Re: Versioning of Tuscany

2008-06-12 Thread Simon Nash
 some assumption
about the future compatibility of the 3rd party library.  Without
a crystal ball, this will be hard to get right every time.  This
is why I am suggesting a more conservative approach.


[current.version, next.major.version) gives the best starting point IMO. In
past notes about multiple extensions in Tuscany running with different
versions of a 3rd party lib, I am not sure if the examples involved
different major versions of a 3rd party lib. I would really like to
understand real scenarios:

   1. Why do we want two Tuscany extensions to use two different versions of
   a 3rd party library? Would these ever involve two minor versions at the same
   major version level? If so, couldn't both extensions just work with the
   higher of those two - do we really want to force one of them to work with
   the lower version?


This could happen if the Tuscany extensions are using the same 3rd party
library in different ways, such that one extension can't tolerate the
upgrade to a higher level of the library but the other can tolerate it.


   2. Why would an end user want to run Tuscany and an application with two
   different versions of a 3rd party library? Would these ever involve two
   minor versions at the same major version level? If so, what stops both from
   using the higher of the two?


If the user is developing the application herself, that should not occur.
If it's developed by someone else, this situation could apply.  The user
might need Tuscany level X and Other Application level Y.  These might
have different version dependencies on the same 3rd party library.

  Simon





2.  You asked if we should be able to work with bundles from other
projects (e.g. ServiceMix, SpringSource Application Platform).  I
wonder if we're able to learn from these projects to seed our
versioning.  The SpringSource repository, for example, seems to allow
this, although I'm no legal expert [2].

Regards, Graham.

[1] http://commons.apache.org/releases/versioning.html
[2]
http://www.springsource.com/repository/app/faq;jsessionid=3F9467729AC282FE4E08199FDCE40863#q6



2008/6/11 Rajini Sivaram [EMAIL PROTECTED]:

Following on from the discussion on OSGi-enabling third party libraries (
http://markmail.org/message/snltdk2yovr6maq5), this thread addresses the
options for versioning Tuscany bundles and 3rd party libraries

distributed

with Tuscany and the implications of choosing these options. I have put
together some notes on the wiki (


http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Tuscany+Versioning)

There were two outstanding questions from Simon Nash in the previous
discussion which I will summarize here to ensure that they are not lost

in

this discussion.

  1. Why can't we generate import constraints which will suit all
  applications?
  2. *I'm concerned by the assumption here that Tuscany's versions of 3rd
  party bundles will be used both by Tuscany and by applications. An
  application may be using other software as well as Tuscany, and this

other

  software may include its own versions of bundles for javax.servlet or

jaxb.

  If Tuscany requires its versions of these bundles to be used, and the

other

  software requires its versions to be used, this requires the

application

  developer to understand how to resolve any conflicts.*

The answer to 1) relates to how broad (or narrow) version ranges in

imports

are. Broad ranges prevent isolation and reduce scope for side-by-side
execution, narrow ranges prevent class sharing and upgrading to newer
versions. There is more detail with examples on the wiki.

Question 2) is addressed first on the wiki (Figure 1 and Figure 2 show

these

scenarios). I would personally like to follow OSGi best practice and

enable

maximum sharing. There are some cases where we have no choice but to

share

(eg. SDO). I don't believe we can eliminate conflicts altogether - but
following standard practice will make it less complicated for OSGi
developers to resolve conflicts.

Thoughts?


Thank you...

Regards,

Rajini









Re: Tuscany support for Axis 1.4

2008-06-12 Thread Simon Nash

Simon Laws wrote:

On Thu, Jun 12, 2008 at 8:59 AM, ant elder [EMAIL PROTECTED] wrote:


On Mon, Jun 9, 2008 at 10:17 AM, ant elder [EMAIL PROTECTED] wrote:


On Wed, May 14, 2008 at 1:12 PM, Lou Amodeo [EMAIL PROTECTED]

wrote:

Is there a plan for Tuscany to support Axis2 1.4?



Axis2 1.4 and the associated wss4j and rampart releases for 1.4 are  all
out and available in the Maven repositories now. I've still a couple of
issues to resolve to get everything in the build working with 1.4 but

hope

to have those fixed in the next day or 2 so would like to move up to 1.4
then


This isn't going so well so I'm wondering if it would be better to NOT move
up to Axis2 1.4 for the SCA 1.3 release. The are still some minor issues
that are more of an inconvenience eg the way our soap/jms support is
configured causes a big ugly stacktrace in samples that don't incude the
JMS
API now, but the main problem is with ws-security not working yet and when
that is fixed a bug in WSS4J we'll like hit which may need a new release to
fix [1]. How would people feel about staying on Axis2 1.3 for now, i know
there's a dessire to get the latest versions of XmlSchema and AXIOM but
will
it break anything in our 1.3 release if we don't do that?

  ...ant

[1] http://apache.markmail.org/message/2t7kdnf2tw33sphg



Hi

I would err on the side of caution with this. I don't think it's a blocker
for cutting the branch for 1.3 and it sounds like we are still dependent on
the 3rd party WSS4J 1.5.5 release which could take weeks. If this comes out
and we are happy with it in trunk we can consider patching it into the 1.3
branch but I think we should go without it for now.

Regards

Simon


I agree with the cautious approach.

  Simon



Re: Tracking Tuscany extensions, was: Distribution zips and what they contain, was: SCA runtimes

2008-06-12 Thread Simon Nash

ant elder wrote:

On Thu, Jun 12, 2008 at 10:50 AM, Simon Nash [EMAIL PROTECTED] wrote:


Jean-Sebastien Delfino wrote:


Raymond Feng wrote:


Hi,

There are a few patterns we use to determine if a maven module is
required. Let's take the contribution stuff as an example.

1) contribution contains the interfaces for the contribution model and
default implementation classes, SPIs and extension points
2) contribution-xml deals with the reading/writing the xml document for
the sca-contribution.xml
3) contribution-java, contribution-namspace, contribution-resource deal
with a specific perspective of the contribution, for example, namespace,
java, resource
4) contribution-osgi, contribution-groovy support specific packaging
schemes of the SCA contributions.

Please note there is a tree-like dependency graph. I don't think it makes
sense to merge the siblings into one module. Since an ancestor (for example
contribution) are shared by mulitple children (-xml, -osgi, etc), it also
not desirable to merge the common ancestor with other modules.

For databinding related modules, we have a similar strcuture:
1) databinding: The base model, SPIs and transformers for various XML
technologies
2) databinding-jaxb, databinding-sdo, databinding-axiom, ... The
individual databinding technologies
3) core-databinding: A set of hook code that leverage the databinding
framework in the invocation chains (data transformation interceptors)

We can use 1 as the data transformation utility in binding/implementation
or even 3rd party code without 3. We can also pick one or more modules from
2.

What I'm trying to point out is that our maven module structure reflects
the nature of the feature units and dependencies fairly well. IMO, each
module maps well into an OSGi bundle. IMHO, both the maven module and OSGi
bundle follow the same principles and the results should be consistent.

Thanks,
Raymond



+1 to all that, makes a lot of sense to me!

 Sorry, but it doesn't make sense to me.  If there is no user scenario

that can pull in contribution-java but not contribution-resource,
or vice versa, I don't see why we would choose to expose these in
our distro as separate bundles.  For the databindings, there are
user scenarios in which a subset would be needed by different users,
so things like databinding-jaxb and databinding-sdo should be in
separate bundles.  However, core-databinding and databinding would
always be used together, so should be in the same bundle.

There might be a reason for keeping these modules separate in the
maven build, to reflect an internal functional split.  This internal
structure is not relevant to Tuscany users and should not be exposed
to them.

I think our distro should have a bundle for a minimal basic core and
bunldes for additional optional components that can be used in
different combinations.  The granularity of these bundles should be
determined by what possible combinations make sense for people using
the binary distro.

 Simon



I do also agree with this despite what i just posted about how if we use the
launcher approach then the actual module jars don't matter to users :)

One group of users we want for Tuscany are those embedding Tuscany in
other products, so having some aggregated jars that group modules by
functionality would make it easier for them - eg an aggregated jar that
contains the minimal Tuscany core runtime modules, another jar with all the
web services related modules etc. Its really hard for an outsider (or even
insider for that mater) working out what modules are needed for what, look
at the tuscany-geronimo integration code which has never managed to keep up
with Tuscany changes.

I think we could do both, if we go for a new launcher approach and OSGi'ify
everything then it might even make it easier to get the aggregated jars
working well and its not so much overhead for us to maintain both sets of
jars and use which ever are appropriate depending on the circumstances. The
key thing will be to get _consensus_ on it so we're all working together
instead of what we have now which seems to be we each focus on the bits
we're interested in sometimes to the detriment of what other are trying to
do.


Actually this isn't quite what I was saying.  (Sorry that I wasn't clear.)
I'm talking about the lowest level components that we distribute as
binaries, not about larger groupings that are created from these components
to provide convenient aggregations of functionality.  These groupings
might be useful as well, as you are suggesting here and Graham suggested
in his recent post.

So back to the basic components.  I see no value at this level in breaking
things down any lower than a unit of functionality that might be included
or excluded as a whole from some valid scenario.  To give an example,
I wouldn't put everything related to Web services in a single basic
component, because some users might want to create a minimal Web services
configuration without Web services security

Re: Tracking Tuscany extensions, was: Distribution zips and what they contain, was: SCA runtimes

2008-06-12 Thread Simon Nash

ant elder wrote:

On Tue, Jun 10, 2008 at 5:37 PM, Jean-Sebastien Delfino 
[EMAIL PROTECTED] wrote:

I wonder if some of this debate is due to us not all talking about they same
thing so maybe it would help to go back to this proposal:

Here's what I'd like to see as a user:

- a short list of API JARs that I can add to my dev compile/build path

- a single small launcher or bootstrap JAR that takes care of bootstrapping
the Tuscany runtime

- the launcher should detect the presence of installed extensions in a
particular Tuscany installation

- as a user / app developer I should not have to know the list of JARs from
all these extensions.



This is a fundamentally different approach from what we do today where we
have all the Tuscany jars and dependencies on the application classpath. One
of the main reasons for having jars of aggregated modules is to make it
easier for users but if we change to have a runtime launcher which handles
the all the module jars instead of the user then that reason goes away.

To make this clear, today if a user has an Ant build script for their
application that build script needs to hardcode each Tuscany module jar and
dependency jar name so the build script breaks every time we change things.
The tuscany-all and manifest jars help some but as has been pointed they
have other problems. If we change to use the launcher approach then the Ant
build script just needs to hardcode the Tuscany API and launcher bootstrap
jar names and the location of the Tuscany install, and those few names
should not change much over Tuscany releses so the user application doesn't
get broken when we change Tuscany internal things. It doesn't really matter
to the user if the actual Tuscany install folder has 10 jars or 200 jars all
the they care about is the install location and the launcher handles it all
for them. This is similar to developing webapps for Tomcat, to the user all
they care about is the servlet-api jar and where Tomcat is installed, they
don't care whats in the Tomcat server lib directory.


One place where the number of jars definitely does show through is
when retrieving these artifacts from the maven repos.  Also, as
discussed in your other email on this thread, when embedding and
packaging Tuscany in other environments, it will be necessary to
deal with the physical distributed artifacts.


We did use this launcher approach back in M2 and we changed in 0.90 as a
launcher makes things harder for Tuscany developers, for example when
debugging Tuscany internals, but maybe _now_ it would be better to change
back to a launcher approach as it makes things easier for users.


I can see the advantages, and I'm OK with this as long as we can make
the launcher and registry work conveniently in all the embedded
scenarios where Tuscany might be used.

I'm not quite clear on how 3rd party libraries would be handled using
the registry approach.  Would these continue to be taken from the
classpath, or would they be loaded from the registry?  For ease of
integration with user/application code that uses some of the same
libraries, I think it's best to take these from the classpath, except
when running in an OSGi environment.

  Simon


   ...ant





[jira] Assigned: (TUSCANY-2312) Runtime ignores custom callback when using setCallback()

2008-06-11 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash reassigned TUSCANY-2312:
---

Assignee: Simon Nash

 Runtime ignores custom callback when using setCallback()
 

 Key: TUSCANY-2312
 URL: https://issues.apache.org/jira/browse/TUSCANY-2312
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Core Runtime
Affects Versions: Java-SCA-Next
Reporter: Kevin Williams
Assignee: Simon Nash

 The Java CAA spec states:
/**
  * Lines 728-732
  * p
  * By default, the client component of a service is assumed to be the
  * callback service for the bidirectional service. However, it is possible
  * to change the callback by using the ServiceReference.setCallback()
  * method. The object passed as the callback should implement the 
 interface
  * defined for the callback, including any additional SCA semantics on 
 that
  * interface such as its scope and whether or not it is remotable.
  */
 I am getting the following error when I try to provide a custom callback 
 using ServiceReference.setCallback().  I appears that the runtime has 
 injected the client service as the callback rather then the user provided 
 callback resulting in the following exception:
 java.lang.IllegalArgumentException: java.lang.NoSuchMethodException: No 
 matching method for operation callBack is found on class 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.custom.impl.AServiceImpl
   at 
 org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationProvider.createInvoker(JavaImplementationProvider.java:148)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addImplementationInterceptor(RuntimeWireImpl.java:315)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChains(RuntimeWireImpl.java:188)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChains(RuntimeWireImpl.java:109)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChain(RuntimeWireImpl.java:115)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeComponentServiceImpl.getInvocationChain(RuntimeComponentServiceImpl.java:120)
   at 
 org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvider.getInvoker(RuntimeSCAReferenceBindingProvider.java:184)
   at 
 org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvider.createInvoker(RuntimeSCAReferenceBindingProvider.java:197)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addReferenceBindingInterceptor(RuntimeWireImpl.java:228)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChains(RuntimeWireImpl.java:167)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChains(RuntimeWireImpl.java:109)
   at 
 org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.getInvocationChain(JDKInvocationHandler.java:243)
   at 
 org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:91)
   at $Proxy27.callBack(Unknown Source)
   at 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.custom.impl.BServiceImpl.testCallBack(BServiceImpl.java)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:615)
   at 
 org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:109)
   at 
 org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:108)
   at 
 org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
   at 
 org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:108)
   at 
 org.apache.tuscany.sca.core.invocation.CallbackInterfaceInterceptor.invoke(CallbackInterfaceInterceptor.java:43)
   at 
 org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286)
   at 
 org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
   at $Proxy26.testCallBack(Unknown Source)
   at 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.custom.impl.AServiceImpl.testCallback(AServiceImpl.java)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64

[jira] Resolved: (TUSCANY-2312) Runtime ignores custom callback when using setCallback()

2008-06-11 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash resolved TUSCANY-2312.
-

Resolution: Fixed

Fixed in r666738 and r666740.

The commit for r666738 also includes a fix for a problem where a conversational 
service implementation that calls RequestContext.getServiceReference() was 
getting a CallableReference without a conversation object attached.

 Runtime ignores custom callback when using setCallback()
 

 Key: TUSCANY-2312
 URL: https://issues.apache.org/jira/browse/TUSCANY-2312
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Core Runtime
Affects Versions: Java-SCA-Next
Reporter: Kevin Williams
Assignee: Simon Nash

 The Java CAA spec states:
/**
  * Lines 728-732
  * p
  * By default, the client component of a service is assumed to be the
  * callback service for the bidirectional service. However, it is possible
  * to change the callback by using the ServiceReference.setCallback()
  * method. The object passed as the callback should implement the 
 interface
  * defined for the callback, including any additional SCA semantics on 
 that
  * interface such as its scope and whether or not it is remotable.
  */
 I am getting the following error when I try to provide a custom callback 
 using ServiceReference.setCallback().  I appears that the runtime has 
 injected the client service as the callback rather then the user provided 
 callback resulting in the following exception:
 java.lang.IllegalArgumentException: java.lang.NoSuchMethodException: No 
 matching method for operation callBack is found on class 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.custom.impl.AServiceImpl
   at 
 org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationProvider.createInvoker(JavaImplementationProvider.java:148)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addImplementationInterceptor(RuntimeWireImpl.java:315)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChains(RuntimeWireImpl.java:188)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChains(RuntimeWireImpl.java:109)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChain(RuntimeWireImpl.java:115)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeComponentServiceImpl.getInvocationChain(RuntimeComponentServiceImpl.java:120)
   at 
 org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvider.getInvoker(RuntimeSCAReferenceBindingProvider.java:184)
   at 
 org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvider.createInvoker(RuntimeSCAReferenceBindingProvider.java:197)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addReferenceBindingInterceptor(RuntimeWireImpl.java:228)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChains(RuntimeWireImpl.java:167)
   at 
 org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChains(RuntimeWireImpl.java:109)
   at 
 org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.getInvocationChain(JDKInvocationHandler.java:243)
   at 
 org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:91)
   at $Proxy27.callBack(Unknown Source)
   at 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.custom.impl.BServiceImpl.testCallBack(BServiceImpl.java)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:615)
   at 
 org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:109)
   at 
 org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:108)
   at 
 org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
   at 
 org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:108)
   at 
 org.apache.tuscany.sca.core.invocation.CallbackInterfaceInterceptor.invoke(CallbackInterfaceInterceptor.java:43)
   at 
 org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286)
   at 
 org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
   at $Proxy26.testCallBack(Unknown Source

[jira] Commented: (TUSCANY-2247) vtest content for Java API spec - Conversation/Async

2008-06-11 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-2247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12604274#action_12604274
 ] 

Simon Nash commented on TUSCANY-2247:
-

I have fixed TUSCANY-2312 now.

 vtest content for Java API spec - Conversation/Async 
 -

 Key: TUSCANY-2247
 URL: https://issues.apache.org/jira/browse/TUSCANY-2247
 Project: Tuscany
  Issue Type: Test
  Components: Java SCA Verification Tests
Affects Versions: Java-SCA-Next
Reporter: Kevin Williams
Assignee: Kevin Williams
 Fix For: Java-SCA-Next


 Add vtest content for Java API/Annotation Spec section 1.6 - Conversations 
 and Async

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: Tracking Tuscany extensions, was: Distribution zips and what they contain, was: SCA runtimes

2008-06-11 Thread Simon Nash

Comments inline.

  Simon

Rajini Sivaram wrote:

On 6/10/08, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:

ant elder wrote:


On Tue, Jun 10, 2008 at 5:37 PM, Jean-Sebastien Delfino 
[EMAIL PROTECTED] wrote:

Simon Nash wrote:

ant elder wrote:

On Tue, Jun 10, 2008 at 3:02 AM, Jean-Sebastien Delfino 

[EMAIL PROTECTED] wrote:

Jean-Sebastien Delfino wrote:

I'd like to discuss the following: What distro Zips are we building

and
what do they contain?

I think we could improve our distro scheme to provide:
- smaller packages
- easier for people to find what they need

I was thinking about the following binary distro zips:

- tuscany-core.zip - The base that everybody needs.
 core assembly model and runtime
 Java APIs, Java components

- tuscany-web.zip - For WS and Web developers
 WS binding, Web 2.0 bindings, Scripting components, Widget
components

- tuscany-jee.zip - For JEE app integration
 EJB, RMI and JMS bindings, Spring components

- tuscany-process.zip - For process development
 BPEL and XQuery components

- tuscany-all.zip - all of the above

Note that I'm not trying to tackle release cycles and the potential
for
releasing the above zips independently in this discussion and I'm

assuming

that we release all of the above together.


I'm also assuming that the relevant samples are included in each zip.

 This email was from 1/22/08, generated a lot of discussion for about
3


weeks, lots of opinions, no conclusion, no commits :)


No commits as we haven't found much consensus yet.

 I still think the same as what I had posted then, plus additional
ideas:


- Use OSGi exports/imports to export clean SPIs, hide internals, and

refine

the contents of the distros and their dependencies.

Disclaimer - Please don't get me wrong I'm not saying that one distro
==

one

OSGi bundle, as I've already said several times on the list that the

big-OSGi-bundle approach didn't make sense to me :) I just think that
declaring and enforcing clean dependencies using OSGi will help us
refine
the contents of each distro.

 The term enforcing seems to suggest that there might be an OSGi


dependency for the Tuscany runtime.  I don't know if this was

intended.  I think the right approach is to have a Tuscany+OSGi
runtime (as we are building in itest\osgi-tuscany) which would
actually do enforcement, and a non-OSGi Tuscany runtime in which
the exports/imports are present in the jars but not enforced.

Huh, Yes sure, we'd enforce OSGi rules when running in an OSGi

environment...


What would be the granularity of these OSGi bundles?  If the bundles

are the current maven modules, I think we will find a number of
classes that need to be exported even though these classes are not
considered part of the SPI or API that the module provides.
To resolve this I see the following options:
 a) Export more than we really believe is correct.  This
  leaves us in the current unsatisfactory position of exposing
  unwanted implementation internals.
 b) Combine multiple maven modules with a close implementation
  affinity into a single OSGi bundle, and only expose true
  APIs or SPIs from these bundles.
 c) Refactor the code to remove dependencies on internals of other
  modules, and create new SPIs or APIs when this isn't possible.

I believe a combination of b) and c) is the best approach.

We've already rehashed this (and disagreed on this) in several other

threads, where I've already given my opinion:
- 1 bundle per module
- clean API/SPI imports/exports



By 1 bundle per module do you mean any sort bundled jar combining
multiple
of our tuscany/java/sca/module jars is not worth pursuing?

  ...ant



I think that the right design is one bundle per maven module.





From an OSGi point of view I would like to ensure that we will continue to

have one bundle per 3rd party jar and that these will not be aggregated
regardless of how the distribution is zipped up.

As for one bundle per maven module, I think there are pros and cons for
finely grained and coarsely grained bundles, and it is really just a matter
of preference. Since we anyway have nearly 150 3rd party bundles/jars
anyway, I personally dont see any problem with one bundle per module.


I have a different view on this.  See below.


I don't think that aggregating multiple modules into a single bundle makes

much sense, or they should be aggregated in a single Maven module in the
first place.



IMHO modularizing Tuscany is about code quality and maintenance - something
internal benefitting Tuscany developers. So we have 100 modules based on
the developer's view of Tuscany internals. That does not necessarily mean
that end users have to deal with 100 bundles. If 20 core modules are very
tightly coupled together and will only operate with each other, as far as an
end user is concerned, this could as well be one bundle. Can a Tuscany user
combine assembly-xml version 1.3.0 with assembly version 1.3.1? Or even
implementation-java with implementation-java-runtime

Re: Test failure: org.apache.tuscany.sca.vtest.javaapi.apis.callablereference.CallableReferenceTestCase.testGetConversation()

2008-06-11 Thread Simon Nash

Raymond Feng wrote:

Hi,

Do any of you see this failure too?


Yes, I see it.  It appears the test is wrong, and this is now showing
up because of my recent check-in r666738 in which I fixed a problem
where the conversation object was incorrectly being returned as null
even though there is an active conversation.

This test appears to be checking for the incorrect behaviour.  The
call b.testNullConversation() creates a conversation, since the
BComponent interface is @Conversational and BComponentImpl has
@Scope(CONVERSATION).  Calling RequestContext.getConversation()
while this method is active should return non-null, not null.

  Simon


Thanks,
Raymond

org.apache.tuscany.sca.vtest.javaapi.apis.callablereference.CallableReferenceTestCase.testGetConversation()

java.lang.AssertionError: 
 at org.junit.Assert.fail(Assert.java:69)

 at org.junit.Assert.assertTrue(Assert.java:32)
 at org.junit.Assert.assertNull(Assert.java:256)
 at org.junit.Assert.assertNull(Assert.java:265)
 at 
org.apache.tuscany.sca.vtest.javaapi.apis.callablereference.impl.BComponentImpl.testNullConversation(BComponentImpl.java:67)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:133)
 at 
org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
 at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286)
 at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
 at $Proxy14.testNullConversation(Unknown Source)
 at 
org.apache.tuscany.sca.vtest.javaapi.apis.callablereference.CallableReferenceTestCase.testGetConversation(CallableReferenceTestCase.java:103)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
 at 
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
 at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
 at 
org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
 at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
 at 
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:75)
 at 
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:36)
 at 
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
 at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
 at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
 at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
 at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
 at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)






Re: Test failure: CallBackSetCallbackConvTestCase

2008-06-11 Thread Simon Nash

Raymond Feng wrote:

There are some mismatching in the exceptions. I fixed it under r666812.


Thanks for fixing this.  There are also some deeper problems with
various wrong paths being taken through this test case.  I am
investigating and I will check in a further update when I am confident
that my changes are OK, probably tomorrow.

  Simon


Thanks,
Raymond
--
From: Raymond Feng [EMAIL PROTECTED]
Sent: Wednesday, June 11, 2008 11:54 AM
To: tuscany-dev@ws.apache.org
Subject: Test failure: CallBackSetCallbackConvTestCase


Hi, Simon Nash.

I'm seeing the following failure after I refreshed from r666738 (your 
fix for TUSCANY-2312).


Thanks,
Raymond

---
T E S T S
---
Running org.apache.tuscany.sca.test.CallBackSetCallbackConvTestCase
CallBackSetCallbackConvServiceImpl message received: Knock Knock
Entering CallBackSetCallbackObjectCallback callBackMessage: Who's There
Entering callback increment: This should do it
CallBackSetCallbackConvServiceImpl response sent
CallBackSetCallbackConvServiceImpl message received: Knock Knock
java.lang.reflect.UndeclaredThrowableException
   at $Proxy12.callBackMessage(Unknown Source)
   at 
org.apache.tuscany.sca.test.CallBackSetCallbackConvServiceImpl.knockKnock(CallBackSetCallbackConvServiceImpl.java:43) 


   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 

   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 


   at java.lang.reflect.Method.invoke(Method.java:597)
   at 
org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:128) 

   at 
org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61) 

   at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286) 

   at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154) 


   at $Proxy11.knockKnock(Unknown Source)
   at 
org.apache.tuscany.sca.test.CallBackSetCallbackConvClientImpl.test8(CallBackSetCallbackConvClientImpl.java:108) 

   at 
org.apache.tuscany.sca.test.CallBackSetCallbackConvClientImpl.run(CallBackSetCallbackConvClientImpl.java:59) 


   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 

   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 


   at java.lang.reflect.Method.invoke(Method.java:597)
   at 
org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:128) 

   at 
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:108) 

   at 
org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61) 

   at 
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:108) 

   at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286) 

   at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154) 


   at $Proxy10.run(Unknown Source)
   at 
org.apache.tuscany.sca.test.CallBackSetCallbackConvTestCase.testCallBackSetCallback(CallBackSetCallbackConvTestCase.java:31) 


   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 

   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 


   at java.lang.reflect.Method.invoke(Method.java:597)
   at junit.framework.TestCase.runTest(TestCase.java:168)
   at junit.framework.TestCase.runBare(TestCase.java:134)
   at junit.framework.TestResult$1.protect(TestResult.java:110)
   at junit.framework.TestResult.runProtected(TestResult.java:128)
   at junit.framework.TestResult.run(TestResult.java:113)
   at junit.framework.TestCase.run(TestCase.java:124)
   at junit.framework.TestSuite.runTest(TestSuite.java:232)
   at junit.framework.TestSuite.run(TestSuite.java:227)
   at 
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35) 

   at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62) 

   at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138) 

   at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125

Re: Release 1.3?

2008-06-10 Thread Simon Nash

Mike Edwards wrote:

Simon Laws wrote:
It's been a little while now since we did our 1.2 release. Since then 
there
has been lots of activity and of course we have graduated. It feels 
like the
right time to do a 1.3 release. Looking back at the mail list over the 
last
couple of months there are quite a few candidates for inclusion that I 
can

see;

Better BPEL support
Improvements to the domain manager app
Improved runtime Java2WSDL processing
Support for validation monitoring
Databinding improvements
Performance improvements
JSR250 annotation support
OSGi support improvements and a simple OSGi runtime test
Java 2 security enablement
Quite a few more tests for various parts of the runtime
Lots of JIRA fixes.
and of course we can remove the incubating assignment and drum up a 
bit of

publicity for our TLP graduation

I'd also like to have a bit of a tidy up for this release and remove 
the old

domain modules we are no longer using (I'll post on this separately)

What else has been added or changed?

I think the things I would like to get done can be closed off next week
ready to cut a branch.

Thoughts?

Simon


Yes, I give a +1.

BPEL is looking a lot better now.  I'd like to add a couple of more 
sophisticated itests/samples as well and the release will be a good spur.



Yours,  Mike.


I think this is a good time to do a 1.3 release.  This would make
the new runtime Java2WSDL generation available to Tuscany users,
and resolve a number of issues with the previous code generation
that used Axis2.  The other improvements listed are valuable as well.

  Simon



Tuscany overriding of Axis2 code

2008-06-10 Thread Simon Nash

I just committed r666041 which removes the copied processListService()
code from TuscanyListingAgent, and instead uses an override of
extractServiceName() to get the necessary Tuscany-specific behaviour.

This was needed because the TuscanyListingAgent.processListService()
code was older than the base code in Axis2 1.3 that it was overriding,
and this was causing problems with ?wsdl for WSDL files that used
wsdl:import.

When we move up to Axis2 1.4, it would be a good idea to check all
the Tuscany overrides of Axis2 code to make sure there aren't any
other similar cases.

  Simon



WSDL generation when binding.ws specifies a WSDL file

2008-06-10 Thread Simon Nash

The SCA Web Service binding spec says that a WSDL document should
be generated for a service that uses binding.ws.  This applies
whether or not the binding.ws element specifies an existing
WSDL document.  If the binding.ws element specifies an existing
WSDL document, the generated WSDL document contains wsdl:import
statements referring to the existing WSDL document.

Currently Tuscany does not do this, but reuses the existing WSDL
document and may augment it with additional service, port, or
binding information.  This can cause problems, such as the problem
described in TUSCANY-2323 where the existing document is lacking
one of the prefixes required by the elements that are added.
It also leads to a confusing mix of user-written code and
generated code within the same document, and prevents Tuscany
from using the target namespaces for WSDL services, ports and
bindings that are specified by SCA.

I would like to fix TUSCANY-2323, as well as these other issues,
by implementing the mechanism described in the spec for generating
a new WSDL document in all cases.  So far I have prototyped a
simple case of this and got it working.  If anyone has concerns
about this approach, please indicate these before I get too much
further down this path.

Thanks,

  Simon


Re: Distribution zips and what they contain, was: SCA runtimes

2008-06-10 Thread Simon Nash

ant elder wrote:

On Tue, Jun 10, 2008 at 3:02 AM, Jean-Sebastien Delfino 
[EMAIL PROTECTED] wrote:

Jean-Sebastien Delfino wrote:

I'd like to discuss the following: What distro Zips are we building and
what do they contain?

I think we could improve our distro scheme to provide:
- smaller packages
- easier for people to find what they need

I was thinking about the following binary distro zips:

- tuscany-core.zip - The base that everybody needs.
 core assembly model and runtime
 Java APIs, Java components

- tuscany-web.zip - For WS and Web developers
 WS binding, Web 2.0 bindings, Scripting components, Widget components

- tuscany-jee.zip - For JEE app integration
 EJB, RMI and JMS bindings, Spring components

- tuscany-process.zip - For process development
 BPEL and XQuery components

- tuscany-all.zip - all of the above

Note that I'm not trying to tackle release cycles and the potential for
releasing the above zips independently in this discussion and I'm

assuming

that we release all of the above together.

I'm also assuming that the relevant samples are included in each zip.


This email was from 1/22/08, generated a lot of discussion for about 3
weeks, lots of opinions, no conclusion, no commits :)



No commits as we haven't found much consensus yet.


I still think the same as what I had posted then, plus additional ideas:

- Use OSGi exports/imports to export clean SPIs, hide internals, and

refine

the contents of the distros and their dependencies.

Disclaimer - Please don't get me wrong I'm not saying that one distro ==

one

OSGi bundle, as I've already said several times on the list that the
big-OSGi-bundle approach didn't make sense to me :) I just think that
declaring and enforcing clean dependencies using OSGi will help us refine
the contents of each distro.


The term enforcing seems to suggest that there might be an OSGi
dependency for the Tuscany runtime.  I don't know if this was
intended.  I think the right approach is to have a Tuscany+OSGi
runtime (as we are building in itest\osgi-tuscany) which would
actually do enforcement, and a non-OSGi Tuscany runtime in which
the exports/imports are present in the jars but not enforced.

What would be the granularity of these OSGi bundles?  If the bundles
are the current maven modules, I think we will find a number of
classes that need to be exported even though these classes are not
considered part of the SPI or API that the module provides.
To resolve this I see the following options:
 a) Export more than we really believe is correct.  This
leaves us in the current unsatisfactory position of exposing
unwanted implementation internals.
 b) Combine multiple maven modules with a close implementation
affinity into a single OSGi bundle, and only expose true
APIs or SPIs from these bundles.
 c) Refactor the code to remove dependencies on internals of other
modules, and create new SPIs or APIs when this isn't possible.

I believe a combination of b) and c) is the best approach.


- Instead of a tuscany-manifest JAR or tuscany-all JAR, use an extension
registry mechanism (what we have now in Tuscany or better a combination of
what we have now and the Eclipse Equinox registry for example) to detect
which pieces are installed and activate their capabilities.



Can you say a bit more about what an extension registry mechanism would
look like?

What the tuscany-all/manifest jar are trying to do is to have users not need
to know about the internal makeup of Tuscany. So they can simply use
tuscany-all and avoid needing to know about all the dozens of different
Tuscany modules and their dependencies, and that should keep working over
many Tuscany releases whereas as we keep adding/deleting/changing the
modules we keep breaking user builds for each Tuscany release if they refer
to the individual modules. Maybe the granularity isn't quite right yet and
we need something in between the all jar and all the individual modules.

Is there much agreement that avoiding users needing to know about the
internal Tuscany modules is a Good Thing?


Yes, I think this is important.  Ideally the Tuscany core runtime
would figure out which pieces are needed for the domain configuration
and load these pieces automatically.

  Simon


  ...ant





[jira] Commented: (TUSCANY-2323) Error generating WSDL when the original wsdl file used to specify the service interface does not use soap namespaces

2008-06-10 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-2323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12604079#action_12604079
 ] 

Simon Nash commented on TUSCANY-2323:
-

This problem is caused by Tuscany not implementing the SCA Web Service binding 
specification correctly.  This spec calls for the generation of a new WSDL 
document for an SCA service with a binding.ws element, even if this 
binding.ws element specifies an existing WSDL document.  Any WSDL portType or 
binding specified in an existing WSDL document should be imported by the 
generated WSDL document.  The contents of the generated WSDL document are 
entirely under Tuscany's control, and therefore Tuscany can ensure that it 
includes all necessary prefixes.

 Error generating WSDL when the original wsdl file used to specify the service 
 interface does not use soap namespaces
 

 Key: TUSCANY-2323
 URL: https://issues.apache.org/jira/browse/TUSCANY-2323
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension
Affects Versions: Java-SCA-1.2
Reporter: Vamsavardhana Reddy
 Fix For: Java-SCA-Next

 Attachments: TUSCANY-2323-recreate.patch


 I am getting an error with generating wsdl using ?wsdl on the url for 
 webservice when the original wsdl file used to specify the service interface 
 does not use soap namespaces.  The following is the wsdl file:
 ?xml version=1.0 encoding=UTF-8?
 wsdl:definitions targetNamespace=http://helloworld;
   xmlns:tns=http://helloworld;
   xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/;
   xmlns:xsd=http://www.w3.org/2001/XMLSchema;
   name=helloworld
 wsdl:types
 schema elementFormDefault=qualified 
 targetNamespace=http://helloworld; xmlns=http://www.w3.org/2001/XMLSchema;
 element name=getGreetings
 complexType
 sequence
 element name=name type=xsd:string/
 /sequence
 /complexType
 /element
 element name=getGreetingsResponse
 complexType
 sequence
 element name=getGreetingsReturn type=xsd:string/
 /sequence
 /complexType
 /element
 
 /schema
 /wsdl:types
 wsdl:message name=getGreetingsRequest
 wsdl:part element=tns:getGreetings name=parameters/
 /wsdl:message
 wsdl:message name=getGreetingsResponse
 wsdl:part element=tns:getGreetingsResponse name=parameters/
 /wsdl:message
 wsdl:portType name=HelloWorld
 wsdl:operation name=getGreetings
 wsdl:input message=tns:getGreetingsRequest 
 name=getGreetingsRequest/
 wsdl:output message=tns:getGreetingsResponse 
 name=getGreetingsResponse/
 /wsdl:operation
 /wsdl:portType
 /wsdl:definitions
 The following is the composite:
 ?xml version=1.0 encoding=UTF-8?
 composite xmlns=http://www.osoa.org/xmlns/sca/1.0;
   targetNamespace=http://helloworld;
   xmlns:hw=http://helloworld;
 name=helloworldws
 component name=HelloWorldServiceComponent
 implementation.java class=helloworld.HelloWorldImpl /
   service name=HelloWorldService
   interface.wsdl 
 interface=http://helloworld#wsdl.interface(HelloWorld) /
   binding.ws uri=http://localhost:8085/HelloWorldService/
   /service
 /component
 /composite
 The error I am seeing is given below:
 May 16, 2008 12:13:52 AM org.apache.catalina.core.StandardWrapperValve invoke
 SEVERE: Servlet.service() for servlet /HelloWorldService threw exception
 org.apache.axis2.AxisFault: WSDLException: faultCode=OTHER_ERROR: Can't find 
 prefix for 'http://schemas.xmlsoap.org/wsdl/soap/'. Namespace prefixes must 
 be set on the Definition object using the addNamespace(...) method.
   at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
   at 
 org.apache.axis2.description.AxisService.printUserWSDL(AxisService.java:936)
   at 
 org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1056)
   at 
 org.apache.tuscany.sca.binding.ws.axis2.TuscanyListingAgent.processListService(TuscanyListingAgent.java:142)
   at 
 org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceServlet.doGet(Axis2ServiceServlet.java:257)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
   at 
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at 
 org.apache.catalina.core.ApplicationFilterChain.doFilter

[jira] Assigned: (TUSCANY-2323) Error generating WSDL when the original wsdl file used to specify the service interface does not use soap namespaces

2008-06-10 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2323?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash reassigned TUSCANY-2323:
---

Assignee: Simon Nash

 Error generating WSDL when the original wsdl file used to specify the service 
 interface does not use soap namespaces
 

 Key: TUSCANY-2323
 URL: https://issues.apache.org/jira/browse/TUSCANY-2323
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension
Affects Versions: Java-SCA-1.2
Reporter: Vamsavardhana Reddy
Assignee: Simon Nash
 Fix For: Java-SCA-Next

 Attachments: TUSCANY-2323-recreate.patch


 I am getting an error with generating wsdl using ?wsdl on the url for 
 webservice when the original wsdl file used to specify the service interface 
 does not use soap namespaces.  The following is the wsdl file:
 ?xml version=1.0 encoding=UTF-8?
 wsdl:definitions targetNamespace=http://helloworld;
   xmlns:tns=http://helloworld;
   xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/;
   xmlns:xsd=http://www.w3.org/2001/XMLSchema;
   name=helloworld
 wsdl:types
 schema elementFormDefault=qualified 
 targetNamespace=http://helloworld; xmlns=http://www.w3.org/2001/XMLSchema;
 element name=getGreetings
 complexType
 sequence
 element name=name type=xsd:string/
 /sequence
 /complexType
 /element
 element name=getGreetingsResponse
 complexType
 sequence
 element name=getGreetingsReturn type=xsd:string/
 /sequence
 /complexType
 /element
 
 /schema
 /wsdl:types
 wsdl:message name=getGreetingsRequest
 wsdl:part element=tns:getGreetings name=parameters/
 /wsdl:message
 wsdl:message name=getGreetingsResponse
 wsdl:part element=tns:getGreetingsResponse name=parameters/
 /wsdl:message
 wsdl:portType name=HelloWorld
 wsdl:operation name=getGreetings
 wsdl:input message=tns:getGreetingsRequest 
 name=getGreetingsRequest/
 wsdl:output message=tns:getGreetingsResponse 
 name=getGreetingsResponse/
 /wsdl:operation
 /wsdl:portType
 /wsdl:definitions
 The following is the composite:
 ?xml version=1.0 encoding=UTF-8?
 composite xmlns=http://www.osoa.org/xmlns/sca/1.0;
   targetNamespace=http://helloworld;
   xmlns:hw=http://helloworld;
 name=helloworldws
 component name=HelloWorldServiceComponent
 implementation.java class=helloworld.HelloWorldImpl /
   service name=HelloWorldService
   interface.wsdl 
 interface=http://helloworld#wsdl.interface(HelloWorld) /
   binding.ws uri=http://localhost:8085/HelloWorldService/
   /service
 /component
 /composite
 The error I am seeing is given below:
 May 16, 2008 12:13:52 AM org.apache.catalina.core.StandardWrapperValve invoke
 SEVERE: Servlet.service() for servlet /HelloWorldService threw exception
 org.apache.axis2.AxisFault: WSDLException: faultCode=OTHER_ERROR: Can't find 
 prefix for 'http://schemas.xmlsoap.org/wsdl/soap/'. Namespace prefixes must 
 be set on the Definition object using the addNamespace(...) method.
   at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
   at 
 org.apache.axis2.description.AxisService.printUserWSDL(AxisService.java:936)
   at 
 org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1056)
   at 
 org.apache.tuscany.sca.binding.ws.axis2.TuscanyListingAgent.processListService(TuscanyListingAgent.java:142)
   at 
 org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceServlet.doGet(Axis2ServiceServlet.java:257)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
   at 
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at 
 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at 
 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at 
 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
   at 
 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
   at 
 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at 
 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at 
 org.apache.catalina.connector.CoyoteAdapter.service

[jira] Commented: (TUSCANY-2323) Error generating WSDL when the original wsdl file used to specify the service interface does not use soap namespaces

2008-06-10 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-2323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12604081#action_12604081
 ] 

Simon Nash commented on TUSCANY-2323:
-

I checked in r666390 which fixes the symptoms reported.  With this change, the 
patched test passes.  I am leaving this JIRA as unresolved until I have 
committed an unpatched test.

 Error generating WSDL when the original wsdl file used to specify the service 
 interface does not use soap namespaces
 

 Key: TUSCANY-2323
 URL: https://issues.apache.org/jira/browse/TUSCANY-2323
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension
Affects Versions: Java-SCA-1.2
Reporter: Vamsavardhana Reddy
Assignee: Simon Nash
 Fix For: Java-SCA-Next

 Attachments: TUSCANY-2323-recreate.patch


 I am getting an error with generating wsdl using ?wsdl on the url for 
 webservice when the original wsdl file used to specify the service interface 
 does not use soap namespaces.  The following is the wsdl file:
 ?xml version=1.0 encoding=UTF-8?
 wsdl:definitions targetNamespace=http://helloworld;
   xmlns:tns=http://helloworld;
   xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/;
   xmlns:xsd=http://www.w3.org/2001/XMLSchema;
   name=helloworld
 wsdl:types
 schema elementFormDefault=qualified 
 targetNamespace=http://helloworld; xmlns=http://www.w3.org/2001/XMLSchema;
 element name=getGreetings
 complexType
 sequence
 element name=name type=xsd:string/
 /sequence
 /complexType
 /element
 element name=getGreetingsResponse
 complexType
 sequence
 element name=getGreetingsReturn type=xsd:string/
 /sequence
 /complexType
 /element
 
 /schema
 /wsdl:types
 wsdl:message name=getGreetingsRequest
 wsdl:part element=tns:getGreetings name=parameters/
 /wsdl:message
 wsdl:message name=getGreetingsResponse
 wsdl:part element=tns:getGreetingsResponse name=parameters/
 /wsdl:message
 wsdl:portType name=HelloWorld
 wsdl:operation name=getGreetings
 wsdl:input message=tns:getGreetingsRequest 
 name=getGreetingsRequest/
 wsdl:output message=tns:getGreetingsResponse 
 name=getGreetingsResponse/
 /wsdl:operation
 /wsdl:portType
 /wsdl:definitions
 The following is the composite:
 ?xml version=1.0 encoding=UTF-8?
 composite xmlns=http://www.osoa.org/xmlns/sca/1.0;
   targetNamespace=http://helloworld;
   xmlns:hw=http://helloworld;
 name=helloworldws
 component name=HelloWorldServiceComponent
 implementation.java class=helloworld.HelloWorldImpl /
   service name=HelloWorldService
   interface.wsdl 
 interface=http://helloworld#wsdl.interface(HelloWorld) /
   binding.ws uri=http://localhost:8085/HelloWorldService/
   /service
 /component
 /composite
 The error I am seeing is given below:
 May 16, 2008 12:13:52 AM org.apache.catalina.core.StandardWrapperValve invoke
 SEVERE: Servlet.service() for servlet /HelloWorldService threw exception
 org.apache.axis2.AxisFault: WSDLException: faultCode=OTHER_ERROR: Can't find 
 prefix for 'http://schemas.xmlsoap.org/wsdl/soap/'. Namespace prefixes must 
 be set on the Definition object using the addNamespace(...) method.
   at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
   at 
 org.apache.axis2.description.AxisService.printUserWSDL(AxisService.java:936)
   at 
 org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1056)
   at 
 org.apache.tuscany.sca.binding.ws.axis2.TuscanyListingAgent.processListService(TuscanyListingAgent.java:142)
   at 
 org.apache.tuscany.sca.binding.ws.axis2.Axis2ServiceServlet.doGet(Axis2ServiceServlet.java:257)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
   at 
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at 
 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at 
 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at 
 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
   at 
 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128

Re: Build failure in helloworld-bpel sample

2008-06-09 Thread Simon Nash

Matthieu Riou wrote:

I guess that would be me as the fix I did outlined another issue (as
described in the thread Luciano pointed at). So you guys expect to always
have all the tests passing on trunk all the time?


Yes, we do try to keep the tests passing.  On the rare occasions where a
change breaks a test for some reason, and the problem can't be resolved
at the time the change is checked in, we would disable the test so
that a full build can still run cleanly, and post to the list or open
a JIRA to alert others to the issue.

  Simon


Cheers,
Matthieu

On Thu, Jun 5, 2008 at 12:57 PM, Mike Edwards 
[EMAIL PROTECTED] wrote:


Folks,

Someone has updated the code in SVN since this afternoon - so I am
investigating.


Yours,  Mike.


Mike Edwards wrote:


Simon,

I did an SVN update and build of Tuscany earlier this afternoon and I did
not see this failure.

The code currently checked in to the Tuscany SVN was fixed up to avoid the
error listed by Luciano and certainly seems to work for me.

Is anyone else seeing the same problem that Simon is getting?


Yours,  Mike.

Simon Nash wrote:


I did a recent svn update and rebuild and I'm seeing the following test
error from the helloworld-bpel sample.  Are other people seeing this?
Any ideas?

 Simon

Running helloworld.BPELHelloWorldTestCase
Completed calling new Process deployment code...
Invoking bpel component : {http://tuscany.apache.org
}helloPartnerLink#hello
Creating invocation message:
  args.: ?xml version=1.0 encoding=UTF-8?
hello xmlns=
http://tuscany.apache.org/implementation/bpel/example/helloworld.w
sdlmessageHello/message/hello
  message..:?xml version=1.0 encoding=UTF-8?
messageTestParthello xmlns=
http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello/message/hello/TestPart/message

 Invocation status:RESPONSE
 Response:
?xml version=1.0 encoding=UTF-8?
messageTestParthello xmlns=
http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello
World/message/hello/TestPart/messa
ge
 Response:
?xml version=1.0 encoding=UTF-8?
messageTestParthello xmlns=
http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello
World/message/hello/TestPart/messa
ge
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 9.512 sec
 FA
ILURE!
testInvoke(helloworld.BPELHelloWorldTestCase)  Time elapsed: 9.494 sec
  ERRO
R!
junit.framework.ComparisonFailure: expected:Hello World but was:
   at junit.framework.Assert.assertEquals(Assert.java:81)
   at junit.framework.Assert.assertEquals(Assert.java:87)
   at
helloworld.BPELHelloWorldTestCase.testInvoke(BPELHelloWorldTestCase.j
ava:57)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at junit.framework.TestCase.runTest(TestCase.java:154)
   at junit.framework.TestCase.runBare(TestCase.java:127)
   at junit.framework.TestResult$1.protect(TestResult.java:106)
   at junit.framework.TestResult.runProtected(TestResult.java:124)
   at junit.framework.TestResult.run(TestResult.java:109)
   at junit.framework.TestCase.run(TestCase.java:118)
   at junit.framework.TestSuite.runTest(TestSuite.java:208)
   at junit.framework.TestSuite.run(TestSuite.java:203)
   at
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.
java:35)
   at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
java:62)
   at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
tSet(AbstractDirectoryTestSuite.java:138)
   at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
stractDirectoryTestSuite.java:125)
   at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
refireBooter.java:308)
   at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j
ava:879)


Results :

Tests in error:
 testInvoke(helloworld.BPELHelloWorldTestCase)

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0











Re: [NOTICE] Scott Kurz voted as Tuscany committer

2008-06-09 Thread Simon Nash

ant elder wrote:

The Tuscany PMC has voted for Scott Kurz to become a Tuscany committer.

Welcome Scott!

   ...ant


Congratulations and welcome, Scott!  Your many valuable contributions
to Tuscany have been much appreciated.

  Simon



Re: Red Hat/JBoss involvement with Tuscany

2008-06-06 Thread Simon Nash

ant elder wrote:

On Fri, Jun 6, 2008 at 11:12 AM, Simon Laws [EMAIL PROTECTED]
wrote:


On Fri, Jun 6, 2008 at 10:57 AM, Mark Little [EMAIL PROTECTED] wrote:


Hi, I just wanted to let people know officially that people from Red
Hat/JBoss will be getting involved with Tuscany over the coming months as

we

look at the best way in which to provide SCA support for our SOA Platform
users. We're very excited about helping on Tuscany and complimenting the
work we're doing at OASIS.

Mark.


Mark Little
[EMAIL PROTECTED]

JBoss, a Division of Red Hat
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod

Street,

Windsor, Berkshire, SI4 1TE, United Kingdom.
Registered in UK and Wales under Company Registration No. 3798903
Directors: Michael Cunningham (USA), Charlie Peters (USA), Matt Parsons
(USA) and Brendan Lane (Ireland).



Hi Mark

That's exciting news indeed. Welcome to you all!

Regards

SimonL



Echoing that sentiment, this is really great news. I look forward to working
with you all.

   ...ant


I'm very pleased to hear this.  It will be great to have you as
part of the Tuscany community.  This will also help move SCA
forward as a widely accepted industry standard.  Welcome!

  Simon



Re: Changing SCA trunk version from 2.0-incubating-SNAPSHOT to SNAPSHOT

2008-06-06 Thread Simon Nash

Simon Laws wrote:

On Fri, Jun 6, 2008 at 9:17 AM, Luciano Resende [EMAIL PROTECTED]
wrote:


How about 1.5-SNAPSHOT ? This would probably give us some room to have
couple releases without the necessity to keep updating the trunk pom
version. And this would probably make everybody happy :)

On Fri, Jun 6, 2008 at 1:14 AM, ant elder [EMAIL PROTECTED] wrote:

On Fri, Jun 6, 2008 at 9:05 AM, Luciano Resende [EMAIL PROTECTED]
wrote:


I guess part of problem here is because a lot of people assume that
the maven artifact version represents what is going to be our next
release and then, if it's set as 2.0-SNAPSHOT, it means our next
release would be 2.0.


I agree, this is exactly the issue. But I'm not sure its that much of an
unreasonable assumption, it does feel odd to me to have 2.0-SNAPSHOT as

the

trunk version before there has been any decision to start working on a

2.0

in trunk.

  ...ant




--
Luciano Resende
Apache Tuscany Committer
http://people.apache.org/~lresende http://people.apache.org/%7Elresende
http://lresende.blogspot.com/



My feeling about this have been galvanized by our previous conversations
about doing some development work at some point in the future to improve the
APIs/SPIs in backwardly incompatible ways. We previously discussed this
under the banner of a 2.0 code base which still sounds sensible. If we do
that at some point in the future then we will have a 1.X code based which
our existing users will rely on and a 2.X code base which our users may move
to over time. I'd like it to be clear when working on a code base, making
releases from a code base or just providing snapshots what flavour of
Tuscany is involved. Releases take care of themselves but this is why I'd
like to see some reference to version 1 in Trunk be maintained. We don't
commit to a particular release number until the start discussing each
release and cut the branch. Hence that's why I was happy with using 1.X.

Regards

Simon


I also think 1.x is better than 1.5.

  Simon


Re: RuntimeException: no data binding for null with binding.ws when the service inteface uses generics

2008-06-06 Thread Simon Nash

Vamsavardhana Reddy wrote:

I have the following method in my service interface that uses binding.ws:
T Bean1T getTypeUnbound(T[] anArray);

I am getting the following exception in SCADomain.newInstance()


Please open a JIRA for this, with a test case.

  Simon


org.osoa.sca.ServiceRuntimeException: org.osoa.sca.ServiceRuntimeException:
org.apache.tuscany.sca.core.assembly.ActivationException:
java.lang.RuntimeException: no data binding for null
at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:276)
at
org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:70)
at
org.apache.tuscany.sca.itest.databindings.jaxb.GenericsDatabindingTestCase.setUp(GenericsDatabindingTestCase.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74)
at
org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50)
at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33)
at
org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.osoa.sca.ServiceRuntimeException:
org.apache.tuscany.sca.core.assembly.ActivationException:
java.lang.RuntimeException: no data binding for null
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:239)
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:113)
at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:242)
... 16 more
Caused by: org.apache.tuscany.sca.core.assembly.ActivationException:
java.lang.RuntimeException: no data binding for null
at
org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:986)
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:237)
... 18 more
Caused by: java.lang.RuntimeException: no data binding for null
at
org.apache.tuscany.sca.interfacedef.wsdl.interface2wsdl.Interface2WSDLGenerator.getElementInfo(Interface2WSDLGenerator.java:507)
at
org.apache.tuscany.sca.interfacedef.wsdl.interface2wsdl.Interface2WSDLGenerator.generateWrapperPart(Interface2WSDLGenerator.java:481)
at
org.apache.tuscany.sca.interfacedef.wsdl.interface2wsdl.Interface2WSDLGenerator.generateOperation(Interface2WSDLGenerator.java:366)
at
org.apache.tuscany.sca.interfacedef.wsdl.interface2wsdl.Interface2WSDLGenerator.generate(Interface2WSDLGenerator.java:142)
at
org.apache.tuscany.sca.interfacedef.wsdl.java2wsdl.Java2WSDLHelper.createWSDLInterfaceContract(Java2WSDLHelper.java:198)
at
org.apache.tuscany.sca.binding.ws.axis2.Axis2ReferenceBindingProvider.init(Axis2ReferenceBindingProvider.java:68)
at
org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingProviderFactory.createReferenceBindingProvider(Axis2BindingProviderFactory.java:70)
at
org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingProviderFactory.createReferenceBindingProvider(Axis2BindingProviderFactory.java:47)
at
org.apache.tuscany.sca.provider.DefaultProviderFactoryExtensionPoint$LazyBindingProviderFactory.createReferenceBindingProvider(DefaultProviderFactoryExtensionPoint.java:230)
at
org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.addReferenceBindingProvider(CompositeActivatorImpl.java:262)
at
org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:142)
at
org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:982)
... 19 more

I get a similar exception when I add a method Object getNewObject(Object
obj) to my service interface.  IIRC, this used to work 10 days ago!

++Vamsi



++Vamsi





Re: Build failure in helloworld-bpel sample

2008-06-06 Thread Simon Nash

Simon Nash wrote:

I did a recent svn update and rebuild and I'm seeing the following test
error from the helloworld-bpel sample.  Are other people seeing this?
Any ideas?

  Simon


I have committed a fix (or at least a workaround) for this build
break problem.  The revision number is r663938.

I debugged the problem and it is caused by the BPELInvoker returning
an XML element for a part:

TestParthello 
xmlns=http://tuscany.apache.org/implementation/bpel/example/helloworld.wsdl;
messageHello World/message/hello/TestPart

instead of returning an XML element for the wrapper inside the part:

hello 
xmlns=http://tuscany.apache.org/implementation/bpel/example/helloworld.wsdl;
messageHello World/message/hello

I modified the BPELInvoker to return the part's child element instead
of the part itself.

To avoid problems like this in future, please can folks run all the
samples and itests before doing a commit, to ensure their code change
doesn't cause problems for others.  Thanks.

  Simon


Running helloworld.BPELHelloWorldTestCase
Completed calling new Process deployment code...
Invoking bpel component : {http://tuscany.apache.org}helloPartnerLink#hello
Creating invocation message:
  args.: ?xml version=1.0 encoding=UTF-8?
hello 
xmlns=http://tuscany.apache.org/implementation/bpel/example/helloworld.w

sdlmessageHello/message/hello
  message..:?xml version=1.0 encoding=UTF-8?
messageTestParthello 
xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello/message/hello/TestPart/message 


 Invocation status:RESPONSE
 Response:
?xml version=1.0 encoding=UTF-8?
messageTestParthello 
xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello 
World/message/hello/TestPart/messa

ge
 Response:
?xml version=1.0 encoding=UTF-8?
messageTestParthello 
xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello 
World/message/hello/TestPart/messa

ge
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 9.512 
sec  FA

ILURE!
testInvoke(helloworld.BPELHelloWorldTestCase)  Time elapsed: 9.494 sec  
 ERRO

R!
junit.framework.ComparisonFailure: expected:Hello World but was:
at junit.framework.Assert.assertEquals(Assert.java:81)
at junit.framework.Assert.assertEquals(Assert.java:87)
at 
helloworld.BPELHelloWorldTestCase.testInvoke(BPELHelloWorldTestCase.j

ava:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at 
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.

java:35)
at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.

java:62)
at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes

tSet(AbstractDirectoryTestSuite.java:138)
at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab

stractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su

refireBooter.java:308)
at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j

ava:879)


Results :

Tests in error:
  testInvoke(helloworld.BPELHelloWorldTestCase)

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0






Re: Build failure in helloworld-bpel sample

2008-06-06 Thread Simon Nash

Simon Laws wrote:

On Fri, Jun 6, 2008 at 3:33 PM, ant elder [EMAIL PROTECTED] wrote:


On Fri, Jun 6, 2008 at 2:49 PM, Simon Nash [EMAIL PROTECTED] wrote:


Simon Nash wrote:


I did a recent svn update and rebuild and I'm seeing the following test
error from the helloworld-bpel sample.  Are other people seeing this?
Any ideas?

 Simon

 I have committed a fix (or at least a workaround) for this build

break problem.  The revision number is r663938.



Just to confirm, this has fixed the problem for me and the sample now
builds
ok.

  ...ant



It fixed the problem for me but now itest/bpel fails. It didn't before this
latest patch so it seems that it is expecting the extra layer of data
wrapping for some reason.

Simon


I backed out this change and I also backed out commit r663685
from yesterday.  With these two changes, both the sample and
the itest build cleanly.

  Simon



Re: [NOTICE] Vamsavardhana Reddy voted as Tuscany committer

2008-06-05 Thread Simon Nash

ant elder wrote:

The Tuscany PMC has voted for Vamsavardhana Reddy to become a Tuscany
committer.

Congratulations and welcome!

   ...ant


Vamsi,
Congratulations on this recognition of your excellent contributions.
Welcome on board!

  Simon



Build failure in helloworld-bpel sample

2008-06-05 Thread Simon Nash

I did a recent svn update and rebuild and I'm seeing the following test
error from the helloworld-bpel sample.  Are other people seeing this?
Any ideas?

  Simon

Running helloworld.BPELHelloWorldTestCase
Completed calling new Process deployment code...
Invoking bpel component : {http://tuscany.apache.org}helloPartnerLink#hello
Creating invocation message:
 args.: ?xml version=1.0 encoding=UTF-8?
hello xmlns=http://tuscany.apache.org/implementation/bpel/example/helloworld.w
sdlmessageHello/message/hello
 message..:?xml version=1.0 encoding=UTF-8?
messageTestParthello xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello/message/hello/TestPart/message
Invocation status:RESPONSE
Response:
?xml version=1.0 encoding=UTF-8?
messageTestParthello xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello World/message/hello/TestPart/messa
ge
Response:
?xml version=1.0 encoding=UTF-8?
messageTestParthello xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello World/message/hello/TestPart/messa
ge
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 9.512 sec  FA
ILURE!
testInvoke(helloworld.BPELHelloWorldTestCase)  Time elapsed: 9.494 sec   ERRO
R!
junit.framework.ComparisonFailure: expected:Hello World but was:
at junit.framework.Assert.assertEquals(Assert.java:81)
at junit.framework.Assert.assertEquals(Assert.java:87)
at helloworld.BPELHelloWorldTestCase.testInvoke(BPELHelloWorldTestCase.j
ava:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.
java:35)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
tSet(AbstractDirectoryTestSuite.java:138)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
stractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
refireBooter.java:308)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j
ava:879)


Results :

Tests in error:
  testInvoke(helloworld.BPELHelloWorldTestCase)

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0



Re: Changing SCA trunk version from 2.0-incubating-SNAPSHOT to SNAPSHOT

2008-06-05 Thread Simon Nash

Simon Laws wrote:

On Wed, Jun 4, 2008 at 1:34 PM, Giorgio Zoppi [EMAIL PROTECTED] wrote:


2008/6/4 ant elder [EMAIL PROTECTED]:

Currently the trunk has a version of 2.0-incubating-SNAPSHOT, we need to
remove incubating at some point and as its not clear if the next

release

would be 2.0 or something else so i wondered if we should also remove the
2.0 giving a trunk version of simply SNAPSHOT? Any comments on that or

the

timeframe for doing the change? I'd like to do it nowish so we have some
time to discover any problems before the next release.

  ...ant


Hi ant,
could you try a fresh build from svn?
I've some problems with and I 'd go on with my work before we're
arriving to 2.0.


Ciao,
Giorgio.
---
Venceremos adelante, o victoria o muerte!



I agree that it doesn't feel like the next release will be 2.0
I would prefer that we keep the trunk compatible with our 1.X level APIs for
the time being as it feels like there is still a more 1.X releases to do
If people are going to start making breaking changes in a branch (we
discussed this under the 2.0 thread but it's not happening yet) then it
would be useful to me to have the trunk poms marked with 1.X SNAPSHOT so
that I know by looking on my disc what I'm working with
When (if?) the time comes down the line to break from our 1.X APIs we could
then go to SNAPSHOT  or 2.0 SNAPSHOT


I think it's useful to have some version number.  1.x seems to clearly
describe what we are currently developing in trunk, so my preference
is for 1.x-SNAPSHOT.

  Simon


Re: Build failure in helloworld-bpel sample

2008-06-05 Thread Simon Nash

Luciano Resende wrote:

I guess this might be related to this thread [1].

[1] http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg32278.html


Thakns.  I saw this and I agree it could be related, but the error
message is different.  I was getting the null local part message
from an earlier checkout, but my recent update changed the symptoms
to this new message.

  Simon


On Thu, Jun 5, 2008 at 12:30 PM, Simon Nash [EMAIL PROTECTED] wrote:

I did a recent svn update and rebuild and I'm seeing the following test
error from the helloworld-bpel sample.  Are other people seeing this?
Any ideas?

 Simon

Running helloworld.BPELHelloWorldTestCase
Completed calling new Process deployment code...
Invoking bpel component : {http://tuscany.apache.org}helloPartnerLink#hello
Creating invocation message:

args.: ?xml version=1.0 encoding=UTF-8?

hello
xmlns=http://tuscany.apache.org/implementation/bpel/example/helloworld.w
sdlmessageHello/message/hello

message..:?xml version=1.0 encoding=UTF-8?

messageTestParthello
xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello/message/hello/TestPart/message

Invocation status:RESPONSE
Response:

?xml version=1.0 encoding=UTF-8?
messageTestParthello
xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello
World/message/hello/TestPart/messa
ge

Response:

?xml version=1.0 encoding=UTF-8?
messageTestParthello
xmlns=http://tuscany.apache.org/implementation/bpel/e
xample/helloworld.wsdlmessageHello
World/message/hello/TestPart/messa
ge
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 9.512 sec
 FA
ILURE!
testInvoke(helloworld.BPELHelloWorldTestCase)  Time elapsed: 9.494 sec  
ERRO
R!
junit.framework.ComparisonFailure: expected:Hello World but was:
   at junit.framework.Assert.assertEquals(Assert.java:81)
   at junit.framework.Assert.assertEquals(Assert.java:87)
   at
helloworld.BPELHelloWorldTestCase.testInvoke(BPELHelloWorldTestCase.j
ava:57)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at junit.framework.TestCase.runTest(TestCase.java:154)
   at junit.framework.TestCase.runBare(TestCase.java:127)
   at junit.framework.TestResult$1.protect(TestResult.java:106)
   at junit.framework.TestResult.runProtected(TestResult.java:124)
   at junit.framework.TestResult.run(TestResult.java:109)
   at junit.framework.TestCase.run(TestCase.java:118)
   at junit.framework.TestSuite.runTest(TestSuite.java:208)
   at junit.framework.TestSuite.run(TestSuite.java:203)
   at
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.
java:35)
   at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
java:62)
   at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
tSet(AbstractDirectoryTestSuite.java:138)
   at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
stractDirectoryTestSuite.java:125)
   at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
refireBooter.java:308)
   at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j
ava:879)


Results :

Tests in error:
 testInvoke(helloworld.BPELHelloWorldTestCase)

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0










Re: OSGi-enable 3rd party libraries in Tuscany

2008-06-03 Thread Simon Nash

See comments inline.

  Simon

Rajini Sivaram wrote:

Simon,

A few comments inline...


On 5/29/08, Simon Nash [EMAIL PROTECTED] wrote:


Jean-Sebastien Delfino wrote:


Rajini Sivaram wrote:

There is no technical reason why we can't store 3rd party jars separately

and merge them at runtime to create virtual bundles, rather than
distribute real bundles containing these manifests. I think the issues
are:

  1. The build will be harder and messier since existing tools are not
  geared to do this
  2. The distribution will be messier from an OSGi perspective


Agreed. How about keeping things simple and clean??

  3. OSGi will continue to remain a peripheral feature of Tuscany, never

  properly integrated since this is not really mainstream.


Agreed.

  4. Real bundles provide more flexibility to OSGi users in terms of

  substituting 3rd party jars with newer or patched versions of these, as
well
  as avoiding classloading conflicts resulting from version constraints.



Good point too.

My 2c: Generating bundles automatically from JARs is useless. If you want
to leverage OSGi you need to make authoring / fine tuning your
imports/exports a first class part of your development process.

To clarify what I have been saying, I agree with this and I was

expecting that virtual bundles would be constructed in this way.



Even though we can technically generate the exact same manifest entry for
virtual bundles as we would for real bundles, IMHO decoupling manifest
entries which describe very fine grained information about a bundle like the
exact versions of packages it imports from the 3rd party jar and storing it
in the Tuscany distribution in a non-standard way is just the wrong thing to
do. Like we have already shown with itest/osgi-tuscany, virtual bundles
provide a quick and easy way for a large project to get up and running
inside an OSGi runtime. But IMO, the virtual bundle approach has WORKAROUND
written all over it.


I understand this point and I agree that there is value in adopting
an approach that provides the best experience for OSGi users, as long
as this does not create issues in a non-OSGi environment.





I'm starting to feel like a broken record, so I'm going to say it one last

time, for the record. I think we should just follow a simple approach and
add proper (authored) OSGi entries to our JARs and 3rd party dependency
JARs. This doesn't multiply distros, doesn't duplicate JARs, does not
complicate the build. It just makes simple sense IMHO, and other projects
with experience with OSGi are on that path too.

Think of this from a user's perspective.  I am downloading Tuscany and

it comes with 149 required dependent bundle-ized 3rd party jars, all at
specific levels chosen by Tuscany, and with Tuscany-specific modifications.



I would like to understand what you mean by Tuscany-specific
modifications. IMO interoperating with 3rd party jars bundle-ized outside
of Tuscany is not a nice-to-have, it is a must-have. When we bundle-ize a
3rd party jar, all we add are OSGi manifest entries. If we look at the
entries that we add these include

   1. Bundle symbolic name : 3rd party jars bundle-ized by Tuscany will use
   the name org.apache.tuscany.sca.xxx. Typically applications will never refer
   to this name, but in theory they can (eg. to force a bundle to only use
   imports from a specific bundle). Use of this name will be a deliberate act
   by an user, and hence we dont introduce any interoperability issues by using
   a different name.
   2. Bundle version and versions of exported packages : Now this is the
   most crucial information inside a bundle. It is very crucial that we use the
   same versioning conventions as everyone else. Basically this means that
   jaxb-impl-2.1.6.jar will use bundle and package version 2.1.6 regardless of
   whether it was bundle-ized by Tuscany or anyone else. Regardless of whether
   we use virtual bundles or real bundles, this is an absolute must-have for
   sharing of classes between applications and Tuscany.
   3. Import-Package, Dynamic-ImportPackage and uses statements in
   Export-Package: The actual packages imported are going to based on what is
   imported, and hence should be identical for a bundle regardless of who
   bundle-ized it. But there could be (and probably will be) differences in the
   constraints used in Import-Package and uses clauses in exports. These
   constraints are used to achieve sharing and isolation of classes. For
   Tuscany, we would probably look at scenarios and tune the constraints for
   the most common scenarios. But there is always going to be some application
   somewhere which wishes to use a different set of constraints to achieve a
   different kind of sharing/isolation. This again comes back to the point that
   we have to interoperate with bundles generated by other users. And we
   shouldn't make it too tedious for users to replace Tuscany's copies of 3rd
   party bundles with their own. IMO, real

Re: Incorrect wsdl generated with ?wsdl for a service operation with two dimensional String array parameter

2008-05-30 Thread Simon Nash

Vamsavardhana Reddy wrote:

I have a service operation String[][] getGreetingsArray2(String[][] names).
I am using interface.java in my service element in the composite.  When the
service uses a webservice binding, I get the following wsdl using ?wsdl on
the endpoint url.

wsdl:definitions 
wsdl:types
xs:schema attributeFormDefault=qualified
elementFormDefault=qualified
targetNamespace=
http://jaxb.databindings.itest.sca.tuscany.apache.org/;
xmlns:ns0=http://util.java/;
xmlns:xs=http://www.w3.org/2001/XMLSchema;
xs:element name=getGreetingsArray2
xs:complexType
xs:sequence
xs:element maxOccurs=unbounded minOccurs=0
name=arg0 nillable=true type=xs:string /
/xs:sequence
/xs:complexType
/xs:element
xs:element name=getGreetingsArray2Response
xs:complexType
xs:sequence
xs:element maxOccurs=unbounded minOccurs=0
name=return nillable=true type=xs:string
/
/xs:sequence
/xs:complexType
/xs:element
...
/xs:schema
/wsdl:types

/wsdl:definitions

Notice that the types correspond to String[] and not String[][].

I have added @WebMethod public String[][] getGreetingsArray2(String[][]
names) to MyServiceImpl class in sca\modules\interface-java-jaxws and used
jaxws-maven-plugin to generate the wsdl.

MyServiceImplService.wsdl has
  types
xsd:schema
  xsd:import namespace=
http://jaxws.java.interfacedef.sca.tuscany.apache.org/;
schemaLocation=MyServiceImplService_schema1.xsd/
/xsd:schema
xsd:schema
  xsd:import namespace=http://jaxb.dev.java.net/array;
schemaLocation=MyServiceImplService_schema2.xsd/
/xsd:schema
  /types

MyServiceImplService_schema2.xsd has
  xs:complexType name=stringArray final=#all
xs:sequence
  xs:element name=item type=xs:string minOccurs=0
maxOccurs=unbounded nillable=true/
/xs:sequence
  /xs:complexType

MyServiceImplService_schema1.xsd has
  xs:complexType name=getGreetingsArray2
xs:sequence
  xs:element name=arg0 type=ns1:stringArray nillable=true
minOccurs=0 maxOccurs=unbounded/
/xs:sequence
  /xs:complexType
  xs:complexType name=getGreetingsArray2Response
xs:sequence
  xs:element name=return type=ns1:stringArray nillable=true
minOccurs=0 maxOccurs=unbounded/
/xs:sequence
  /xs:complexType

In other words jaxws-maven-plugin seems to generate proper types for
String[][].

There seems to be a problem with the code that generates wsdl when ?wsdl is
used on the endpoint url.

++Vamsi


This support is not yet implemented in the new runtime Java2WSDL
mapping code.  Please open a JIRA for this and I will look at it.
Thanks.

  Simon



[jira] Commented: (TUSCANY-1713) The WSDL-less feature doesn't honor the XSD type information in the SDO parameter/return type

2008-05-29 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-1713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12600714#action_12600714
 ] 

Simon Nash commented on TUSCANY-1713:
-

Please ignore the second part of the above comment.  My test was using 
interface.wsdl on the service provider side, which explains the strange results 
(I thought it was interface.java).  I retried this user error test with 
interface.java on the service provider side.  The SOAP request was

_ns_:createAccount 
xmlns:_ns_=http://accountdata.services.account.bigbank/;p0:arg0 
xmlns:p0=http://accountdata.services.account.bigbank/; 
xmlns:p1=http://www.bigbank.com/account; 
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; 
xsi:type=p1:CustomerProfileDatafirstNamepetra/firstNamelastNameA/lastNameaddresshome/addressemail[EMAIL
 
PROTECTED]/emailloginIDpetra/loginIDpasswordant/passwordid1/id/p0:arg0arg1
 xmlns=http://accountdata.services.account.bigbank/;false/arg1arg2 
xmlns=http://accountdata.services.account.bigbank/;false/arg2/_ns_:createAccount

and the response was

_ns_:createAccountResponse 
xmlns:_ns_=http://accountdata.services.account.bigbank/;p0:return 
xmlns:p0=http://accountdata.services.account.bigbank/; 
xmlns:p1=http://www.bigbank.com/account; 
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; 
xsi:type=p1:CustomerProfileDatafirstNamepetra/firstNamelastNameA/lastNameaddresshome/addressemail[EMAIL
 
PROTECTED]/emailloginIDpetra/loginIDpasswordant/passwordid1/id/p0:return/_ns_:createAccountResponse

Both of these look correct to me.

 The WSDL-less feature doesn't honor the XSD type information in the SDO 
 parameter/return type 
 --

 Key: TUSCANY-1713
 URL: https://issues.apache.org/jira/browse/TUSCANY-1713
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension
Affects Versions: Java-SCA-Next
Reporter: Raymond Feng
 Fix For: Java-SCA-Next


 In the itest-wsdless test case testClient1b2a3a4a, we use interface.java for 
 the client side and interface.wsdl for the service side. Generated SDO are 
 used for both the client and service side. But the current java2wsdl 
 conversion creates a similar but not equivalent WSDL as the service side. As 
 a result, the outbound call flows the non-comforming XML in the body of the 
 SOAP message. We have to work around the unwrapping logic on the service side 
 to tolerate the incoming data.
 _ns_:createAccount 
 xmlns:_ns_=http://accountdata.services.account.bigbank;param0 
 xmlns=http://accountdata.services.account.bigbank; 
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:p0=commonj.sdo 
 xmlns:p1=http://www.bigbank.com/account; 
 xsi:type=p1:CustomerProfileDatafirstName 
 xmlns=petra/firstNamelastName xmlns=A/lastNameaddress 
 xmlns=home/addressemail xmlns=[EMAIL PROTECTED]/emailloginID 
 xmlns=petra/loginIDpassword xmlns=ant/passwordid 
 xmlns=1/id/param0_ns_:param1false/_ns_:param1_ns_:param2false/_ns_:param2/_ns_:createAccount
 Please note the wrapper and child elements hav
 On the response path, with the SDO -- OMElement transformation, it's legal 
 to not generate xsi:type for the child elements. But it will cause problems 
 on the client side as it has to take the response child element by position 
 even if the QName doesn't match and there is no valid xsi:type to help the 
 deserilization of SDO data.  
 p0:createAccountResponse 
 xmlns:p0=http://www.bigbank.com/account;customerProfile 
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; 
 xmlns:_typens_=http://account.bigbank.com/xsd; 
 xsi:type=_typens_:CustomerProfileDatafirstNamepetra/firstNamelastNameA/lastNameaddresshome/addressemail[EMAIL
  
 PROTECTED]/emailloginIDpetra/loginIDpasswordant/passwordid1/id/customerProfile/p0:createAccountResponse
 Please note the xsi:type is not correct (if we try to derive it from the 
 client side).
 The key issue here is that we don't honor the XSD types behind the complex 
 parameter/return types even we know the XSD type from databinding 
 introspections.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: GSoC Project - CORBA Support for Apache Tuscany

2008-05-29 Thread Simon Nash

One comment inline.

  Simon

Jean-Sebastien Delfino wrote:

Raymond Feng wrote:

Please see my comments inline.

Thanks,
Raymond

--
From: Wojtek Janiszewski [EMAIL PROTECTED]
Sent: Thursday, May 22, 2008 3:21 AM
To: tuscany-dev@ws.apache.org
Subject: Re: GSoC Project - CORBA Support for Apache Tuscany


Hello Tuscany Community!

I've spent last days considering project details and made some 
prototypes which were mainly verifying CORBA API in JDK. I'd like 
also to begin coding shortly - I'd like to start implementing 
reference binding implementation for CORBA objects. I've listed some 
assumptions/doubts:


1. Original time schedule was to start work with Implementation of 
interface-corba-idl module.. I was told to start with CORBA 
bindings, I just wanted to make sure that these modules 
implementation schedule can be swapped.


I think the CORA IDL support can be a 2nd step. We can invoke/expose 
CORBA services using java interfaces.




2. I'll implement service/reference bindings using CORBA Dynamic 
Invocation Interface (DII) API. Standard JDK CORBA support *should* 
be enough, if no, there are other CORBA implementations, such as JacORB.


Standard JDK APIs should be good enough. There is an Apache CORBA 
project at: http://cwiki.apache.org/YOKO/.




3. Where should parameters ORBInitialHost and ORBInitialPort be 
passed to application? They shouldn't be configured global for 
application, because every binding can use different ORB, so I assume 
it should be configured per binding. Which attributes for 
binding.corba shall I use?


They should be configured at the binding.corba.



4. In CORBA we can register objects under unique name, or obtain 
remote objects as references from other CORBA objects. In binding 
configuration user should point remote objects name, which is 
registered in name service. Again, I think it should be configured 
per binding, so which attribute for binding.corba shall I use?


That should be derived from the URI of the binding.



5. CORBA objects obtained from binding will be dynamically enhanced 
by, lets call it, DII Corba Invoker (DCI), and attached to matching 
Java interface, so Tuscany user can use it. DCI will be responsible 
for creating request, based on operation name, operation arguments 
and return type. Every other CORBA object, obtained in any way (from 
binding, as a result of any other CORBA objects operation) will be 
also enhanced/attached as above.


Yes. The corba reference binding invoker is responsible to bridge the 
invocations between SCA and CORBA.




6. If CORBA objects operation argument is object reference, then user 
should provide object which was previously obtained from binding or 
other CORBA object. User cannot use users-side object as an argument.




Yes. Let's don't worry object reference too much at this point. We are 
in the SOA world instead of distributed object :-).



This is OK if we are exposing a SCA service via CORBA.  If we are using
SCA to invoke existing CORBA services that expect object references
to be passed, we will need to come up with an approach for handling them.

I'd suggest that we start first with exposing SCA services via CORBA
as this seems to be the simplest and most useful form of integration.

  Simon

I hope I described my thoughts clearly, I'll appreciate any comments, 
especially pointing out things I'm wrong or missing.


Thanks,
Wojtek 




I took a look at binding-corba/.../CorbaServiceBindingProvider in trunk.

At the moment the ORB setup is in the start method of the provider (and 
there's no cleanup in the stop method). I'm not quite sure how this is 
going to work with multiple services sharing the same ORB.


I'm thinking that we'll need the following to support multiple services:

- A host-corba implementation (similar to host-ejb, host-rmi or 
host-http) to setup/tear the ORB when the Tuscany runtime starts/stops, 
independent of the registration of particular services with the ORB.


- Logic in that host-corba to set up the ORB in a lazy fashion when the 
first Corba service is registered.


- Only keep the ORB servant creation and naming bind/unbind in the 
service provider class.


Makes sense?




Re: OSGi-enable 3rd party libraries in Tuscany

2008-05-29 Thread Simon Nash

Rajini Sivaram wrote:

Simon,

A couple of comments inline...


On 5/28/08, Simon Nash [EMAIL PROTECTED] wrote:


Sorry for the long delay in responding.  I have been deeply buried
in implementing the new WSDL-less support, and I am only just
surfacing to follow up on other threads.  Comments inline.

 Simon

Rajini Sivaram wrote:


On 5/16/08, Simon Nash [EMAIL PROTECTED] wrote:


Jean-Sebastien Delfino wrote:

Simon Nash wrote:

... snip

 I believe that if we are serious about making OSGi-enablement of
Tuscany


 a

first class option, we should consider doing 1). For the longer term
to
support versioning of 3rd party jars, 1) will provide a standard OSGi
mechanism. As more and more 3rd-party libraries are being
OSGi-enabled,
this
can be seen as an intermediate step which enables users of Tuscany to
install Tuscany in the same standard OSGi way, into an OSGi runtime.

I agree and think we should do (1) everywhere we can.

I don't think Tuscany should modify third-party jars that we


are redistributing as part of Tuscany.  I think we should use
some variant of (3) for all third-party jars that aren't
already OSGi-enabled.


Can you say why?

At the moment we are redistributing these libraries as a convenience


for people who want to run Tuscany out of the box.  If people want
to obtain these libraries in some other way (e.g., from a maven repo,
by direct download from the third-party project, or as part of some
other download), that's fine too.

This change would alter that picture considerably.  For people
using Tuscany within OSGi, it would be necessary to use the modified
libraries distributed by Tuscany.




I am not sure if OSGi users of Tuscany would expect 3rd party non-bundle
jars downloaded from elsewhere to work with Tuscany running under OSGi. If
there is a requirement, we can support virtual bundles with naive
manifests
just for these cases. I am not sure that is reason enough for virtual
bundles to be the only (or default) option.

On the other hand, I would think that OSGi users of Tuscany may expect 3rd
party bundle jars from other projects like ServiceMix to work with Tuscany
running under OSGi. We can easily support that with bundle-ized jars.

It would be great to have some co-ordination between these projects

so that they can share the same bundle-ized 3rd party jars rather
than all creating their own copies and giving the user the problem
of figuring out whose version of bundle-ized jaxb can be used with
Tuscany, ServiceMix, Spring, etc.



This might or might not be required


outside the OSGi environment, depending on how we set up the distro
and the way our extensions locate their third-party dependencies.



For users who run Tuscany outside of OSGi, we can (and should) continue to
support third party libraries downloaded from anywhere. I dont think
bundle-izing 3rd party libraries will require any changes to the way
extensions locate their third party dependencies.

If the bundle-izing is only intended for use by the native OSGi Tuscany

runtime, could we produce a separate distro that contains the native
OSGi Tuscany runtime and the bundle-ized 3rd party jars?  Our current
binary distro is very large and it would not be good to have it contain
a complete set of unmodified 3rd party jars and another complete set
of the same jars in bundle-ized form.  I would also not be keen to
change the regular binary distro to only contain bundle-ized jars
as I think this will be confusing for non-OSGi users of Tuscany,
especially if they don't want to use the exact levels of the 3rd-party
jars that Tuscany has decided to bundle-ize.


 I looked at ServiceMix4 and I see that it is doing something like

this with the org.apache.servicemix.bundles.* files.  For example,
there's one of these that wraps the JAXB implementation in an OSGi
bundle.  If we do the same in Tuscany, anyone wanting to use Tuscany
with ServiceMix4 in an OSGi environment will need the ServiceMix+JAXB
bundle and also the Tuscany+JAXB bundle, duplicating all the JAXB
implementation classes.  Now add SpringSource and a few other
projects into the mix and how many copies of the same JAXB code will
the user need?  Any number greater than one is the wrong answer.



If you install ServiceMix4 and Tuscany, at the moment you will have
org.apache.servicemix.bundles.jaxb.jar and Tuscany's jaxb.jar on your
disk.
Using real bundles, we will replace Tuscany's jaxb.jar with
org.apache.tuscany.sca.jaxb.jar. We still have two jaxb jars on the
system.
Using virtual bundles, we will convert  Tuscany's jaxb.jar on the fly to
org.apache.tuscany.sca.jaxb.jar. The only use case where we reduce disk
space is where Tuscany's jaxb.jar is shared with other products running
outside OSGi.

As I said above, I'm not keen to replace jaxb.jar in the Tuscany binary

distro by org.apache.tuscany.sca.jaxb.jar.  If this is within the
context of a separate OSGi-specific binary distro, I would be OK
with including bundle-ized jars in that distro.

But I

Re: OSGi-enable 3rd party libraries in Tuscany

2008-05-29 Thread Simon Nash

Jean-Sebastien Delfino wrote:

Rajini Sivaram wrote:


There is no technical reason why we can't store 3rd party jars separately
and merge them at runtime to create virtual bundles, rather than
distribute real bundles containing these manifests. I think the issues
are:

   1. The build will be harder and messier since existing tools are not
   geared to do this
   2. The distribution will be messier from an OSGi perspective


Agreed. How about keeping things simple and clean??


   3. OSGi will continue to remain a peripheral feature of Tuscany, never
   properly integrated since this is not really mainstream.


Agreed.


   4. Real bundles provide more flexibility to OSGi users in terms of
   substituting 3rd party jars with newer or patched versions of 
these, as well

   as avoiding classloading conflicts resulting from version constraints.



Good point too.

My 2c: Generating bundles automatically from JARs is useless. If you 
want to leverage OSGi you need to make authoring / fine tuning your 
imports/exports a first class part of your development process.



To clarify what I have been saying, I agree with this and I was
expecting that virtual bundles would be constructed in this way.

I'm starting to feel like a broken record, so I'm going to say it one 
last time, for the record. I think we should just follow a simple 
approach and add proper (authored) OSGi entries to our JARs and 3rd 
party dependency JARs. This doesn't multiply distros, doesn't duplicate 
JARs, does not complicate the build. It just makes simple sense IMHO, 
and other projects with experience with OSGi are on that path too.



Think of this from a user's perspective.  I am downloading Tuscany and
it comes with 149 required dependent bundle-ized 3rd party jars, all at
specific levels chosen by Tuscany, and with Tuscany-specific modifications.
I can't easily apply the Tuscany modfications to other levels of the
same software that I may need to use in place of the levels distributed
by Tuscany.  I also can't easily share the Tuscany versions of these
bundles with my other software that has the same dependencies at identical
or compatible levels.  Does this make my life easy?  I don't think it does.

  Simon



Re: OSGi-enable 3rd party libraries in Tuscany

2008-05-29 Thread Simon Nash

Graham Charters wrote:

FWIW, I agree with Sebastien and Rajini.  I don't believe it's a
coincidence that both SpringSource and ServiceMix went the route of
adding manifests to the thirdparty jars.  It keeps things simple and
gives a better experience from an OSGi perspective.  If we're serious
about supporting OSGi we should try to do the right thing by the
technology.


See my recent response to Sebastien's post on this.  There are clearly
some different perspectives here about what is simple.  It seems to me
that this is only simple for people using Tuscany SCA out of the box
together with its 149 dependencies at the specific levels distributed
by Tuscany.  For other combinations, I don't see how sinmplicity for
the user is achieved.  Please help me understand how this approach
would solve the use case that I have in mind.


Whilst not necessarily an argument against virtual bundles, I also
agree that we should have properly authored dependencies.  This view
is supported by the discussion Rajini is having in Jira 2343.  I know
for a fact that SpringSource work very hard to ensure the version
ranges on their dependencies are sensible (e.g. match the rules
governing version increments for each project).


Agreed.

  Simon


I don't believe we can completely do away with virtual bundles in the
short term, but we should only use them where necessary (e.g for
signed jars and jars which require code extensions to function in
OSGi).

Regards, Graham.

2008/5/29 Jean-Sebastien Delfino [EMAIL PROTECTED]:

Rajini Sivaram wrote:


There is no technical reason why we can't store 3rd party jars separately
and merge them at runtime to create virtual bundles, rather than
distribute real bundles containing these manifests. I think the issues
are:

  1. The build will be harder and messier since existing tools are not
  geared to do this
  2. The distribution will be messier from an OSGi perspective

Agreed. How about keeping things simple and clean??


  3. OSGi will continue to remain a peripheral feature of Tuscany, never
  properly integrated since this is not really mainstream.

Agreed.


  4. Real bundles provide more flexibility to OSGi users in terms of
  substituting 3rd party jars with newer or patched versions of these, as
well
  as avoiding classloading conflicts resulting from version constraints.


Good point too.

My 2c: Generating bundles automatically from JARs is useless. If you want to
leverage OSGi you need to make authoring / fine tuning your imports/exports
a first class part of your development process.

I'm starting to feel like a broken record, so I'm going to say it one last
time, for the record. I think we should just follow a simple approach and
add proper (authored) OSGi entries to our JARs and 3rd party dependency
JARs. This doesn't multiply distros, doesn't duplicate JARs, does not
complicate the build. It just makes simple sense IMHO, and other projects
with experience with OSGi are on that path too.

--
Jean-Sebastien







Re: OSGi-enable 3rd party libraries in Tuscany

2008-05-28 Thread Simon Nash

Sorry for the long delay in responding.  I have been deeply buried
in implementing the new WSDL-less support, and I am only just
surfacing to follow up on other threads.  Comments inline.

  Simon

Rajini Sivaram wrote:

On 5/16/08, Simon Nash [EMAIL PROTECTED] wrote:

Jean-Sebastien Delfino wrote:


Simon Nash wrote:
... snip

 I believe that if we are serious about making OSGi-enablement of Tuscany

a
first class option, we should consider doing 1). For the longer term to
support versioning of 3rd party jars, 1) will provide a standard OSGi
mechanism. As more and more 3rd-party libraries are being OSGi-enabled,
this
can be seen as an intermediate step which enables users of Tuscany to
install Tuscany in the same standard OSGi way, into an OSGi runtime.


I agree and think we should do (1) everywhere we can.

I don't think Tuscany should modify third-party jars that we

are redistributing as part of Tuscany.  I think we should use
some variant of (3) for all third-party jars that aren't
already OSGi-enabled.



Can you say why?

At the moment we are redistributing these libraries as a convenience

for people who want to run Tuscany out of the box.  If people want
to obtain these libraries in some other way (e.g., from a maven repo,
by direct download from the third-party project, or as part of some
other download), that's fine too.

This change would alter that picture considerably.  For people
using Tuscany within OSGi, it would be necessary to use the modified
libraries distributed by Tuscany.




I am not sure if OSGi users of Tuscany would expect 3rd party non-bundle
jars downloaded from elsewhere to work with Tuscany running under OSGi. If
there is a requirement, we can support virtual bundles with naive manifests
just for these cases. I am not sure that is reason enough for virtual
bundles to be the only (or default) option.

On the other hand, I would think that OSGi users of Tuscany may expect 3rd
party bundle jars from other projects like ServiceMix to work with Tuscany
running under OSGi. We can easily support that with bundle-ized jars.


It would be great to have some co-ordination between these projects
so that they can share the same bundle-ized 3rd party jars rather
than all creating their own copies and giving the user the problem
of figuring out whose version of bundle-ized jaxb can be used with
Tuscany, ServiceMix, Spring, etc.



This might or might not be required

outside the OSGi environment, depending on how we set up the distro
and the way our extensions locate their third-party dependencies.



For users who run Tuscany outside of OSGi, we can (and should) continue to
support third party libraries downloaded from anywhere. I dont think
bundle-izing 3rd party libraries will require any changes to the way
extensions locate their third party dependencies.


If the bundle-izing is only intended for use by the native OSGi Tuscany
runtime, could we produce a separate distro that contains the native
OSGi Tuscany runtime and the bundle-ized 3rd party jars?  Our current
binary distro is very large and it would not be good to have it contain
a complete set of unmodified 3rd party jars and another complete set
of the same jars in bundle-ized form.  I would also not be keen to
change the regular binary distro to only contain bundle-ized jars
as I think this will be confusing for non-OSGi users of Tuscany,
especially if they don't want to use the exact levels of the 3rd-party
jars that Tuscany has decided to bundle-ize.




I looked at ServiceMix4 and I see that it is doing something like
this with the org.apache.servicemix.bundles.* files.  For example,
there's one of these that wraps the JAXB implementation in an OSGi
bundle.  If we do the same in Tuscany, anyone wanting to use Tuscany
with ServiceMix4 in an OSGi environment will need the ServiceMix+JAXB
bundle and also the Tuscany+JAXB bundle, duplicating all the JAXB
implementation classes.  Now add SpringSource and a few other
projects into the mix and how many copies of the same JAXB code will
the user need?  Any number greater than one is the wrong answer.



If you install ServiceMix4 and Tuscany, at the moment you will have
org.apache.servicemix.bundles.jaxb.jar and Tuscany's jaxb.jar on your disk.
Using real bundles, we will replace Tuscany's jaxb.jar with
org.apache.tuscany.sca.jaxb.jar. We still have two jaxb jars on the system.
Using virtual bundles, we will convert  Tuscany's jaxb.jar on the fly to
org.apache.tuscany.sca.jaxb.jar. The only use case where we reduce disk
space is where Tuscany's jaxb.jar is shared with other products running
outside OSGi.


As I said above, I'm not keen to replace jaxb.jar in the Tuscany binary
distro by org.apache.tuscany.sca.jaxb.jar.  If this is within the
context of a separate OSGi-specific binary distro, I would be OK
with including bundle-ized jars in that distro.


But I imagine disk space for jaxb.jar is not the issue. What we want to
minimize is the number of jaxb bundles installed

Re: OSGi-enable 3rd party libraries in Tuscany

2008-05-28 Thread Simon Nash

Rajini Sivaram wrote:

Can we decide on a solution for OSGi-enabling 3rd party libs (either in the
distribution or using virtual bundles), so that we can start tackling issues
like versioning (https://issues.apache.org/jira/browse/TUSCANY-2343)?


I just replied to your previous message on this.  Sorry for the
long delay in responding.  I have been deeply buried in the WSDL-less
support for the last couple of weeks.

  Simon




On 5/16/08, Simon Nash [EMAIL PROTECTED] wrote:

Jean-Sebastien Delfino wrote:


Simon Nash wrote:
... snip

 I believe that if we are serious about making OSGi-enablement of Tuscany

a
first class option, we should consider doing 1). For the longer term to
support versioning of 3rd party jars, 1) will provide a standard OSGi
mechanism. As more and more 3rd-party libraries are being OSGi-enabled,
this
can be seen as an intermediate step which enables users of Tuscany to
install Tuscany in the same standard OSGi way, into an OSGi runtime.


I agree and think we should do (1) everywhere we can.

I don't think Tuscany should modify third-party jars that we

are redistributing as part of Tuscany.  I think we should use
some variant of (3) for all third-party jars that aren't
already OSGi-enabled.



Can you say why?

At the moment we are redistributing these libraries as a convenience

for people who want to run Tuscany out of the box.  If people want
to obtain these libraries in some other way (e.g., from a maven repo,
by direct download from the third-party project, or as part of some
other download), that's fine too.

This change would alter that picture considerably.  For people
using Tuscany within OSGi, it would be necessary to use the modified
libraries distributed by Tuscany.  This might or might not be required
outside the OSGi environment, depending on how we set up the distro
and the way our extensions locate their third-party dependencies.

I looked at ServiceMix4 and I see that it is doing something like
this with the org.apache.servicemix.bundles.* files.  For example,
there's one of these that wraps the JAXB implementation in an OSGi
bundle.  If we do the same in Tuscany, anyone wanting to use Tuscany
with ServiceMix4 in an OSGi environment will need the ServiceMix+JAXB
bundle and also the Tuscany+JAXB bundle, duplicating all the JAXB
implementation classes.  Now add SpringSource and a few other
projects into the mix and how many copies of the same JAXB code will
the user need?  Any number greater than one is the wrong answer.

Another more minor point is that for Graham's minimal OSGi test
that's going to be part of the main build, it will be necessary to
build these wrapper bundles, increasing the disk space used by
the build because of the need to duplicate the contents of all the
third-party jars, which are already in my local maven repo.

 Simon

May you could look at what other projects that have spent time working on

OSGi are doing. Two examples:
- servicemix 4
- springsource app platform

There's probably more good examples out there.










[jira] Commented: (TUSCANY-2346) weaks in databinding-jaxb plug-in

2008-05-28 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-2346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12600433#action_12600433
 ] 

Simon Nash commented on TUSCANY-2346:
-

 recently added code in JAXBTypeHelper that does something similar to this.  
It's used to create a JAXB context for use in Java to WSDL runtime schema 
generation.  Ideally this code would be combined so that there's only one copy.

I'd like to experiment with doing this.  Can you attach a test case that 
demonstrates the current failure, so that I can verify that the combined code 
works OK in your scenario?

 weaks in databinding-jaxb plug-in
 -

 Key: TUSCANY-2346
 URL: https://issues.apache.org/jira/browse/TUSCANY-2346
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Data Binding Runtime, Java SCA OSGi Integration
Affects Versions: Java-SCA-1.2
 Environment: databinding-jaxb, OSGi (but i think it should affects 
 non-OSGi version too)
Reporter: Ivan Churkin
 Attachments: JAXBDataBinding.java


 There is a JAXB feature to create JAXB context by specifying the whole array 
 of all mapping classes. Tuscany databinding-jaxb plug-in unable to work with.
 As a result, when application uses SCA for transmitting objects created by 
 specifying complex JAXB context  it crashes.
 This plug-in (databinding-jaxb) creates context for marshalling on very 
 simple way. It gets class of root object and asks for JAXB to create context 
 by providing it. So it supports only simple/default JAXB contexts.
 Its suggested more sophisticated procedure.
 1. try to use default/simple context
 2. if it does not work,  to collect all JAXB related classes used in instance 
 object and its properties/subobjects by reflection and to create context by 
 array.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: [jira] Commented: (TUSCANY-2330) Calculator sample running in OSGi

2008-05-28 Thread Simon Nash

Graham Charters wrote:

I've been wondering whether we should make this an itest rather than a
sample.  We could keep it as a sample, but it relies on
maven-dependency-plugin to work out the dependencies required to run
the sample.  Is a sample that only works with maven acceptable (I
believe the other samples do not) or should I change this to be an
itest?


We do try hard to make the samples work with ant as well as maven.
There have been cases where samples started out with maven support
only and the ant support was added later.  From your description,
it doesn't sound lke this is likely to happen.

I believe the main purpose of this sample is to act as a test for
the Tuscany build rather than a sample for a user to copy and adapt.
If this is correct, I think it should be changed to an itest.

  Simon


Regards, Graham.

2008/5/23 Graham Charters (JIRA) tuscany-dev@ws.apache.org:

   [ 
https://issues.apache.org/jira/browse/TUSCANY-2330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12599389#action_12599389
 ]

Graham Charters commented on TUSCANY-2330:
--

Hi Rajini, sorry for taking so long to respond.  Please go ahead and check the 
code in with your update.  Changing it to use Felix is fine by me.  I tested it 
with both and there was little discernible difference in performance.

Thanks, Graham.


Calculator sample running in OSGi
-

Key: TUSCANY-2330
URL: https://issues.apache.org/jira/browse/TUSCANY-2330
Project: Tuscany
 Issue Type: Wish
 Components: Java SCA Samples
   Affects Versions: Java-SCA-Next
Environment: All
   Reporter: Graham Charters
Fix For: Java-SCA-Next

Attachments: calculator-osgi-sample.patch

  Original Estimate: 2h
 Remaining Estimate: 2h

It would help with preserving OSGi support if an OSGi sample were run as a 
matter of course, rather than only by a small number of developers.  This wish 
is to add the smallest sample possible based on existing Tuscany module 
dependencies.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.








Re: [jira] Commented: (TUSCANY-2343) OSGi bundle design leads to class loading issues

2008-05-28 Thread Simon Nash

One comment inline.

  Simon

Rajini Sivaram (JIRA) wrote:
[ https://issues.apache.org/jira/browse/TUSCANY-2343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12600437#action_12600437 ] 


Rajini Sivaram commented on TUSCANY-2343:
-

Georg,

Thank you for the details on your scenario. It has been very helpful. For now, 
I think we have enough information to make progress. When we start introducing 
more versioning information in the jars, it will be very useful to run these 
against your scenario first.

With tuscany-sca-osgi-installer.jar, 3rd party jars are installed with the 
actual jar versions. In the example you used of servlet api, the bundle 
installed will have:
Bundle-SymbolicName: org.apache.tuscany.sca.3rdparty.servlet-api-2.5
Bundle-Version: 2.5

Import statements in Tuscany however do not specify a version range. So Tuscany can use a different version of javax.servlet installed by an application and share classes from javax.servlet. 

As long as the version range used by the application contains the version 2.5, Tuscany and the application will use the same definitions of javax/servlet (either from this bundle or the one installed by the application). If the application uses a version range (eg. version=2.6) which does not match Tuscany's, the application and Tuscany could end up using javax.servlet from different bundles - in this case the application will always use 2.6, but Tuscany may use 2.6 or 2.5 as chosen by the OSGi framework since it does not specify a version range in its import). 


The issues that we need to address for versioning import statements are:

1) Version ranges specified in import statements should be broad enough to 
enable sharing. eg. If Tuscany is able to work with versions between 
2.4.8-2.6.2 of javax.servlet, the version range should include the entire range 
of those versions, enabling applications to choose the version.

2) Version ranges should be narrow enough to enable isolation when we want two versions to coexist. eg. If one Tuscany extensionA wants to use version 3.1 of foo.jar and another extensionB (or the application) wants to use 3.3 of the same jar, where classes of the jar are not required to be shared, we should be able to specify narrow ranges of versions in the import of org.foo, so that the extensions use different versions. 


It seems like this is coupling two things that are not the same:
 1. whether or not the extensions need to share the same loaded classes
 2. which version of the dependency the two extensions can tolerate (for their 
own compatibility needs)

  Simon


3) Versions introduced by tools like the maven-bundle-plugin cannot really 
provide us 1) and 2). So we will need to carefully analyse the usage of all 3rd 
party jars to introduce proper version ranges in imports. Hence scenarios like 
yours can be very useful to ensure that we get it right.

Back to  tuscany-sca-osgi-installer.jar - this is not built as part of the main 
build in Tuscany. So you need to run maven from itest/osgi-tuscany. You should 
then be able to install and start this bundle. You should see around 200 
bundles installed when bundle.start() returns.

You will need to modify the build script only if you want to disable the 
installation of a 3rdparty jar.
1) If the JAXB bundle you are using is the same version (eg. 2.6.1) as the one 
installed by Tuscany, you wont need to change anything. A single bundle will be 
chosen as exported by the framework.
2) If the JAXB bundle you are using is of a different version (eg. 2.6.2), and 
the application's import statements use a range which includes both 2.6.1 and 
2.6.2, you dont need to change anything. The same export will be used for both 
application and Tuscany.
3) If the application uses a version range that is different (application 
requires 2.6.2), you should change the Tuscany installer build script to 
exclude version 2.6.1, to ensure that Tuscany does not pick that one.

Hope this helps.




OSGi bundle design leads to class loading issues


Key: TUSCANY-2343
URL: https://issues.apache.org/jira/browse/TUSCANY-2343
Project: Tuscany
 Issue Type: Bug
   Reporter: Georg Schmidt

Currently the design of the OSGi bundles leads to class loading exceptions. 
There seem to be several reasons for this behavior:

* reexporting of all libraries without version numbers
* imports without version numbers
Please use distinct bundles for 3rd party libraries. That would lead to easier 
reusage of your bundles in a larger OSGi project.
The current status leads to undefined system behaviour due to the OSGi class 
loading concept.
Please tell if you see a way, how we could support you by achieving this goal. 
(If a solution is interesting for you)  We are willing to contribute because 
its a critical project issue for us.

Build failure in StoreSupplierTestCase

2008-05-28 Thread Simon Nash

I'm getting the following failure when building the tutorial.  It
seems to happen every time I do a full top-level build from a new
checkout.  Any ideas for solving it or debugging it further?
Which service is returning the HTTP 500 response?

  Simon

Running test.StoreSupplierTestCase
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/ui/home/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/ui/workspace/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/ui/files/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/ui/composite/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/ui/cloud/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/workspace/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/contribution/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/feed/files/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/files/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/composite/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/composite-source/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/deployable/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/composite-generated/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/composite-resolved/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/cloud/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/cloud-source/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/composite-config/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/node-config/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/quickstart/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/processes/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/node/processes/*
28-May-2008 11:39:00 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:9990/ping/*
28-May-2008 11:39:00 org.apache.tuscany.sca.node.impl.NodeImpl init
INFO: Creating node: http://localhost:9990/node-config/StoreSupplierNode
28-May-2008 11:39:02 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
INFO: Loading contribution: file:/F:/tuscany71/sca/tutorial/store-test/../assets
/target/tutorial-assets.jar
28-May-2008 11:39:02 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
INFO: Loading contribution: file:/F:/tuscany71/sca/tutorial/store-test/../store-
supplier/target/tutorial-store-supplier.jar
28-May-2008 11:39:02 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
INFO: Loading composite: http://localhost:9990/composite-resolved/composite:stor
e-supplier;http://store;store-supplier
28-May-2008 11:39:05 org.apache.tuscany.sca.node.impl.NodeImpl start
INFO: Starting node: http://localhost:9990/node-config/StoreSupplierNode
28-May-2008 11:39:06 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:8103/ui/*
28-May-2008 11:39:06 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:8103/StoreSupplierCatalog/*
28-May-2008 11:39:06 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping
INFO: Added Servlet mapping: http://SouthRim:8103/StoreSupplierCatalog
28-May-2008 11:39:06 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
ping

[jira] Commented: (TUSCANY-1713) The WSDL-less feature doesn't honor the XSD type information in the SDO parameter/return type

2008-05-28 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-1713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12600586#action_12600586
 ] 

Simon Nash commented on TUSCANY-1713:
-

I tried this with the new runtime Java2WSDL generator.  As part of the check-in 
to enable the new generator, I had fixed a problem in the test case where the 
namespace of the AccountDataService service endpoint interface 
(http://accountdata.services.account.bigbank;) did not match the namespace in 
the WSDL and the generated SDO wrapper classes 
(http://www.bigbank.com/account;).  I fixed this by adding the annotation 
@WebService(targetNamespace=http://www.bigbank.com/account;) to the 
AccountDataService interface so that the namespaces are all consistent.

With this namespace fix in the test case and the new Java2WSDL runtime 
generator (case 1), the SOAP request message is

p0:createAccount 
xmlns:p0=http://www.bigbank.com/account;customerProfilefirstNamepetra/firstNamelastNameA/lastNameaddresshome/addressemail[EMAIL
 
PROTECTED]/emailloginIDpetra/loginIDpasswordant/passwordid1/id/customerProfile/p0:createAccount

and the response message is

p0:createAccountResponse 
xmlns:p0=http://www.bigbank.com/account;customerProfilefirstNamepetra/firstNamelastNameA/lastNameaddresshome/addressemail[EMAIL
 
PROTECTED]/emailloginIDpetra/loginIDpasswordant/passwordid1/id/customerProfile/p0:createAccountResponse

which all looks clean and correct, and is marshalled and unmarshalled correctly 
by the runtime.

If I remove the namespace fix from the test case (case 2), thus creating a 
user error situation with inconsistent namespaces, the SOAP request message 
changes to

_ns_:createAccount 
xmlns:_ns_=http://accountdata.services.account.bigbank/;p0:arg0 
xmlns:p0=http://accountdata.services.account.bigbank/; 
xmlns:p1=http://www.bigbank.com/account; 
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; 
xsi:type=p1:CustomerProfileDatafirstNamepetra/firstNamelastNameA/lastNameaddresshome/addressemail[EMAIL
 
PROTECTED]/emailloginIDpetra/loginIDpasswordant/passwordid1/id/p0:arg0arg1
 xmlns=http://accountdata.services.account.bigbank/;false/arg1arg2 
xmlns=http://accountdata.services.account.bigbank/;false/arg2/_ns_:createAccount

and the response message remains as previously, i.e.,

p0:createAccountResponse 
xmlns:p0=http://www.bigbank.com/account;customerProfilefirstNamepetra/firstNamelastNameA/lastNameaddresshome/addressemail[EMAIL
 
PROTECTED]/emailloginIDpetra/loginIDpasswordant/passwordid1/id/customerProfile/p0:createAccountResponse

There is a problem/inconsistency here.  The request message is using the 
namespace http://accountdata.services.account.bigbank/; for the request 
wrapper, so it is taking the namespace from the SEI and the generated WSDL.  
However, the response wrapper is using the namespace 
http://www.bigbank.com/account;, so it is taking the namespace from the SDO 
wrapper and not from the SEI or generated WSDL.

The service is able to unmarshal the request, even though the SOAP namespace 
for the request wrapper doesn't match the SDO request wrapper class on the 
service side.  However, the client isn't able to unmarshal the response 
correctly (it creates a generic dynamic SDO for customerProfile).

It appears that
a) request marshalling and unmarshalling is using the WSDL namespace for 
wrappers and ignoring SDO wrapper classes if they exist
b) request marshalling and unmarshalling is using xsi:type to correctly 
identify the namespace and local name of the wrapped data type
c) response marshalling is creating wrappers using SDO wrapper classes if they 
exist, even if these have a namespace that doesn't match the WSDL
d) response marshalling is not using xsi:type to identify the wrapped data 
type, causing unmarshalling to fail





 The WSDL-less feature doesn't honor the XSD type information in the SDO 
 parameter/return type 
 --

 Key: TUSCANY-1713
 URL: https://issues.apache.org/jira/browse/TUSCANY-1713
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension
Affects Versions: Java-SCA-Next
Reporter: Raymond Feng
 Fix For: Java-SCA-Next


 In the itest-wsdless test case testClient1b2a3a4a, we use interface.java for 
 the client side and interface.wsdl for the service side. Generated SDO are 
 used for both the client and service side. But the current java2wsdl 
 conversion creates a similar but not equivalent WSDL as the service side. As 
 a result, the outbound call flows the non-comforming XML in the body of the 
 SOAP message. We have to work around the unwrapping logic on the service side 
 to tolerate the incoming data.
 _ns_:createAccount 
 xmlns:_ns_=http://accountdata.services.account.bigbank;param0 
 xmlns=http

Re: SCA 1.2.1 release

2008-05-27 Thread Simon Nash

Dave Sowerby wrote:

Hi Simon,

With regards to the 1.2.1 release you are correct that we have a
patched version of tuscany-sca-all which would work, but this however
leaves us in an awkward configuration position.

We're currently preparing a software release based around Tuscany
which is completely open to customers of our use of Tuscany, such that
we document fully how to construct services independent of our
software.  As such, we do not ship any Tuscany artifacts and instead
encourage our customers to utilise the published maven repository.
Whilst requiring a patch version of one of the jars is possible; I
don't feel that this is a good representation of Tuscany - either
documenting a variant version or expecting a non-standard version of
1.2-incubating.  These potential solutions are more likely to cause
issues for customers that would undermine the image of Tuscany that we
try to project.

Is anyone adamantly opposed to this release?  Do you feel Tuscany
1.2.1 is still an option?  I'd hope that given the potential to damage
our customer's perception of Tuscany would be enough to justify this
minor release.


Thanks for the clarifaction and explanation.  It seems to me that
because we distribute Tuscany via Maven repos, which can't be patched,
this kind of situation will arise whenever a serious bug is found.
We can use patches to isolate a problem and confirm the fix, but we
generally won't be able to use them as an alternative to a release.

In a situation like this, unless a new release is imminent, the best
solution seems to be to produce a quick bug fix release without
incurring the overhead of a full release and testing cycle.  Ant has
suggested that we could do this by applying a small set of carefully
controlled changes to the previous 1.2 release tag.  I think we need
to be very strict about what changes go in, to avoid another experience
like 1.0.1.  Specifically, I would suggest only including the fix
for TUSCANY-2304.

What do others think of this?

  Simon


Cheers,

Dave.

On Tue, May 20, 2008 at 12:00 PM, Simon Nash [EMAIL PROTECTED] wrote:

Nishant Joshi wrote:

Hi All,
I have raised TUSCANY-2304 which was actually blocking me to go further
with
SCA client. So It was given high priority to resolved and fortunately Ant
has resolved it very fast, i appreciate his effortt, thanks alot Ant for
this :).
Another one was TUSCANY-2251 that was handled by Simon Nash and he has
also
done good progress on it (found from this list ). This problem came in
eclipse generated web service client (please refer it for more detail) so
this is also in high priority to get in next release. So i request to add
TUSCANY-2304 in 1.2.1 and if possible TUSCANY-2251 also.

One more thing, its very critical for us to get the next release 1.2.1
ASAP
(with 2304 and if possbile 2251 also :) ).

So I hope you can understand the effect of the TUSCANY-2304 for any
tuscany
SCA client user .

Hi Nishant,
The work to fix TUSCANY-2251 has turned out bigger than expected.
It's one of those cases where the first 80%-90% can be done quite
quickly but supporting the final 10%-20% of cases turns up many
issues, some of which require changes in other parts of the code.

I'm preparing a (large) checkin to update the new generator code
so that it handles most of the cases (perhaps 95%).  This should be
enough to get the full build to run with the new code.  However, I
wouldn't consider the new code to be ready to release at that point.
It will need quite a bit of further testing and a few more updates
to take care of the remaining 5% of cases.  Some of these cases will
require discussion on the list to agree how they should be handled.
Also, the new code will need testing by people other than myself
with their scenarios to make sure that it does not break cases that
worked with the previous Java2WSDL generator.

For all these reasons, I think it will take about another 3 weeks
to get the new generator code to the state that I would be happy
to see it enabled in a release.

Regarding TUSCANY-2304, from other emails I see that Ant has sent
you a patched version of tuscany-sca-all-1.2-incubating.jar that
contains the fix for your problem.  Can you explain why you need a
new release in addition to this patch?

 Simon










Re: Tuscany Java2WSDL and WSDL2Java tools

2008-05-22 Thread Simon Nash

ant elder wrote:

On Wed, May 21, 2008 at 7:47 PM, Simon Nash [EMAIL PROTECTED] wrote:


Scott Kurz wrote:


That 'generate-sdo' only generates the Java types from the schema types,
right?

It's the WSDL2Java which maps portType operations t**o Java methods and
(last I checked) our
W2J is the only tool which knows how to do this with an SDO databinding.

 Are the Java Service Endpoint Interfaces generated from WSDL portTypes

when using an SDO databinding different from what JAX-WS would produce
when using a JAXB databinding?  Or are the differences confined to the
Java code that's generated for the XSD types referenced in the WSDL?
If possible, it would be good if we could use standard tools to generate
the Java SEIs, and SDO-specific tools for the XSD to Java static SDO
translation.



One extra thing an SCA specific tool does need to do is to add the
org.osoa.sca.Remotable annotation to the SEI. Maybe that could be done with
a simple post processor?

   ...ant


According to the SCA Java spec, @WebService implies @Remotable
(see chapter 9 of JavaCAA), so this may not be an issue.

  Simon



Re: Graduation

2008-05-22 Thread Simon Nash

Matthieu Riou wrote:

Special order 7B, Establish the Apache Tuscany Project, was approved by
Unanimous Vote of the directors present.

Congratulations guys!

Matthieu


Thanks for this excellent news.  It has been great to be part of
the Tuscany community in our journey towards full Apache-hood,
and I have appreciated all the help from our mentors and the
IPMC along the way.

  Simon



Re: Build failure in itest/contribution-classloader (monitor problem)

2008-05-22 Thread Simon Nash

Rajini Sivaram wrote:

Simon,

Do we actually expect to always find a monitor implementation on the
classpath? If so, I think we should throw an exception earlier on if no
monitor implementation was found, rather than a NullPointerException masking
the original exception when something does go wrong. But shouldn't we
actually tolerate the absence of a monitor implementation, and use monitors
with checks for null?

monitor-logging is not a dependency on host-embedded at the moment.
itest/contribution-classloader is the only test that fails because it is the
only one which uses the exception code path.


If we are going to write unguarded monitor calls then we need
to be 100% certain that a monitor will always be present.  It should
be possible to ensure this by having a default do nothing monitor
that is created at startup and can be overridden with a user-written
implementation if one is found.

I think that enforcing the 100% guarantee is better than writing
null tests before every monitor call.

  Simon



On 5/22/08, Simon Laws [EMAIL PROTECTED] wrote:

On Wed, May 21, 2008 at 9:33 PM, Simon Nash [EMAIL PROTECTED] wrote:


I just did a clean checkout and full build.  It failed in
itest/contribution-classloader with the following stack trace.

The problem is caused by a null value in the monitor variable
on line 124 of JavaInterfaceProcessor.  This does not seem to
happen for other tests.  Any ideas?

 Simon

Running org.apache.tuscany.sca.test.contribution.ContributionTestCase
Created supplychain.customer.JavaCustomerComponentImpl using: SCA
contribution c
lassloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/Customer.jar
Created supplychain.retailer.JavaRetailerComponentImpl using: SCA
contribution c
lassloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/Retailer.jar
Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA
contribution
 classloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contrib
ution-test/target/contributions/Warehouse.jar
Created supplychain.shipper.JavaShipperComponentImpl using: SCA
contribution cla
ssloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contributio
n-test/target/contributions/Shipper.jar
Work thread Thread[Thread-2,5,main] - Order, submitted, fulfilled,

shipped

Created supplychain.customer.JavaCustomerComponentImpl using:
java.net.URLClassL
[EMAIL PROTECTED]
Created supplychain.retailer.JavaRetailerComponentImpl using:
java.net.URLClassL
[EMAIL PROTECTED]
Created supplychain.warehouse.JavaWarehouseComponentImpl using:
java.net.URLClas
[EMAIL PROTECTED]
Created supplychain.shipper.JavaShipperComponentImpl using:
java.net.URLClassLoa
[EMAIL PROTECTED]
Work thread Thread[Thread-4,5,main] - Order, submitted, fulfilled,

shipped

Created supplychain.illegal.JavaCustomerComponentImpl using: SCA
contribution cl
assloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contributi
on-test/target/contributions/IllegalCustomer.jar
Created supplychain.retailer.JavaRetailerComponentImpl using: SCA
contribution c
lassloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/Retailer.jar
Created a retailer from Customer
supplychain.retailer.JavaRetailerComponentImpl@
3fac1e22
Created supplychain.customer.JavaCustomerComponentImpl using: SCA
contribution c
lassloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/CompleteSupplyChain.jar
Created supplychain.retailer.JavaRetailerComponentImpl using: SCA
contribution c
lassloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/CompleteSupplyChain.jar
Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA
contribution
 classloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contrib
ution-test/target/contributions/CompleteSupplyChain.jar
Created supplychain.shipper.JavaShipperComponentImpl using: SCA
contribution cla
ssloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contributio
n-test/target/contributions/CompleteSupplyChain.jar
Work thread Thread[Thread-6,5,main] - Order, submitted, fulfilled,

shipped

Created supplychain.customer.JavaCustomerComponentImpl using: SCA
contribution c
lassloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/CustomerImpl.jar
Created supplychain.retailer.JavaRetailerComponentImpl using: SCA
contribution c
lassloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/Retailer.jar
Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA
contribution
 classloader for :
file:/F:/tuscany70/sca/itest/contribution-classloader/contrib
ution-test/target/contributions/Warehouse.jar
Created supplychain.shipper.JavaShipperComponentImpl

Re: Tuscany Java2WSDL and WSDL2Java tools

2008-05-21 Thread Simon Nash

Scott Kurz wrote:

That 'generate-sdo' only generates the Java types from the schema types,
right?

It's the WSDL2Java which maps portType operations t**o Java methods and
(last I checked) our
W2J is the only tool which knows how to do this with an SDO databinding.


Are the Java Service Endpoint Interfaces generated from WSDL portTypes
when using an SDO databinding different from what JAX-WS would produce
when using a JAXB databinding?  Or are the differences confined to the
Java code that's generated for the XSD types referenced in the WSDL?
If possible, it would be good if we could use standard tools to generate
the Java SEIs, and SDO-specific tools for the XSD to Java static SDO
translation.


I'm not sure how useful the SDO-based J2W is, however.   There are a lot of
ways to generate a WSDL and
as long as the work Simon Nash is doing to do a J2W at runtime can handle
SDOs it would seem the tool-time
code could be abandoned.


I'd like to get the runtime part working properly before I start
looking at what is needed to make the same functionality available
from the tools.  In principle this seems like the right approach,
but it might be quite a lot of work depending on environmental
differences and how much flexibility we want to enable through
different codegen options.

For example, the runtime code introspects the contribution to locate
the XSDs that correspond to SDO static types.  At tool time, there
would need to be command-line options to say where to find the XSDs.

Another difference is that the runtime code code works by
introspecting Java classes loaded into the current VM.  It is
considered bad practice for tools (e.g., rmic) to work in this
way, because of potential interference between the classes
being processed and the tool's own runtime.  As an example,
think of what would happen if a loaded class ran a constructor
that went into a loop, or called System.exit().  Instead, these
tools read class files and generate a pure data in-memory
representation of the class information that is then processed.

I suspect there will be a number of such differences.  None will
be insoluble, but all will require effort to design and implement.

  Simon




On Wed, May 21, 2008 at 10:05 AM, ant elder [EMAIL PROTECTED] wrote:


On Wed, May 21, 2008 at 2:53 PM, Mike Edwards 
[EMAIL PROTECTED] wrote:


ant elder wrote:


Do we really need these as they are today? Currently they contain copies
of
various Axis2 classes updated for Tuscany so its not a completely

trivial

upgrade to move to Axis2 1.4 and while looking at that I wondered what

we

really want them for.

The Java2WSDL tool doesn't look like its actually used anywhere by any

of

the Tuscany samples or demos or anything. We have all the new runtime
Java2WSDL code so ideally we'd move to that instead of using all the
patched
Java2WSDL classes. WSDL2Java is only used by one BPEL sample, the other
samples needing that type of thing use the SDO tools directly to gen

Java

classes from XML schema. We've now changed all the runtime to use jaxb

and

jaxws so should we look at using the tools for those instead of the

Axis2

WSDL2Java tool?

Any one have any thoughts?

  ...ant

 Ant,

Whoa there


:-)




One of the main points of having Tuscany tools in this area is to assist
developers who are having to use WSDL and who want to use SDOs in their

Java

code.  If we get rid of the Tuscany tools, how are developers supposed to
handle this?



Handle what exactly is what I'm asking. What are the use cases we want to
support? Looking at the state of the code I'm not sure these tools actually
are working properly today and its not that clear (to me) what it is we
want
them to do anyway. SDO has its own tools for dealing with WSDL which we
use,
eg, look at the bottom of the pom.xml in the wsdl itest [1].

  ...ant

[1]

https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/wsdl/pom.xml







Build failure in itest/contribution-classloader (monitor problem)

2008-05-21 Thread Simon Nash

I just did a clean checkout and full build.  It failed in
itest/contribution-classloader with the following stack trace.

The problem is caused by a null value in the monitor variable
on line 124 of JavaInterfaceProcessor.  This does not seem to
happen for other tests.  Any ideas?

  Simon

Running org.apache.tuscany.sca.test.contribution.ContributionTestCase
Created supplychain.customer.JavaCustomerComponentImpl using: SCA contribution c
lassloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/Customer.jar
Created supplychain.retailer.JavaRetailerComponentImpl using: SCA contribution c
lassloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/Retailer.jar
Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA contribution
 classloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contrib
ution-test/target/contributions/Warehouse.jar
Created supplychain.shipper.JavaShipperComponentImpl using: SCA contribution cla
ssloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contributio
n-test/target/contributions/Shipper.jar
Work thread Thread[Thread-2,5,main] - Order, submitted, fulfilled, shipped
Created supplychain.customer.JavaCustomerComponentImpl using: java.net.URLClassL
[EMAIL PROTECTED]
Created supplychain.retailer.JavaRetailerComponentImpl using: java.net.URLClassL
[EMAIL PROTECTED]
Created supplychain.warehouse.JavaWarehouseComponentImpl using: java.net.URLClas
[EMAIL PROTECTED]
Created supplychain.shipper.JavaShipperComponentImpl using: java.net.URLClassLoa
[EMAIL PROTECTED]
Work thread Thread[Thread-4,5,main] - Order, submitted, fulfilled, shipped
Created supplychain.illegal.JavaCustomerComponentImpl using: SCA contribution cl
assloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contributi
on-test/target/contributions/IllegalCustomer.jar
Created supplychain.retailer.JavaRetailerComponentImpl using: SCA contribution c
lassloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/Retailer.jar
Created a retailer from Customer supplychain.retailer.JavaRetailerComponentImpl@
3fac1e22
Created supplychain.customer.JavaCustomerComponentImpl using: SCA contribution c
lassloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/CompleteSupplyChain.jar
Created supplychain.retailer.JavaRetailerComponentImpl using: SCA contribution c
lassloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/CompleteSupplyChain.jar
Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA contribution
 classloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contrib
ution-test/target/contributions/CompleteSupplyChain.jar
Created supplychain.shipper.JavaShipperComponentImpl using: SCA contribution cla
ssloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contributio
n-test/target/contributions/CompleteSupplyChain.jar
Work thread Thread[Thread-6,5,main] - Order, submitted, fulfilled, shipped
Created supplychain.customer.JavaCustomerComponentImpl using: SCA contribution c
lassloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/CustomerImpl.jar
Created supplychain.retailer.JavaRetailerComponentImpl using: SCA contribution c
lassloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contribut
ion-test/target/contributions/Retailer.jar
Created supplychain.warehouse.JavaWarehouseComponentImpl using: SCA contribution
 classloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contrib
ution-test/target/contributions/Warehouse.jar
Created supplychain.shipper.JavaShipperComponentImpl using: SCA contribution cla
ssloader for : file:/F:/tuscany70/sca/itest/contribution-classloader/contributio
n-test/target/contributions/Shipper.jar
Work thread Thread[Thread-8,5,main] - Order, submitted, fulfilled, shipped
Tests run: 9, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.581 sec  FA
ILURE!
testIllegalStaticClassLoading1(org.apache.tuscany.sca.test.contribution.Contribu
tionTestCase)  Time elapsed: 0.219 sec   ERROR!
java.lang.NullPointerException
at org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor.r
esolveJavaInterface(JavaInterfaceProcessor.java:124)
at org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor.r
esolve(JavaInterfaceProcessor.java:148)
at org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor.r
esolve(JavaInterfaceProcessor.java:50)
at org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProc
essorExtensionPoint$LazyStAXArtifactProcessor.resolve(DefaultStAXArtifactProcess
orExtensionPoint.java:320)
at org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactP

Re: SCA 1.2.1 release

2008-05-20 Thread Simon Nash

Nishant Joshi wrote:

Hi All,
I have raised TUSCANY-2304 which was actually blocking me to go further with
SCA client. So It was given high priority to resolved and fortunately Ant
has resolved it very fast, i appreciate his effortt, thanks alot Ant for
this :).
Another one was TUSCANY-2251 that was handled by Simon Nash and he has also
done good progress on it (found from this list ). This problem came in
eclipse generated web service client (please refer it for more detail) so
this is also in high priority to get in next release. So i request to add
TUSCANY-2304 in 1.2.1 and if possible TUSCANY-2251 also.

One more thing, its very critical for us to get the next release 1.2.1 ASAP
(with 2304 and if possbile 2251 also :) ).

So I hope you can understand the effect of the TUSCANY-2304 for any tuscany
SCA client user .


Hi Nishant,
The work to fix TUSCANY-2251 has turned out bigger than expected.
It's one of those cases where the first 80%-90% can be done quite
quickly but supporting the final 10%-20% of cases turns up many
issues, some of which require changes in other parts of the code.

I'm preparing a (large) checkin to update the new generator code
so that it handles most of the cases (perhaps 95%).  This should be
enough to get the full build to run with the new code.  However, I
wouldn't consider the new code to be ready to release at that point.
It will need quite a bit of further testing and a few more updates
to take care of the remaining 5% of cases.  Some of these cases will
require discussion on the list to agree how they should be handled.
Also, the new code will need testing by people other than myself
with their scenarios to make sure that it does not break cases that
worked with the previous Java2WSDL generator.

For all these reasons, I think it will take about another 3 weeks
to get the new generator code to the state that I would be happy
to see it enabled in a release.

Regarding TUSCANY-2304, from other emails I see that Ant has sent
you a patched version of tuscany-sca-all-1.2-incubating.jar that
contains the fix for your problem.  Can you explain why you need a
new release in addition to this patch?

  Simon



[jira] Commented: (TUSCANY-2324) InterfaceContract is not pushed down to an inner, promoted component reference only with Axis2 binding

2008-05-16 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-2324?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12597382#action_12597382
 ] 

Simon Nash commented on TUSCANY-2324:
-

Disclaimer: I haven't yet looked at the code.

I think the interface contract on the outer reference should be used for the WS 
binding.  According to the spec rules, it must provide a compatible subset of 
operations on the interface for the inner reference.  If the generated WSDL 
doesn't match the actual WSDL, this suggests that the interfaces are not 
compatible, which would violate the spec and should be diagnosed as an error.

There's a JIRA (TUSCANY-2109) already open for what looks like a very similar 
problem caused by namespace conflicts between the two interfaces.  It may be 
possible to close this JIRA as a duplicate of TUSCANY-2109.

 InterfaceContract is not pushed down to an inner, promoted component 
 reference only with Axis2 binding 
 ---

 Key: TUSCANY-2324
 URL: https://issues.apache.org/jira/browse/TUSCANY-2324
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension
Reporter: Scott Kurz
Priority: Minor

 If we take the following example where an inner component reference is 
 overridden in two ways by the outer component using the inner Composite as 
 impl:
  1) a binding.ws is added
  2) a WSDL intf (compatible with the inner Java intf) is declared 
 composite ...   name=OuterComposite
 component name=OuterComponent
 implementation.composite name=blah:InnerComposite/
 reference name=outerRef target=MyTarget
 interface.wsdl 
 interface=http://blah#wsdl.interface(HelloWorld) /
 binding.ws/
 /reference
 /component
 /composite
 composite    name=InnerComposite
 component name=InnerComponent
 implementation.java .../
 reference name=helloWorldService
 interface.java 
 interface=test.sca.w2j.ws.statc.exc.helloworld.HelloWorld/
 /reference
 /component
 reference name=outerRef 
 promote=InnerComponent/helloWorldService/
 /composite
 we have a problem.  
 The CompositeActivatorImpl is going to start an Axis2ReferenceBindingProvider 
 for the inner Composite ref.  The WS binding is propagated down or 
 inwards, you could say.But this WS binding has a null IC, so we're going 
 to look at the component ref IC, but this will be the inner component ref IC, 
 which is a Java IC. This kicks off a Java2WSDL and the new WSDL IC 
 becomes the Axis2 ref binding IC.
 So the generated WSDL may not match the actual WSDL, which is a problem.
 Of course, if we had included a wsdlElement (e.g. wsdl.port ) on the outer 
 component's binding.ws/ we would not have had a problem;  it would have 
 been propagated inwards along with the binding itself.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: Small OSGi sample for the main build?

2008-05-16 Thread Simon Nash

Graham Charters wrote:

Below are a couple of runs, one taking 2 mins 50s and the second
taking 1 min 8s.  Both were done after mvn cleans so the difference is
maybe due to my machine being under spec and paging.

[INFO] 
[INFO] Reactor Summary:
[INFO] 
[INFO] Apache Tuscany OSGi - Tuscany 3rdParty Manifest Bundle for
Calculator Sample  SUCCESS [1:06.859s]
[INFO] Apache Tuscany OSGi - Tuscany Manifest Bundle for Calculator
Sample  SUCCESS [31.297s]
[INFO] Calculator Sample Running in an OSGi Framework  SUCCESS
[1:07.594s]
[INFO] Calculator Sample Running in an OSGi Framework  SUCCESS [4.687s]
[INFO] 

[INFO] 
[INFO] Reactor Summary:
[INFO] 
[INFO] Apache Tuscany OSGi - Tuscany 3rdParty Manifest Bundle for
Calculator Sample  SUCCESS [35.406s]
[INFO] Apache Tuscany OSGi - Tuscany Manifest Bundle for Calculator
Sample  SUCCESS [7.281s]
[INFO] Calculator Sample Running in an OSGi Framework  SUCCESS [24.172s]
[INFO] Calculator Sample Running in an OSGi Framework  SUCCESS [0.969s]
[INFO] 


From the above, it seems that the major time cost is the building of
the manifest bundles.  Graham's earlier note said that the third-party
manifest bundle consumes 17.5MB of disk space.

Could the time and space overheads be reduced by building virtual
bundles (or a single virtual bundle) for the third-party libraries?
As I understand it, this would save 17.5MB of disk space (as the
third party libraries are already in my maven repo), and it would
presumably take less time as nothing would need to be written to disk.

  Simon



2008/5/16 Simon Laws [EMAIL PROTECTED]:

On Fri, May 16, 2008 at 1:05 PM, Simon Laws [EMAIL PROTECTED]
wrote:



On Fri, May 16, 2008 at 12:44 PM, Graham Charters 
[EMAIL PROTECTED] wrote:


Hi,

Regarding Mike's build breaking comment, one of the reasons for
including this in the main build is to have it break to flag when new
dependencies are being introduced.  This will help us focus on
improving Tuscany modularity, but also help us preserve the support
for running in OSGi.  It will also give us a place to focus on keeping
the core small.

I now have what I think is the smallest subset of modules, based on
current dependencies.  My previous attempt took the approach of
cutting down a distribution, but the latest was created by adding to
the dependencies of the basic Calculator.  The net result is 47
bundles, 49MB (33MB felix cache and 16MB third-party jars) and takes
about 2.5 mins to build and run which does not seem like a big delta
over and above the time taken to do a full Tuscany build and run all
the samples.

The sca modules which are installed are:

tuscany-assembly-2.0-incubating-SNAPSHOT.jar
tuscany-assembly-xml-2.0-incubating-SNAPSHOT.jar
tuscany-assembly-xsd-2.0-incubating-SNAPSHOT.jar
tuscany-binding-sca-2.0-incubating-SNAPSHOT.jar
tuscany-contribution-2.0-incubating-SNAPSHOT.jar
tuscany-contribution-impl-2.0-incubating-SNAPSHOT.jar
tuscany-contribution-java-2.0-incubating-SNAPSHOT.jar
tuscany-contribution-namespace-2.0-incubating-SNAPSHOT.jar
tuscany-contribution-osgi-2.0-incubating-SNAPSHOT.jar
tuscany-contribution-resource-2.0-incubating-SNAPSHOT.jar
tuscany-contribution-xml-2.0-incubating-SNAPSHOT.jar
tuscany-core-2.0-incubating-SNAPSHOT.jar
tuscany-core-spi-2.0-incubating-SNAPSHOT.jar
tuscany-databinding-2.0-incubating-SNAPSHOT.jar
tuscany-databinding-json-2.0-incubating-SNAPSHOT.jar
tuscany-definitions-2.0-incubating-SNAPSHOT.jar
tuscany-definitions-xml-2.0-incubating-SNAPSHOT.jar
tuscany-domain-2.0-incubating-SNAPSHOT.jar
tuscany-domain-api-2.0-incubating-SNAPSHOT.jar
tuscany-domain-impl-2.0-incubating-SNAPSHOT.jar
tuscany-extensibility-2.0-incubating-SNAPSHOT.jar
tuscany-host-embedded-2.0-incubating-SNAPSHOT.jar
tuscany-host-http-2.0-incubating-SNAPSHOT.jar
tuscany-implementation-java-2.0-incubating-SNAPSHOT.jar
tuscany-implementation-java-runtime-2.0-incubating-SNAPSHOT.jar
tuscany-implementation-java-xml-2.0-incubating-SNAPSHOT.jar
tuscany-interface-2.0-incubating-SNAPSHOT.jar
tuscany-interface-java-2.0-incubating-SNAPSHOT.jar
tuscany-interface-java-jaxws-2.0-incubating-SNAPSHOT.jar
tuscany-interface-java-xml-2.0-incubating-SNAPSHOT.jar
tuscany-interface-wsdl-2.0-incubating-SNAPSHOT.jar
tuscany-interface-wsdl-java2wsdl-2.0-incubating-SNAPSHOT.jar
tuscany-interface-wsdl-xml-2.0-incubating-SNAPSHOT.jar
tuscany-monitor-2.0-incubating-SNAPSHOT.jar
tuscany-node-2.0-incubating-SNAPSHOT.jar
tuscany-node-api-2.0-incubating-SNAPSHOT.jar
tuscany-node-impl-2.0-incubating-SNAPSHOT.jar

Re: SCA 1.2.1 release

2008-05-16 Thread Simon Nash

Mike Edwards wrote:

For my 1 cent on this point.

The BPEL code is still raw at this stage and I feel it could do with a 
few more tweaks before it is really ready for prime time - I certainly 
still have a lot of trouble getting it to work - and I'm working on it!!



I'm not familiar with the BPEL code but I do remember what happened
with 1.0.1 and I don't think we should repeat that experience.

If there are broken things causing serious impact to users for which
we already have a fix that's relatively small and localized, these
could be considered.  I'd expect there to be a very small list of
JIRAs falling into this category.

For new features, or bugs that are not causing serious user impact,
or things that need extensive code changes, or things that are not
fully ready and tested yet, I think we should defer them to the
next full release.

  Simon



Yours,  Mike.

Luciano Resende wrote:

In the past, there has been various requests for this feature in the
user/dev list, and unfortunately I couldn't get it ready by 1.2.
It seems like a reasonable time to add it now that we are going to
make this 1.2.1 release. BTW, the changes are localized and not so
big.

On Thu, May 15, 2008 at 3:07 PM, Simon Nash [EMAIL PROTECTED] wrote:

Luciano Resende wrote:

Any chance I could add the bpel reference support as part of this
release ? The changes are localized and won't affect other areas.


Is there a user requesting this support?  Remembering the 1.0.1
experience, I think we should keep this release as small and focused
as possible.

 Simon


On Thu, May 15, 2008 at 2:10 AM, ant elder [EMAIL PROTECTED] wrote:

I've had a request to do an official release that includes the fix for
TUSCANY-2304. I think this is reasonable so would like to do this, it
shouldn't be too hard as its a small fix so its just copying the 1.2
release
tag, applying the fix, spinning the new release artifacts and 
voting. I

know
we tried this before with 1.0.1 but that ended up with so much new
 function
it made it harder to get out, if 1.2.1 is kept really focused I 
hope it
would be easier.  I'd like to start this off tomorrow if no one has 
any

objections, WDYT?

There was also a suggestion that maybe a fix for TUSCANY-2251 could 
get

into
this, is that likely to be small and ready?

 ...ant

















Re: [jira] Commented: (TUSCANY-2109) Conflicts between component reference interface and promoted composite reference interface are not detected

2008-05-16 Thread Simon Nash

Scott Kurz wrote:

Why do we need to be so strict in comparing interfaces?

Can't we argue essentially the same point in the case with we have a Java
client w/ reference w/ Java intf with a binding.ws?

So, following this logic, it's suggested that the NS calculated per-JAXWS
for the Java intf must match the portType on the WS binding.

So, in the case (2) that Mike presented, say the Java is gen'd from the WSDL
of an existing WS w/ wsimport, embedding a
@WebService(name = ..., targetNamespace =  ...)in the Java.   Now
the WS evolves and we take the new WSDL w/ portType
in a new NS. Maybe a new operation is added but we don't care about it
from our existing client.   Why should we have to re-gen the Java to reflect
the new TNS?


Adding a new operation would be a compatible change to the interface
and should not result in the interface's TNS changing.


Also, someone using an older W2J tool may have an option to select a
non-standard pkg when generating Java from WSDL, but the tool doesn't
reflect this in the @WebService(... targetNamespace...).  Do we really need
to break them?


This is easy to deal with by configuring the reference binding to
refer to the WSDL binding that the client code is actually using
to make the invocation.  If the reference binding.ws doesn't specify
any WSDL binding, the binding.ws's interface contract should be
generated from the reference's interface.java.


Would people agree this is essentially the same case as the overridden,
promoted intf, or is the argument that this specific case is a bit different
?


It seems pretty similar to me.


I mean, I can certainly see how it simplifies the runtime authors' lives to
be strict about NS's when doing intf mapping...   but do we really have a
good reason to?What use case can we just not handle that would make us
need this restriction?


The use case that triggered TUSCANY-2033 and TUSCANY-2109, where an
incorrect namespace was sent on the wire because SCA did not detect
the reference/service mismatch.

This problem is caused by a mismatch in the WSDL binding rather
than a mismatch in the Java interface.  However, the specs say that
the WSDL binding (including its namespace) is generated by applying
the JAX-WS Java2WSDL mapping to the Java interface.  If this
algorithm doesn't produce the same namespace that's used by the
service, the reference won't be able to interoperate with it.

  Simon


Scott



On Thu, Apr 17, 2008 at 12:09 PM, Raymond Feng [EMAIL PROTECTED] wrote:


+1 on Simon's proposal to add the getNamespace() on Interface from another
perspective: converting/mapping between IDLs.

Thanks,
Raymond
--
From: Simon Laws [EMAIL PROTECTED]
Sent: Thursday, April 17, 2008 6:32 AM
To: tuscany-dev@ws.apache.org
Subject: Re: [jira] Commented: (TUSCANY-2109) Conflicts between component
reference interface and promoted composite reference interface are not
detected


 On Thu, Apr 10, 2008 at 10:14 PM, Simon Laws [EMAIL PROTECTED]

wrote:

 Hi Mike

Some comments in line

Simon


Folks,

It is right to be concerned over the interface matching, but let's 

not

lose sight of the context here.

In general, there are two scenarios to consider:

a) the reference is to a service which is defined within the SCA
domain and SCA means are used to wire it
b) the reference is to a service which is outside the SCA domain and
wiring is through configuration of a specific binding and target  

endpoint



This JIRA covers a very specific scenario which adds another twist where
there is a different between the interface definition of a composite
level
reference that promotes a component level reference.


In case a) it is possible that a Java interface as used by the client
in its reference is exactly the same (file) as is being used by the 

provider

in the service interface.  If this is so, then in general, even if 

WSDL is

generated, the reference and the target service are going to match, 

assuming

that the same rules are followed at both ends for generating WSDL. 

(They

should be following JAX-WS according to the specs).



It is certainly possible. Maybe even likely. But not guaranteed.


In case b), the normal situation would be for the client to be
constructed using a Java interface derived from the target WSDL using
the
WSDL2JAVA tooling.  While the reference targets the original service
from
which the WSDL came, there should be no problem, even if the  

reference

itself is typed in terms of the Java interface.

Things get interesting if the target service gets changed - and if 

the

WSDL describing the interface changes.  Now, to first order, you  

might say

that if the WSDL is different, how do you know that the new service 

is

compatible with the old one?  Even if the operation names match and 

the

input and output messages have the same structure, if the namespaces
differ,
there is no guarantee that the two services are actually compatible.

This proposed 

Re: [jira] Commented: (TUSCANY-2109) Conflicts between component reference interface and promoted composite reference interface are not detected

2008-05-16 Thread Simon Nash

Scott Kurz wrote:

On Fri, May 16, 2008 at 1:04 PM, Simon Nash [EMAIL PROTECTED] wrote:


Scott Kurz wrote:


Why do we need to be so strict in comparing interfaces?

Can't we argue essentially the same point in the case with we have a Java
client w/ reference w/ Java intf with a binding.ws?

So, following this logic, it's suggested that the NS calculated per-JAXWS
for the Java intf must match the portType on the WS binding.

So, in the case (2) that Mike presented, say the Java is gen'd from the
WSDL
of an existing WS w/ wsimport, embedding a
@WebService(name = ..., targetNamespace =  ...)in the Java.   Now
the WS evolves and we take the new WSDL w/ portType
in a new NS. Maybe a new operation is added but we don't care about it
from our existing client.   Why should we have to re-gen the Java to
reflect
the new TNS?

 Adding a new operation would be a compatible change to the interface

and should not result in the interface's TNS changing.



I'm imagining an organization rolls out a whole new deployment of some
service, and changes the TNS
in various WSDL/XSDs to reflect that this is version 2.0, or whatever, of
the deployment.   They wouldn't have
to change the TNS, but they might want to, right?


If they do this when not necessary, they are accepting the need to
also upgrade all the clients that talk to these services.



 Also, someone using an older W2J tool may have an option to select a

non-standard pkg when generating Java from WSDL, but the tool doesn't
reflect this in the @WebService(... targetNamespace...).  Do we really
need
to break them?

 This is easy to deal with by configuring the reference binding to

refer to the WSDL binding that the client code is actually using
to make the invocation.  If the reference binding.ws doesn't specify
any WSDL binding, the binding.ws's interface contract should be
generated from the reference's interface.java.



Maybe I'm reading into the discussion too much but I was assuming that being
proposed was doing
a similar sort of interface compatibility testing between the Java client's
intf.java and the binding.ws
WSDL intf contract.   In other words, I thought we were getting at the point
that, in Tuscany across the board, IDLs would
only be considered as matching if they matched namespaces (the IDL-neutral
equiv. of TNS, Java pkg, etc.).


OK, I think I understand now.  You are talking about compatibilty
checking between a reference's interface.java and the same
reference's explicitly specified binding.ws WSDL binding.
In this case, I think the namespace information should come from
the reference's binding.ws WSDL binding and not from the
interface.java, and should not be a problem if the interface.java
has a different namespace.

Applying the same reasoning to the promoted case, I think I
was wrong when I said earlier that it's a problem if the namespace
for the inner interface doesn't match the namespace for the outer
interface.  According to the rule proposed above, interface
namespaces should always be ignored, so the interfaces would match.
The binding.ws WSDL binding namespace would be derived from the
outer interface, and any namespace information on the inner
interface would not be used.


If this is not what others had in mind, then wrt to the interface
compatibility testing being proposed,
this case does differ from the promoted ref intf case and will be treated
separately.  That's one of the
questions I was asking.




 Would people agree this is essentially the same case as the overridden,

promoted intf, or is the argument that this specific case is a bit
different
?

 It seems pretty similar to me.

 I mean, I can certainly see how it simplifies the runtime authors' lives

to
be strict about NS's when doing intf mapping...   but do we really have a
good reason to?What use case can we just not handle that would make us
need this restriction?

 The use case that triggered TUSCANY-2033 and TUSCANY-2109, where an

incorrect namespace was sent on the wire because SCA did not detect
the reference/service mismatch.

This problem is caused by a mismatch in the WSDL binding rather
than a mismatch in the Java interface.  However, the specs say that
the WSDL binding (including its namespace) is generated by applying
the JAX-WS Java2WSDL mapping to the Java interface.  If this
algorithm doesn't produce the same namespace that's used by the
service, the reference won't be able to interoperate with it.

 Simon



There's another angle to view this from in which the error is not caused by
a mismatch, per se, but rather
by the fact that the intf.wsdl used to configure the promoted reference is
not honored.


Yes, I agree with this now.  See above.


Why is the Java2WSDL done at all, when the user has described the interface
with a WSDL?So why does it
matter that the Java2WSDL we would have done doesn't match the WSDL we have
in hand?


In this case, no Java2WSDL should be done, as you say.

  Simon


Scott





Re: Small OSGi sample for the main build?

2008-05-15 Thread Simon Nash

Simon Laws wrote:

On Thu, May 15, 2008 at 2:59 AM, Jean-Sebastien Delfino 
[EMAIL PROTECTED] wrote:


Graham Charters wrote:


Hi,

I've been working on a small sample to act as an OSGi sniff test for
Tuscany running in OSGi.  It's basically a cut-down version of what
Rajini has done in itest/osgi-tuscany and only runs the most basic
Calculator sample.  I still have some work to do to exclude all the
things which aren't required and also perhaps move it to use the
latest 1 manifest per 3rd party jar approach.

Currently the sample takes ~3 mins to build and run and uses 56MB.
The main space usage is 17.5MB for the third-party dependencies and
35MB for the Felix bundle cache (61 bundles in total).  The full
Tuscany (itest/osgi-tuscany) using the same third-party library
approach is 151 bundles and 133MB total.

I'd like to understand whether people feel this would be useful


Yes it's useful IMO

and


whether it is approaching the kind of overhead that would be
acceptable for it to be included in the main build?


+1 from me to include it in the main build (assuming you meant main build =
top-down build from java/sca with profile default)

I'm +1 too to integrate the bigger itest/osgi-tuscany under another osgi
profile.

Thoughts?



Regards, Graham.



--
Jean-Sebastien



Nice work Graham

+1 from me to include this cut down sample in the main build. It's a great
benchmark for how small we can get the minimum runtime and, for the subset
that it represents, demonstrates that our OSGi support is working.

I'm sure that you are right that we can cut it down further but that
shouldn't prevent us getting it into the build.

Simon


Yes, I think it's useful.

I am somewhat concerned about adding an extra 3 minutes to all
my builds.  How much do you think it will be possible to reduce this
by eliminating things that aren't needed by the basic calculator
sample?  Could you post what you currently have (without enabling it
in the main build yet) so that others can take a look at what it
is doing, and what dependencies it pulls in?

  Simon



Re: SCA 1.2.1 release

2008-05-15 Thread Simon Nash

ant elder wrote:

I've had a request to do an official release that includes the fix for
TUSCANY-2304. I think this is reasonable so would like to do this, it
shouldn't be too hard as its a small fix so its just copying the 1.2 release
tag, applying the fix, spinning the new release artifacts and voting. I know
we tried this before with 1.0.1 but that ended up with so much new  function
it made it harder to get out, if 1.2.1 is kept really focused I hope it
would be easier.  I'd like to start this off tomorrow if no one has any
objections, WDYT?

There was also a suggestion that maybe a fix for TUSCANY-2251 could get into
this, is that likely to be small and ready?

  ...ant


The 2251 fix is close but it won't be ready by tomorrow.  It's also not
very small.  I am making steady progress with this every day, and I have
been in the one last bug mode for the last few days.  Experience tells
me that I'll need a good portion of a wet weekend to get this completed.
Saturday has rain in the forecast, so it's possible that I'll have
something by Monday :-)

  Simon



Re: Conversational semantics using xml in SCDLs

2008-05-15 Thread Simon Nash

Simon Laws wrote:

On Thu, May 15, 2008 at 2:24 PM, Vamsavardhana Reddy [EMAIL PROTECTED]
wrote:


Hi Mike,

Thanks for the heads-up.  Let us see whether the Assembly TC does the same
this time too with the proposal to add a top level interface element.

++Vamsi

On Thu, May 15, 2008 at 6:07 PM, Mike Edwards 
[EMAIL PROTECTED] wrote:


Vamsavardhana Reddy wrote:
snip


For 1, 2, 3 and 5, I think it is a good idea to introduce a new

interface

definition as a top level element in SCDLs.  This new interface

definition

could use any existing interface definition and add additional

semantics.

For example, something like
interface.xxx name=myConversationalInterface
interface=myNonConversationalInterface conversational=true
   operation name=method1 endsConversation=true/
/interface.xxx

can yield a conversational interface myConversationalInterface from a
non-conversational interface myNonConversationalInterface.  This

should

work as if there were annotations on the original interface definition.
With
this new interface definition in place, we may not need conversational
intent on service or reference and myConversationalInterface can be

used

whereever myNonConversationalInterface were to be used along with a
conversational intent on the service or reference.

Please comment if any of the above does not make sense or suggest any
alternative ways to deal with these issues.

++Vamsi


snip
Vamsi,

Simon has given a good comprehensive response to your main points - I

would

like to focus on this final suggestion.

You will meet some substantial opposition in the spec group to the idea

of

creating a new SCDL-based interface definition language.  The group has
rejected such suggestions more than once in the past.

The argument is that there are already very good interface definition
languages available - and that where SCA extensions are necessary, they

can

be added as extension annotations to those existing languages.  Providing
yet another parallel interface definition language simply adds to the
complexity of SCA without a corresponding benefit.  I believe that all

the

issues you raise are already covered by the specs - or there are open

issues

awaiting resolution.

You are welcome to make suggestions to the SCA specification group, of
course, but I thought it useful to give you a heads-up on the likely
reaction.


Yours,  Mike.



I think we need to  be clear about our expectations of adding a
conversational intent to the SCDL. From reading the notes here let me try
and articulate when it could be useful.

A 3rd party interface is provided which knows nothing of SCA and doesn't
specific @Conversational
A user builds a component implementation that inherits direction from this
3rd party interface
This component implementation is conversational in that it either
  - stores instance based conversational data
  - uses the SCA conversation ID (via the @ConversationId annotation for
example) to locate conversation data
The user writes a SCDL component to exploit this implementation and has to
add the intent conversational to tell SCA to treat this as a
conversational service
An SCA client service can now hold a conversation with this service BUT it
must end the conversation  using the conversation.end() call rather than
relying on an annotated method at the service.

Hence the only thing that appears in the SCDL is the conversational
intent. This seems to put some constraints on the client. I.e. it must know
that it has to do special conversation processing. It is holding a
conversation over a reference whose interface is not annotated as being
conversational. The writer has to be be aware of this.

Does this help?

Simon


Yes, it does.  It helps me to see how unlikely it is that this
will ever happen in real life.  I think the first point is the
most telling.  If the third party interface wasn't designed
with SCA-style conversation semantics in mind, the chances of
successfully applying and exploiting these semantics after the
fact are very small.

  Simon



Re: Conversational semantics using xml in SCDLs

2008-05-15 Thread Simon Nash

Vamsavardhana Reddy wrote:

On Thu, May 15, 2008 at 2:32 PM, Simon Nash [EMAIL PROTECTED] wrote:


Vamsavardhana Reddy wrote:


Right now all the conversation related things we have in Tuscany seem to
use
annotations in Java code.  The assembly schema does not seem to be good
enough to specify the equivalents through SCDLs.  Here are some of the
issues, taking the java annotations as a reference point, that are coming
in
the way of conversational semantics using SCDLs.  I would like to hear
from
others before I take up these with OASIS SCA Assembly TC.  So, please
provide your input and also suggest any aspects that I may be missing to
see.

1. Designating an interface as conversational:
JAVA: The @Conversational annotation used to designate a Java interface as
conversational.  Wherever the interface is used, it is seen as
conversational interface consistently.
ASSEMBLY: I do not see a way to designate an interface (just the interface
definition) as conversational through SCDLs.

 This was resolved by http://www.osoa.org/jira/browse/ASSEMBLY-47.

Either the interface can be annotated as conversational, or the service
or reference using the interface can be annotated as converational.


By designating just the interface as conversational, I meant it should be
considered as conversational wherever it appears in the SCDLs without having
to specify anything additional.  I think with ASSEMBLY-47 only the service
or reference under which the interface element appears will be considered as
conversational and it does not affect the other occurrences of the same
interface elsewhere in the composite.  For example in:

component name=c1
 ...
  service name=Service1
interface.java interface=MyService requires=conversational
  operation name=method1 endsConversation=true/
/interface.java
  /service
/component
component name=c2
  ...
  service name=Service1
interface.java interface=MyService/
  /service
/component

The MyService interface is conversational only in component c1 but not in
c2.


Yes, this can happen, and I don't think it's a problem.





 2. Designating a method in a conversational interface as ends

conversation.
JAVA: The @EndsConversation annotation on a method designates the method
as
ends conversation.
ASSEMBLY: Right now there is no way to do this through SCDLs.
http://www.osoa.org/jira/browse/ASSEMBLY-47 seem to talk about a similar
issue but in the context of interfaces defined in WSDLs.
Problem: Even if an operation element is introduced under interface
element,
it is not possible to guarantee consistency across all the occurrences of
the interface in the SCDLs.  For example, the interface used under a
service
element in component1 may designate method1 as ends conversation where
as
a different component using the same interface need not necessarily
designate method1 as ends conversation.

 If the two components involved are being wired together using this

interface, but have inconsistent definitions for which methods are
ends conversation, this is an error in the SCDL assembly and
should be detected by the SCA runtime.


It is not necessary that both the components are wired together.  The two
components could be using the interface element under service element.


How does this cause a problem?  Can you give more specific details
of the problem scenario?





 3. Designating a service is a conversational service:

JAVA: A service whose interface is decorated with @Conversational
annotation
is a conversational service.
ASSEMBLY: A conversational intent can be specified on the component
service whose java interface is not decorated with @Conversational.
Problem: We can not guarantee that all components that provide a service
with a particular interface use the conversational intent on the service
consistently.  For e.g, component1 may use conversational intent on the
service1, whereas component2 that provides a service2 with the same
interface as service1 need not use conversational intent.

 Why is this a problem?  From SCA's perspective, the conversational

and non-conversational forms would be different interfaces.  Unless
they are wired together, this does not cause any problems.


Tuscany seems to use the same interface object wherever an interface
features.  Perhaps it should clone the interface object so that additional
intents can be set as required without affecting all occurrences of the
interface.


I am surprised to hear that.  I would expect a different interface
object to be created for each different interface element appearing
in the SCDL.





 4. Specifying Conversation attributes:

JAVA: The @ConversationAttributes annotation used on the implementation
class enables specifying conversation attributes applicable to the
conversational interfaces of services and references of the class.
ASSEMBLY: Right now there is no way to specify conversation attributes
through SCDLs.  http://www.osoa.org/jira/browse/JAVA-14 seems to refer to
the same problem.

 Yes it does

Re: OSGi-enable 3rd party libraries in Tuscany

2008-05-15 Thread Simon Nash

One comment inline.

  Simon

Jean-Sebastien Delfino wrote:

Rajini Sivaram wrote:

Hello,

Following on from the discussion in thread [1], and based on Sebastien's
comments [2], we need to make a decision on the best way forward to
OSGi-enable third party libraries used by Tuscany.

The options we have are:


   1. Add OSGi manifest entries to all 3rd party jars in the Tuscany
   distribution. Existing OSGi tools like maven-bundle-plugin and
   maven-pax-plugin can be used to generate these bundles. The new 
manifest

   entries will not have any impact when Tuscany is run outside OSGi. For
   signed jars and jars with license restrictions, it may be necessary to
   generate a bundle with the jar embedded into it, resulting in 
separate jars

   for OSGi and non-OSGi. But these should hopefully be small in number.
   2. Use non-OSGi mechanism to enable Tuscany bundles running inside
   OSGi to refer to jars outside OSGi.
   3. Create virtual bundles on the fly for 3rd party jars. At the
   moment, itest/osgi-tuscany does this using auto-generated naive 
manifests.
   If we are to use virtual bundles going forward, manifest entries 
for the
   virtual bundles should be created at build time, and stored in one 
of the

   Tuscany jars.

I believe that if we are serious about making OSGi-enablement of 
Tuscany a

first class option, we should consider doing 1). For the longer term to
support versioning of 3rd party jars, 1) will provide a standard OSGi
mechanism. As more and more 3rd-party libraries are being 
OSGi-enabled, this

can be seen as an intermediate step which enables users of Tuscany to
install Tuscany in the same standard OSGi way, into an OSGi runtime.


I agree and think we should do (1) everywhere we can.


I don't think Tuscany should modify third-party jars that we
are redistributing as part of Tuscany.  I think we should use
some variant of (3) for all third-party jars that aren't
already OSGi-enabled.

  Simon



3) works, and looks easier to roll out, but I would imagine that OSGi 
users
of Tuscany would end up creating their own variants of 1) if we 
support only
3). And it feels like a wrapper (or rather it is a wrapper), with 
manifests

and their matching 3rd party libs stored separately.


How about an interim variation of (3) for the 3rd party JARs that we 
initially can't cover with (1):


For each 3rd party foo.jar, a foo-osgi.jar containing the bundle 
manifest that'll turn foo.jar into an OSGi virtual bundle, and I mean a 
proper bundle manifest with actual specific imports / exports instead of 
the naive *.


I'm just throwing this up in the air to see any reactions from 
OSGi-skilled people in the group :)


Maybe it's a stupid idea? but that would provide the level of modularity 
that we're expecting from OSGi, instead of mashing everything up in a 
central tuscany- manifest.jar which pretty much kills the benefits of 
using OSGi IMO.





Thoughts?


[1] http://markmail.org/message/tybuyxoaddjjrpbx
[2] http://markmail.org/message/wbuixok3x3hazjqq

Thank you...

Regards,

Rajini







Re: SCA 2.0, was Re: Next SCA release

2008-05-15 Thread Simon Nash

ant elder wrote:

I was thinking about a branch to make it clear that it was shared and that
this work was open to all, but I'm also happy to see that work start in
shared sandboxes.


I guess from whats been said so far then I'd favour using sandboxes
for now for specific work that really can't be done in trunk, and
where ever possible continue to use trunk to do what can be done there
(looking at that list of examples i think we could find ways to do a
lot in trunk).


I also think that many of these could be done in trunk.  It would
be good to talk about each of these and come to a conclusion on
what the options are for a solution, and whether or not these
proposed options can be implemented in trunk.

  Simon



Re: Our Incubator report must be due

2008-05-14 Thread Simon Nash

ant elder wrote:

There hasn't been any reminders sent out yet but according to the schedule
today is when our Incubator report is due. I've made a rough start, feel
free update: http://wiki.apache.org/incubator/May2008

   ...ant


The charter words were out of date (still referring to SDO).  I have
updated them to match what's in the graduation proposal.

  Simon



Re: SCA 2.0, was Re: Next SCA release

2008-05-13 Thread Simon Nash

ant elder wrote:

On Tue, May 13, 2008 at 8:26 AM, Jean-Sebastien Delfino 
[EMAIL PROTECTED] wrote:


Luciano Resende wrote:


I was waiting to start this discussion after SCA 1.2 was out of the
door, but looks like you were faster then me. I'm +1 on this, and here
is my proposal.

- Continue with SCA 1.x maintenance releases based on the current SCA
1.2 branch. This would be a more stable codebase, and we should avoid
big changes that could brake backward compatibility here.

- Use trunk as our SCA 2.0 release stream, where we would do the type
of work discussed in [1], the cleanup and restructuring mentioned by
you on this thread, as well as any other work that the community feels
its applicable.

Note that my proposal does not exclude merging items between branch
and trunk as necessary, but this would probably be done case by case
when the community thinks it's applicable.

Thoughts ?


[1]
http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg29820.html

On Tue, Apr 8, 2008 at 12:55 AM, ant elder [EMAIL PROTECTED] wrote:


With 1.2 almost out the door how about starting to think about our
next
 release...

 We've had several discussions in the past about restructuring and
cleaning
 up the distributions, build, and SPIs etc, is this the time to do
that?
 Looking about the code there's many things that could be tidied up
but we've
 been leaving them to keep backward compatibility, if we start this
type of
 thing now it will make the next release not backward compatible so we
need
 to agree this is the right time. We could make a new 1.x branch to
use as a
 maintenance branch for the previous releases so we can still get
fixes out
 for them.

 Leaving aside for now any detail about what the clean up and breaking
 changes might be what do you all think about doing this in the next
release?
 I think its the right time so am in favour of starting this.

  ...ant



I think it's time to restart that discussion.

I was busy with conferences the last two weeks and had less time to keep
up with the dev discussions. Now that I'm catching up with email it is
becoming very apparent to me that there are a number of good discussions and
initiatives that can lead to good changes and improvements of our code base.

Here are a few examples, in no particular order:

- Databinding work, with some brainstorming started by Raymond.

- OSGi integration, which may lead to SPI and module changes, maybe even
some distribution changes.

- Extension mechanism, with some discussions about switching to XML and/or
using definitions.xml or similar mechanisms.

- SCA domain implementation, I'm starting to see emerge different trends /
directions, not addressed by the recent work that Simon and I have done in
that area.

- Runtime integration in particular with Web containers. I think that We
now have 3 or 4 different variants of this.

- Model changes, in particular in the area of Bindings/Endpoints, which
will lead to Provider SPI changes too.

- Changes to our WSDL modeling story, Java2WSDL generation, and looking at
the difficulties Mike went through in the BPEL integration to get his hands
on WSDL, I think we can improve that WSDL model and handling too.

- New SCA client APIs (still need to catch up with that but it looks like
there's good discussions about that too).

- Support for the SCA/JEE spec, which I think will bring new requirements
to our models and SPIs.

I'm probably missing a few more items like that, but the point is that we
need a place to work on all these new ideas.

On the other hand, I think it's really important to continue to maintain
the code base that works today alive with it's APIs and SPIs, for all the
people who currently use, integrate and embed Tuscany, and to be able to
continue to promote SOA and the SCA programming model with that code base.

So, how about starting a 2.0 branch for the new stuff that we want to
rework, and a 1.x branch for the existing code base?

Here's my +1 :)

--
Jean-Sebastien




It would be good to clean up and improve all the things that have been
mentioned in this thread, but I still believe what I said in [1]. So if
we're ready to put the 1.x in maintenance mode and start doing this new work
in trunk thats great, but if we've still significant development work to do
in 1.x then I don't think we should have a 2.0 branch yet. That shouldn't
stop us doing most of this new work in trunk though as most of what we're
talking in about in this thread can continue to be done in the current trunk
without being too disruptive.

   ...ant

[1] http://apache.markmail.org/message/75wp2p3juyzb4xym


I don't think we should be putting 1.x into maintenance mode now.

I'm open to having an exploratory branch for 2.0 that would be used
as a place to experiment with new ideas that can't be done in the 1.x
trunk because they are too disruptive.  If we do this, we'll need to
have a clear understanding of what things would be done in the 2.0
branch and what activity would continue in 

Re: Are the nightly builds working?

2008-05-12 Thread Simon Nash

ant elder wrote:

If I go to the Tuscany download page -
http://incubator.apache.org/tuscany/tuscany-downloads-documentations.html -
and click on any of the nightly build links I get You are not authorized to
access this page. Please contact your administrator to be granted the
appropriate permissions. Do they work for anyone else, could one of our
continuum admins have a look?

   ...ant


I'm getting the same access refused message.

  Simon



Re: [VOTE] Graduate Apache Tuscany as a Top Level Project (take two)

2008-05-11 Thread Simon Nash

+1

Simon

ant elder wrote:

Restarting the graduation vote with the updated proposal words, please vote
on the proposal below to graduate Tuscany to a TLP.

+1 from me.

   ...ant

 X. Establish the Apache Tuscany Project

WHEREAS, the Board of Directors deems it to be in the best
interests of the Foundation and consistent with the Foundation's
purpose to establish a Project Management Committee charged with
the creation and maintenance of open-source software for
distribution at no charge to the public, that simplifies the
development, deployment and management of distributed applications
built as compositions of service components. These components
may be implemented with a range of technologies and connected
using a variety of communication protocols. This software will
implement relevant open standards including, but not limited to,
the Service Component Architecture standard defined by the OASIS
OpenCSA member section, and related technologies.

NOW, THEREFORE, BE IT RESOLVED, that a Project Management
Committee (PMC), to be known as the Apache Tuscany Project,
be and hereby is established pursuant to Bylaws of the
Foundation; and be it further

RESOLVED, that the Apache Tuscany Project be and hereby is
responsible for the creation and maintenance of software
related to Apache Tuscany;
and be it further

RESOLVED, that the office of Vice President, Apache Tuscany be
and hereby is created, the person holding such office to
serve at the direction of the Board of Directors as the chair
of the Apache Tuscany Project, and to have primary responsibility
for management of the projects within the scope of
responsibility of the Apache Tuscany Project; and be it further

RESOLVED, that the persons listed immediately below be and
hereby are appointed to serve as the initial members of the
Apache Tuscany Project:

* Adriano Crestani adrianocrestani at apache dot org
* ant elder antelder at apache dot org
* Brady Johnson bjohnson at apache dot org
* Frank Budinsky frankb at apache dot org
* Ignacio Silva-Lepe isilval at apache dot org
* Jean-Sebastien Delfino jsdelfino at apache dot org
* kelvin goodson kelvingoodson at apache dot org
* Luciano Resende lresende at apache dot org
* Mark Combellack mcombellack at apache dot org
* Matthieu Riou mriou at apache dot org
* Mike Edwards edwardsmj at apache dot org
* Paul Fremantle pzf at apache dot org
* Pete Robbins robbinspg at apache dot org
* Raymond Feng rfeng at apache dot org
* Simon Laws slaws at apache dot org
* Simon Nash nash at apache dot org
* Venkata Krishnan svkrish at apache dot org

NOW, THEREFORE, BE IT FURTHER RESOLVED, that Ant Elder
be appointed to the office of Vice President, Apache Tuscany, to
serve in accordance with and subject to the direction of the
Board of Directors and the Bylaws of the Foundation until
death, resignation, retirement, removal or disqualification,
or until a successor is appointed; and be it further

RESOLVED, that the Apache Tuscany Project be and hereby
is tasked with the migration and rationalization of the Apache
Incubator Tuscany podling; and be it further

RESOLVED, that all responsibilities pertaining to the Apache
Incubator Tuscany podling encumbered upon the Apache Incubator
Project are hereafter discharged.





[jira] Assigned: (TUSCANY-2306) Client callback state preserved through stateless callback

2008-05-09 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash reassigned TUSCANY-2306:
---

Assignee: Simon Nash

 Client callback state preserved through stateless callback
 --

 Key: TUSCANY-2306
 URL: https://issues.apache.org/jira/browse/TUSCANY-2306
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Core Runtime
Affects Versions: Java-SCA-Next
Reporter: Kevin Williams
Assignee: Simon Nash
 Fix For: Java-SCA-Next


 Lines 650-654 of the Java CAA specification state:
  
 The difference for stateless services is that the callback field would not 
 be available if the component is servicing a request for anything other than 
 the original client. So, the technique used in the previous section, where 
 there was a response from the backend Service which was forwarded as a 
 callback from MyService would not work because the *callback field would be 
 null* when the message from the backend system was received.
 The test case 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.CallbackTestCase.statelessCallback3
  demosntrates that the callback field is not null when the message is 
 received from the back end service

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Resolved: (TUSCANY-2306) Client callback state preserved through stateless callback

2008-05-09 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash resolved TUSCANY-2306.
-

Resolution: Fixed

A callback proxy was always being injected, even when the invocation creating 
the instance did not include a callback endpoint.  Fixed in revision 654860.

 Client callback state preserved through stateless callback
 --

 Key: TUSCANY-2306
 URL: https://issues.apache.org/jira/browse/TUSCANY-2306
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Core Runtime
Affects Versions: Java-SCA-Next
Reporter: Kevin Williams
Assignee: Simon Nash
 Fix For: Java-SCA-Next


 Lines 650-654 of the Java CAA specification state:
  
 The difference for stateless services is that the callback field would not 
 be available if the component is servicing a request for anything other than 
 the original client. So, the technique used in the previous section, where 
 there was a response from the backend Service which was forwarded as a 
 callback from MyService would not work because the *callback field would be 
 null* when the message from the backend system was received.
 The test case 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.CallbackTestCase.statelessCallback3
  demosntrates that the callback field is not null when the message is 
 received from the back end service

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: [CANCELLED] [VOTE] Graduate Apache Tuscany as a Top Level Project

2008-05-09 Thread Simon Nash

Raymond Feng wrote:

Hi,

When we reference SCA in the charter, should we use Service Component 
Architecture (SCA) instead?



The reference is to the SCA standard defined by the OASIS OpenCSA
member section.  This seems clear and unambiguous to me.  However,
I don't object to spelling it out in full if others want to do this.

  Simon


Thanks,
Raymond

--
From: ant elder [EMAIL PROTECTED]
Sent: Friday, May 09, 2008 5:49 AM
To: tuscany-dev@ws.apache.org
Subject: Re: [CANCELLED] [VOTE] Graduate Apache Tuscany as a Top Level 
Project



Last call, unless anyone says otherwise i'll be restarting this vote
tomorrow morning using the contents of the wiki page:
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Draft+TLP+Resolution 



  ...ant

On Fri, May 9, 2008 at 9:01 AM, Luciano Resende [EMAIL PROTECTED]
wrote:


Seems ok to me too.

On Thu, May 8, 2008 at 3:36 AM, Simon Nash [EMAIL PROTECTED] wrote:
 ant elder wrote:

 The current draft proposal is at:


http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Draft+TLP+Resolution 



 Reviews and updates welcome.

   ...ant

 On Wed, Apr 30, 2008 at 5:04 PM, ant elder [EMAIL PROTECTED] 
 wrote:


 Turns out we're not quite ready yet.

   ...ant


 On Wed, Apr 30, 2008 at 5:03 PM, ant elder [EMAIL PROTECTED]
wrote:


 On Wed, Apr 30, 2008 at 4:59 PM, Simon Nash [EMAIL PROTECTED] 
wrote:


 snip

 I'm not happy that we would do this over something as important as

 the technical charter for the project.  I think we need to 
formally
 vote as a project on the words we want to take forward to the 
IPMC.
 We should be able to restart the vote with this correction and 
have

 it complete in time to get the proposal to the board in time for
 the May board meeting.


 Ok I'll cancel this vote then.

   ...ant




 This version looks OK to me.

  Simon




--
Luciano Resende
Apache Tuscany Committer
http://people.apache.org/~lresende 
http://people.apache.org/%7Elresende

http://lresende.blogspot.com/









Re: Build failure in databindings itest

2008-05-09 Thread Simon Nash

Mike Edwards wrote:

Folks,

This is another error which adds to the heap of reasons why I hate 
Maven - Maven is one of the worst systems I have ever dealt with when 
things go wrong.



- it's a dependency problem - dependencies of the velocity package, 
which I believe is brought in by  one of the Maven plugins


- why its dependencies aren't automatically handled I have no idea - 
they are clearly pointed at in the velocity POM


- I fixed the problem by explicitly adding dependencies for 
commons-collections and for log4j to the POM for the  itest-databindings


Why this fix works, I'd be very happy for someone to explain.

I'll be happy to commit this change should no-one object - it's a hack 
but it does fix the build.



Thanks for digging into this and finding a workaround.  I'd be fine
with having this committed to SVN.  This would be more convenient
than having to modify this POM myself every time I do a checkout.

  Simon



Yours,  Mike.

Simon Nash wrote:

I ran mvn -e and got a stack trace as follows.  It looks like the
class org/apache/commons/collections/ExtendedProperties was not
found.  Any ideas?

  Simon

[INFO] [exec:java {execution: generate-test-sdo-source}]
  Building project from dir: 
F:\tuscany69\sca\itest\databindings\sdogen\target
[INFO] 


[ERROR] BUILD ERROR
[INFO] 


[INFO] An exception occured while executing the Java class. null

org/apache/commons/collections/ExtendedProperties
[INFO] 


[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: An exception 
occured whi

le executing the Java class. null
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa

ultLifecycleExecutor.java:564)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi

fecycle(DefaultLifecycleExecutor.java:480)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau

ltLifecycleExecutor.java:459)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan

dleFailures(DefaultLifecycleExecutor.java:311)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen

ts(DefaultLifecycleExecutor.java:278)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi

fecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at 
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at 
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)


at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: An 
exception occured

while executing the Java class. null
at 
org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:324)
at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi

nManager.java:447)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa

ultLifecycleExecutor.java:539)
... 16 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at 
org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:273)

at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoClassDefFoundError: 
org/apache/commons/collections/Extend

edProperties
at 
org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.ja

va:160)
at 
org.apache.velocity.runtime.RuntimeSingleton.clinit(RuntimeSingleto

n.java:95)
at org.apache.velocity.app.Velocity.init(Velocity.java:106)
at 
org.apache.tuscany.sca.itest.generate.Generate.generate(Generate.java

:90)
at 
org.apache.tuscany.sca.itest.generate.Generate.main(Generate.java:174

)
... 6 more


Simon Nash wrote:

The SDO databindings itest is failing as well.  The error is quite
cryptic.  See below.

  Simon

[INFO

Re: Build failure in databindings itest

2008-05-09 Thread Simon Nash

After checking out Mike's change (thanks, Mike!), I was able to
build itest/databindings/sdogen but I then hit the same issue in
itest/databindings/jaxbgen.  I have added the same dependencies
to this pom file to enable it to build.

  Simon

Simon Nash wrote:

Mike Edwards wrote:

Folks,

This is another error which adds to the heap of reasons why I hate 
Maven - Maven is one of the worst systems I have ever dealt with when 
things go wrong.



- it's a dependency problem - dependencies of the velocity package, 
which I believe is brought in by  one of the Maven plugins


- why its dependencies aren't automatically handled I have no idea - 
they are clearly pointed at in the velocity POM


- I fixed the problem by explicitly adding dependencies for 
commons-collections and for log4j to the POM for the  itest-databindings


Why this fix works, I'd be very happy for someone to explain.

I'll be happy to commit this change should no-one object - it's a hack 
but it does fix the build.



Thanks for digging into this and finding a workaround.  I'd be fine
with having this committed to SVN.  This would be more convenient
than having to modify this POM myself every time I do a checkout.

  Simon



Yours,  Mike.

Simon Nash wrote:

I ran mvn -e and got a stack trace as follows.  It looks like the
class org/apache/commons/collections/ExtendedProperties was not
found.  Any ideas?

  Simon

[INFO] [exec:java {execution: generate-test-sdo-source}]
  Building project from dir: 
F:\tuscany69\sca\itest\databindings\sdogen\target
[INFO] 


[ERROR] BUILD ERROR
[INFO] 


[INFO] An exception occured while executing the Java class. null

org/apache/commons/collections/ExtendedProperties
[INFO] 


[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: An exception 
occured whi

le executing the Java class. null
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa

ultLifecycleExecutor.java:564)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi

fecycle(DefaultLifecycleExecutor.java:480)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau

ltLifecycleExecutor.java:459)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan

dleFailures(DefaultLifecycleExecutor.java:311)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen

ts(DefaultLifecycleExecutor.java:278)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi

fecycleExecutor.java:143)
at 
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at 
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at 
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)


at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: An 
exception occured

while executing the Java class. null
at 
org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:324)
at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi

nManager.java:447)
at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa

ultLifecycleExecutor.java:539)
... 16 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at 
org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:273)

at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoClassDefFoundError: 
org/apache/commons/collections/Extend

edProperties
at 
org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.ja

va:160)
at 
org.apache.velocity.runtime.RuntimeSingleton.clinit(RuntimeSingleto

n.java:95)
at org.apache.velocity.app.Velocity.init(Velocity.java:106)
at 
org.apache.tuscany.sca.itest.generate.Generate.generate(Generate.java

:90

Build failure in helloworld-bpel sample

2008-05-08 Thread Simon Nash

I just did a full checkout and build.  The build failed in the
helloworld-bpel sample with the following exception.

  Simon

Running helloworld.BPELHelloWorldTestCase
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.479 sec  FA
ILURE!
testInvoke(helloworld.BPELHelloWorldTestCase)  Time elapsed: 1.456 sec   ERRO
R!
org.osoa.sca.ServiceRuntimeException: java.lang.NullPointerException
at org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCAD
omain.java:276)
at org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.
java:70)
at helloworld.BPELHelloWorldTestCase.setUp(BPELHelloWorldTestCase.java:4
2)
at junit.framework.TestCase.runBare(TestCase.java:125)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.
java:35)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
tSet(AbstractDirectoryTestSuite.java:138)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
stractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
refireBooter.java:308)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j
ava:879)
Caused by: java.lang.NullPointerException
at org.apache.tuscany.sca.implementation.bpel.impl.BPELDocumentProcessor
.getPartnerLinkTypes(BPELDocumentProcessor.java:206)
at org.apache.tuscany.sca.implementation.bpel.impl.BPELDocumentProcessor
.resolve(BPELDocumentProcessor.java:172)
at org.apache.tuscany.sca.implementation.bpel.impl.BPELDocumentProcessor
.resolve(BPELDocumentProcessor.java:77)
at org.apache.tuscany.sca.contribution.processor.DefaultURLArtifactProce
ssorExtensionPoint$LazyURLArtifactProcessor.resolve(DefaultURLArtifactProcessorE
xtensionPoint.java:195)
at org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactPr
ocessor.resolve(ExtensibleURLArtifactProcessor.java:86)
at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI
mpl.processResolvePhase(ContributionServiceImpl.java:497)
at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI
mpl.addContribution(ContributionServiceImpl.java:372)
at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI
mpl.contribute(ContributionServiceImpl.java:168)
at org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.addContrib
ution(DefaultSCADomain.java:291)
at org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(Defau
ltSCADomain.java:171)
at org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(Def
aultSCADomain.java:113)
at org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCAD
omain.java:242)
... 20 more


Results :

Tests in error:
  testInvoke(helloworld.BPELHelloWorldTestCase)



[jira] Resolved: (TUSCANY-2299) Client-set callback id not preserved on stateless callback

2008-05-08 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash resolved TUSCANY-2299.
-

Resolution: Fixed

The test case was using incorrect code to get the callback ID within the 
callback method.  I have fixed the test case and removed the @Ignore.  These 
changes are in revision 654459.

 Client-set callback id not preserved on stateless callback
 --

 Key: TUSCANY-2299
 URL: https://issues.apache.org/jira/browse/TUSCANY-2299
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Core Runtime
Affects Versions: Java-SCA-Next
Reporter: Kevin Williams
Assignee: Simon Nash

 The Java CAA spec says the following re: stateless callbacks:
 613 A stateless callback interface is a callback whose interface is not 
 marked as conversational. Unlike
 614 stateless services, the client of that uses stateless callbacks will not 
 have callback methods routed to an
 615 instance of the client that contains any state that is relevant to the 
 conversation. As such, it is the
 616 responsibility of such a client to perform any persistent state 
 management itself. The only information that
 617 the client has to work with (other than the parameters of the callback 
 method) is a callback ID object that is
 618 passed with requests to the service and is guaranteed to be returned with 
 any callback.
 619 The following is a repeat of the client code fragment above, but with the 
 assumption that in this case the
 620 MyServiceCallback is stateless. The client in this case needs to set the 
 callback ID before invoking the
 621 service and then needs to get the callback ID when the response is 
 received.
 The test: 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.CallbackTestCase.statelessCallback2
  demonstrates this issue and is currently @Ignore(d)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Assigned: (TUSCANY-2299) Client-set callback id not preserved on stateless callback

2008-05-08 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash reassigned TUSCANY-2299:
---

Assignee: Simon Nash

 Client-set callback id not preserved on stateless callback
 --

 Key: TUSCANY-2299
 URL: https://issues.apache.org/jira/browse/TUSCANY-2299
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Core Runtime
Affects Versions: Java-SCA-Next
Reporter: Kevin Williams
Assignee: Simon Nash

 The Java CAA spec says the following re: stateless callbacks:
 613 A stateless callback interface is a callback whose interface is not 
 marked as conversational. Unlike
 614 stateless services, the client of that uses stateless callbacks will not 
 have callback methods routed to an
 615 instance of the client that contains any state that is relevant to the 
 conversation. As such, it is the
 616 responsibility of such a client to perform any persistent state 
 management itself. The only information that
 617 the client has to work with (other than the parameters of the callback 
 method) is a callback ID object that is
 618 passed with requests to the service and is guaranteed to be returned with 
 any callback.
 619 The following is a repeat of the client code fragment above, but with the 
 assumption that in this case the
 620 MyServiceCallback is stateless. The client in this case needs to set the 
 callback ID before invoking the
 621 service and then needs to get the callback ID when the response is 
 received.
 The test: 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.CallbackTestCase.statelessCallback2
  demonstrates this issue and is currently @Ignore(d)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: Generated WSDL Target Namespace calculation not spec compliant?

2008-05-08 Thread Simon Nash

Lou Amodeo wrote:

Hi,  It doesnt appear that Tuscany is implementing section 2.3.2 of the WS
Binding specification completely.  Can you explain the
algorithm used for reference and service side WSDL TNS generation for
service, ports, and bindings.   Thanks.


The target namespace of the WSDL document, and of the service, ports and
generated binding

272 elements is:

273 Base System URI for HTTP / Component Name / Service Name


I am in the process of changing the Tuscany WSDL generation for the
WSDL-less case from using Axis2 to using code within Tuscany.
This will enable SCA-specific customizations of the generated WSDL
(like the rule above) to be incoporated in the WSDL generation
algorithm.

On the service side, in the absence of JAX-WS customizations, it
seems clear that Tuscany should use the above algorithm to calculate
the TNS.  If JAX-WS customizations are specified, I believe Tuscany
should use them to override this default.  It would be good to get
a spec clarification that this is correct.

On the reference side, the information stated above may not be
available.  If there is an @target on the reference, it would be
possible to use the target's component and service.  However, this
information isn't available if there's no @target.  The spec should
state what the reference side should do in the cases with and
without @target specified.

I'll open a spec issue to clarify what should happen in all these
cases.  Until this is resolved, I'm inclined to leave the new
WSDL generation code for references as it stands currently,
i.e., using the TNS specified by JAX-WS.

  Simon


Re: [CANCELLED] [VOTE] Graduate Apache Tuscany as a Top Level Project

2008-05-08 Thread Simon Nash

ant elder wrote:

The current draft proposal is at:
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Draft+TLP+Resolution

Reviews and updates welcome.

   ...ant

On Wed, Apr 30, 2008 at 5:04 PM, ant elder [EMAIL PROTECTED] wrote:


Turns out we're not quite ready yet.

   ...ant


On Wed, Apr 30, 2008 at 5:03 PM, ant elder [EMAIL PROTECTED] wrote:



On Wed, Apr 30, 2008 at 4:59 PM, Simon Nash [EMAIL PROTECTED] wrote:

snip

I'm not happy that we would do this over something as important as

the technical charter for the project.  I think we need to formally
vote as a project on the words we want to take forward to the IPMC.
We should be able to restart the vote with this correction and have
it complete in time to get the proposal to the board in time for
the May board meeting.



Ok I'll cancel this vote then.

   ...ant






This version looks OK to me.

  Simon


Re: Build failure in helloworld-bpel sample

2008-05-08 Thread Simon Nash

Simon Laws wrote:

On Thu, May 8, 2008 at 10:24 AM, Simon Nash [EMAIL PROTECTED] wrote:


I just did a full checkout and build.  The build failed in the
helloworld-bpel sample with the following exception.

 Simon

Running helloworld.BPELHelloWorldTestCase
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.479 sec
 FA
ILURE!
testInvoke(helloworld.BPELHelloWorldTestCase)  Time elapsed: 1.456 sec
  ERRO
R!
org.osoa.sca.ServiceRuntimeException: java.lang.NullPointerException
   at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCAD
omain.java:276)
   at
org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.
java:70)
   at
helloworld.BPELHelloWorldTestCase.setUp(BPELHelloWorldTestCase.java:4
2)
   at junit.framework.TestCase.runBare(TestCase.java:125)
   at junit.framework.TestResult$1.protect(TestResult.java:106)
   at junit.framework.TestResult.runProtected(TestResult.java:124)
   at junit.framework.TestResult.run(TestResult.java:109)
   at junit.framework.TestCase.run(TestCase.java:118)
   at junit.framework.TestSuite.runTest(TestSuite.java:208)
   at junit.framework.TestSuite.run(TestSuite.java:203)
   at
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.
java:35)
   at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
java:62)
   at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
tSet(AbstractDirectoryTestSuite.java:138)
   at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
stractDirectoryTestSuite.java:125)
   at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
refireBooter.java:308)
   at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j
ava:879)
Caused by: java.lang.NullPointerException
   at
org.apache.tuscany.sca.implementation.bpel.impl.BPELDocumentProcessor
.getPartnerLinkTypes(BPELDocumentProcessor.java:206)
   at
org.apache.tuscany.sca.implementation.bpel.impl.BPELDocumentProcessor
.resolve(BPELDocumentProcessor.java:172)
   at
org.apache.tuscany.sca.implementation.bpel.impl.BPELDocumentProcessor
.resolve(BPELDocumentProcessor.java:77)
   at
org.apache.tuscany.sca.contribution.processor.DefaultURLArtifactProce

ssorExtensionPoint$LazyURLArtifactProcessor.resolve(DefaultURLArtifactProcessorE
xtensionPoint.java:195)
   at
org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactPr
ocessor.resolve(ExtensibleURLArtifactProcessor.java:86)
   at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI
mpl.processResolvePhase(ContributionServiceImpl.java:497)
   at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI
mpl.addContribution(ContributionServiceImpl.java:372)
   at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceI
mpl.contribute(ContributionServiceImpl.java:168)
   at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.addContrib
ution(DefaultSCADomain.java:291)
   at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(Defau
ltSCADomain.java:171)
   at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(Def
aultSCADomain.java:113)
   at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCAD
omain.java:242)
   ... 20 more


Results :

Tests in error:
 testInvoke(helloworld.BPELHelloWorldTestCase)



I just got that too.

Simon


There's also a problem when running the bpel itest.

  Simon



Re: Move the JSP tag lib to the tuscany-sca-api module?

2008-05-08 Thread Simon Nash

ant elder wrote:

To work at run time yes, but not at development time so the IDE taglib
validation works without them while you're developing the JSP.

   ...ant

On Thu, May 8, 2008 at 5:19 PM, Raymond Feng [EMAIL PROTECTED] wrote:


What about org.apache.tuscany.sca.host.webapp.jsp.ReferenceTag and
org.apache.tuscany.sca.host.webapp.jsp.ReferenceTEI? I guess there classes
have to be on the classpath for the TagLib to work, right?

Thanks,
Raymond
--
From: ant elder [EMAIL PROTECTED]
Sent: Thursday, May 08, 2008 8:49 AM
To: tuscany-dev@ws.apache.org
Subject: Re: Move the JSP tag lib to the tuscany-sca-api module?


 I may not have been very clear in the first email and also left out the

link
- it is just a single file that doesn't drag in any additional
dependencies
-

https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/host-webapp/src/main/resources/META-INF/sca.tld

Is a whole new module really necessary?

 ...ant

On Thu, May 8, 2008 at 4:46 PM, Raymond Feng [EMAIL PROTECTED] wrote:

 I think we should have a separate module like tuscany-sca-jee-api if we

are
ready to do so.

Thanks,
Raymond
--
From: ant elder [EMAIL PROTECTED]
Sent: Thursday, May 08, 2008 8:08 AM
To: tuscany-dev tuscany-dev@ws.apache.org
Subject: Move the JSP tag lib to the tuscany-sca-api module?


 I was wondering about moving the JSP taglib thats currently in the


host-webapp module [1] to be in the sca-api module. The point being if
you
use an IDE that can validate JSPs then if the jar with the taglib is in
the
application classpath the IDE will validate the use of the taglib, so
right
now that means you need to add the tuscany-host-webapp jar which seems
like
it unnecessarily exposes tuscany internals to the app developer whereas
if
the taglib was in the sca-api than thats seems fine to have in the
application classpath.

 ...ant






The sca-api module is currently used only for SCA APIs defined by
osoa.org.  This taglib is a Tuscany API not an SCA API.  So I think
it should be in a different module.

  Simon



Re: Build failure in databindings itest

2008-05-08 Thread Simon Nash

I ran mvn -e and got a stack trace as follows.  It looks like the
class org/apache/commons/collections/ExtendedProperties was not
found.  Any ideas?

  Simon

[INFO] [exec:java {execution: generate-test-sdo-source}]
 Building project from dir: F:\tuscany69\sca\itest\databindings\sdogen\target
[INFO] 
[ERROR] BUILD ERROR
[INFO] 
[INFO] An exception occured while executing the Java class. null

org/apache/commons/collections/ExtendedProperties
[INFO] 
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: An exception occured whi
le executing the Java class. null
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:564)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi
fecycle(DefaultLifecycleExecutor.java:480)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:459)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:311)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:278)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: An exception occured
while executing the Java class. null
at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:324)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:447)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:539)
... 16 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:273)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/collections/Extend
edProperties
at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.ja
va:160)
at org.apache.velocity.runtime.RuntimeSingleton.clinit(RuntimeSingleto
n.java:95)
at org.apache.velocity.app.Velocity.init(Velocity.java:106)
at org.apache.tuscany.sca.itest.generate.Generate.generate(Generate.java
:90)
at org.apache.tuscany.sca.itest.generate.Generate.main(Generate.java:174
)
... 6 more


Simon Nash wrote:

The SDO databindings itest is failing as well.  The error is quite
cryptic.  See below.

  Simon

[INFO] 


[INFO] Building Apache Tuscany SCA SDO Databinding Integration Tests
[INFO]task-segment: [install]
[INFO] 

[INFO] artifact org.apache.maven.plugins:maven-dependency-plugin: 
checking for u

pdates from java.net
[INFO] artifact org.codehaus.mojo:exec-maven-plugin: checking for 
updates from j

ava.net
[INFO] artifact org.codehaus.mojo:exec-maven-plugin: checking for 
updates from a

pache.incubator
[INFO] artifact org.codehaus.mojo:exec-maven-plugin: checking for 
updates from c

odehaus-snapshot
[INFO] snapshot org.codehaus.mojo:exec-maven-plugin:1.1-beta-2-SNAPSHOT: 
checkin

g for updates from java.net
[INFO] snapshot org.codehaus.mojo:exec-maven-plugin:1.1-beta-2-SNAPSHOT: 
checkin

g for updates from apache.snapshots
[INFO] snapshot org.codehaus.mojo:exec-maven-plugin:1.1-beta-2-SNAPSHOT: 
checkin

g for updates from codehaus-snapshot
Downloading: 
http://snapshots.repository.codehaus.org/org/codehaus/mojo/exec-mav
en

Re: Move the JSP tag lib to the tuscany-sca-api module?

2008-05-08 Thread Simon Nash

ant elder wrote:

On Thu, May 8, 2008 at 7:38 PM, Simon Nash [EMAIL PROTECTED] wrote:


ant elder wrote:


To work at run time yes, but not at development time so the IDE taglib
validation works without them while you're developing the JSP.

  ...ant

On Thu, May 8, 2008 at 5:19 PM, Raymond Feng [EMAIL PROTECTED] wrote:

 What about org.apache.tuscany.sca.host.webapp.jsp.ReferenceTag and

org.apache.tuscany.sca.host.webapp.jsp.ReferenceTEI? I guess there
classes
have to be on the classpath for the TagLib to work, right?

Thanks,
Raymond
--
From: ant elder [EMAIL PROTECTED]
Sent: Thursday, May 08, 2008 8:49 AM
To: tuscany-dev@ws.apache.org
Subject: Re: Move the JSP tag lib to the tuscany-sca-api module?


 I may not have been very clear in the first email and also left out the


link
- it is just a single file that doesn't drag in any additional
dependencies
-


https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/host-webapp/src/main/resources/META-INF/sca.tld

Is a whole new module really necessary?

 ...ant

On Thu, May 8, 2008 at 4:46 PM, Raymond Feng [EMAIL PROTECTED]
wrote:

 I think we should have a separate module like tuscany-sca-jee-api if we


are
ready to do so.

Thanks,
Raymond
--
From: ant elder [EMAIL PROTECTED]
Sent: Thursday, May 08, 2008 8:08 AM
To: tuscany-dev tuscany-dev@ws.apache.org
Subject: Move the JSP tag lib to the tuscany-sca-api module?


 I was wondering about moving the JSP taglib thats currently in the

 host-webapp module [1] to be in the sca-api module. The point being if

you
use an IDE that can validate JSPs then if the jar with the taglib is
in
the
application classpath the IDE will validate the use of the taglib, so
right
now that means you need to add the tuscany-host-webapp jar which seems
like
it unnecessarily exposes tuscany internals to the app developer
whereas
if
the taglib was in the sca-api than thats seems fine to have in the
application classpath.

 ...ant





 The sca-api module is currently used only for SCA APIs defined by

osoa.org.  This taglib is a Tuscany API not an SCA API.  So I think
it should be in a different module.

 Simon



The tag lib is not defined by Tuscany its exactly as defined by osoa.org, in
the SCA JEE spec, section 5.4.4 line 524.

   ...ant


My apologies.  I was unaware of this and I was deceived by the
Tuscany-specific implementation class names.

From looking at the spec, there seem to be a couple of minor issues
with this file:
 1. The namespace is www.osog.org instead of www.osoa.org.
 2. The final part of the URI is sca.tld instead of sca_jsp.tld.

As these are official SCA APIs, I don't see why we shouldn't put
them in the sca-api module and jar.

  Simon



[jira] Commented: (TUSCANY-2306) Client callback state preserved through stateless callback

2008-05-08 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-2306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12595393#action_12595393
 ] 

Simon Nash commented on TUSCANY-2306:
-

I don't see the statelessCallback3 test in CallbackTestCase.java.  What is the 
revision number for the checkin?

 Client callback state preserved through stateless callback
 --

 Key: TUSCANY-2306
 URL: https://issues.apache.org/jira/browse/TUSCANY-2306
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Core Runtime
Affects Versions: Java-SCA-Next
Reporter: Kevin Williams

 Lines 650-654 of the Java CAA specification state:
  
 The difference for stateless services is that the callback field would not 
 be available if the component is servicing a request for anything other than 
 the original client. So, the technique used in the previous section, where 
 there was a response from the backend Service which was forwarded as a 
 callback from MyService would not work because the *callback field would be 
 null* when the message from the backend system was received.
 The test case 
 org.apache.tuscany.sca.vtest.javaapi.conversation.callback.CallbackTestCase.statelessCallback3
  demosntrates that the callback field is not null when the message is 
 received from the back end service

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: Need some help

2008-05-08 Thread Simon Nash

Simon Laws wrote:

On Thu, May 8, 2008 at 8:48 PM, Charuka Jayarathna [EMAIL PROTECTED]
wrote:


Dear all,

I am a Masters student in Georgia State University, and hope to work
on my Theses with some contribution to Tuscany. My adviser is fine
with my suggestion to take over a Tuscany project and work on that as
for my theses. He advises me to take over a project which has enough
intellectual contribution as well as it should be a novel idea
resulting a publishable paper at the end. I appreciate if you can help
me finding some potential areas having above requirements fulfilled.

Thank you
Charuka



Hi Charuka, welcome to Tuscany!

We'd love to have you work with us on a Tuscany project. As it happens we
went through a process a couple of months ago to come up with project ideas
for Google Summer of Code this year. See the list we came up with here [1]
as a starting point. Some of these projects are already being done by GSoC
students. See the selected project proposals on this page [2]. It's probably
not a good idea to take on one that is already being done.

What we need is a new page listing all the current project ideas we have
that people aren't working on. Luciano may have done this already and I'm
sure he will point us to it if he has. If not this is just the kind of
motivation we need to go and create one ;-)

I'm sure we can come up with lots of other ideas so take a look at the list
that's there and I'm sure people will post with new things here in due
course.

Regards

Simon

[1]
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Google+Summer+of+Code+%282008%29
[2]
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Google+Summer+of+Code+%282008%29+Applications


There was a proposal for SCA and PHP integration.  It was added
quite late and I don't believe anyone has taken it on.  Is this
of any possible interest?

  Simon


Build failure in implementation-data-xml

2008-05-08 Thread Simon Nash

I seem to be having extremely bad luck in getting a build to run
at the moment.  I have been trying for a couple of days without
success.  After a new checkout, clean and rebuild just now, I got
the following failure in modules/implementation-data-xml.

  Simon

[INFO] 
[INFO] Building Apache Tuscany SCA Data Implementation Extension
[INFO]task-segment: [install]
[INFO] 
[INFO] [sql:execute {execution: create-db}]
[INFO] Executing file: F:\tuscany69\sca\modules\implementation-data-xml\company.
sql
[ERROR] Failed to execute:   DROP TABLE COMPANY
[ERROR] java.sql.SQLException: 'DROP TABLE' cannot be performed on 'COMPANY' bec
ause it does not exist.
[INFO] 4 of 5 SQL statements executed successfully
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Compiling 10 source files to F:\tuscany69\sca\modules\implementation-data
-xml\target\classes
[INFO] 
[ERROR] BUILD FAILURE
[INFO] 
[INFO] Compilation failure
F:\tuscany69\sca\modules\implementation-data-xml\src\main\java\org\apache\tuscan
y\sca\implementation\data\DATAImplementation.java:[86,78] cannot find symbol
symbol  : class DATACollection
location: class org.apache.tuscany.sca.implementation.data.DATAImplementation



F:\tuscany69\sca\modules\implementation-data-xml\src\main\java\org\apache\tuscan
y\sca\implementation\data\DATAImplementation.java:[86,78] cannot find symbol
symbol  : class DATACollection
location: class org.apache.tuscany.sca.implementation.data.DATAImplementation


[INFO] 
[INFO] For more information, run Maven with the -e switch
[INFO] 
[INFO] Total time: 7 minutes 28 seconds
[INFO] Finished at: Thu May 08 22:39:39 BST 2008
[INFO] Final Memory: 101M/362M
[INFO] 



Re: Tuscany support an usage of binding.ws wsdl.service

2008-05-07 Thread Simon Nash

Vamsavardhana Reddy wrote:

I am running the service as part of a vtest using tuscany-host-tomcat.
When I use wsdl.port instead of wsdl.service in wsdlElement, the service is
running on the url as given for that port in the wsdl file.


Thanks, this confirms that Tuscany has a bug with wsdl.service.
Please can you open a JIRA for this.

  Simon


++Vamsi

On Wed, May 7, 2008 at 3:25 AM, Simon Nash [EMAIL PROTECTED] wrote:


Vamsavardhana Reddy wrote:


I have my AService with wsdl given below:
?xml version=1.0 encoding=UTF-8?
wsdl:definitions targetNamespace=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:soap12=
http://schemas.xmlsoap.org/wsdl/soap12/; xmlns:ns0=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:mime=
http://schemas.xmlsoap.org/wsdl/mime/; xmlns:http=
http://schemas.xmlsoap.org/wsdl/http/; xmlns:ns1=
http://org.apache.axis2/xsd; xmlns:wsaw=
http://www.w3.org/2006/05/addressing/wsdl; xmlns:xs=
http://www.w3.org/2001/XMLSchema; xmlns:soap=
http://schemas.xmlsoap.org/wsdl/soap/; xmlns:wsdl=
http://schemas.xmlsoap.org/wsdl/;
 wsdl:types
   xs:schema attributeFormDefault=qualified
elementFormDefault=qualified targetNamespace=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:ns=
http://wsbinding.vtest.sca.tuscany.apache.org;
   xs:element name=getGreetings
   xs:complexType
   xs:sequence
   xs:element minOccurs=0 name=param0
nillable=true type=xs:string/
   /xs:sequence
   /xs:complexType

   /xs:element
   xs:element name=getGreetingsResponse
   xs:complexType
   xs:sequence
   xs:element minOccurs=0 name=return
nillable=true type=xs:string/
   /xs:sequence
   /xs:complexType
   /xs:element
   /xs:schema

 /wsdl:types
 wsdl:message name=getGreetingsRequest
   wsdl:part name=parameters element=ns0:getGreetings
   /wsdl:part
 /wsdl:message
 wsdl:message name=getGreetingsResponse
   wsdl:part name=parameters element=ns0:getGreetingsResponse
   /wsdl:part
 /wsdl:message

 wsdl:portType name=AServicePortType
   wsdl:operation name=getGreetings
 wsdl:input message=ns0:getGreetingsRequest
wsaw:Action=urn:getGreetings
   /wsdl:input
 wsdl:output message=ns0:getGreetingsResponse
wsaw:Action=urn:getGreetingsResponse
   /wsdl:output
   /wsdl:operation
 /wsdl:portType
 wsdl:binding name=AServiceSOAP12Binding type=ns0:AServicePortType

   soap12:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap12:operation soapAction=urn:getGreetings style=document/
 wsdl:input
   soap12:body use=literal/
 /wsdl:input
 wsdl:output
   soap12:body use=literal/
 /wsdl:output

   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServicePortTypeBinding
type=ns0:AServicePortType
   soap:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap:operation soapAction=/
 wsdl:input
   soap:body use=literal/
 /wsdl:input

 wsdl:output
   soap:body use=literal/
 /wsdl:output
   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServiceHttpBinding type=ns0:AServicePortType
   http:binding verb=POST/
   wsdl:operation name=getGreetings
 http:operation location=AService/getGreetings/

 wsdl:input
   mime:content part=getGreetings type=text/xml/
 /wsdl:input
 wsdl:output
   mime:content part=getGreetings type=text/xml/
 /wsdl:output
   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServiceSOAP11Binding type=ns0:AServicePortType

   soap:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap:operation soapAction=urn:getGreetings style=document/
 wsdl:input
   soap:body use=literal/
 /wsdl:input
 wsdl:output
   soap:body use=literal/
 /wsdl:output

   /wsdl:operation
 /wsdl:binding
 wsdl:service name=AServicePortTypeService
   wsdl:port name=AServicePortTypePort
binding=ns0:AServicePortTypeBinding
 soap:address location=http://localhost:8090/AService/
   /wsdl:port
 /wsdl:service
 wsdl:service name=AService
   wsdl:port name=AServiceHttpport binding=ns0:AServiceHttpBinding

 http:address location=http://localhost:8080/AService/
   /wsdl:port
   wsdl:port name=AServiceSOAP12port_http
binding=ns0:AServiceSOAP12Binding
 soap12:address location=http://localhost:8012/AService/
   /wsdl:port
   wsdl:port name=AServiceSOAP11port_http
binding=ns0:AServiceSOAP11Binding
 soap:address location=http://localhost:8011/AService/
   /wsdl:port
 /wsdl:service

/wsdl:definitions


I have my composite one.composite as given below:
?xml version=1.0 encoding=UTF-8?
composite xmlns=http://www.osoa.org/xmlns/sca/1.0;
   targetNamespace=http://vtest;
   name=one

   component name=AComponent
   implementation.java
class

Re: Tuscany support an usage of binding.ws wsdl.service

2008-05-07 Thread Simon Nash

Vamsavardhana Reddy wrote:

Opening different ports by the hosting environment does not seem to be a
problem because when I use

service name=AService
binding.ws name=p11 wsdlElement=
http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.port(AService/AServiceSOAP11port_http)
/
binding.ws name=p12 wsdlElement=
http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.port(AService/AServiceSOAP12port_http)
/
/service

The service is available at http://localhost:8011/AService and
http://localhost:8012/AService


Which hosting environment did you use when testing this?  It would
not work if the hosting environment were a webapp container.

  Simon


++Vamsi


On Wed, May 7, 2008 at 3:25 AM, Simon Nash [EMAIL PROTECTED] wrote:


Vamsavardhana Reddy wrote:


I have my AService with wsdl given below:
?xml version=1.0 encoding=UTF-8?
wsdl:definitions targetNamespace=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:soap12=
http://schemas.xmlsoap.org/wsdl/soap12/; xmlns:ns0=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:mime=
http://schemas.xmlsoap.org/wsdl/mime/; xmlns:http=
http://schemas.xmlsoap.org/wsdl/http/; xmlns:ns1=
http://org.apache.axis2/xsd; xmlns:wsaw=
http://www.w3.org/2006/05/addressing/wsdl; xmlns:xs=
http://www.w3.org/2001/XMLSchema; xmlns:soap=
http://schemas.xmlsoap.org/wsdl/soap/; xmlns:wsdl=
http://schemas.xmlsoap.org/wsdl/;
 wsdl:types
   xs:schema attributeFormDefault=qualified
elementFormDefault=qualified targetNamespace=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:ns=
http://wsbinding.vtest.sca.tuscany.apache.org;
   xs:element name=getGreetings
   xs:complexType
   xs:sequence
   xs:element minOccurs=0 name=param0
nillable=true type=xs:string/
   /xs:sequence
   /xs:complexType

   /xs:element
   xs:element name=getGreetingsResponse
   xs:complexType
   xs:sequence
   xs:element minOccurs=0 name=return
nillable=true type=xs:string/
   /xs:sequence
   /xs:complexType
   /xs:element
   /xs:schema

 /wsdl:types
 wsdl:message name=getGreetingsRequest
   wsdl:part name=parameters element=ns0:getGreetings
   /wsdl:part
 /wsdl:message
 wsdl:message name=getGreetingsResponse
   wsdl:part name=parameters element=ns0:getGreetingsResponse
   /wsdl:part
 /wsdl:message

 wsdl:portType name=AServicePortType
   wsdl:operation name=getGreetings
 wsdl:input message=ns0:getGreetingsRequest
wsaw:Action=urn:getGreetings
   /wsdl:input
 wsdl:output message=ns0:getGreetingsResponse
wsaw:Action=urn:getGreetingsResponse
   /wsdl:output
   /wsdl:operation
 /wsdl:portType
 wsdl:binding name=AServiceSOAP12Binding type=ns0:AServicePortType

   soap12:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap12:operation soapAction=urn:getGreetings style=document/
 wsdl:input
   soap12:body use=literal/
 /wsdl:input
 wsdl:output
   soap12:body use=literal/
 /wsdl:output

   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServicePortTypeBinding
type=ns0:AServicePortType
   soap:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap:operation soapAction=/
 wsdl:input
   soap:body use=literal/
 /wsdl:input

 wsdl:output
   soap:body use=literal/
 /wsdl:output
   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServiceHttpBinding type=ns0:AServicePortType
   http:binding verb=POST/
   wsdl:operation name=getGreetings
 http:operation location=AService/getGreetings/

 wsdl:input
   mime:content part=getGreetings type=text/xml/
 /wsdl:input
 wsdl:output
   mime:content part=getGreetings type=text/xml/
 /wsdl:output
   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServiceSOAP11Binding type=ns0:AServicePortType

   soap:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap:operation soapAction=urn:getGreetings style=document/
 wsdl:input
   soap:body use=literal/
 /wsdl:input
 wsdl:output
   soap:body use=literal/
 /wsdl:output

   /wsdl:operation
 /wsdl:binding
 wsdl:service name=AServicePortTypeService
   wsdl:port name=AServicePortTypePort
binding=ns0:AServicePortTypeBinding
 soap:address location=http://localhost:8090/AService/
   /wsdl:port
 /wsdl:service
 wsdl:service name=AService
   wsdl:port name=AServiceHttpport binding=ns0:AServiceHttpBinding

 http:address location=http://localhost:8080/AService/
   /wsdl:port
   wsdl:port name=AServiceSOAP12port_http
binding=ns0:AServiceSOAP12Binding
 soap12:address location=http://localhost:8012/AService/
   /wsdl:port
   wsdl:port name=AServiceSOAP11port_http
binding=ns0:AServiceSOAP11Binding
 soap:address location=http

[jira] Commented: (TUSCANY-2298) Incorrect service endpoint when wsdl.service is used with Service webservice binding

2008-05-07 Thread Simon Nash (JIRA)

[ 
https://issues.apache.org/jira/browse/TUSCANY-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12594983#action_12594983
 ] 

Simon Nash commented on TUSCANY-2298:
-

The problem is in the start() method of Axis2ServiceProvider.  This should 
create multiple Axis services if there are multiple compatible ports on the 
WSDL service.  (See the TODO: comment already in this code.)

 Incorrect service endpoint when wsdl.service is used with Service webservice 
 binding
 

 Key: TUSCANY-2298
 URL: https://issues.apache.org/jira/browse/TUSCANY-2298
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension, Java SCA Tomcat 
 Integration
Affects Versions: Java-SCA-1.2
Reporter: Vamsavardhana Reddy
 Fix For: Java-SCA-Next


 Web Service Binding Specification Spec v1.00 - Sec 2.1 - lines 38 to 41:
 38 o Service:
 39 WSDL-namespace-URI#wsdl.service(service-name)
 40 In this case, all the endpoints in the WSDL Service that have equivalent 
 PortTypes with
 41 the SCA service or reference must be available to the SCA service or 
 reference.
 When wsdlElement is of 'Service' type, service must be available on all ports 
 corresponding to the service.  The following is the wsdl I am using for 
 'AService':
 {code}
 ?xml version=1.0 encoding=UTF-8?
 wsdl:definitions 
 targetNamespace=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:soap12=http://schemas.xmlsoap.org/wsdl/soap12/; 
 xmlns:ns0=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; 
 xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; 
 xmlns:ns1=http://org.apache.axis2/xsd; 
 xmlns:wsaw=http://www.w3.org/2006/05/addressing/wsdl; 
 xmlns:xs=http://www.w3.org/2001/XMLSchema; 
 xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; 
 xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/;
   wsdl:types
 xs:schema attributeFormDefault=qualified 
 elementFormDefault=qualified 
 targetNamespace=http://wsbinding.vtest.sca.tuscany.apache.org; 
 xmlns:ns=http://wsbinding.vtest.sca.tuscany.apache.org;
 xs:element name=getGreetings
 xs:complexType
 xs:sequence
 xs:element minOccurs=0 name=param0 
 nillable=true type=xs:string/
 /xs:sequence
 /xs:complexType
 /xs:element
 xs:element name=getGreetingsResponse
 xs:complexType
 xs:sequence
 xs:element minOccurs=0 name=return 
 nillable=true type=xs:string/
 /xs:sequence
 /xs:complexType
 /xs:element
 /xs:schema
   /wsdl:types
   wsdl:message name=getGreetingsRequest
 wsdl:part name=parameters element=ns0:getGreetings
 /wsdl:part
   /wsdl:message
   wsdl:message name=getGreetingsResponse
 wsdl:part name=parameters element=ns0:getGreetingsResponse
 /wsdl:part
   /wsdl:message
   wsdl:portType name=AServicePortType
 wsdl:operation name=getGreetings
   wsdl:input message=ns0:getGreetingsRequest 
 wsaw:Action=urn:getGreetings
 /wsdl:input
   wsdl:output message=ns0:getGreetingsResponse 
 wsaw:Action=urn:getGreetingsResponse
 /wsdl:output
 /wsdl:operation
   /wsdl:portType
   wsdl:binding name=AServiceSOAP12Binding type=ns0:AServicePortType
 soap12:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap12:operation soapAction=urn:getGreetings style=document/
   wsdl:input
 soap12:body use=literal/
   /wsdl:input
   wsdl:output
 soap12:body use=literal/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServicePortTypeBinding type=ns0:AServicePortType
 soap:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap:operation soapAction=/
   wsdl:input
 soap:body use=literal/
   /wsdl:input
   wsdl:output
 soap:body use=literal/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServiceHttpBinding type=ns0:AServicePortType
 http:binding verb=POST/
 wsdl:operation name=getGreetings
   http:operation location=AService/getGreetings/
   wsdl:input
 mime:content part=getGreetings type=text/xml/
   /wsdl:input
   wsdl:output
 mime:content part=getGreetings type=text/xml/
   /wsdl:output
 /wsdl:operation
   /wsdl:binding
   wsdl:binding name=AServiceSOAP11Binding type=ns0:AServicePortType
 soap:binding style=document 
 transport=http://schemas.xmlsoap.org/soap/http/
 wsdl:operation name=getGreetings
   soap:operation soapAction

Re: Tuscany support an usage of binding.ws wsdl.service

2008-05-06 Thread Simon Nash

Lou Amodeo wrote:

I am reading the WS Binding Specification and am trying to understand the
meaning of the wsdl.service form of the WSDL Element's URI and to what
extent and how it is supported in Tuscany?   Thanks for your help.

Service:

39 WSDL-namespace-URI#wsdl.service(service-name)

40 In this case, all the endpoints in the WSDL Service that have equivalent
PortTypes with

41 the SCA service or reference must be available to the SCA service or
reference.


To answer this, I'll start by talking about SCA services, as
the meaning in this case seems clearer.

Suppose the WSDL document for an SCA service refers to a WSDL
service Service1 that has WSDL ports Port1, Port2 and Port3.
Port1 and Port3 use bindings that refer to PortType1, and Port2
uses a binding that refers to PortType2.  The interface of the
SCA service is either the WSDL interface PortType1, or a Java
interface that's equivalent to PortType1.  In this case, the
SCA service would be listening on both Port1 and Port3 (but
not Port2).

I'm having trouble applying this to references, though.  A
reference would normally only invoke via one port.  I'm not sure
how an SCA reference that specifies the WSDL service described
above could make use of both Port1 amd Port3.

  Simon


Re: Tuscany support an usage of binding.ws wsdl.service

2008-05-06 Thread Simon Nash

Lou Amodeo wrote:

I thought Vamsi was illustrating a scenario and asking a question.


I thought so too, and I was doing my best to answer it :-)

It's my understanding that the port definitions in the WSDL should
be used in preference to the endpoint URI that SCA would compute
using its default algorithm.

  Simon


 I agree
with you as well, on the service side the spec does indicate some hosting
environments cannot support endpoints defined in wsdl.  Still trying to nail
down the semantics of this attribute.  The example above with the three http
ports doesn't work for me.



On 5/6/08, Simon Nash [EMAIL PROTECTED] wrote:

Vamsavardhana Reddy wrote:


I have my AService with wsdl given below:
?xml version=1.0 encoding=UTF-8?
wsdl:definitions targetNamespace=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:soap12=
http://schemas.xmlsoap.org/wsdl/soap12/; xmlns:ns0=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:mime=
http://schemas.xmlsoap.org/wsdl/mime/; xmlns:http=
http://schemas.xmlsoap.org/wsdl/http/; xmlns:ns1=
http://org.apache.axis2/xsd; xmlns:wsaw=
http://www.w3.org/2006/05/addressing/wsdl; xmlns:xs=
http://www.w3.org/2001/XMLSchema; xmlns:soap=
http://schemas.xmlsoap.org/wsdl/soap/; xmlns:wsdl=
http://schemas.xmlsoap.org/wsdl/;
 wsdl:types
   xs:schema attributeFormDefault=qualified
elementFormDefault=qualified targetNamespace=
http://wsbinding.vtest.sca.tuscany.apache.org; xmlns:ns=
http://wsbinding.vtest.sca.tuscany.apache.org;
   xs:element name=getGreetings
   xs:complexType
   xs:sequence
   xs:element minOccurs=0 name=param0
nillable=true type=xs:string/
   /xs:sequence
   /xs:complexType

   /xs:element
   xs:element name=getGreetingsResponse
   xs:complexType
   xs:sequence
   xs:element minOccurs=0 name=return
nillable=true type=xs:string/
   /xs:sequence
   /xs:complexType
   /xs:element
   /xs:schema

 /wsdl:types
 wsdl:message name=getGreetingsRequest
   wsdl:part name=parameters element=ns0:getGreetings
   /wsdl:part
 /wsdl:message
 wsdl:message name=getGreetingsResponse
   wsdl:part name=parameters element=ns0:getGreetingsResponse
   /wsdl:part
 /wsdl:message

 wsdl:portType name=AServicePortType
   wsdl:operation name=getGreetings
 wsdl:input message=ns0:getGreetingsRequest
wsaw:Action=urn:getGreetings
   /wsdl:input
 wsdl:output message=ns0:getGreetingsResponse
wsaw:Action=urn:getGreetingsResponse
   /wsdl:output
   /wsdl:operation
 /wsdl:portType
 wsdl:binding name=AServiceSOAP12Binding type=ns0:AServicePortType

   soap12:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap12:operation soapAction=urn:getGreetings style=document/
 wsdl:input
   soap12:body use=literal/
 /wsdl:input
 wsdl:output
   soap12:body use=literal/
 /wsdl:output

   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServicePortTypeBinding
type=ns0:AServicePortType
   soap:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap:operation soapAction=/
 wsdl:input
   soap:body use=literal/
 /wsdl:input

 wsdl:output
   soap:body use=literal/
 /wsdl:output
   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServiceHttpBinding type=ns0:AServicePortType
   http:binding verb=POST/
   wsdl:operation name=getGreetings
 http:operation location=AService/getGreetings/

 wsdl:input
   mime:content part=getGreetings type=text/xml/
 /wsdl:input
 wsdl:output
   mime:content part=getGreetings type=text/xml/
 /wsdl:output
   /wsdl:operation
 /wsdl:binding
 wsdl:binding name=AServiceSOAP11Binding type=ns0:AServicePortType

   soap:binding style=document transport=
http://schemas.xmlsoap.org/soap/http/
   wsdl:operation name=getGreetings
 soap:operation soapAction=urn:getGreetings style=document/
 wsdl:input
   soap:body use=literal/
 /wsdl:input
 wsdl:output
   soap:body use=literal/
 /wsdl:output

   /wsdl:operation
 /wsdl:binding
 wsdl:service name=AServicePortTypeService
   wsdl:port name=AServicePortTypePort
binding=ns0:AServicePortTypeBinding
 soap:address location=http://localhost:8090/AService/
   /wsdl:port
 /wsdl:service
 wsdl:service name=AService
   wsdl:port name=AServiceHttpport binding=ns0:AServiceHttpBinding

 http:address location=http://localhost:8080/AService/
   /wsdl:port
   wsdl:port name=AServiceSOAP12port_http
binding=ns0:AServiceSOAP12Binding
 soap12:address location=http://localhost:8012/AService/
   /wsdl:port
   wsdl:port name=AServiceSOAP11port_http
binding=ns0:AServiceSOAP11Binding
 soap:address location=http://localhost:8011/AService/
   /wsdl:port
 /wsdl:service

Re: [jira] Updated: (TUSCANY-2220) WSDL representations of binding.ws generated incorrectly.

2008-05-02 Thread Simon Nash

This was fixed in 1.2.  I'm updating and resolving the JIRA.

  Simon

Simon Laws (JIRA) wrote:

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Laws updated TUSCANY-2220:


Fix Version/s: (was: Java-SCA-1.2)
   Java-SCA-Next

Move fix to SCA Next


WSDL representations of binding.ws generated incorrectly.
-

Key: TUSCANY-2220
URL: https://issues.apache.org/jira/browse/TUSCANY-2220
Project: Tuscany
 Issue Type: Bug
 Components: Java SCA Embedded Runtime
   Affects Versions: Java-SCA-1.2
Environment: Websphere 6.1.0.14 on AIX, jdk150_10
Jetty on Windows XP x86, jdk150_10
Websphere on Windows XP x86, jdk150_10
Tomcat on Windows XP x86. jdk150_10
   Reporter: Dave Sowerby
Fix For: Java-SCA-Next


WSDL representations of binding.ws generated incorrectly.
I'm currently facing issues when attmepting to utilise the wsdl
generated by a service exposed using binding.ws, when I use wsdl2java
with this wsdl I get the following exception:
IWAB0399E Error in generating Java from WSDL:  java.io.IOException:
Emitter failure.  Cannot find endpoint address in port
ServiceRequestPortType__SOAPHTTPPort in service
ServiceRequestPortType__ServiceLocator
   java.io.IOException: Emitter failure.  Cannot find endpoint
address in port ServiceRequestPortType__SOAPHTTPPort in service
ServiceRequestPortType__ServiceLocator
   at 
org.apache.axis.wsdl.toJava.JavaServiceImplWriter.writeFileBody(JavaServiceImplWriter.java:189)
   at org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:127)
   at 
org.apache.axis.wsdl.toJava.JavaServiceWriter.generate(JavaServiceWriter.java:112)
   at 
org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(JavaGeneratorFactory.java:421)
   at org.apache.axis.wsdl.gen.Parser.generate(Parser.java:476)
   at org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:45)
   at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:362)
   at java.lang.Thread.run(Unknown Source)
I've diffed a previously functioning wsdl against the currently (RC3a)
generated wsdl file, the difference causing this problem appears to be
the additional lines of:
 wsdl:service name=ServiceRequestPortType__Service
   wsdl:port name=ServiceRequestPortType__SOAPHTTPPort
binding=ns2:ServiceRequestPortType__SOAPBinding
   /wsdl:port
 /wsdl:service
Which without an address is causing wsdl2java to fail.






[jira] Resolved: (TUSCANY-2220) WSDL representations of binding.ws generated incorrectly.

2008-05-02 Thread Simon Nash (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-2220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Nash resolved TUSCANY-2220.
-

   Resolution: Fixed
Fix Version/s: (was: Java-SCA-Next)
   Java-SCA-1.2

Fixed in SCA Java 1.2 rc4.

 WSDL representations of binding.ws generated incorrectly.
 -

 Key: TUSCANY-2220
 URL: https://issues.apache.org/jira/browse/TUSCANY-2220
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Embedded Runtime
Affects Versions: Java-SCA-1.2
 Environment: Websphere 6.1.0.14 on AIX, jdk150_10
 Jetty on Windows XP x86, jdk150_10
 Websphere on Windows XP x86, jdk150_10
 Tomcat on Windows XP x86. jdk150_10
Reporter: Dave Sowerby
 Fix For: Java-SCA-1.2


 WSDL representations of binding.ws generated incorrectly.
 I'm currently facing issues when attmepting to utilise the wsdl
 generated by a service exposed using binding.ws, when I use wsdl2java
 with this wsdl I get the following exception:
 IWAB0399E Error in generating Java from WSDL:  java.io.IOException:
 Emitter failure.  Cannot find endpoint address in port
 ServiceRequestPortType__SOAPHTTPPort in service
 ServiceRequestPortType__ServiceLocator
java.io.IOException: Emitter failure.  Cannot find endpoint
 address in port ServiceRequestPortType__SOAPHTTPPort in service
 ServiceRequestPortType__ServiceLocator
at 
 org.apache.axis.wsdl.toJava.JavaServiceImplWriter.writeFileBody(JavaServiceImplWriter.java:189)
at org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:127)
at 
 org.apache.axis.wsdl.toJava.JavaServiceWriter.generate(JavaServiceWriter.java:112)
at 
 org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(JavaGeneratorFactory.java:421)
at org.apache.axis.wsdl.gen.Parser.generate(Parser.java:476)
at org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:45)
at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:362)
at java.lang.Thread.run(Unknown Source)
 I've diffed a previously functioning wsdl against the currently (RC3a)
 generated wsdl file, the difference causing this problem appears to be
 the additional lines of:
  wsdl:service name=ServiceRequestPortType__Service
wsdl:port name=ServiceRequestPortType__SOAPHTTPPort
 binding=ns2:ServiceRequestPortType__SOAPBinding
/wsdl:port
  /wsdl:service
 Which without an address is causing wsdl2java to fail.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: [jira] Commented: (TUSCANY-2275) Problem when with Bean[] and null

2008-05-01 Thread Simon Nash

Simon Nash wrote:

Raymond Feng (JIRA) wrote:
[ 
https://issues.apache.org/jira/browse/TUSCANY-2275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12593441#action_12593441 
]

Raymond Feng commented on TUSCANY-2275:
---

Hi,

I debugged the issue and it turned out an interesting case.
1) When the client side pass 'null' for the service.processBean() 
method, the body of soap message becomes:


ns1:processBean xmlns1=.../

It's the wrapper element with empty children.

2) On the receiving side, the empty data get converted into 
SimpleBean[0] which is an empty array of SimpleBean.


3) The user code in SimpleServiceImpl.java only tests if the 
simpleBean==null and it causes an ArrayOutofBoundException. Adding the 
test of simpleBean.length0 fixes the problem and the client runs 
successfuly.


I would resolve it as a user error. I'm not so sure if we should 
present the data as null or [0]. If you can find any spec covering 
this corner case, I would be happy to revisit it.



I think the marshalled form should be a wrapper containing a Bean
element with xsi:nil=true, not an empty wrapper.  Would this be
unmarshalled as null instead of an empty array?


To answer my own question, this would be unmarshalled as an array of
length 1 containing a single null.  This seems correct.  Unfortunately
it seems that there is no way to disambiguate this case from the null
array case.  I will do some more investigation into this.

  Simon


  Simon


Thanks,
Raymond


Problem when with Bean[] and null
-

Key: TUSCANY-2275
URL: https://issues.apache.org/jira/browse/TUSCANY-2275
Project: Tuscany
 Issue Type: Bug
 Components: Java SCA Data Binding Runtime
   Affects Versions: Java-SCA-1.2
Environment: Tuscnay 1.2-RC4, WAS
   Reporter: Nishant Joshi
   Assignee: Raymond Feng
Fix For: Java-SCA-1.2

Attachments: null problem.zip


I have one service, in which i m passgin Bean[]... If i try to pass 
null instead then it gives exception 
- 

Exception in thread main org.osoa.sca.ServiceRuntimeException: 
Target fault type cannot be resolved: null
at 
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:134) 

at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286) 

at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154) 


at $Proxy6.processBean(Unknown Source)
at com.client.Client.processBean(Client.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 

at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 


at java.lang.reflect.Method.invoke(Method.java:585)
at 
org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:109) 

at 
org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61) 

at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286) 

at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154) 

at 
org.apache.tuscany.sca.core.invocation.CglibProxyFactory$CglibMethodInterceptor.intercept(CglibProxyFactory.java:149) 

at 
com.client.Client$$EnhancerByCGLIB$$b5aedbbb.processBean(generated)

at com.client.Client.main(Client.java:34)
Caused by: org.apache.tuscany.sca.interfacedef.util.FaultException: 
Array index out of range: 0
at 
org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingInvoker.invoke(Axis2BindingInvoker.java:97) 

at 
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:78) 


... 15 more
Caused by: org.apache.axis2.AxisFault: Array index out of range: 0
at 
org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486) 

at 
org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343) 

at 
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389) 

at 
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211) 

at 
org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) 

at 
org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingInvoker.invokeTarget(Axis2BindingInvoker.java:118) 

at 
org.apache.tuscany.sca.binding.ws.axis2.Axis2BindingInvoker.invoke(Axis2BindingInvoker.java:89) 


... 16 more

Re: Improving support for running in OSGi

2008-04-30 Thread Simon Nash

Yang Lei wrote:

I think enabling OSGI can help modularity with a clear definition of
package visibility, so we can have a much cleaner module
dependencies through osgi bundle import/export on package.   I think
it will help Tuscany adopters a lot in the scenarios such as: when
implementing new implementation type, binding type, or data binding
types, there is clear indication which set of packages can be used
(exported API/SPI ). So upgrading to new Tuscany level can be as
simple as plug and play if there is no API/SPI changes, and  version
control (multiple version co-existence) can also be made available
through OSGI capabilities.


+1 for the benefits to modularity.  For versioning, I see the value
more in terms of allowing multiple versions of third-party dependencies
to coexist, rather than having multiple versions of some parts of
Tuscany loaded at the same time.  Are there any scenarios that would
require the latter?

  Simon


Regards,

Yang

On Tue, Apr 29, 2008 at 1:49 PM, Konradi, Philipp (CT)
[EMAIL PROTECTED] wrote:

Hi,


I'd like to get people's thoughts on whether the idea of 'promoting'
OSGi is a good one,

IMHO support of OSGi is very important and I glad to see increasing interest of 
the community here.


and get ideas on how best to proceed.

I personally have currently not a very deep insight into implementation details 
yet, but we are currently prototyping and have there also OSGi services.
What I could offer today is only to feed our findings about limitations and 
rooms for improvement back.
Another important thing which I see on the horizon, is the ongoing 
standardization of Distributed OSGi (RFC119) and the benefit to support that 
standard in Tuscany's OSGi bits. So from mid-term perspective I suggest to keep 
an eye on that as well.

Regards,
Philipp

-Ursprüngliche Nachricht-
Von: Graham Charters [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 28. April 2008 09:48
An: tuscany-dev@ws.apache.org
Betreff: Improving support for running in OSGi


Hi All,

I'd like to get more involved in the OSGi support in Tuscany (both the
modularity work (itest/osgi-tuscany) and the implementation.osgi).  I
recently started looking at the work to run Tuscany in OSGi, embodied
in itest/osgi-tuscany and described in the thread entitled
Classloading in Tuscany.  I've noticed a couple of others on the
list also interested in Tuscany running in OSGi and wondered if it
might be worth considering making this a first-class option.  At the
moment the five bundles are only built by folks who want the OSGi
support and go into the itest/osgi-tuscany directory to create it.
This can result in any problems being discovered late, but also could
create the impression that OSGi is considered a second-class
environment (which I don't believe is the case).

Aside from the obvious benefits to OSGi users in doing this, I think
there's a potential for Tuscany to use the OSGi build as a test-bed
for highlighting and working through modularity issues, which would
also benefit Tuscany in general, not just in an OSGi runtime.

I'd like to get people's thoughts on whether the idea of 'promoting'
OSGi is a good one, and get ideas on how best to proceed.  We could
then start discussing what some of the issues might be (e.g. size of
builds, time to build, etc...).

Regards,

Graham.








  1   2   3   4   5   6   7   8   9   10   >