Re: [NOTICE] Welcome Jean-Sebastien Delfino as new Tuscany PMC Chair

2013-05-28 Thread Mike Edwards

On 22/05/2013 17:35, Luciano Resende wrote:

The Tuscany PMC has voted and the Board has confirmed Jean-Sebastien
Delfino as the new Tuscany PMC Chair.

Congratulations !!!

--
Luciano Resende
http://people.apache.org/~lresende
http://twitter.com/lresende1975
http://lresende.blogspot.com/

Congratulations, Jean-Sebastien.


Yours,  Mike.


[jira] [Commented] (TUSCANY-3962) JCA20001 should not apply to interfaces which Tuscancy references

2011-10-18 Thread Mike Edwards (Commented) (JIRA)

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

Mike Edwards commented on TUSCANY-3962:
---

The interface does contain overloaded methods but I think that this should be 
allowed for an @Reference.

Uh - no.  If this interface is meant to be remotable, this implies that the 
reference *could* be changed by configuration to use a different service using 
a different protocol, such as Web services, without changing the implementation 
code at all.  This is what SCA is about.

*IF* the interface has overloaded methods and the reference was switched to use 
Web services, then it would fail.  That is the reason for this restriction on 
overloaded methods.

What you have in your example is a case of an interface that can only be used 
remotely over a very limited set of protocols.  I think that needs some special 
handling so that it is clear that the interface is not usable more generally.  
eg some kind of Intent gets applied that is only satisfied by a binding.ejb 
or a similar style of mechanism.

 JCA20001 should not apply to interfaces which Tuscancy references
 -

 Key: TUSCANY-3962
 URL: https://issues.apache.org/jira/browse/TUSCANY-3962
 Project: Tuscany
  Issue Type: Bug
  Components: OASIS Compliance - TUSCANY
Affects Versions: Java-SCA-2.0-Beta3
 Environment: WindowsXP SP3
Reporter: Glen Conboy
 Attachments: myscaproject.zip


 I have a component which references a Java RMI interface.
 When I try to run Tuscany I get this error:
 org.apache.tuscany.sca.interfacedef.OverloadedOperationException: [JCA20001] 
 Cannot overload operation xyz on aaa.bbb.ccc.ddd.ServerInterface as it is a 
 @Remotable interface
 JCA20001 basically states Remotable Services MUST NOT make use of method 
 overloading.  However I think that this should only apply to services which 
 Tuscany is exposing.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: [jira] [Created] (TUSCANY-3924) Inherited fields in service impl classes are treated as Properties

2011-09-16 Thread Mike Edwards

On 14/09/2011 01:10, Greg Dritschler wrote:

These questions have come up before, and in the past we've looked at the Common 
Annotations for the
Java Platform specification (aka JSR 250) for guidance.  The rules being 
proposed here appear to be
in opposition to one of those guidelines:

(page 2-6)
4. Members inherited from a superclass and which are not hidden or overridden 
maintain the
annotations they had in the class that declared them, including member-level 
annotations implied by
class-level ones.

This guideline makes a lot of sense to me and in my opinion it would be a 
mistake to do something
different.

Can we go back to the original problem?  What code is deciding that an 
unannotated field in a
superclass is a property?  I don't see the code that would do that.

Greg



Greg,

Regarding JSR250 and annotations, you are totally correct.

However, the question for SCA and the specifications is not about the inheritance of annotations or 
the inheritance of methods, fields etc.  The specifications are making statements about what gets 
introspected - ie the algorithm that is used to introspect some class to determine the component type.


The decision made by the spec folks was that it is important to enable the subclass to be in control 
- and to do this, it is necessary to limit the introspection of the class to the artifacts that it 
declares itself - and not to introspect aspects of the parent class.


The simplest example concerns the @Service annotation.  If the superclass has an @Service annotation 
and if that annotation was always scanned by the introspection process, then the implication is that 
the subclass could never turn off the @Service annotation.  If the sublcass is to be in control, 
then the introspection algorithm must not be able to examine the superclass annotations.  This is 
then extended to all the aspects of the introspection algorithm.


In some ways, this is a case of we're damned if we do and we're damned if we don't.  Either way we 
construct the introspection algorithm, there are consequences for the developer - more work, more 
things to do.  We've chosen one approach - at least its consistent even if for some developers it 
means more effort.  I'm open to hearing that we've made the wrong choice, but it is fair for me to 
ask for some convincing examples.



Yours,  Mike.


Re: [jira] [Updated] (TUSCANY-3947) Compliance testcase POJO_10009 testing for too strict of a condition

2011-09-16 Thread Mike Edwards

On 15/09/2011 22:59, Jennifer A Thompson (JIRA) wrote:


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

Jennifer A Thompson updated TUSCANY-3947:
-

 Description:
In compliance testcase POJO_10009 service1ClassLoaderCheckImpl.operation1() is 
checking if the TCCL retrieved is exactly the same as 
service1ClassLoaderCheckImpl's classloader. However, it seems as long as the 
implementation class is loadable from the TCCL the testcase is still compliant 
with the specifiation.


The suggested update is to change:

public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
String result =  thread context classloader is correct;
if( loader != tccl ) result =  thread context classloader not correct;
return serviceName +  operation1 invoked + result;
}

to:

public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
ClassLoader loader2 = 
Class.forName(org.oasisopen.sca.test.service1ClassLoaderCheckImpl, false, 
tccl);
String result =  thread context classloader is correct;
if (loader != loader2) result =  thread context classloader not correct;
return serviceName +  operation1 invoked + result;
}


   was:
In compliance testcase POJO_10009 service1ClassLoaderCheckImpl.operation1() is 
checking if the TCCL retrieved is exactly the same as 
service1ClassLoaderCheckImpl's classloader. However, it seems as long as the 
implementation class is loadable from the TCCL the testcase is still compliant 
with the specifiation.


The suggested update is to change:

public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
String result =  thread context classloader is correct;
if( loader != tccl ) result =  thread context classloader not correct;
return serviceName +  operation1 invoked + result;
}

to:

public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
ClassLoader loader2 = 
Class.forName(org.oasisopen.sca.test.service1ClassLoaderCheckImpl, false, 
tccl);
String result =  thread context classloader is correct;
if (loader != loader2) result =  thread context classloader not correct;
return serviceName +  operation1 invoked + result;
}

This testcase would then allow the runtime the flexibility to compose a 
classloader that can delegate to the contribution classloader and to other 
classloaders (e.g. library loaders).



Compliance testcase  POJO_10009 testing for too strict of a condition
-

 Key: TUSCANY-3947
 URL: https://issues.apache.org/jira/browse/TUSCANY-3947
 Project: Tuscany
  Issue Type: Improvement
  Components: OASIS Compliance - TUSCANY
Affects Versions: Java-SCA-2.x
Reporter: Jennifer A Thompson
 Fix For: Java-SCA-2.x


In compliance testcase POJO_10009 service1ClassLoaderCheckImpl.operation1() is 
checking if the TCCL retrieved is exactly the same as 
service1ClassLoaderCheckImpl's classloader. However, it seems as long as the 
implementation class is loadable from the TCCL the testcase is still compliant 
with the specifiation.
The suggested update is to change:
public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
String result =  thread context classloader is correct;
if( loader != tccl ) result =  thread context classloader not correct;
return serviceName +  operation1 invoked + result;
}
to:
public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
ClassLoader loader2 = 
Class.forName(org.oasisopen.sca.test.service1ClassLoaderCheckImpl, false, 
tccl);
String result =  thread context classloader is correct;
if (loader != loader2) result =  thread context classloader not correct;
return serviceName +  operation1 invoked + result;
}


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




Folks,

The specification says this:

The SCA runtime MUST set the thread context class loader of a component implementation class to the 
class loader of its containing contribution. [JCI19]


and this:

The SCA runtime MUST ensure that the Java classes used by a contribution are all loaded by a class 
loader that is unique for each contribution in the Domain. [JCI100010] 


I don't see how this can be interpreted as allowing the TCCL 

[jira] [Created] (TUSCANY-3944) MANIFEST.MF for tuscany-node-manager module is missing a dependency for javax.ws.rs

2011-09-12 Thread Mike Edwards (JIRA)
MANIFEST.MF for tuscany-node-manager module is missing a dependency for 
javax.ws.rs
---

 Key: TUSCANY-3944
 URL: https://issues.apache.org/jira/browse/TUSCANY-3944
 Project: Tuscany
  Issue Type: Bug
  Components: SCA Java Runtime
Affects Versions: Java-SCA-2.0-Beta3
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.0-Beta3


tuscany-node-manager has a series of dependencies on the javax.ws.rs API (see 
DomainCompositeResource for examples), but the MANIFEST.MF has no entries for 
these dependencies.

This results in ClassNotFound exceptions when running Tuscany under OSGi (eg. 
running the OASIS tests using the OASIS OSGi based Runtime Bridge)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (TUSCANY-3944) MANIFEST.MF for tuscany-node-manager module is missing a dependency for javax.ws.rs

2011-09-12 Thread Mike Edwards (JIRA)

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

Mike Edwards resolved TUSCANY-3944.
---

Resolution: Fixed

Resolved by adding an import declaration for javax.ws.rs package into the 
MANIFEST.MF file for tuscany-node-manager module.

Committed under 1169669

 MANIFEST.MF for tuscany-node-manager module is missing a dependency for 
 javax.ws.rs
 ---

 Key: TUSCANY-3944
 URL: https://issues.apache.org/jira/browse/TUSCANY-3944
 Project: Tuscany
  Issue Type: Bug
  Components: SCA Java Runtime
Affects Versions: Java-SCA-2.0-Beta3
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.0-Beta3


 tuscany-node-manager has a series of dependencies on the javax.ws.rs API (see 
 DomainCompositeResource for examples), but the MANIFEST.MF has no entries for 
 these dependencies.
 This results in ClassNotFound exceptions when running Tuscany under OSGi (eg. 
 running the OASIS tests using the OASIS OSGi based Runtime Bridge)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (TUSCANY-3942) Should reference target=XXX with empty child binding.sca element be allowed?

2011-09-08 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3942:
---

Folks,

For OASIS, this is illegal, pure  simple.  It is not allowed to have @target 
set on a reference and also have binding/ child elements.  There are 
compliance tests which check for this too.

Cease  desist !!   ;-)

Yours,  Mike.

 Should reference target=XXX with empty child binding.sca element be 
 allowed?
 -

 Key: TUSCANY-3942
 URL: https://issues.apache.org/jira/browse/TUSCANY-3942
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Assembly Model
Affects Versions: Java-SCA-2.x
Reporter: Scott Kurz
Priority: Minor

 Should this be allowed? (I should have phrased this as uri-less 
 binding.sca rather than empty)
   
  reference target=targetService
binding.sca/
  /reference
 I see this is specifically allowed in 
 EndpointReferenceBuilderImpl.bindingsIdentifyTargets(), so some thought went 
 into this (looks like Raymond wrote this):
   if ((binding instanceof SCABinding)  (binding.getURI() == null))
   continue;
 I can understand the thought process here, e.g. the context around ASM50026 
 involves avoiding ambiguity in resolving references, and since an empty, 
 uri-less binding.sca doesn't resolve the reference at all.. it doesn't 
 conflict with the target.
 However, the language in ASM50026 is plain and simple and seems to disallow 
 this, and doesn't make a special case for binding.sca without a @uri. 
 One problem with tolerating this syntax, (as we do today), is that, in 
 general, when using @target you don't get to select which binding to use, 
 from the reference side.However I could see someone thinking that adding 
 the binding.sca child elem to the reference with @target value would imply 
 that the binding.sca should be used to do the invocation.   (ASM50012 implies 
 this).   So it's unclear if this should have this behavior making the app 
 implementation-dependent.
 From a purely Tuscany-only viewpoint I can even see the value of tolerating 
 this... however it's such a simple case syntax-wise, and the spec is clearly 
 trying to specify the correct vs. incorrect behavior... so I do think we 
 should try to follow the letter of the spec in this instance.  
 I tried to find some earlier discussion here, this is all I found which 
 didn't seem to help much (except to make me wonder if there is some other use 
 case, maybe involving callbacks, complicating this.. but I can't think of it):
  
 https://issues.apache.org/jira/browse/TUSCANY-3013
 Thoughts?
 Thanks, Scott

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: What should the Tuscany generated WSDL contract look like for an async service?

2011-08-30 Thread Mike Edwards

On 25/08/2011 18:03, Simon Laws wrote:

On Thu, Aug 25, 2011 at 2:49 PM, ant elderant.el...@gmail.com  wrote:

Looking to fix TUSCANY-3931 about the clients not working with the
wsdl in the domain registry for async services and i wonder what the
wsdl should really look like. For example with the service interface:

@AsyncInvocation
public interface Service1AsyncServer {
@AsyncFault( {BusinessFault1.class, BusinessFault2.class} )
public void operation1Async( String input, ResponseDispatchString  
handler );
}

would we expect the generated wsdl that goes in the domain registry be
that or the equivalent synchronous version, so with an operation1
instead of operation1Async?

   ...ant



My immediate answer would be that it should look like the synchronous
version with the asyncInvocation intent attached.

When we are matching interfaces we are comparing the synchronous
version because that's what the statement of the service interface
looks like.

Bindings have to decide how to support async invocations. We current
support two models which allow native and non-native support. Our web
services binding doesn't support async natively so I  would guess that
?wsdl to the async endpoint results in the synch WSDL (don't know if
it's appropriately decorated). If it did provide native support would
we expect it to represent the async flow explicitly. No sure but we
can look to see it Axis says anything about what it does in the async
case.

Simon



+1

WSDL simply has the AsyncInvocation intent added to it.  How that gets interpreted by the binding is 
the big thing.  The idea is that the binding should really split the request and response handling. 
 But note that in principle, a non-aware binding could try to treat the operation as synchronous - 
it would simply time out in most cases.



Yours,  Mike.


Re: What should the Tuscany generated WSDL contract look like for an async service?

2011-08-30 Thread Mike Edwards

On 25/08/2011 20:53, Greg Dritschler wrote:

I agree that the DomainRegistry should have the equivalent synchronous version.

While we're on this subject, I happened to be wondering today whether 
@AsyncInvocation obligates the
service implementation to use the async service interface?  Obviously it makes 
the most sense to use
them together, but is that required?  As a service implementer, could I use 
@AsyncInvocation with
the normal synchronous interface?  This would mean the service implementation completes 
inline so
to speak and has no need for a ResponseDispatch object.  Since @AsyncInvocation 
is used, the SCA
runtime is obligated to provide a suitable thread for a long-running request, 
and the binding still
must support an asynchronous response.  Effectively, it means the SCA runtime 
would do the
ResponseDispatch call on behalf of the implementation at the completion of the 
method.

I'm not terribly excited about supporting such a thing, but I didn't see 
anything in the spec that
suggests either way whether it's allowed or disallowed.

Greg


Greg,

Yuk, pretty ugly.

I'd be happy if the SCA runtime barfed if it saw @AsyncInvocation being used 
like that.

It isn't a good pattern to encourage since it consumes server resources and is 
susceptible to failures.

As for fixing the spec to disallow this usage - maybe V1.2 could address that.


Yours,  Mike.



Re: [jira] [Created] (TUSCANY-3924) Inherited fields in service impl classes are treated as Properties

2011-08-24 Thread Mike Edwards

On 23/08/2011 23:23, Simon Nash wrote:

This sounds like the right approach. One small point is that the description
talks about redeclaring fields and methods in the subclass. This is possible
with methods, but it doesn't work for fields as this results in a separate field
with the same name in the subclass which hides the superclass field. To expose
a superclass field as a property in the subclass, the subclass would need to
declare a subclass setter method that assigns to the superclass field.

Simon


Yes, agreed.

This all makes subclassing more work, of course, but I see no alternative if the subclass is going 
to be in control.



Yours,  Mike.




Re: [jira] [Created] (TUSCANY-3924) Inherited fields in service impl classes are treated as Properties

2011-08-23 Thread Mike Edwards

Folks,

Commenting on this JIRA:

On 19/08/2011 01:32, Vijai Kalathur (JIRA) wrote:

Inherited fields in service impl classes are treated as Properties

snip


In the scenario where the Service impl class extends a class which has no SCA 
annotations in it, protected fields in the base class are interpreted like 
Properties.
Ideally, only the fields in the impl class should be introspected for 
References/Properties.  The fields in the base class should not be interpreted 
as References/Properties if there are no SCA annotations.

--


First, I agree that the Java CI specification is deficient in this area - it does not give a clear 
definition of what is supposed to happen when the Java implementation class extends another class.


Simon Nash commented that the principle is that the implementation class is in control.  In 
particular, if the implementation class is annotated, those annotations are obeyed.  This is the 
correct view, since otherwise the subclass is forced to accept whatever is declared in the 
superclass with no option of changing things.


Sections mentioned below are from the SCA Java CI specification cd034 / csd04.


a) CASE 1: Implementation class has some SCA Annotations

