[Design of JBoss Web Services] - JBWS-1260 - Sequence containing 2 elements
by darran.lofthouse@jboss.com
Taking the following two elements as the input and ouput parameters: -
<element name='lookup'>
| <complexType>
| <sequence>
| <element name='firstName' nillable='true' type='string'/>
| <element name='surname' nillable='true' type='string'/>
| </sequence>
| </complexType>
| </element>
|
| <element name='lookupResponse'>
| <complexType>
| <sequence>
| <element name='areaCode' nillable='true' type='string'/>
| <element name='number' nillable='true' type='string'/>
| </sequence>
| </complexType>
| </element>
wscompile is generating the SEI method as: -
public org.jboss.test.ws.jbws1260.LookupResponse lookup(java.lang.String firstName, java.lang.String surname) throws java.rmi.RemoteException;
So the input element is being unwrapped as it can be converted to seperate parameters, however the return type can not be unwrapped so it is not.
The JAX-RPC 1.1 specification doesn't seem to say how this should be handled. Previously we were dropping the second element in the return type and would just return a String.
Tha JAX-WS spec seems to clarify this by mapping the wrapper children as a parameter using a holder type.
Which approach should we be taking, especially as we don't currently generate holders?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3993641#3993641
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3993641
19 years, 3 months
[Design of AOP on JBoss (Aspects/JBoss)] - Re: Metadata rewrite
by adrian@jboss.org
I've committed the code for this refactoring
AOP-CHANGES
It required a change to the AOP advisor to map MetaDataContext -> MetaData
I left the old class still in the repository in case somebody does a partial
integration (don't want NoClassDefFoundError).
I hope I didn't break anything, the aop-mc-int tests weren't in a good shape
(e.g. all the weave tests were broken).
KNOWN TEST ISSUE (Metadata stack)
We'll actually I know I broke one thing, but that would be easily fixed if
we decide it isn't a useful feature.
Basically when I callout to a joinpoint I push the metadata onto the
org.jboss.metadata.spi.MetaDataStack
this is how I pass the MetaData to aop,
but it also means the constructor or lifecycle methods can peek
the metadata.
However, this seems to confuse AOP since the lazily loaded aspects
also seem to pick up this metadata.
For now I'm "masking" this stack in the AOPConstructorJoinpoint
but that means some of the new tests are failing because the constructor
expects to be able to peek the stack.
Maybe this isn't such a good idea and it should be a feature provided
optionally by an interceptor at runtime?
ANNOTATION SUPPORT
The new MetaData has support for all types of annotations
(field, constructor, method, method parameters - in fact whatever
you can think of as a "Signature"), but the MC xml still doesn't support
overrriding all these.
DEFINING SCOPES
The major piece of work that is left is to replace the
BasicKernelMetaDataRepository.initMetaData()
with something that knows how to properly construct scoped metadata contexts.
This is going to require some kind of "plugin' mechanism away from the
MC since this is likely to get very JBossAS specific, e.g.
clustering or transaction local scopes.
The only scopes currently supported are hardwired:
instance, class and JVM
REPOSITORY.JBOSS.COM
Finally, I put this in the repository as "snapshot-metadata" because
I don't want the JBossAS build picking this up until Kabir has had a chance
to verify it.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3993638#3993638
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3993638
19 years, 3 months
[Design of JBoss Web Services] - JBWS-1260 - Unwrapping and complex types with attributes.
by darran.lofthouse@jboss.com
I am currently working on JBWS-1260, I have a set of 27 different WSDLs that I have put through wscompile and I am then putting through wstools to compare the generated artifacts.
If the complex type is defined as having a sequence and attribtes: -
| <complexType name='Person'>
| <sequence>
| <element name='surname' nillable='true' type='string'/>
| </sequence>
| <attribute name='postcode' type='string'/>
| </complexType>
|
wscompile creates the following SEI method: -
public org.jboss.test.ws.jbws1260.TelephoneNumber lookup(java.lang.String postcode, java.lang.String surname) throws java.rmi.RemoteException;
However according to the JAX-RPC 1.1 specification to qualify as using the "wrapper" style the third requirement says: -
anonymous wrote : such an element (a wrapper) must be of a complex type defined using the
| xsd:sequence compositor and containing only elements declarations.
JAX-WS 2.0 expands on this to explicitly prevent the use of attributes.
How should we interpret this? Is wscompile unwrapping the complex type incorrectly or is this how it should be unwrapped?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3993629#3993629
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3993629
19 years, 3 months