In the case where the implementation class has one or more SCA annotations (@Service, @Reference, 
@Property), then the rules that apply to such annotations are followed, as described in Section 8.


NOTE: It is important to remember that the SCA annotations @Service, @Reference, @Property are NOT 
INHERITED.  So that @Service on the superclass DOES NOT mean that the sublcass is annotated with 
@Service through inheritance.


If there is an @Service annotation on the class, it is handled as in Section 8.  If there is no 
@Service annotation, then the implementation offers no services.  This applies even if the 
superclass has an @Service annotation.


Each Field and Setter method in the implementation class annotated with @Reference or @Property is 
treated according to Section 8.  What about Fields and Setter methods declared in the superclass? 
Clearly any Fields and Setters without annotations are simply ignored (as stated by Section 8).  But 
what about superclass Fields  Setters with annotations?


For the implementation class to be in control, then it must be the case that only annotated fields 
and setter methods in the implementation class are taken into consideration.  Any annotated fields 
and setter methods in the superclass are ignored.  This puts a burden on the implementation class to 
redeclare the fields / setters and annotate them suitably if the implementation class wants those 
fields / setters treated as references or properties.




b) CASE 2: Implementation class has no SCA Annotations, superclass has SCA 
annotations

@Service annotations are introspected from the implementation class itself.  Any @Service annotation 
on the superclass is not inherited.  Whether *any* services are offered by the implementation class 
then depends on whether there are any @Reference or @Property annotations in the class itself (as 
defined in Section 8.1 of the spec).


Regarding the references and properties of the implementation class, following the principle 
established in CASE 1, annotated fields and methods in the superclass are ignored as far as their 
annotations are concerned.  ie The presence of a @Reference or @Property annotation in the 
superclass has no impact on whether the implementation class is treated as unannotated.


There is a SEPARATE question as to whether the superclass setter methods  public/protected fields 
are considered for the calculation of the references  properties of the unannotated class (ignoring 
their annotations, that is).  In my view, all such methods and fields of the superclass are also 
ignored when computing the references  properties of the implementation class.  If the subclass 
wants them as references  properties, then the implementation class must redeclare them 
appropriately.  This provides the subclass with control, as defined for CASE 1, at the expense of 
some work (ie redeclarations etc).



c) CASE 3: Implementation class has no SCA Annotations, superclass has no SCA 
annotations

This case follows the principles for CASE 2, except that there are no 
annotations to ignore!



If we agree this approach, we should write it up and make it available 
permanently.


Yours,  Mike.


Re: Target service scope with implementation.composite

2011-08-10 Thread Mike Edwards

On 09/08/2011 23:33, Greg Dritschler wrote:

New question:  What is the scope for resolving a COMPOSITE reference target?  
It seems like it is
resolved in the context of the using composite.

I recall seeing something about this somewhere but all I can find is this:
http://www.osoa.org/jira/browse/ASSEMBLY-5

Greg

Greg,

If a composite reference has a target defined, either via @target or via some binding declared on 
the reference, these are to be taken as DEFAULTS which apply when the composite is used as an 
implementation by some component (ie a component in a higher level composite). These targets have 
no meaning within the composite in which they are declared.


The configuration of the implementation is supplied by that using component - and the component can 
either supply all its own configuration (this is expected to be the 99% default situation) or it can 
decide to use the defaults supplied by the implementation (ie by the composite reference in this case).


When viewed this way, the target(s) of the higher level component reference are in the context of 
the higher level component - either its composite or the Domain, depending on the level of that 
component.


In my opinion, it is not a wise procedure to define targets in a composite reference either using 
@target or using an SCA binding with a @uri declared.  The reason for this is that the writer of the 
composite cannot normally know the context in which it is going to be used - so for example if they 
had @target=fooComponent/barService, how could they be sure that the using component was in any 
kind of context that had a component with the name fooComponent.


The idea of setting a default binding  target using a concrete binding such as binding.ws makes 
more sense - ie the composite writer can say - here is a reference for this composite 
implementation  I know that there is one Web service over there that will satisfy the reference.


HOWEVER, either way, what counts is the confuguration on the component reference - whether this was 
explicity set by the component or was a default value derived from the composite reference - and it 
is the higher level component reference configuration that is then pushed down onto the (proxy) 
component reference at the lower level (ie the component reference identified in the composite 
reference @promotes attribute).


Note that this process of an implementation potentially having a default configuration for a 
reference applies in principle to ANY type of implementation, not only to a composite - ie a Java 
implementation class could in principle have a reference with a binding  target defined.



I hope that this helps.


Yours,  Mike.


Re: Target service scope with implementation.composite

2011-08-08 Thread Mike Edwards

On 08/08/2011 14:56, Greg Dritschler wrote:

I have the following test case:

Composite A:
   - is deployable
   - has a component reference with a reference target pointing to some 
top-level component outside of A
   - does not promote the component reference

Composite B:
  - is deployable
  - reuses composite A as the implementation of a component

B fails because, when A is used within the context of B, the reference target 
is not found within A.
I think it is correct that this is an error, but given some of the discussion 
lately about
implementation.composite, I'd like a second opinion.

Assembly says
1880 For a composite used as a component implementation, wires can only link 
sources and targets
that are
1881 contained in the same composite

The error happens to be discovered at the time the reference is invoked (from 
within the context of B).
Unable to bind [] - No endpoints found in the domain that match the reference

It seems like it could be detected at build time.

Greg

Greg,

Its an error.

If you have a component reference with a target which is a component service of a second component 
which is not in the composite of the first component, the only way that this reference can be 
satisifed is by some form of include processing which adds the target component to the context of 
the first component.  This simply can't happen when the composite is used as an implementation - it 
could happen for a composite deployed directly to the Domain.



Yours,  Mike.


Re: getting TooManyReferenceTargets when overriding binding uri of promoted reference

2011-08-05 Thread Mike Edwards

Greg,

I'll try to address this with some inline replies, but I get the feeling that maybe a conf call will 
be needed to interactively work on your concerns.



Yours,  Mike.

On 05/08/2011 16:12, Greg Dritschler wrote:

Simon,

You seem to be saying there's an equivalence between binding.sca @uri and 
reference target in terms
of promotion behavior.  I cannot find anything in the spec that supports that.

Here is the description of nonOverridable:

   876 nonOverridable : boolean (0..1) - a boolean value, false by default, 
which indicates
whether this
   877 component reference can have its targets overridden by a composite 
reference which promotes the
   878 component reference.
   879 If @nonOverridable==false, if any target(s) are configured onto the 
composite references which
   880 promote the component reference, then those targets replace all the 
targets explicitly
declared on the
   881 component reference for any value of @multiplicity on the component 
reference. If no targets are
   882 defined on any of the composite references which promote the component 
reference, then any
   883 targets explicitly declared on the component reference are used. This 
means in effect that
any targets
declared on the component reference act as default targets for that reference.

This description explicitly talks about reference targets.  There is nothing 
here that mentions
bindings.  This description also doesn't explain how nonOverridable applies to 
higher-level
composites that reuse this composite.  It only describes the interaction 
between the composite
reference and the component reference within the composite itself.  If targets 
are specified on both
an 'outer' component reference and its promoted 'inner' component reference, 
what is supposed to
happen?  Is it dependent on the setting of nonOverridable?  I can't find 
anything that addresses this.


There are a lot of bones to pick out of here - let me see if I can disentangle 
them.

1) This section talks about targets of a reference in the sense implied by section 4.3.1 of the 
specification.  There are 7 ways described in there for specifying a target service for a reference, 
which includes binding specific stuff like binding @uri values. So it is intended to cover bindings 
as well as the other ways of specifying a target service.


2) How does nonOverridable apply to a higher level COMPONENT (not composite) that reuse this 
composite?  The answer is that it does not.  ie the setting has no effect on the configuration of 
the higher level component - if it did, there would be a description in the spec - there isn't any.


What effect nonOverridable has is on the reference that has nonOverridable on it.  It basically says 
whether a promotion obliterates any other targets the reference may have or whether the promotion 
simply adds targets.  The DEFAULT is obliteration.  ie if you promote a reference then the target 
identified by the higher level component is what actually gets used.  Only if nothing is supplied at 
the higher level could a target on the lower level get used (and that is the purpose of this bit 
complexity - it gives a default (local) target in the case the higher level component does not 
configure one.


The relation between the higher level component reference and the lower level component reference 
that is promoted is essentially captured in this statement in section 4.3.1:


6.	Through the promotion of a component reference by a composite reference of the composite 
containing the component (the target service is then identified by the  configuration of the 
composite reference)


and configuration here means the configuration supplied by the component using the composite as an 
implementation (there is other material that covers the generalalities of how a component 
configuration configures ANY implementation - and that applies equally to composite implementations 
as it does to Java or any other type.


If targets are specified on the outer level and the inner level, then what is supposed to happen is 
described in the section that deals with nonOverridable - and there are 2 cases:


1) If @nonOverridable==false, if any target(s) are configured onto the composite references which 
promote the component reference, then those targets replace all the targets explicitly declared on 
the component reference for any value of @multiplicity on the component reference. If no targets are 
defined on any of the composite references which promote the component reference, then any targets 
explicitly declared on the component reference are used. This means in effect that any targets 
declared on the component reference act as default targets for that reference.



2) If @nonOverridable==true, and the component reference @multiplicity is 0..n or 1..n, any targets 
configured onto the composite references which promote the component reference are added to any 
references declared on the component reference - that is, the 

Re: getting TooManyReferenceTargets when overriding binding uri of promoted reference

2011-08-04 Thread Mike Edwards

On 04/08/2011 10:27, Simon Laws wrote:

On Wed, Aug 3, 2011 at 8:37 PM, Greg Dritschler
greg.dritsch...@gmail.com  wrote:

I have the following composites:
Composite A has a component reference myService with binding.sca uri=X.
  The reference is promoted.
Composite B has a component that uses A as its implementation.  It redefines
reference myService and specifies binding.sca uri=Y.
I get the error
[ASM50022] Too many targets on reference: myService
I've found that EndpointReferenceBuilderImpl.pushDownEndpointReferences() is
adding the endpoint references from the outer component reference to the
inner component reference.  This doesn't seem like it applies in this case.
  My understanding is that bindings configured on the outer component
reference override bindings that would otherwise have been inherited from
the promoted reference.  pushDownEndpointReferences() was introduced in
revision 833132 which says:
 Fix motivated by ASM-5023. Update code to reflect the OASIS treatment
of promoted references. Endpoint references are now copied down to the
promoted component reference and the multiplicity validation is performed
there.
ASM-5023 uses reference target.  If I were using reference target instead of
binding uri, then I would agree I have an error (assuming multiplicity 0..n
or 1..n), since reference targets are additive.  But I'm not using reference
target.
Greg



Hi Greg

I think the only useful URI on a reference binding.sca is the name of
a target service. This is equivalent to specifying the same target
service via the target attribute. I think though that you're arguing
that the top level binding configuration should override the lower
level binding configuration?

Simon



Folks,

Let's be clear about the use of @uri on binding.sca.

IF you specify @target on the parent binding - then it is not valid to use 
binding subelements:

If a reference has a value specified for one or more target services in its @target attribute, 
there MUST NOT be any child binding/ elements declared for that reference. [ASM50026]


(Section 4.3.1 Assembly spec)

so then IF you have a reference which allows multiple targets and you require a mixture of bindings, 
where some of them must be resolved bindings (eg reference is to an external web service known via 
its address) but others are desired to be binding.sca, then necessarily the only way of doing this 
is to use the @uri attribute on a binding.sca element:


reference name=foo multiplicity=1..n
binding.sca uri=SomeComponent/SomeService/
binding.ws uri=http://something.com/another/service/
/reference


Hope this makes things a bit clearer.

Yours,  Mike.


Re: getting TooManyReferenceTargets when overriding binding uri of promoted reference

2011-08-04 Thread Mike Edwards

On 04/08/2011 14:27, Greg Dritschler wrote:

 From the assembly spec on component references:

900 binding : Binding (0..n) - A reference element has zero or more binding 
elements as children.  If no
901 binding elements are specified for the reference, then the bindings 
specified for the equivalent
902 reference in the componentType of the implementation MUST be used. If 
binding elements are
903 specified for the reference, then those bindings MUST be used and they 
override any bindings
904 specified for the equivalent reference in the componentType of the 
implementation. [ASM50012]

If this doesn't hold true, then there's no reason to be able to promote 
references, because there's
no possibility to reconfigure them.

I can't find a compliance test for this.


Greg,

Not sure what this applies to here.

However, [ASM50012] relates to test assertions TA 5017 and TA 5018 which in turn are implemented by 
testcases 5017 and 5018:


5017:
Tests that where a reference/ of a component/ has no binding/ child element, but the 
corresponding reference/ element in the componentType does have a binding child element, the 
binding/ from the componentType is used for the reference



5018:
Tests that where a reference/ of a component/ has a binding/ child element and the 
corresponding reference/ element in the componentType has a binding child element, the binding/ 
from the reference/ is used for the reference


If it's the promotion aspect you're concerned about, then there are other testcases that deal with 
that, eg 5023.



Yours,  Mike.




Re: Question regarding SCAClientFactory.getService() and promoted service

2011-08-01 Thread Mike Edwards

Folks,

Simple answer to Scott's questions:

On 26/07/2011 16:08, Scott Kurz wrote:

Trying to understand myself as the spec doesn't seem crystal clear...

I assume we'd agree also that the answer should be the same for this variation:

composite B with component C2

  service name=S1Promoted promote=C2
  binding.ws/!-- Binding now specified on composite service --
  /service
   component name=C2
   implementation.java class=.../
   service name=S1
   binding.ws/
   /service
   /component

In contrast, suppose we that composite A with component C1 did not
explicitly specify
binding.sca, e.g.:

 component name=C1
 implementation.composite name=B/
 service name=S1Promoted/
 /component

Should this bebinding.ws  then?


YES


Does it matter whether B's
composite-level service has the binding or not?


NO - if the component service has one or more bindings specified.
YES - if the component service has zero bindings specified.



Scott



To quote chapter  verse from the OASIS Assembly spec (line numbers for CD06):

770 ... If no
771 binding elements are specified for the service, then the bindings specified for the equivalent 
service in

772 the componentType of the implementation MUST be used, but if the 
componentType also has no
773 bindings specified, then binding.sca/ MUST be used as the binding. If 
binding elements are
774 specified for the service, then those bindings MUST be used and they 
override any bindings specified
775 for the equivalent service in the componentType of the implementation. 
[ASM50005]


Yours,  Mike.


Re: parsing parameters to the init method

2011-07-31 Thread Mike Edwards

On 30/07/2011 20:02, Eranda Sooriyabandara wrote:

Hi Raymond,

Can you model them as SCA properties? We support constructor based 
injection.

Is there a example code which explain how to use it? Or can you explain a bit 
how can to do it.

thanks
Eranda

Eranda,

The OASIS SCA Java CAA spec has an explanation of the lifecycle of a Java component implementation 
in Section 4:



http://docs.oasis-open.org/opencsa/sca-j/sca-javacaa-1.1-spec.pdf

Figure 4.1 is useful in understanding the sequence in which the implementation 
is created:

Constructing - Injecting - Initializing - Running

Note that a method annotated with @Init is called during the Initializing phase - and that this 
occurs AFTER construction and injection are complete.  What this means is that all Properties and 
all References will be present at the point the @Init method is called.


Properties and References can be injected either via the constructor or via separate Setter methods 
or public fields, appropriately annotated.


If you want Constructor injection, then create a constructor with one or more parameters and 
annotate each parameter with either @Reference or @Property, as appropriate. something like this:


@Service(Service1.class)
public class service1ConstrImpl implements Service1 {

@Constructor
public service1ConstrImpl(@Property(name=serviceName,required=true) 
String s) {
serviceName = s;
}

private String serviceName = service1;

...

} // end class

This example has a constructor - annotated with @Constructor - and a single parameter which is a 
String and which is annotated as a property (@Property) with the name serviceName.


A complex but comprehensive example of the use of all aspects of the lifecycle of a Java 
implementation is contained in the OASIS test suite for the Java CAA test suite here:


http://tools.oasis-open.org/version-control/browse/wsvn/sca-j/TestCases/JCA_General_POJO/src/main/java/org/oasisopen/sca/test/service1LifecycleExceptionsImpl.java

(WARNING! long  complex piece of code)

So, if you do model all your dependencies as either References or as Properties, the @Init method 
will have access to them all, ready to use.



Yours,  Mike.


Re: 2.0-beta3 distro review

2011-07-22 Thread Mike Edwards

On 19/07/2011 11:26, ant elder wrote:

Ok following the discussion last week about doing a beta3 release i've
created a release branch and built the distros from that which are
presently uploading to:

http://people.apache.org/~antelder/tuscany/2.0-Beta3-review/

I've done a little clean up and tried the getting-started samples
which mostly seem to work ok, and the rest of the release including
legal files etc looks ok to me. So the only thing left is the quality
of samples and documentation. I'm hoping that as with the previous
beta release having not completely perfect doc will be ok for this
release too. Anyway, please all if you have so time do some review and
any clean up that you see as necessary and in a couple of days i'll
spin an RC and call a vote to release.

...ant


Ant,

Unfortunately, I'll not be able to review this before I get back from vacation 
on Aug 1.


Yours,  Mike.


[jira] [Commented] (TUSCANY-3893) Policy appliesTo not correctly specified in policy compliance tests

2011-07-21 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3893:
---

The Policy test suite at OASIS has been fixed to ensure that all @appliesTo 
XPath values use sca: prefix for any and all SCA elements, as of 20 July 2011

 Policy appliesTo not correctly specified in policy compliance tests
 ---

 Key: TUSCANY-3893
 URL: https://issues.apache.org/jira/browse/TUSCANY-3893
 Project: Tuscany
  Issue Type: Bug
Affects Versions: Java-SCA-2.0-Beta2
Reporter: Simon Laws
 Fix For: Java-SCA-2.0


 In several of the policy compliance tests the appliesTo XPath expression 
 includes a note test describing an element without an explicit namespace. For 
 example, from POL_4020, 
policySet name=BothIntents provides=test:BindingIntent 
 test:ReferenceIntent appliesTo=//binding.sca 
 attachTo=//sca:reference[@name='reference1']/interface.wsdl
   !-- This policy intentionally left blank --
/policySet
 Note. appliesTo=//binding.sca rather than appliesTo=//sca:binding.sca
 The XPath spec expects the namespace to be specified and maps the elements 
 without a namespace shortname to the null namespace. (see 
 http://www.w3.org/TR/xpath/#node-tests). We need to get OASIS to fix the 
 tests. The only one that appears to fail because of this in Tuscany is 4020 
 but others have the same problem so we need to look at why they don't fail 
 also. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: [2.x] Problems and Proposed changes for the OASIS Java Client API - OASIS Issue raised, with Proposal

2011-07-18 Thread Mike Edwards

Folks,

An OASIS Java TC issue has been raised for these problems:

http://www.osoa.org/jira/browse/JAVA-243

along with the proposed updates, which can be seen in Section B.1.3 of this 
updated spec:


http://www.oasis-open.org/apps/org/workgroup/sca-j/download.php/42910/sca-javacaa-1.1-spec-wd052.pdf
http://www.oasis-open.org/apps/org/workgroup/sca-j/download.php/42909/sca-javacaa-1.1-spec-wd052.doc


Yours,  Mike.


Re: [2.x] Problems and Proposed changes for the OASIS Java Client API - OASIS Issue raised, with Proposal

2011-07-18 Thread Mike Edwards

Folks,

An OASIS Java TC issue has been raised for these problems:

http://www.osoa.org/jira/browse/JAVA-243

along with the proposed updates, which can be seen in Section B.1.3 of this 
updated spec:


http://www.oasis-open.org/apps/org/workgroup/sca-j/download.php/42910/sca-javacaa-1.1-spec-wd052.pdf
http://www.oasis-open.org/apps/org/workgroup/sca-j/download.php/42909/sca-javacaa-1.1-spec-wd052.doc


Yours,  Mike.


Re: Invocation/Application Context (again)

2011-07-15 Thread Mike Edwards


PS Next I think we should look at context information being passed from the 
application code to the
code involved in a reference invocation...


Folks,

OK, time to delve into this piece of function.

The basic capability of both ComponentContext and RequestContext is to supply information to an 
implementation when it is invoked.  This could include information passed from the Binding 
implementation to the application (as discussed in the previous email).


However, there is another piece of function which is nowhere described in the SCA specifications - 
and that is the need for the implementation to be able to convey information to the runtime - and 
specifically the Binding implementation - when invoking a reference.


This capability has been discussed on the Tuscany list in the past - notably by some users. 
Examples include providing Authentication context for the call - where the credentials may depend 
upon the Authentication of the caller of the service (either passed striaght through, or created on 
the fly by the application).


The question is - how can this be done?

One possibility is to use the RequestContext structure to carry the information - or rather the 
extended form of TuscanyRequestContext, where we can envisage making the setting of extended context 
values available to the application:


void setExtendedContextT( String contextName, T );

Obviously to be useful, there must be some set of well known contextName values which the 
application code and the binding code can use.


However, the principle is simple enough - the application sets up values in the 
TuscanyRequestContext ahead of the invocation of some reference - and the TuscanyRequestContext is 
available to the runtime code which implements the reference, including the Binding code.


One interesting question here is how to handle application threads which were not used to invoke a 
service - eg a thread from a pool created  managed by the application code.  At present, such a 
thread would have no context associated with it - to enable such threads to pass context to 
references, there is a need for an API to allow a TuscanyRequestContext to be created for such a 
thread.  However, this is perhaps reaching too far at the moment, given that we have not yet agreed 
the basic function.



Thoughts?

Yours,  Mike.



Re: Invocation/Application Context (again)

2011-07-15 Thread Mike Edwards

On 15/07/2011 12:08, Simon Laws wrote:


Commenting on the last two posts. Generally I prefer the strong typing
of context and the ability to have that type injected into an
implementation. I do though accept that there is no API alternative to
injection for anything other than RequestContext or derivatives. In
the derivative case the app writer would be still be expected to cast
to TuscanyRequestContext which isn't so elegant but will work.

Well, I suppose we could envisage an annotation like @TuscanyRequestContext that would signal 
injection of a TuscanyRequestContext which would then not need any cast - but of course my concern 
is that any such code would only work with Tuscany and would not work with any other SCA runtime, 
which is the flip side of the concern.


In terms of strong typing of context I would be concerned about a scheme in which each potential 
atom of context was separately injected - this would get out of hand very quickly I think.  I 
suppose one scheme is to treat context like a set of Properties to be injected, where the property 
names are simple strings (of the type I'm advocating for getContext()), with the implication that 
each field/setter would be annotated like  @TuscanyRequestContext( foo ) - and with the assumption 
that the type of the field/method had better match the implied type of that context property (which 
must be defined by the runtime, not by the application).


I agree that the best we get for the set of names for context atoms is simply documentation - what 
would be good is a catalog that aims to promote the maximum amount of commonality, especially 
between Bindings, where I hope that header fields, for example, could use the same names and types 
for a wide range of binding types.  This is really a matter of trying to get developers of binding 
implementations to use common context fields as far as possible.


Of course, once you head down the headers road, then there could be a desire to reflect any and all 
headers into the application - something I don't think is a great idea - if it matters that much to 
the application it should be part of the service signature in 99.99% of cases.



Yours,  Mike.


Re: Invocation/Application Context (again)

2011-07-15 Thread Mike Edwards

Raymond,

Can you explain why you prefer strobgly types context extensions?

Why is this JAX-RS mechanism a good thing?

Can you paint a picture of what this would look like:

a) for the application components
b) for the runtime/binding components


Yours,  Mike.

On 15/07/2011 17:35, Raymond Feng wrote:

I prefer to have strongly-typed context extensions. JAX-RS has the similar 
mechanism to allow custom
context to be injected via @Context. The context can be resolved via:

*http://jsr311.java.net/nonav/javadoc/javax/ws/rs/ext/ContextResolver.html*
*
*
*Thanks,*
*Raymond
*




Re: Rename binding-ws-runtime-axis2 to binding-ws-runtime

2011-07-14 Thread Mike Edwards

On 13/07/2011 22:48, ant elder wrote:

On Wed, Jul 13, 2011 at 1:27 PM, Mike Edwards
mike.edwards.inglen...@gmail.com  wrote:

On 12/07/2011 21:44, Raymond Feng wrote:


Don't we prefer to use a JAX-WS based implementation as the default
binding-ws-runtime?

Thanks,
Raymond
/


Folks,

No problem with the renaming - but as for preferring the JAX-WS impl, I
don't agree with that - the Axis binding implementation is the complete
one at the moment - and is very much the route for the various policy
options including security and reliable messaging.

Why would a JAX-WS implementation be a better way to go?



The main advantage of it is that its included in Java SE so there are
no other external dependencies which makes it very easy to use.

But I agree the Axis2 one is much more complete and seems a better
choice. There are quite a lot of issues with the JAXWS RI based one,
i'd be surprised if anyone is using it for more than simple helloworld
demo type things.

...ant


Ant,

I think you agreeing with me here.

The Java SE JAXWS implementation is a noddy one - it is a bare bones implementation ( I strongly 
urged Sun originally not to include it in the JDK for just this reason).


We can't use it very seriously unless we start writing our own handlers for the various SOAP headers 
that are implied when doing anything beyond the basics - e.g. any form of Security.



Yours,  Mike.



Re: Invocation/Application Context (again)

2011-07-14 Thread Mike Edwards

On 13/07/2011 16:37, Simon Laws wrote:

Yes, it's a shame we don't pass round a TuscanyContext rather than the
ExtensionPointRegistry when we configure extension factories. We could
look to do that but that's possibly a little orthogonal to how we pass
context along the invocation chain. Although having said that if the
providers did have access to a more complete context picture they
could of course prime a message with a reference to that context at
little extra cost. I was hinting at needing to add a context extension
point so maybe that is a simple way through this. I.e. define a
context base class and have context factories  and structures
registered against it, e.g.

Static context:

o.a.t.s.context.ContextFactory -
o.a.t.s.context.TuscanyContextFactory;context=o.a.t.s.context.TuscanyContext
  // for anything that doesn't change at runtime we could add the
context object to the registry also

Dynamic context:

o.a.t.s.context.ContextFactory -
o.a.t.s.context.RequestContextFactory;context=o.a.t.s.context.RequestContext
o.a.t.s.context.ContextFactory -
o.a.t.s.context.MyPolicyContextFactory;context=o.a.t.s.context.MyPolicyContext

For the @Context visitor we could then look at the type of the
injected context and compare against registered context types before
creating and injector (currently it only allows
Compoent/RequestContext)

For the Message we could then adjust the interface to be something like

MapString, Object  getHeaders();  // retains this to hold message
protocol headers. Any existing code that uses it remains the same
T  T getContext(ClassT  contextClass); // replaces getBindingContext()

Hence when you need a particular context you do something like:

MyPolicyContext context = message.getContext(MyPolicyContext.class);

That should allows us include context extensibly in support of passing
policy driven context to component implementations. If subsequently we
want to connect context into a hierarchy that's great.

Regards

Simon


Folks,

I'd like to break this down into simple steps which address specific issues and functions, rather 
than considering some grand scheme.  Small steps that each provide value.


The first thing I'd like to consider is the way in which Context is passed to the application code - 
and in particular where binding implementation / interceptor extensions can use the Context 
mechanism to pass (arbitrary) data to the application code - and vice-versa.


Currently, there are 2 pieces of Context available to an application:
- ComponentContext
- RequestContext

These can be retrieved either via injection controlled by @ComponentContext and @RequestContext, or 
via the API with explicit get..() calls.


Of these two, perhaps the most important is the RequestContext, although the principles can apply 
equally to ComponentContext.


My thinking is that when requested to supply RequestContext to the application, that Tuscany 
supplies not the formal OASIS-defined RequestContext, but a subclass - TuscanyRequestContext.


I think that the simplest approach to TuscanyRequestContext that is still general is to add a single 
map-style method to get additional context information, based on the use of a key that is a string:


Object getExtendedContext( String contextName );

...for code within Tuscany there would be an equivalent setter method:

void setExtendedContext( String contextName, Object );

If we prefer something more typesafe, we can use Generic versions of these 
methods:

T getExtendedContextT( String contextName ); (etc)

What I prefer about this approach is that it is still possible to write application code that is 
portable through the use of instanceof - avoiding the need for the application to have things like 
Tuscany annotations in the code.



Yours,  Mike.

PS Next I think we should look at context information being passed from the application code to the 
code involved in a reference invocation...




Re: Rename binding-ws-runtime-axis2 to binding-ws-runtime

2011-07-13 Thread Mike Edwards

On 12/07/2011 21:44, Raymond Feng wrote:

Don't we prefer to use a JAX-WS based implementation as the default 
binding-ws-runtime?

Thanks,
Raymond
/

Folks,

No problem with the renaming - but as for preferring the JAX-WS impl, I don't agree with that - the 
Axis binding implementation is the complete one at the moment - and is very much the route for the 
various policy options including security and reliable messaging.


Why would a JAX-WS implementation be a better way to go?


Yours,  Mike.



[2.x] Problems and Proposed changes for the OASIS Java Client API

2011-07-13 Thread Mike Edwards

Folks,

I understand that there are some problems with the standard OASIS Java Client API that are affecting 
Tuscany.


I'd be grateful if people who know about these problems could list the problems and the proposed 
fixes - there is a short window of opportunity to get the OASIS code updated, if the problems and 
the fixes can be fully described.



Yours,  Mike.


Re: How can we do a next 2.x release?

2011-07-13 Thread Mike Edwards

Folks,

I'd like to see us do a full 2.x release - not another Beta.

2.x has been around for a while and it's in pretty good shape.  A full release is called for in my 
opinion.  If some samples aren't of the right quality, then leave them out for now - they can be 
added back later once they are in acceptable shape.



Yours,  Mike.

On 13/07/2011 09:15, Simon Laws wrote:

On Wed, Jul 13, 2011 at 4:17 AM, Luciano Resendeluckbr1...@gmail.com  wrote:

On Tue, Jul 12, 2011 at 3:16 PM, ant elderantel...@apache.org  wrote:

On Tue, Jul 12, 2011 at 10:30 PM, Luciano Resendeluckbr1...@gmail.com  wrote:

On Tue, Jul 12, 2011 at 12:54 PM, ant elderant.el...@gmail.com  wrote:

I've been trying to help a user get going with one of the samples
using the latest code but its ended up needing a bunch of change to
the sample pom.xml's to get it to work with the latest snapshot code.
One of the issues is if you checkout a sample like
https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/samples/getting-started/helloworld/
and try to build it that doesn't work unless you've built trunk
locally.


So, wouldn't this be a similar issue if you get a released version of
the helloworld with a released version of tuscany compared to the most
recent snapshots ?


But thats just one of the reasons, its been ages since we did
a trunk release and there are lots of good changes in there. Last time
we talked about this I couldn't find three people who said they'd vote
for a release, If i just cut an RC of what the trunk builds now i
expect there are a lot of broken samples missing doc and and incorrect
readme's so whats the minimum we could do to fix that which would get
three +1s? If i just did a trunk source release + maven module release
but no binary distro would anyone vote for that? Or if i stripped out
all the samples or maybe except for one or two samples which really
worked and had good READMEs would you vote for that? Or what else
would it take?

  ...ant



What would be the version name for the release ? I think we should
do a regular milestone/beta release and I'd be ok if some samples
might be broken, but I wouldn't like to see source only distros, as
that would kind require the users to have to build anyway, unless they
are using maven which it's not really a requirement we have imposed
into users before.



Ok thats sounding more promising, i don't mind not doing a source only
release i just want _a_ release with the module jars in maven central,
i don't mind what its called 2.0-Beta3 or M6 or something else. So how
about if its called 2.0-Beta3 and based off the current trunk so the
samples and distro are as they are. I'll try and clean up some
helloworld samples but i wont have the time to make all of the samples
perfect.

   ...ant



What's the timeframe you are looking for ? I could look at some
samples and other minor cleanups over the weekend.

--
Luciano Resende
http://people.apache.org/~lresende
http://twitter.com/lresende1975
http://lresende.blogspot.com/



I can try and take a look through the samples over the next couple of
days and do some tidying.

Simon





Re: Compile error in trunk sca-java-2.x

2011-07-04 Thread Mike Edwards

Nirmal,

I did an Update followed by a full build this morning and I don't see this error - the build works 
fine for me, with only a couple of known test failures relating to some Policy function that is 
under development.



Yours,  Mike.

On 02/07/2011 08:35, Nirmal Fernando wrote:

Hi,

FYI: I tried building the trunk, it failed with following error.

[INFO] 
[INFO] Building Apache Tuscany SCA iTest Base
[INFO]task-segment: [compile]
[INFO] 
[INFO] [enforcer:enforce {execution: enforce-plugin-versions}]
[INFO] [remote-resources:process {execution: default}]
[INFO] 
[INFO] Building Apache Tuscany SCA iTest Base Dependencies
[INFO]task-segment: [compile]
[INFO] 
[INFO] [enforcer:enforce {execution: enforce-plugin-versions}]
[INFO] [remote-resources:process {execution: default}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/base/dependencies/src/main/resources
[INFO] Copying 0 resource
[INFO] Copying 3 resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [dependency:copy-dependencies {execution: copy}]
[INFO] Copying classes to
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/base/dependencies/target/dependency/classes
[INFO] 
[ERROR] BUILD ERROR
[INFO] 
[INFO] Error copying artifact from
/media/798D-18B1/GSoC-2011/Tuscany/trunk/modules/assembly/target/classes to
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/base/dependencies/target/dependency/classes

Embedded error: 
/media/798D-18B1/GSoC-2011/Tuscany/trunk/modules/assembly/target/classes (Is a
directory)
[INFO] 
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error copying artifact 
from
/media/798D-18B1/GSoC-2011/Tuscany/trunk/modules/assembly/target/classes to
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/base/dependencies/target/dependency/classes
 at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
 at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
 at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
 at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
 at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
 at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
 at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
 at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
 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.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: Error copying 
artifact from
/media/798D-18B1/GSoC-2011/Tuscany/trunk/modules/assembly/target/classes to
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/base/dependencies/target/dependency/classes
 at
org.apache.maven.plugin.dependency.AbstractDependencyMojo.copyFile(AbstractDependencyMojo.java:194)
 at
org.apache.maven.plugin.dependency.CopyDependenciesMojo.copyArtifact(CopyDependenciesMojo.java:186)
 at 
org.apache.maven.plugin.dependency.CopyDependenciesMojo.execute(CopyDependenciesMojo.java:85)
 at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
 at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
 ... 17 more
Caused by: java.io.FileNotFoundException:
/media/798D-18B1/GSoC-2011/Tuscany/trunk/modules/assembly/target/classes (Is a 

Re: Compile error in trunk sca-java-2.x

2011-07-04 Thread Mike Edwards

On 04/07/2011 14:31, Nirmal Fernando wrote:

Did I make a mistake by running mvn compile before mvn install?

I tried to run mvn install, it ran out of java heap memory. :(


Nirmal,

You need to adjust the Maven OPTS for the Java heap size, as described here:

http://tuscany.apache.org/tuscany-sca-java-faq.html#TuscanySCAJava-FAQ-BuildD

Simply put - set the MAVEN_OPTS environment variable to a value something like 
this:

MAVEN_OPTS=-Xms256m -Xmx1024m -XX:MaxPermSize=350m


Yours,  Mike.


Re: Compile error in trunk sca-java-2.x

2011-07-04 Thread Mike Edwards

Nirmal,

On my machine, that testcase works fine for me - I do not see the error that 
you see.

My local copy was updated ~3 hours ago and I am not missing any recent changes relating to that 
testcase.


I am running on Windows XP.


Yours,  Mike.

On 04/07/2011 16:00, Nirmal Fernando wrote:



mvn install on trunk fails with :

[INFO] 
[INFO] Building Apache Tuscany SCA iTest WS Contribution RPC Lit
[INFO]task-segment: [install]
[INFO] 
[INFO] [enforcer:enforce {execution: enforce-plugin-versions}]
[INFO] [build-helper:add-test-source {execution: add-source}]
[INFO] Test Source directory:
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/ws/contribution-rpc-lit/target/jaxws-source
added.
[INFO] [remote-resources:process {execution: default}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 7 resources
[INFO] Copying 1 resource
[INFO] Copying 3 resources
[INFO] [jaxws:wsimport {execution: wsimport1}]
[INFO] Processing:
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/ws/contribution-rpc-lit/target/classes/helloworld-external-service.wsdl
[INFO] jaxws:wsimport args: [-s,
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/ws/contribution-rpc-lit/target/jaxws-source,
-d, 
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/ws/contribution-rpc-lit/target/classes,
-verbose, -p, org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface, 
-target, 2.1,
-Xnocompile,
/media/798D-18B1/GSoC-2011/Tuscany/trunk/testing/itest/ws/contribution-rpc-lit/target/classes/helloworld-external-service.wsdl]
parsing WSDL...


[INFO] 
[ERROR] BUILD ERROR
[INFO] 
org.codehaus.classworlds.NoSuchRealmException: plexus.core
 at org.codehaus.classworlds.ClassWorld.getRealm(ClassWorld.java:128)
 at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:434)
 at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

--
Best Regards,
Nirmal

C.S.Nirmal J. Fernando
Department of Computer Science  Engineering,
Faculty of Engineering,
University of Moratuwa,
Sri Lanka.

Blog: http://nirmalfdo.blogspot.com/





Re: [VOTE] Release Tuscany Bundle Plugin 1.0.8 RC1

2011-06-27 Thread Mike Edwards

Ant,

The lack of documentation is the reason I will not vote in favour of this.

Having done releases without documentation before is no justification in my opinion. How is anyone 
supposed to learn how to use something if there is no documentation?


I'll be happy to help create documentation, but since I am not an expert in this plugin, I don't 
know what to write.



Yours, Mike.


On 27/06/2011 10:58, ant elder wrote:

No i couldn't because i don't think there is any, and i don't
particularly want to have to go write any, does anyone else want to
volunteer? We've done half a dozen releases of the plugin before and
haven't had to have doc so why should that block this release now
especially when we know if we don't do this release its going to end
up breaking the Tuscany build.

...ant

On Mon, Jun 27, 2011 at 10:44 AM, Florian Mogamoga@gmail.com  wrote:

Some documentation would definitely help me. Could you point me some
resources? Thanks.

On Mon, Jun 27, 2011 at 12:31 PM, ant elderant.el...@gmail.com  wrote:


Any votes? Tuscany will become unbuildable if we don't release this to
fix the naming issue in TUSCANY-3861. Is there anything we can do to
help get votes for releasing this?

   ...ant

On Tue, Jun 21, 2011 at 7:47 AM, ant elderant.el...@gmail.com  wrote:

Please vote on releasing the Tuscany Bundle Plugin module 1.0.8 (RC1).

The change over the 1.0.7 release is to rename the module from
maven-bundle-plugin to tuscany-bundle-plugin, see TUSCANY-3861.

The tag for the release is:

https://svn.apache.org/repos/asf/tuscany/maven-plugins/tags/tuscany-bundle-plugin-1.0.8

The Maven staging repository is:

http://people.apache.org/~antelder/tuscany/tuscany-bundle-plugin-1.0.8-RC1

+1 from me.

  ...ant










Re: where to put a (2.x) two-Contribution test of binding-sca-runtime?

2011-06-24 Thread Mike Edwards

Scott,

I think that it is best if you put the sources of the Contributions into some separate modules that 
are built separately to create Contribution ZIPs that are then used as dependencies by the tests.


This is effectively what we do in the OASIS testcases, where there are loads of Contribution ZIPs 
that are then used by the testcases thenmselves.


You must be able to see how the Contributions are built from sources - and be able to change the 
Contributions in the case where errors or updates need dealing with.


This may even be desirable from a test perspective in that sharing of contributions between 
different testcases may be possible, reducing the overall pile of materials - this too is done in 
the OASIS tests and makes a big impact on the number of artifacts required, especially in the 
Assembly testcases.



Yours,  Mike.

PS. Don't feel inhibited to beg steal or borrow any of the OASIS materials.  They can be freely 
reused and contain some entertaining artifacts at the level of both Composites and Implementations.


On 23/06/2011 16:54, Scott Kurz wrote:

Quick question:

I noticed a bug on the path used by binding-sca-runtime when doing a
cross-classloader (e.g. cross-Contribution) copy.

Not sure how important it is to people to keep the tests structured
relatively simply...

I'm thinking I'll add the test to the binding-sca-runtime module and
just check-in a couple contribution JARs as source, since that's
easier to me than trying to build/copy/package things in two JARs.
(I see some modules e.g. 'contribution' checking in JARs as source).

Kind of ugly not to have the Java as source though...

Does anyone have a better suggestion on where to add a test for this case?

Thanks,
Scott





[jira] [Commented] (TUSCANY-3877) Policy appliesTo processing doesn't match the approach we now have of aggregating policy on endpoints/endpointreferences

2011-06-17 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3877:
---

I think that the key material is in section 4.15:

1208 3. remove any policySet where the policySet does not apply to the target 
element.
1209 It is not an error for a policySet to be attached to an element to which 
it doesn’t apply.

So, no policySet gets used on a binding or on an implementation unless 
@appliesTo for that policySet includes that binding   or implementation.

So there is no push down in that sense.  Ancestor policySets are gathered for 
consideration for a given binding or implementation (there is push down in that 
sense) but if they dont apply to the element under consideration, they are 
ignored.

As it says here:

391 Rather, policySets always apply to either binding instances or 
implementation elements regardless of
392 where they are attached.

PolicySets are applied either to bindings or to implementations - they have no 
use anywhere else - so a policySet saying @appliesTo=//service (say) is going 
to get left on the floor.

 Policy appliesTo processing doesn't match the approach we now have of 
 aggregating policy on endpoints/endpointreferences
 

 Key: TUSCANY-3877
 URL: https://issues.apache.org/jira/browse/TUSCANY-3877
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Policy
Affects Versions: Java-SCA-2.0-M5
Reporter: Simon Laws
Assignee: Simon Laws
 Fix For: Java-SCA-2.0


 There are two issues with the current appliesTo processing in 
 PolicyAppliesToBuilderImpl 
 1/ For each element that holds a policy set it calculates the appliesTo nodes 
 and checks that the current element is in the set. If not the policySet is 
 removed from the element. The problem here is that it's checking the 
 reference, service and binding nodes when it should be checking the endpoint 
 and endpointreference nodes which hold the aggregated set of policy sets at 
 this point
 2/ The spec says.
 The
 400 policySet will apply to any child binding or implementation elements 
 returned from the expression. So, for
 401 example, appliesTo=//binding.ws will match any web service binding. If
 402 appliesTo=//binding.ws[@impl='axis'] then the policySet would apply 
 only to web service bindings that
 403 have an @impl attribute with a value of 'axis'.
 Is not clear here if a policy set can appliesTo a service, reference or 
 component element, rather than a binding or implementation element, in the 
 expectation that it will be pushed down to the children. I can understand 
 this being the case for attachTo but I don't understand why that would be 
 needed for appliesTo. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: [VOTE] Release Tuscany Zip Plugin Alpha3 RC2

2011-06-17 Thread Mike Edwards

Ant,

Why is this famed README not in either of the jar files:

tuscany-zip-plugin-alpha3.jar
tuscany-zip-plugin-alpha3-sources.jar


Yours,  Mike.


On 17/06/2011 11:32, ant elder wrote:

The most comprehensive doc is in the README file, IIRC thats mostly
written by your good self Mike.

...ant







Re: Tuscany Meetup in London

2011-03-04 Thread Mike Edwards

On 04/03/2011 13:46, Simon Nash wrote:

Who is planning to attend this meeting?

Simon


Folks,

Sorry, but a couple of customer related meetings mean that I shall not be able to make the London 
meetup.



Yours,  Mike.



Re: 2.0 Beta2 samples (was: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2)

2011-02-28 Thread Mike Edwards

On 28/02/2011 09:58, ant elder wrote:
snip


It might be worth looking at what the binary distribution is actually
for though, perhaps not in this thread so it doesn't bog down the
sample discussion. The binary distribution isn't used by any of the
Maven builds of the samples or running them.

...ant


Folks,

For me that IS one of the problems - ie having to use Maven to run a sample.

In my opinion, the binary distribution should be available for those folks who want to use Tuscany - 
and the samples should show them a way to do this without requiring them to use Maven, which is a 
build tool that not everyone is used to using.



Yours,  Mike.


Re: 2.0 Beta2 samples (was: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2)

2011-02-28 Thread Mike Edwards

On 24/02/2011 14:28, Florian Moga wrote:

I was thinking that if we use blogging as the primary way of describing 
samples, it's not even
necessary to include a README in each and every sample, people can just search 
the blog knowing that
information will be there (I'm trying to keep things as simple and interactive 
as possible -- to be
honest, in most of the cases, I for one, am not checking the README files not 
even when I was first
starting to look at Tuscany. They are hard to maintain and get out-dated quite 
easily).

One other advantage of blogging would be that comments containing questions and 
issues to which
we'll respond will remain visible for everybody who's checking them out. When a 
user asks for
clarification about a sample, I'm pretty sure we currently don't update the 
README to cover that.
I'm just saying that it might help us be more open to our users, their needs, 
receive feedback from
them and simplify maintainability (a blog post can always be edited or deleted 
and rewritten if
major changes are done).

IMO, this will improve the promotion of Tuscany especially with 2.0 approaching 
and help keep a
better contact with users. Imagine that you're doing a nifty improvement on a 
module and update the
sample. Nobody is checking the READMEs, a blog post is out there notifying 
people.

I agree the distribution should have some kind of documentation on samples, I'm 
thinking that there
should be a way of exporting the blog posts to a pdf format with a nice 
template which we can place
in the samples/ directory right before doing a release (this way we don't end 
up with out dated
information).

There are a number of open source projects which have dedicated websites for 
samples, most of which
I've seen are web frameworks (e.g Apache Wicket). It's not our case but I think 
we can do something
similar and gain the benefits.


Florian,

I'm not against blogging, but there must be a description of how to run each sample contained in the 
distribution along with each sample.  There is nothing worse for a newbie than getting a 
distribution with samples only to find that there is nothing telling them how to run the samples to 
see what it takes to run an application with that runtime.


In my opinion, there should be readme material in the samples directories - that material can point 
to blogs, but it should be possible to use the samples without ever seeing the blogs.



Yours,  Mike.


Re: 2.0 binary distribution - was: Re: 2.0 Beta2 samples (was: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2)

2011-02-28 Thread Mike Edwards

Folks,

Comments inline...

On 28/02/2011 11:40, Simon Laws wrote:


I was initially assuming that we would retain a way for users to
(re-)compile sample contributions from the source provided in the
binary distribution. The complicating factor in these conversations
seems to be Maven as it leads to a situation where you download the
binary distribution, compile the samples with maven and it downloads
all the jars again. Maybe we shouldn't look to Maven for sample
support. Maybe we should only allow people to recompile samples from
the source distribution but this feels inconvenient as samples without
source seems to be missing the point.
+1 - people should not have to build from the source to use Tuscany - neither should they be forced 
to use Maven.




We could go the other way and do away with the jars we ship with the
binary distro and rely more heavily on Maven. I don't really  support
this approach. Shipping a self contained binary distribution at least
gives us some confidence that it will work in six months time. I don't
have this level of confidence when using Maven. I recognize that there
has been discussion of shipping the jars formatted as a local repo to
address this.

-1 for removing the binary distro and forcing the use of Maven.



But you ask a good question. What is the binary distribution for?
Three thoughts that immediately come to mind:

1 - A quick start for new users for running samples without the need
to compile anything

+1


2 - A vehicle for shipping all the dependencies require by users or
embedders of the Tuscany runtime without the need to use Maven to
extract them.

+1


3 - An environment were we can reasonably expect other run/build-time
environments such as OSGi and Ant to function correctly.

+1



I'm thinking that If we could make our distribution/sample/osgi story
more accurately/consistently reflect the base + extension story  I
think the binary proposition, and hence the samples, would be clearer.

Regards

Simon





Re: Spring beans xml sca namespace

2011-02-24 Thread Mike Edwards

On 23/02/2011 13:13, ant elder wrote:

The current Tuscanyimplementation.spring  code is still using the
old OSOA namespace for the sca extensions to the Spring context files.
As FYI I plan to update that shortly in trunk, which does mean any
existing sca spring applications would need updating if they're using
the SCA extensions.

...ant


+1 - this does need doing.

I assume that this is a 2.x statement and that 1.x will remain unchanged?

Do you need help with the 2.x changes?

Yours,  Mike.


Re: [VOTE] Release Tuscany SCA 2.0 Beta2 RC3

2011-02-22 Thread Mike Edwards

On 14/02/2011 09:11, ant elder wrote:

On Sun, Feb 13, 2011 at 7:43 AM, Florian Mogamoga@gmail.com  wrote:

Please review and vote on RC3 of the Java SCA 2.0 Beta2 release.

The artifacts are at:

http://people.apache.org/~fmoga/tuscany/2.0-beta2-RC3/

The release tag is at:

https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/tags/2.0-Beta2-RC3/
Florian


This looks good to me so +1.

A couple of issues:

- I couldn't find your signing key in a public key server, have you
uploaded it anywhere?

- there are some testing artifacts in the staging repo we don't really
need and which could be deleted - the ones from
distribution\tomcat\testing, you could just delete them from the
staging repo now. We should move those to be under testing/itest
really.

Otherwise all looks fine.

...ant


Folks,

My belated +1 - I only got around to trying it out over the weekend.

Thanks for the improvements in the basic samples.  At least now there is a set of simple 
instructions that work for the novice to get the hello world type applications running.



Yours,  Mike.


Status of binding-atom-js-dojo, binding-jsonrpc-js-dojo, binding-rest-js-dojo

2011-02-17 Thread Mike Edwards

Folks,

What is the status of these 3 modules in 2.x please?

It looks like their contents have been merged into other modules - shouldn't 
these modules be deleted?


Yours,  Mike.


Re: Tuscany Meetup in London

2011-02-14 Thread Mike Edwards

On 14/02/2011 10:29, ant elder wrote:


Ok it sounds like this is going to happen on the 7th, where shall we
do it? If there are no other suggestions I could try to see if there
are any rooms available at IBM Southbank.

...ant


Ant,

You may well find Southbank difficult at the moment as they are refurbishing all the public meeting 
rooms - I tried to arrange a meeting there for 21 Feb and could not get anything.



Yours,  Mike.


Re: 2.x - moving SCABindingMapper

2011-02-10 Thread Mike Edwards

On 10/02/2011 12:15, Simon Laws wrote:

I'd like to move the SCABindingMapper  interface from

binding-sca-runtime / org.apache.tuscany.sca.binding.sca.provider

to somewhere like.

core-spi / org.apache.tuscany.sca.provider

So that people wanting to implement a default binding mapper don't
have to have a dependency on a runtime module.

Anyone see any issues?

Simon


Simon,

+1 from me

There are a few more of this ilk that it would be nice to get around to as well.


Yours,  Mike.


Re: Issues building Apache Tuscany SCA iTest Distribution Launcher Embedded JSE module

2011-02-09 Thread Mike Edwards

On 07/02/2011 10:56, Florian Moga wrote:

On Mon, Feb 7, 2011 at 12:43 PM, Simon Laws simonsl...@googlemail.com
mailto:simonsl...@googlemail.com wrote:

So when you do a full build the build always hangs?

Yes.

Is that test still in the build as I don't experience that.

Yes.

What environment are you on?

Ubuntu 10.10, Sun JVM 6u22, Maven 2.2.1, Ant 1.7.1
Same happens with OpenJDK


Simon


--
Apache Tuscany committer: tuscany.apache.org http://tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com 
http://tuscanyinaction.com



Florian,

My experience with this testcase is that it fails with a hang on an intermittent basis, relatively 
infrequently.


I am running on Windows XP with Sun JDK 1.6.0_22.

I looked into reports of hangs relating to the RMI code and there are reports of such hangs if the 
RMI Registry is not released correctly when stopping it.  RMI uses a pile of threads and can have 
connections open between Client and Server side that need to be properly closed.


A thread dump when the hang occurs does show an RMI thread waiting on some kind of lock, but I am 
not able to make much sense of what is going on.


I suspect that the place to start looking is in the RMIHost code - and in the stop() method of 
DefaultRMIHost...



Yours,  Mike.


Re: [DISCUSS] SCA AllowsPassByReference spec clarification

2011-02-09 Thread Mike Edwards

On 09/02/2011 10:56, Simon Nash wrote:

On interesting idea (taking up the theme of @RequiresPassByValue) would
to require @AllowsPassByReference to always be present (specifying true
or false) on every service method and every reference. That would
force developers to think about the issue and explicitly state their
intentions. It would make Hello World rather ugly, though :-(

Simon



Yuk !!

Yours,  Mike.


Re: [DISCUSS] SCA AllowsPassByReference spec clarification

2011-02-08 Thread Mike Edwards

On 08/02/2011 10:08, ant elder wrote:

On Tue, Feb 8, 2011 at 9:56 AM, Simon Lawssimonsl...@googlemail.com  wrote:


I can see that relaxing the current spec restrictiveness would be
difficult as things would break in some circumstances, but it does
seem like there will be situations when the assembler really knows it
would be fine but even so they can't get the PBR optimization because
the impls aren't coded with the @AllowsPassByReference annotation.
Isn't that a similar situation to where the remotable annotation was
added to the interface SCDL element, and there could be a similar
allowsPassByReference attribute added to the service and reference
SCDL elements?

   ...ant



Hi Ant.

Can you say a bit more about the situations when the assembler really
knows it would be fine? Reading previous posts to this thread doesn't
convince me that that is the case.

Simon



We'll have to wait for Raymond to see if thats anything like his
situation, but there are lots of ways the assembler could know, he may
well have full access to the source but still be limited in making any
updates due to production lifecycle or control issues. This seems like
a similar situation as Java EE appservers have and I believe many
appservers have mechanisims for overriding and enabling PBR support in
their ORB or EJB modules to gain performance benefits.

...ant


Folks,

One possibility to start with would be to add a Tuscany extension attribute which could be used by 
an Assembler to mark a particular service and/or reference as AllowsPassByReference.


This would cope with the situation where the Java components are not marked, but the assembler knows 
enough about them to know that the marking is correct.



Yours,  Mike.


Re: [DISCUSS] SCA AllowsPassByReference spec clarification

2011-02-08 Thread Mike Edwards

On 08/02/2011 11:17, Simon Nash wrote:

I'm very dubious about the wisdom of this. I bear the scars from a
previous life of a situation where a flag was added to an enterprise
application server (which shall remain nameless) to override the PBV
semantics required by the architecture in the interests of performance
optimization when the user of the product knew that using PBR would
be safe. Needless to say, on a number of occasions this flag was set
incorrectly and this resulted in accusations of runtime bugs that were
eventually shown after laborious debugging to have been caused by the
PBR optimization being enabled incorrectly.

IMO it's the implementation's responsibility to make the correct
assertions about whether it's PBR-safe. Implementations that don't
assert @AllowsPassByReference will have worse performance than those
that do support it. If a component developer cares about performance,
they need to code their implementation to play by the APBR rules and
turn on the flag to say they have done that. If the flag isn't turned
on by the implementer, I can't imagine that an assembler will have a
detailed enough knowledge of the implementation to be able to safely
provide the APBR assertion that the component developer couldn't/
wouldn't/didn't provide.

(Deep breath) Now I feel better after getting that off my chest :-)

Simon


Simon,

I sympathise with your viewpoint.

It is far better if the Java code itself asserts its cleanliness.

My suggestion was not made with any conviction.


Yours,  Mike.



Re: [DISCUSS] SCA AllowsPassByReference spec clarification

2011-02-08 Thread Mike Edwards

On 08/02/2011 14:12, Simon Nash wrote:

Actually in its first incarnation the force PBR override setting was a
global flag that applied to the whole runtime, was set on by default,
and was poorly documented. (Hard to believe, I know.) After some
lobbying from myself the default was changed to off and the documentation
was improved, but people still saw it as a go faster flag and turned it
on when they shouldn't have done. Eventually it was made more granular
instead of a global thing and that helped some more. But the lessons
I learned were that 1) users experiencing performance problems will reach
for any magic go-faster switch and ignore all health warnings, and 2)
when it doesn't work they'll report it as a runtime bug.

Simon


Folks,

I think the nasty feature here is that IF the Java code on either side does the wrong thing and is 
not clean wrt PBR, the bugs that result may be intermittent and somewhat hard to diagnose, since 
they may well involve race conditions.



Yours,  Mike.


Re: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2

2011-02-07 Thread Mike Edwards

On 05/02/2011 09:51, Florian MOGA wrote:

Thank you for the information Ant. I was wondering more about the checks each 
developer is doing
before voting a +1. I'd like to choose a set of checks to perform myself when a 
vote is called but I
can't think of tests other than the ones that I stated earlier...


Florian,

My approach is first to examine the binary release - install it and try to run things - in 
particular the samples.  Samples not working out of the box always concerns me since this will 
usually form the experience of someone new to Tuscany and if it does not work cleanly and as 
advertised that is a poor shop front for the project.  There are also cleanliness things like the 
legal stuff to check over (eg licenses).


After probing the binary release, I move on to the source release and try building that from scratch 
with an empty repo.  Given my OASIS background, I am also hot on ensuring that the build passes the 
conformance tests...




Yours,  Mike.


Re: 2.0 Beta2 samples (was: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2)

2011-02-07 Thread Mike Edwards

On 07/02/2011 12:05, ant elder wrote:

On Mon, Feb 7, 2011 at 8:51 AM, Simon Nashn...@apache.org  wrote:

snip

I think we're in violent agreement here!  Let's pick a small and
useful set of high-quality samples to include in the release, then
make sure (by automated tests as far as possible) that these samples
continue to work in future releases.  All other samples would go
somewhere else in svn (unreleased/samples?) which would be much more
of a mixed bag.  Newly created samples would be added to the mixed bag.

In future major releases, we could (if we want to) take carefully
chosen samples out of the mixed bag and promote them to be added
to the release.  The reverse is also possible, where we could retire
a released sample that no longer seems to be serving much of a useful
purpose, by moving it from the released samples to the mixed bag.

  Simon




I see, ok well i guess i'd be willing to give that a try. We've not
been very good at finding consensus in the past which is one of the
reasons we've ended up with this anyone can do anything approach so
i can see there may be problems, but it will be an interesting
experiment.

...ant


Folks,

Let me make a proposal that we can implement right now for Beta2.

Remove all samples from the build EXCEPT for the following, which we make work out 
of the box:

getting-started\helloworld-contribution
getting-started\helloworld-webapp

I think that for the moment, we can put in an HTML file which then points at all the other samples, 
but back in the repo, with a brief explanation as to what they do and what they show.


Over time, we can add back more samples into the build, but only once they are 
brought up to scratch.

Something we need to concentrate on is to make sure that any documentation is correct and especially 
any suggested ways of running the samples actually work - at the moment, the READMEs for the 
helloworld samples simply don't work if you follow the instructions in the READMEs.


I think that this minimal approach allows us to make quick progress while improving the experience 
for end users.



Yours,  Mike.



Re: Tuscany Meetup in London

2011-02-07 Thread Mike Edwards

On 04/02/2011 15:47, ant elder wrote:

On Fri, Feb 4, 2011 at 12:46 PM, Florian MOGAmoga@gmail.com  wrote:

Hi,
I'm planning to volunteer at QCon London next month in order to be able to
attend the sessions and tutorials. The conference and tutorials take place
between 7-11 March. It would be great if we can have a Tuscany meetup (pub
meeting or hacking session) in one of the two adjacent weekends (maybe 6th
of March?). Looking forward to your feedback.
Florian


I'm in London and free around then so would be happy to meet up. Would
be good if any of the other committers who are not so far from here
could come along (Simon/Simon/Mike?), something like a hacking session
to clean things up for the 2.0 release would be good.

...ant


Folks,

A meetup would be great - but I'd prefer a weekday to a weekend - I will get some heat from the boss 
if I try to use up another precious weekend day for doing programming stuff.


Any chance that we could meet on one of those days - 7th - 11th ?

Any idea on a good venue?  Ideally, we'd want somewhere not too noisy and with good conectivity. 
IBM South Bank occurred to me, but I know that they are rebuilding the public meeting rooms there 
which makes find a slot hard at the moment...



Yours,  Mike.


Re: [DISCUSS] Tuscany website on CMS?

2011-02-07 Thread Mike Edwards

On 07/02/2011 15:09, Simon Laws wrote:

An idle question somewhat motivated by recently touching on the sample
docs in another ML thread.

Are we going to convert from Confluence to CMS [1]?

If we are eventually going to have to do this (when the autoexport
stops working?) we should probably plan for it rather than do it in a
rush when we are forced to. I haven't looked very closely at the
details. Anybody given it any thought yet? I note there are notes on
migration [2]

[1] http://www.staging.apache.org/dev/cms.html
[2] 
https://svn.apache.org/repos/infra/websites/cms/conversion-utilities/cwiki/README.txt

Simon


Simon,

Good to bring this up.

However, looking at the material, my heart sinks  :-(

For me, the key thing has to be the ease of creating and maintaining the material. Using some markup 
language is ok, but what tools are us poor content creators supposed to use?  In see this in the 
Apache material at [1]:


Editing the source in the CMS's webgui relies on the wmd-editor to provide a WYSIWYM look and feel 
to the CMS.


...only to find that the link they provide to wmd-editor is broken.  A very 
poor start.

I checked out some alternative editors and I'm not impressed so far.

Things I would like to see are:

a) How hyperlinks are created and how they are maintained
b) How images/diagrams can be embedded in pages
c) How basic page layout is managed - in particular the handling of Menus, 
banners and so on

It is notable how little graphics is contained in the Apache pages for [1] and [2] - are we 
returning to the stone age here?


I get the feeling that this system has been produced for the ease of the publishing process, rather 
than the creation and maintenance of attractive material.


Please someone prove me wrong.


Yours,  Mike.


[jira] Closed: (TUSCANY-3817) Tuscany fails OASIS Java CAA Testcases 10029 10030

2011-02-03 Thread Mike Edwards (JIRA)

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

Mike Edwards closed TUSCANY-3817.
-


 Tuscany fails OASIS Java CAA Testcases 10029  10030 
 -

 Key: TUSCANY-3817
 URL: https://issues.apache.org/jira/browse/TUSCANY-3817
 Project: Tuscany
  Issue Type: Bug
  Components: OASIS Compliance - TUSCANY
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


 Tuscany fails OASIS Java CAA testcases 10029  10030, which concern detection 
 of @Remotable annotations in invalid locations within a Java interface.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Closed: (TUSCANY-3816) iTest Callback SeparateThread violates the OASIS rules for COMPOSITE scope components with Callbacks

2011-02-03 Thread Mike Edwards (JIRA)

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

Mike Edwards closed TUSCANY-3816.
-


 iTest Callback SeparateThread violates the OASIS rules for COMPOSITE scope 
 components with Callbacks
 

 Key: TUSCANY-3816
 URL: https://issues.apache.org/jira/browse/TUSCANY-3816
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Integration Tests
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


 The iTest Callback SeparateThread has a component implementation 
 EventProcessorServiceImpl.java which is @Scope(COMPOSITE) and which has a 
 field annotated with @Callback.
 This violates one of the conformance requirements of the OASIS Java CAA 
 specification, which does not permit the use of the @Callback annotation for 
 COMPOSITE scope components.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Created: (TUSCANY-3831) Tuscany fails OASIS compliance test BWS_2016

2011-02-03 Thread Mike Edwards (JIRA)
Tuscany fails OASIS compliance test BWS_2016


 Key: TUSCANY-3831
 URL: https://issues.apache.org/jira/browse/TUSCANY-3831
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension
Affects Versions: Java-SCA-2.x
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


Tuscany fails testcase BWS_2016.

Basically, this test has a binding.ws element with a non-existent WSDL file 
referenced via a wsdli attribute.  The test is expecting a failure with an 
exception that spots that the WSDL file does not exist.  Instead, the code 
fails with a NullPointerException - clearly not correct.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (TUSCANY-3831) Tuscany fails OASIS compliance test BWS_2016

2011-02-03 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3831:
---

The problem arises from the WSDLModelResolver in interface-wsdl.

The method loadDefinition(...) has code that deals with the case where the WSDL 
is referenced via a wsdli attribute - and in this case computes a URL for the 
artifact from the wsdli value.

However, at a point further down the method, the code attempts to access the 
WSDL file, not using the computed URL, but using a location value from the WSDL 
definition structure - which only has a value IF the WSDL has been loaded from 
a file contained within a contribution - which is NOT the case in this test 
(the test is deliberately using a URL which does not point to a file anywhere 
in any contribution...)

MapString, String wsdlImports = indexRead(wsdlDef.getLocation().toURL());

getLocation() returns NULL and this is the source of the NPE

The code should instead use the computed URL - which is derived from the wsdli 
value, if specified, or from the getLocation() value if there is no wsdli value 
(and note: if both wsdli  getLocation() are NULL, the code deal with the 
situation):


MapString, String wsdlImports = indexRead(artifactURL);


This version of the code committed in:

1066801

 Tuscany fails OASIS compliance test BWS_2016
 

 Key: TUSCANY-3831
 URL: https://issues.apache.org/jira/browse/TUSCANY-3831
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Axis Binding Extension
Affects Versions: Java-SCA-2.x
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


 Tuscany fails testcase BWS_2016.
 Basically, this test has a binding.ws element with a non-existent WSDL file 
 referenced via a wsdli attribute.  The test is expecting a failure with an 
 exception that spots that the WSDL file does not exist.  Instead, the code 
 fails with a NullPointerException - clearly not correct.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2

2011-02-03 Thread Mike Edwards

On 02/02/2011 18:30, ant elder wrote:

On Wed, Feb 2, 2011 at 9:43 AM, Mike Edwards
mike.edwards.inglen...@gmail.com  wrote:

On 02/02/2011 09:04, ant elder wrote:


I'll guess that Raymond will want to get the pass-by-reference
improvements into this release so what ever happens we'll need to
respin to pick those up,  what else needs to get done for that respin?
Do we need to make further sample improvements right now or can that
be done over later releases?

Florian - have you found why that itest is using the wrong directory
in your environment?

Mike - I'm hoping the dom4j issue will go away if it uses the version
in the central repo, but what about the sample running issues you
first mentioned, do they sound like the same as this issue thats just
come up with the beta1 samples -
http://apache.markmail.org/message/jzu3c2ixbcqwbie7

...ant


Ant,

1) dom4j issue

This is a real issue and there is a fix.

The dom4j POM is coming from the intalio repo and this is FORCED by a
repository  setting in the POM of implementation-bpel-runtime - if you
start with a clean repo you WILL get the bad dom4j POM:

repositories
repository
idintalio.org/id
urlhttp://www.intalio.org/public/maven2/url
   releases
   enabledtrue/enabled
   /releases
   snapshots
   enabledfalse/enabled
   /snapshots
/repository
/repositories

The fix is simply to remove thisrepository  setting from the POM of
implementation-bpel-runtime.



The problem with that is that the reason that repository was there was
to get the saxon artifacts so with out it those now aren't found. I'll
go have a hunt around and see if there is anywhere else we could use
for saxon, otherwise i guess we can add it to the tuscany svn repo.

...ant


Ant,

OK, works for me.

There is ANOTHER problem with dependencies associated with OSGi that needs fixing too - it is in the 
dependencies for node-launcher-equinox.  The impact means that the build does not work correctly 
under OSGi and that some tests fail.


I've done a fix and committed it now.

Related, there is a fix in the interface-wsdl module to ensure that Tuscany passes testcase BWS_2016 
from OASIS (it was trying to fix THAT testcase that revealed the OSGi problems...).



Yours, Mike.


[jira] Closed: (TUSCANY-3829) Test Failure whe building trunk - iTest WS Launcher Axis2 testscases all fail

2011-02-02 Thread Mike Edwards (JIRA)

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

Mike Edwards closed TUSCANY-3829.
-


 Test Failure whe building trunk - iTest WS Launcher Axis2 testscases all fail
 -

 Key: TUSCANY-3829
 URL: https://issues.apache.org/jira/browse/TUSCANY-3829
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Integration Tests
Affects Versions: Java-SCA-2.x
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


 Running the iTests when building trunk results in all the tests in iTest WS 
 Launcher failing.
 All test fail with a method not found fault for
 javax.xml.ws.Webfault.messageName( String ) 
 It is notable that this is a jaxws API class and it is being called from an 
 internal com.sun implementation class.  This smacks strongly of a code level 
 mismatch.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2

2011-02-01 Thread Mike Edwards

On 30/01/2011 10:08, ant elder wrote:

Please review and vote on RC2 of the Java SCA 2.0 Beta2 release.

The artifacts are at:

http://people.apache.org/~antelder/tuscany/2.0-beta2-RC2/

The release tag is at:

http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/tags/2.0-Beta2-RC2

Here's my +1

   ...ant


Folks,

At the moment, in this release, the basic samples don't work with the binary 
distribution.

If you follow the instructions in the README, neither Ant nor Maven ways of running the samples such 
as getting-started\helloworld-contribution actually work.


Currently, Maven fails because the layout of the POM files in the distribution does not match the 
expected layout in the POMs themselves.  Meanwhile the Ant build.xml file is completely missing.


I think that we need to fix things so that the samples work out of the box with 
the binary distribution.


Yours,  Mike.


Re: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2

2011-02-01 Thread Mike Edwards

On 30/01/2011 10:08, ant elder wrote:

Please review and vote on RC2 of the Java SCA 2.0 Beta2 release.

The artifacts are at:

http://people.apache.org/~antelder/tuscany/2.0-beta2-RC2/

The release tag is at:

http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/tags/2.0-Beta2-RC2

Here's my +1

   ...ant


I get a build test failure when I do a clean build of the source distribution.

The failure is with the Legal Checks iTest

The surefire output:

/error
system-errJars in distribution but not in LICENSE: [jaxme-api-0.3.jar]


I checked the dependency tree for jaxme and it derives from implementation-bpel:

[INFO] |  +- 
org.apache.tuscany.sca:tuscany-implementation-bpel-runtime:jar:2.0-Beta2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-epr:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-store:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-dao:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-dao-jpa:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-dao-jpa-ojpa-derby:zip:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-runtime:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-api:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-scheduler-simple:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-utils:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-compiler:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-schemas:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-obj:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-jacob:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-jacob-ap:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-agents:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-dao-hibernate:jar:1.3.2:compile
[INFO] |  |  +- org.eclipse.equinox:common:jar:3.5.0-v20090520-1800:compile
[INFO] |  |  +- commons-lang:commons-lang:jar:2.3:compile
[INFO] |  |  +- commons-collections:commons-collections:jar:3.2:compile
[INFO] |  |  +- org.apache.geronimo.modules:geronimo-kernel:jar:2.0.1:compile
[INFO] |  |  +- 
org.apache.geronimo.components:geronimo-transaction:jar:2.1.4:compile
[INFO] |  |  |  +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] |  |  |  \- org.objectweb.howl:howl:jar:1.0.1-1:compile
[INFO] |  |  +- 
org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] |  |  +- 
org.apache.geronimo.specs:geronimo-jpa_3.0_spec:jar:1.1.1:compile
[INFO] |  |  +- 
org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:2.0.0:compile
[INFO] |  |  +- 
org.apache.geronimo.components:geronimo-connector:jar:2.1.4:compile
[INFO] |  |  +- org.apache.derby:derby:jar:10.4.1.3:compile
[INFO] |  |  +- tranql:tranql-connector:jar:1.1:compile
[INFO] |  |  |  \- regexp:regexp:jar:1.3:compile
[INFO] |  |  +- org.apache.openjpa:openjpa:jar:1.2.1:compile
[INFO] |  |  |  \- commons-pool:commons-pool:jar:1.3:compile
[INFO] |  |  +- net.sourceforge.serp:serp:jar:1.13.1:compile
[INFO] |  |  +- jaxen:jaxen:jar:1.1.1:compile
[INFO] |  |  |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  |  |  \- jaxme:jaxme-api:jar:0.3:compile
[INFO] |  |  |  \- jdom:jdom:jar:1.0:compile


Why this should pop up now I have no idea - presumably some 3rd party 
dependecncy has changed.


Yours,  Mike.


Re: Conversational state in 2.x

2011-02-01 Thread Mike Edwards

On 01/02/2011 13:12, Florian MOGA wrote:

Hi,

I'm currently working on multiple response support for the comet binding. I 
have an initial
implementation but I'm using the thread context to store some internal state 
between forward and
callback calls and this leads to some limitations. So I was thinking that 
something similar to
@Conversational from Tuscany 1.x would improve scalabilty as storing state does 
not depend on the
thread context anymore.

To be more precise, for each client an object is created server-side and it has 
to be accessible
from the Invoker when performing a callback call. At the moment, I'm passing 
this object through the
bindingContext property of the Message. When performing the callback call, the 
callback message is
built by copying most of the properties of the ThreadContext Message so I added 
a slight
modification to the core which copies the bindingContext as well. If it's 
possible, I'd like to be
more thread context independent and conversational scope seems to provide this 
thread-neutral
client-specific storage space. It would also enable me to make async invocation 
of the service
implementation.

Could you point me out a way to achieve something similar to @Conversational in 
Tuscany 2.x? From
Tuscany In Action I found out that conversations aren’t included in the SCA 
1.1 specifications
being defined by OASIS and will be reconsidered for a future version of SCA. 
They’re supported in
the Tuscany SCA 1.x codebase but not in Tuscany 2.x.

Thanks,

Florian


Florian,

First, let's be clear that Conversational interactions were deliberately removed from SCA V1.1 by 
the OASIS spec group because of their complexity - and they were also removed from Tuscany 2.0 to match.


However, I am not sure that Conversational is what you're really looking for.

Let me play back what I think you're wanting.

From what you say, the function that you're looking for is for the binding code (in the Comet 
binding in your case) to be able to store some binding-specific data on a forward request call that 
is then later accessed by the binding code when a callback is made to that original request.


Logically, what you're really looking for is the capability for the binding to place some 
binding-specific data into the Callback object and for the binding code to be able to access this 
data at the point where the Callback object is invoked.  And one thing to note about this is that 
the Callback object *might* be serialized between the initial request and the callback - PLUS it is 
very likely that a different thread will be used to do the callback - so that thread local stuff 
simply is not going to work.


I've been doing this kind of thing for the async service support that has been added recently - and 
I noticed that the callback mechanism is nowhere near as powerful as the new async code.


The async stuff has an internal object called the AsyncResponseInvoker that is used to carry data 
between the forward invocation and the response - and this includes binding-specific information. 
This object is also serializable and forms part of the serialization processes used by the service 
implementation.


Currently, the callback processing does not use this approach - but I think that it should.  I think 
that a similar CallbackInvoker should be created in the processing of the forward request - and 
that it should form part of the callback object state that is serializable.  It should have the 
capability for the binding to insert and retrieve whatever information is required.



Does this thinking hit the mark?


Yours,  Mike.




Re: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2

2011-02-01 Thread Mike Edwards

On 01/02/2011 13:55, ant elder wrote:

On Tue, Feb 1, 2011 at 1:43 PM, Mike Edwards
mike.edwards.inglen...@gmail.com  wrote:

On 30/01/2011 10:08, ant elder wrote:


Please review and vote on RC2 of the Java SCA 2.0 Beta2 release.

The artifacts are at:

http://people.apache.org/~antelder/tuscany/2.0-beta2-RC2/

The release tag is at:

http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/tags/2.0-Beta2-RC2

Here's my +1

   ...ant


I get a build test failure when I do a clean build of the source
distribution.

The failure is with the Legal Checks iTest

The surefire output:

/error
system-errJars in distribution but not in LICENSE: [jaxme-api-0.3.jar]


I checked the dependency tree for jaxme and it derives from
implementation-bpel:

[INFO] |  +-
org.apache.tuscany.sca:tuscany-implementation-bpel-runtime:jar:2.0-Beta2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-epr:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-store:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-dao:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-dao-jpa:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-dao-jpa-ojpa-derby:zip:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-runtime:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-api:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-scheduler-simple:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-utils:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-compiler:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-schemas:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-bpel-obj:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-jacob:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-jacob-ap:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-agents:jar:1.3.2:compile
[INFO] |  |  +- org.apache.ode:ode-dao-hibernate:jar:1.3.2:compile
[INFO] |  |  +- org.eclipse.equinox:common:jar:3.5.0-v20090520-1800:compile
[INFO] |  |  +- commons-lang:commons-lang:jar:2.3:compile
[INFO] |  |  +- commons-collections:commons-collections:jar:3.2:compile
[INFO] |  |  +-
org.apache.geronimo.modules:geronimo-kernel:jar:2.0.1:compile
[INFO] |  |  +-
org.apache.geronimo.components:geronimo-transaction:jar:2.1.4:compile
[INFO] |  |  |  +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] |  |  |  \- org.objectweb.howl:howl:jar:1.0.1-1:compile
[INFO] |  |  +-
org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] |  |  +-
org.apache.geronimo.specs:geronimo-jpa_3.0_spec:jar:1.1.1:compile
[INFO] |  |  +-
org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:2.0.0:compile
[INFO] |  |  +-
org.apache.geronimo.components:geronimo-connector:jar:2.1.4:compile
[INFO] |  |  +- org.apache.derby:derby:jar:10.4.1.3:compile
[INFO] |  |  +- tranql:tranql-connector:jar:1.1:compile
[INFO] |  |  |  \- regexp:regexp:jar:1.3:compile
[INFO] |  |  +- org.apache.openjpa:openjpa:jar:1.2.1:compile
[INFO] |  |  |  \- commons-pool:commons-pool:jar:1.3:compile
[INFO] |  |  +- net.sourceforge.serp:serp:jar:1.13.1:compile
[INFO] |  |  +- jaxen:jaxen:jar:1.1.1:compile
[INFO] |  |  |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  |  |  \- jaxme:jaxme-api:jar:0.3:compile
[INFO] |  |  |  \- jdom:jdom:jar:1.0:compile


Why this should pop up now I have no idea - presumably some 3rd party
dependecncy has changed.



Jaxme is defined in the dom4j pom.xml as an optional dependency so it
shouldn't be getting included, and it doesn't get included in my build
of the distribution so the license itest passing cleanly. Its odd that
jaxme is getting included in your build:
- what version of Maven are you using?
- there are no changes related to this that i can see between
trunk/bete2, does jaxme show up in your trunk build?

...ant


Ant,

Maven is 2.2.0

Can't see it in my trunk build at the moment but I need to do a fresh build of 
that


Yours,  Mike.


Re: svn commit: r917777 - /tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCAReferenceBindingProvider.java

2011-02-01 Thread Mike Edwards

On 01/02/2011 22:43, Luciano Resende wrote:


This always assume PBV, which will cause extra and unnecessary
transformation and degrade performance. Instead of hacking the core
runtime, we should really look into the root cause of the issue and
fix it. I'd rather really disable the conformance test.



 I'd rather really disable the conformance test.  

You've got to be joking !!


Yours,  Mike.


Re: AllowsPassByReference support

2011-02-01 Thread Mike Edwards

On 01/02/2011 22:53, Raymond Feng wrote:

Hi,

I would rather that we ignore the failing test cases with JIRA
tickets so that we won't forget to fix it.

Raymond,

On that point, at this stage, I totally disagree.

Fix the function so that it passes the tests BEFORE putting it back in.

I will be very disappointed if I find more OASIS conformance tests failing...


Yours,  Mike.


Re: [VOTE] Release Tuscany SCA 2.0 Beta2 RC2

2011-01-31 Thread Mike Edwards

On 30/01/2011 10:08, ant elder wrote:

Please review and vote on RC2 of the Java SCA 2.0 Beta2 release.

The artifacts are at:

http://people.apache.org/~antelder/tuscany/2.0-beta2-RC2/

The release tag is at:

http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/tags/2.0-Beta2-RC2

Here's my +1

   ...ant


Small warning folks.

The link to the artifacts above does not work for me - I'm using the Chrome 
browser.

The link above uses a lower case b in beta2 whereas the actual correct link name has 
a capital B:

http://people.apache.org/~antelder/tuscany/2.0-Beta2-RC2/


The corrected form does work for me.


Yours,  Mike.


Re: Do Tuscany developers use FindBugs?

2011-01-26 Thread Mike Edwards

On 24/01/2011 18:13, César Couto wrote:

Dear developers,

I am a PhD student at UFMG, Brazil and as part of my research I am
making a study  about the relevance of the warnings reported by the
FindBugs bug finding tool.

Since I am planning to use Tuscany as a subject system in my research,
I would like to know if Tuscany's developers usually run FindBugs as

part of the system  development process.

Thanks in advance,

Cesar Couto

--
http://www.decom.cefetmg.br/cesar

Cesar,

Thinking about this further, I would like to point out that many of us use Eclipse when building and 
testing the code for Tuscany.


Many of the basic static analysis items are dealt with by the code assist feature of Eclipse - and 
many of us rely on that without even thinking about it.


Perhaps rather than having a separate tool like FindBugs it would be more interesting to investigate 
the possibility of extending the checking that Eclipse performs - Eclipse already does check some of 
the things that FindBugs checks, but not all of them.  It would be far preferable to us Eclipse 
users to have static check done as we edit...then you absorb things without even thinking about 
them, which is often the most effective way.



Yours,  Mike.


Re: Do Tuscany developers use FindBugs?

2011-01-26 Thread Mike Edwards

On 26/01/2011 10:23, Mike Edwards wrote:

On 24/01/2011 18:13, César Couto wrote:

Dear developers,

I am a PhD student at UFMG, Brazil and as part of my research I am
making a study about the relevance of the warnings reported by the
FindBugs bug finding tool.

Since I am planning to use Tuscany as a subject system in my research,
I would like to know if Tuscany's developers usually run FindBugs as

part of the system development process.

Thanks in advance,

Cesar Couto

--
http://www.decom.cefetmg.br/cesar

Cesar,

Thinking about this further, I would like to point out that many of us use 
Eclipse when building and
testing the code for Tuscany.

Many of the basic static analysis items are dealt with by the code assist 
feature of Eclipse - and
many of us rely on that without even thinking about it.

Perhaps rather than having a separate tool like FindBugs it would be more 
interesting to investigate
the possibility of extending the checking that Eclipse performs - Eclipse 
already does check some of
the things that FindBugs checks, but not all of them. It would be far 
preferable to us Eclipse users
to have static check done as we edit...then you absorb things without even 
thinking about them,
which is often the most effective way.


Yours, Mike.

I'll answer my own question here.

There ARE additional code plugins for Eclipse, for example as discussed here:

http://codedependents.com/2009/07/01/top-5-static-analysis-plugins-for-eclipse/


It might be good to ask why Eclipse don't include some of these out-of-the-box rather than requiring 
delelopers to go download  install extra stuff


I note that FindBugs is one of these plugins  ;-)



Yours,  Mike.


Re: Do Tuscany developers use FindBugs?

2011-01-25 Thread Mike Edwards

On 24/01/2011 18:13, César Couto wrote:

Dear developers,

I am a PhD student at UFMG, Brazil and as part of my research I am
making a study  about the relevance of the warnings reported by the
FindBugs bug finding tool.

Since I am planning to use Tuscany as a subject system in my research,
I would like to know if Tuscany's developers usually run FindBugs as

part of the system  development process.

Thanks in advance,

Cesar Couto

--
http://www.decom.cefetmg.br/cesar

Cesar,

I can't speak for all Tuscany developers, but I can say that I don't use FindBugs and I am not aware 
of anyone who does.


Our approach in Tuscany is more Test Driven Development, where the development process is led by the 
creation of testcases which are used to drive and check the development or modification of code.


The advantage of this general approach is that we build up a set of testcases that are then used to 
validate all future changes in the codebase - and which quickly expose any problems caused by code 
modifications and code additions.


The main problem with test driven development is in getting a sufficiently extensive set of 
testcases - some situations can be difficult to model (eg code running in multiple separate JVMs), 
plus there is the inevitable failure of imagination and/or foresight as to how the code will be used.



Yours,  Mike.


Re: [VOTE] Release Tuscany SCA 2.0 Beta2

2011-01-25 Thread Mike Edwards

On 23/01/2011 23:56, ant elder wrote:

Please review and vote on RC1 of the Java SCA 2.0 Beta2 release.

The artifacts are at:

http://people.apache.org/~antelder/tuscany/2.0-beta2-RC1/

The release tag is at:

http://svn.apache.org/repos/asf/tuscany/sca-java-2.x/tags/2.0-Beta2-RC1

Here's my +1

...ant


Ant,

We've been working hard on the code for async service handling - and there is clearly a version of 
that code in the RC1 candidate that you've built.  However, we are still working to complete 
debugging of the code (particularly related to the serialization  deserialization of the 
DispatchResponse and its contents).  We'd appreciate it if the fixed version of the code could get 
into the beta2, rather than the version that's in RC1 at the moment.


We need a couple of days to complete the work on async - and this work is getting in the way of us 
checking over the RC1 that you've prepared, which we'd like to do before taking any further steps on 
beta2.



Yours,  Mike.


Re: Do Tuscany developers use FindBugs?

2011-01-25 Thread Mike Edwards

On 25/01/2011 17:38, Luciano Resende wrote:

On Tue, Jan 25, 2011 at 5:33 AM, dshdaniel.hais...@googlemail.com  wrote:

I would say TDD and static code analysis are complementary.

Cheers
Daniel



Agree, I have been playing with Sonar, which provides various metrics
and below you can find Tuscany 2.x (modules only) analysis.

http://www.figueiredos.com:8080/sonar/project/index/195



Luciano,

That link in your email does not seem to work.  Spelling mistake?


Yours,  Mike


Re: IndexOutOfBoundsException in MediatorImpl.copyInput and JavaInterfaceImpl.isAsyncServerOperation

2011-01-23 Thread Mike Edwards

On 22/01/2011 14:25, ant elder wrote:


The problem with doing that is that now the OASIS repo is also checked
for every artifact when building online which could add significantly
to the total build time.

Looking at the current repository definitions i think most of those
are old historical ones which we don't even need anymore so i'm going
to have a go a cleaning them up. For the ones we do still need i think
we should change to define them in the modules that actually require
them instead of the top level pom.xml as that should avoid them being
queried for irrelevant artifacts.

Besides all that why does that itest need to be using the oasis
version of the API's? The Tuscany version should work fine shouldn't
it (i tried it, it seems to)?

...ant


Ant,

I think the boot is on the other foot.

The SCA API jar is really one that belongs to OASIS - why does Tuscany have its own version of that 
jar, now that it is available from a Maven repo?


I understand that Tuscany had to have its own API module historically, but why 
do that now?


Yours,  Mike.



Re: IndexOutOfBoundsException in MediatorImpl.copyInput and JavaInterfaceImpl.isAsyncServerOperation

2011-01-21 Thread Mike Edwards

On 20/01/2011 21:17, ant elder wrote:

On Thu, Jan 20, 2011 at 9:10 PM, Scott Kurzscottk...@gmail.com  wrote:

I recreated that MediatorImpl.copyInput failure now... Maybe the
problem was that earlier I ran offline and had something stale in my
mvn repo???

Anyway..looking into both problems now..

What was a module you used to notice the 2nd problem with
JavaInterfaceImpl.isAsyncServerOperation?



One example is testing\itest\async-services

...ant


Scott,

Yes, Ant identifies cases that are still failing.

I suspect that your interface handling changes don't account properly for Java interfaces that have 
the async server format, where a regular method like:


String  someOperation( Int input )

is mapped to this:

void someOperationAsync( Int input, ResponseDispatchString response )


So far it looks like the type of the output parameter is being mapped incorrectly now - I see some 
instances where the output parameter has a type of idl:input associated with it rather than 
idl:output.  The code that does this is a bit dense and I cannot pin it down yet.




Yours,  Mike.


Re: IndexOutOfBoundsException in MediatorImpl.copyInput and JavaInterfaceImpl.isAsyncServerOperation

2011-01-21 Thread Mike Edwards

On 20/01/2011 23:29, ant elder wrote:

On Thu, Jan 20, 2011 at 9:36 PM, Scott Kurzscottk...@gmail.com  wrote:

I just committed what I hope is a fix in r1061531.

It made the copyInput IndexOutOfBoundsException in
sample-implementation-extension go away... (will give some more
thought to whether this fix to interface-wsdl is the best solution).

I can't run that async-services test yet.. I need to update my mvn
repo.. but I'm pretty confident my fix should work for that as well.

That said..clearly my testing wasn't good enough if Mike's seeing
failures all over the place.. so I'm doing some more careful testing
now.

Scott



Thats fixed all the IndexOutOfBoundsException  for me. I do still get
other test fails in
testing\itest\ws\holder-ws-service-multiple-outputs and
testing\itest\async-services

...ant


Folks,

I think I have a fix for the async-services failures:

for an interface with the async server format, the databinding applied to the response parameter was 
being set to IDL:INPUT when it should be IDL:OUTPUT - this is in JavaInterfaceImpl.


Changing this enables the async-services Itests to all pass.

The holder-ws-service-multiple-outputs is a different problem I suspect.

Note: Fixing this raises the question of whether async server interfaces can have holders - and I 
think the answer is NO.  I'll discuss that point separately on the list.


Yours,  Mike.





Re: IndexOutOfBoundsException in MediatorImpl.copyInput and JavaInterfaceImpl.isAsyncServerOperation

2011-01-21 Thread Mike Edwards

On 21/01/2011 11:07, Mike Edwards wrote:

On 20/01/2011 23:29, ant elder wrote:

On Thu, Jan 20, 2011 at 9:36 PM, Scott Kurzscottk...@gmail.com wrote:

I just committed what I hope is a fix in r1061531.

It made the copyInput IndexOutOfBoundsException in
sample-implementation-extension go away... (will give some more
thought to whether this fix to interface-wsdl is the best solution).

I can't run that async-services test yet.. I need to update my mvn
repo.. but I'm pretty confident my fix should work for that as well.

That said..clearly my testing wasn't good enough if Mike's seeing
failures all over the place.. so I'm doing some more careful testing
now.

Scott



Thats fixed all the IndexOutOfBoundsException for me. I do still get
other test fails in
testing\itest\ws\holder-ws-service-multiple-outputs and
testing\itest\async-services

...ant


Folks,

I think I have a fix for the async-services failures:

for an interface with the async server format, the databinding applied to the 
response parameter was
being set to IDL:INPUT when it should be IDL:OUTPUT - this is in 
JavaInterfaceImpl.

Changing this enables the async-services Itests to all pass.

The holder-ws-service-multiple-outputs is a different problem I suspect.

Note: Fixing this raises the question of whether async server interfaces can 
have holders - and I
think the answer is NO. I'll discuss that point separately on the list.

Yours, Mike.




Fix committed at 1061775

Yours,  Mike.


[DISCUSS] Java Interface Holder support - cannot be used for interfaces that are Async Server

2011-01-21 Thread Mike Edwards

Folks,

I think that the recent work on Holder support has revealed something worth 
discussing.

The OASIS specs define a specialized form of Java interface for service implementations that are 
asynchronous - ie where the response may be delivered from a separate thread long after the request 
has been received.


So, if we have a regular synchronous Java interface like this:

public interface StockQuote {
   float getPrice(String ticker);
}


then the equivalent async server form of the same interface looks like this:


@Requires(sca:asyncInvocation)
public interface StockQuote {
   void getPriceAsync(String ticker, ResponseDispatchFloat dispatch);
}

- note the presence of the asyncInvocation intent, the addition of Async at the end of the method 
name and the addition of the ResponseDispatch object which is typed with the response.



Now, the async server form of an interface really expects there to be one object in the response - 
it is not expecting any of the input parameters to be used for returning anything - ie it does not 
allow for holders.  This must be the case since the original invoked method returns absolutely 
nothing (it just hands over the request) and all the response is done through the service calling

ResponseDispatchT.sendResponse( T ).

At the moment, I'm for simply not supporting Holders when using the async service pattern.  This is 
the simplest approach, I think.  Anything else get very complex for no good reason.


The alternative implies that the ResponseDispatch will have to be typed by some kind of array object 
- and this would imply a lack of type safety.  Then the application would have to build an array of 
response values and invoke sendResponse() with that array.  Frankly it sounds easier to have a 
single response object which is a structure or Collection containing all the required elements of 
the response...



Thoughts?


Yours,  Mike.


Re: IndexOutOfBoundsException in MediatorImpl.copyInput and JavaInterfaceImpl.isAsyncServerOperation

2011-01-21 Thread Mike Edwards

On 21/01/2011 14:13, Scott Kurz wrote:

I saw that too and manually installed it after finding an earlier
thread on this ML (too lazy to link).

Got the JAR here:

http://tools.oasis-open.org/version-control/svn/sca-j/Release/org/oasis-open/sca/j/sca-caa-apis/1.1-CD04/sca-caa-apis-1.1-CD04.jar

The earlier thread discussed things like if it couldn't be placed in
the central Maven repo... (apparently not??).


Folks,

The simple answer is that it IS in a Maven repo - but an OASIS one rather than 
the central one.

So the fix is to add this repo into the Tuscany top level POM, which I've just 
done.


Yours,  Mike.


[jira] Created: (TUSCANY-3821) Enable binding.ws (Axis2) to deal with Async service invocations

2011-01-20 Thread Mike Edwards (JIRA)
Enable binding.ws (Axis2) to deal with Async service invocations


 Key: TUSCANY-3821
 URL: https://issues.apache.org/jira/browse/TUSCANY-3821
 Project: Tuscany
  Issue Type: Sub-task
Reporter: Mike Edwards
Assignee: Mike Edwards




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



[jira] Commented: (TUSCANY-3821) Enable binding.ws (Axis2) to deal with Async service invocations

2011-01-20 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3821:
---

Perform this in 2 stages:

1) Enable Axis binding to manage async callback data via AsyncResponseHandler

- this also means dealing with serialization of ResponseDispatchImpl when using 
binding.ws (fails currently)

- also enable Axis binding to also handle regular callbacks in a way that is 
consistent with the handling of async callback

2) Update Axis2 binding to deal with async callbacks natively

- requires an understanding of exactly how Axis2 creates the response endpoint 
on the client, what header data is forwarded to the service and what entity is 
used to convey information from the request leg of the processing to the 
response leg (very unclear from the Axis2 documentation)

 Enable binding.ws (Axis2) to deal with Async service invocations
 

 Key: TUSCANY-3821
 URL: https://issues.apache.org/jira/browse/TUSCANY-3821
 Project: Tuscany
  Issue Type: Sub-task
Reporter: Mike Edwards
Assignee: Mike Edwards



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



[jira] Commented: (TUSCANY-3821) Enable binding.ws (Axis2) to deal with Async service invocations

2011-01-20 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3821:
---

Stage 1 (including fixup of callback handling) done in the following commits:

binding-ws-runtime-axis2

1061384

core:

1061385

core-spi:

1061389

implementation-java-runtime

1061391



 Enable binding.ws (Axis2) to deal with Async service invocations
 

 Key: TUSCANY-3821
 URL: https://issues.apache.org/jira/browse/TUSCANY-3821
 Project: Tuscany
  Issue Type: Sub-task
Reporter: Mike Edwards
Assignee: Mike Edwards



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



Re: IndexOutOfBoundsException in MediatorImpl.copyInput and JavaInterfaceImpl.isAsyncServerOperation

2011-01-20 Thread Mike Edwards

On 20/01/2011 21:05, Scott Kurz wrote:

I see the problem in JavaInterfaceImpl.isAsyncServerOperation.  The
output type will be an empty list in this case, so I can tweak the
check.

The issue with MediatorImpl concerns me more since I ran the same
tests and didn't notice that problem.  One thing I noticed during
various tests I ran was that sometimes I went through
MediatorImpl.copy and sometimes I didn't, when running with the
default binding.   I don't completely understand why.


Scott,

I see failures all over the place with this index out of bounds problem - grateful if you can upload 
a fix soon.



Yours,  Mike.


Re: Why the split package org.apache.tuscany.sca.runtime in domain-node and in core-spi ??

2011-01-19 Thread Mike Edwards

On 19/01/2011 10:25, ant elder wrote:

I've renamed this to use
org.apache.tuscany.sca.runtime.TuscanyRuntime. I like that name and it
seems most appropriate. If that doesn't work for you in the DomainNode
module where would you like it - core/core-spi?

...ant

Ant,

It isn't the class name that's the problem.  It's the package name.

Please either rename the package - or if you think that these classes really belong in the 
org.apache.tuscany.sca.runtime package, then please move all the classes so that they are in one 
place - its the split package that causes mayhem.



Yours,  Mike.



Re: How to use binding-ws-runtime-jaxws? (UNCLASSIFIED)

2011-01-19 Thread Mike Edwards

On 19/01/2011 22:57, Yang, Gang CTR US USA wrote:

Classification: UNCLASSIFIED
Caveats: NONE

Hi, Urso,

Thanks for the reply. Please excuse me for my ignorance (I just came over to 2.0), but 
how do you select axis2 or jaxws at the first place? In 1.6, if you specify 
binding.ws then axis2 used because that is the only binding.ws provider.

Since you seem to have used jaxws in Tuscany, can you tell me if the concept of 
jaxws handlers are supported?

Thanks a lot.
Gang

Gang,

Do you mean the idea of using JAXWS handlers inside your component 
implementation code - eg in a POJO?

The simple answer to that is no.

But before I go any further, can I ask what are you trying to do - what do you want the handlers 
to do - access some specific SOAP headers, for example?  If the answer to that question is yes, 
then we should discuss the SCA programming model further.




Yours,  Mike.


Why the split package org.apache.tuscany.sca.runtime in domain-node and in core-spi ??

2011-01-18 Thread Mike Edwards

Folks,

Can someone explain why there is now a split package org.apache.tuscany.sca.runtime in the modules 
domain-node and in core-spi, please?


It looks like this has come about due to changes in domain-node.

Split packages are at best confusing and to be avoided, in my opinion.

For OSGi use, split packages are painful and I don't have a brain big enough to sort out the 
problems they cause.


Unless someone can justify the retention of this split package, I shall rename the part that is in 
domain-node to:


org.apache.tuscany.node.runtime



Yours, Mike.


[jira] Commented: (TUSCANY-3811) Enable binding.sca to deal with Async service invocations

2011-01-17 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3811:
---

Updated deserialization code in RuntimeEndpointReferenceImpl  
RuntimeEndpointImpl to correctly deserialize interface information which is 
used in the async response handling.

Committed in 

1059921

 Enable binding.sca to deal with Async service invocations
 -

 Key: TUSCANY-3811
 URL: https://issues.apache.org/jira/browse/TUSCANY-3811
 Project: Tuscany
  Issue Type: Sub-task
Reporter: Mike Edwards
Assignee: Mike Edwards



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



[jira] Created: (TUSCANY-3817) Tuscany fails OASIS Java CAA Testcases 10029 10030

2011-01-12 Thread Mike Edwards (JIRA)
Tuscany fails OASIS Java CAA Testcases 10029  10030 
-

 Key: TUSCANY-3817
 URL: https://issues.apache.org/jira/browse/TUSCANY-3817
 Project: Tuscany
  Issue Type: Bug
  Components: OASIS Compliance - TUSCANY
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


Tuscany fails OASIS Java CAA testcases 10029  10030, which concern detection 
of @Remotable annotations in invalid locations within a Java interface.

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



[jira] Resolved: (TUSCANY-3817) Tuscany fails OASIS Java CAA Testcases 10029 10030

2011-01-12 Thread Mike Edwards (JIRA)

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

Mike Edwards resolved TUSCANY-3817.
---

Resolution: Fixed

Fix to JavaInterfaceIntrospectorImpl in interface-java provided in:

1058146

 Tuscany fails OASIS Java CAA Testcases 10029  10030 
 -

 Key: TUSCANY-3817
 URL: https://issues.apache.org/jira/browse/TUSCANY-3817
 Project: Tuscany
  Issue Type: Bug
  Components: OASIS Compliance - TUSCANY
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


 Tuscany fails OASIS Java CAA testcases 10029  10030, which concern detection 
 of @Remotable annotations in invalid locations within a Java interface.

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



[jira] Resolved: (TUSCANY-3816) iTest Callback SeparateThread violates the OASIS rules for COMPOSITE scope components with Callbacks

2011-01-12 Thread Mike Edwards (JIRA)

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

Mike Edwards resolved TUSCANY-3816.
---

Resolution: Fixed

A basic fix to the test is committed in:

1058211

However, this test is not ideal in its current form - the COMPOSITE scope 
component makes the dangerous assumption that it has only 1 client and thus 
only 1 callback object.  A real composite scoped component would have to allow 
for multiple clients - and would have to identify each of them separately via 
some kind of unique ID, which would ideally be described at the application 
level in the forward service interface to the component.

e.g.

String registerForEvent(String aEventName);
-- returns a registrationID as a String...

void unregisterForEvent(String aEventName, String registrationID);

-- cancels the registration for the given registrationID

 iTest Callback SeparateThread violates the OASIS rules for COMPOSITE scope 
 components with Callbacks
 

 Key: TUSCANY-3816
 URL: https://issues.apache.org/jira/browse/TUSCANY-3816
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Integration Tests
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


 The iTest Callback SeparateThread has a component implementation 
 EventProcessorServiceImpl.java which is @Scope(COMPOSITE) and which has a 
 field annotated with @Callback.
 This violates one of the conformance requirements of the OASIS Java CAA 
 specification, which does not permit the use of the @Callback annotation for 
 COMPOSITE scope components.

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



[jira] Created: (TUSCANY-3816) iTest Callback SeparateThread violates the OASIS rules for COMPOSITE scope components with Callbacks

2011-01-11 Thread Mike Edwards (JIRA)
iTest Callback SeparateThread violates the OASIS rules for COMPOSITE scope 
components with Callbacks


 Key: TUSCANY-3816
 URL: https://issues.apache.org/jira/browse/TUSCANY-3816
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Integration Tests
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


The iTest Callback SeparateThread has a component implementation 
EventProcessorServiceImpl.java which is @Scope(COMPOSITE) and which has a 
field annotated with @Callback.

This violates one of the conformance requirements of the OASIS Java CAA 
specification, which does not permit the use of the @Callback annotation for 
COMPOSITE scope components.



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



[jira] Commented: (TUSCANY-3816) iTest Callback SeparateThread violates the OASIS rules for COMPOSITE scope components with Callbacks

2011-01-11 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3816:
---

The initial step is to disable this test from the build since the fix for the 
problem is not simple and will take some time to develop.

Committed in 1057555

 iTest Callback SeparateThread violates the OASIS rules for COMPOSITE scope 
 components with Callbacks
 

 Key: TUSCANY-3816
 URL: https://issues.apache.org/jira/browse/TUSCANY-3816
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA Integration Tests
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
 Fix For: Java-SCA-2.x


 The iTest Callback SeparateThread has a component implementation 
 EventProcessorServiceImpl.java which is @Scope(COMPOSITE) and which has a 
 field annotated with @Callback.
 This violates one of the conformance requirements of the OASIS Java CAA 
 specification, which does not permit the use of the @Callback annotation for 
 COMPOSITE scope components.

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



[jira] Commented: (TUSCANY-3786) In the async programming model provide a clear separate between the Java specific bits and the infrastructure bits so it can be used by other implementation types

2011-01-11 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3786:
---

Some separation of the Java code from the core committed in:

1057654

 In the async programming model provide a clear separate between the Java 
 specific bits and the infrastructure bits so it can be used by other 
 implementation types
 --

 Key: TUSCANY-3786
 URL: https://issues.apache.org/jira/browse/TUSCANY-3786
 Project: Tuscany
  Issue Type: Sub-task
Affects Versions: Java-SCA-2.0-Beta1
 Environment: all
Reporter: Simon Laws
 Fix For: Java-SCA-2.0


 The current async programming model is Java centric and some of this bleeds 
 over into the infrastrcture. I would be good if the programming model were 
 applicable to other implementation types such as BPEL. 

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



[jira] Commented: (TUSCANY-3801) Add ability to deal with bindings that natively support async interactions

2011-01-11 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3801:
---

Further changes to core, core-spi, assembly and binding-ws-runtime-axis2 
committed in:

1057645
1057647
1057648
1057650

 Add ability to deal with bindings that natively support async interactions 
 ---

 Key: TUSCANY-3801
 URL: https://issues.apache.org/jira/browse/TUSCANY-3801
 Project: Tuscany
  Issue Type: Sub-task
Reporter: Simon Laws
Assignee: Mike Edwards



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



[jira] Commented: (TUSCANY-3811) Enable binding.sca to deal with Async service invocations

2011-01-11 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3811:
---

Upgraded support for local binding.sca to use native async invocations provided 
in:

1057653

- remote case still outstanding

 Enable binding.sca to deal with Async service invocations
 -

 Key: TUSCANY-3811
 URL: https://issues.apache.org/jira/browse/TUSCANY-3811
 Project: Tuscany
  Issue Type: Sub-task
Reporter: Mike Edwards
Assignee: Mike Edwards



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



[jira] Created: (TUSCANY-3813) Tuscany fails OASIS Java CAA testcase 10035 - permits @Callback on a Field / Method of a class marked @Scope(COMPOSITE)

2011-01-07 Thread Mike Edwards (JIRA)
Tuscany fails OASIS Java CAA testcase 10035 - permits @Callback on a Field / 
Method of a class marked @Scope(COMPOSITE)
---

 Key: TUSCANY-3813
 URL: https://issues.apache.org/jira/browse/TUSCANY-3813
 Project: Tuscany
  Issue Type: Bug
  Components: OASIS Compliance - TUSCANY
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
Priority: Minor
 Fix For: Java-SCA-2.0


Tuscany fails the OASIS compliance testcase JAVA-CAA 10035.

This testcase checks whether a class marked with @Scope(COMPOSITE) is reported 
as being in error if a Field or a Method of the class is annotated with 
@Callback.

Currently Tuscany fails this testcase, since the code in the Java 
implementation introspector does not check for these cases.

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



[jira] Resolved: (TUSCANY-3813) Tuscany fails OASIS Java CAA testcase 10035 - permits @Callback on a Field / Method of a class marked @Scope(COMPOSITE)

2011-01-07 Thread Mike Edwards (JIRA)

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

Mike Edwards resolved TUSCANY-3813.
---

Resolution: Fixed

Fix to the ServiceProcessor class in implementation-java introspect.impl 
package, which checks that @Callback is not used when the class is annotated 
with @Scope(COMPOSITE)

 Tuscany fails OASIS Java CAA testcase 10035 - permits @Callback on a Field / 
 Method of a class marked @Scope(COMPOSITE)
 ---

 Key: TUSCANY-3813
 URL: https://issues.apache.org/jira/browse/TUSCANY-3813
 Project: Tuscany
  Issue Type: Bug
  Components: OASIS Compliance - TUSCANY
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
Priority: Minor
 Fix For: Java-SCA-2.0


 Tuscany fails the OASIS compliance testcase JAVA-CAA 10035.
 This testcase checks whether a class marked with @Scope(COMPOSITE) is 
 reported as being in error if a Field or a Method of the class is annotated 
 with @Callback.
 Currently Tuscany fails this testcase, since the code in the Java 
 implementation introspector does not check for these cases.

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



[jira] Issue Comment Edited: (TUSCANY-3813) Tuscany fails OASIS Java CAA testcase 10035 - permits @Callback on a Field / Method of a class marked @Scope(COMPOSITE)

2011-01-07 Thread Mike Edwards (JIRA)

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

Mike Edwards edited comment on TUSCANY-3813 at 1/7/11 7:50 AM:
---

Fix to the ServiceProcessor class in implementation-java introspect.impl 
package, which checks that @Callback is not used when the class is annotated 
with @Scope(COMPOSITE)

Committed in 1056294

  was (Author: edwardsmj):
Fix to the ServiceProcessor class in implementation-java introspect.impl 
package, which checks that @Callback is not used when the class is annotated 
with @Scope(COMPOSITE)
  
 Tuscany fails OASIS Java CAA testcase 10035 - permits @Callback on a Field / 
 Method of a class marked @Scope(COMPOSITE)
 ---

 Key: TUSCANY-3813
 URL: https://issues.apache.org/jira/browse/TUSCANY-3813
 Project: Tuscany
  Issue Type: Bug
  Components: OASIS Compliance - TUSCANY
Affects Versions: Java-SCA-2.0-M5
Reporter: Mike Edwards
Assignee: Mike Edwards
Priority: Minor
 Fix For: Java-SCA-2.0


 Tuscany fails the OASIS compliance testcase JAVA-CAA 10035.
 This testcase checks whether a class marked with @Scope(COMPOSITE) is 
 reported as being in error if a Field or a Method of the class is annotated 
 with @Callback.
 Currently Tuscany fails this testcase, since the code in the Java 
 implementation introspector does not check for these cases.

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



[jira] Commented: (TUSCANY-3807) Enable core async handling code to supply correct information for all binding types

2010-12-21 Thread Mike Edwards (JIRA)

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

Mike Edwards commented on TUSCANY-3807:
---

AsyncResponseInvoker made generic to deal with varying forms of async response 
address information

1051463

 Enable core async handling code to supply correct information for all binding 
 types
 ---

 Key: TUSCANY-3807
 URL: https://issues.apache.org/jira/browse/TUSCANY-3807
 Project: Tuscany
  Issue Type: Sub-task
Reporter: Mike Edwards
Assignee: Mike Edwards



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



[jira] Created: (TUSCANY-3811) Enable binding.sca to deal with Async service invocations

2010-12-21 Thread Mike Edwards (JIRA)
Enable binding.sca to deal with Async service invocations
-

 Key: TUSCANY-3811
 URL: https://issues.apache.org/jira/browse/TUSCANY-3811
 Project: Tuscany
  Issue Type: Sub-task
Reporter: Mike Edwards
Assignee: Mike Edwards




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



  1   2   3   4   5   >