Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-20 Thread Yang ZHONG

Thank Jim for such a detailed response.
I'll brief update first, then address Jim's concerns inline.

A Reference Implementation of WSDL is now available at
   http://issues.apache.org/jira/secure/attachment/12341187/registry5.zip
for JIRA
   http://issues.apache.org/jira/browse/TUSCANY-677

Please try the live demo at
   impl/SCA/WSDL/src/test/java/org/apache/tuscany/registry/sca/wsdl/test

For your convenience, here's the live demo (helloworld.wsdl):

   WSDLManager MANAGER = ... (SCA Programming Model)
   WSDLRegistries WSDL = MANAGER.getWSDLRegistries(null);

   Definition myDefinition = WSDL.getDefinition(myNameSpace);

   RegistryMessage messages = WSDL.getMessageRegistry();
   Message myMessage = messages.get(myNameSpace, getGreetingsRequest);

   RegistryPortType interfaces = WSDL.getInterfaceRegistry();
   PortType myInterface = interfaces.get(myNameSpace,
HelloWorldServiceImpl);

   RegistryBinding bindings = WSDL.getBindingRegistry();
   Binding myBinding = bindings.get(myNameSpace, helloworldSoapBinding);

   RegistryService services = WSDL.getServiceRegistry();
   Service myService = services.get(myNameSpace,
HelloWorldServiceImplService);

TODOs (impl/SCA/WSDL/src/main/java/org/apache/tuscany/registry/sca/wsdl):
   CompositeScoping.java, any volunteer to complete the skeleton please?
   NameSpaceLocator.java, any volunteer to complete the skeleton to locate
file from CompositeComponent please?
   RegistryLoader.java, any volunteer to change to the WSDLReader being
used by SCA please?
   WSDLRegistries.java, any volunteer to compute the context
CompositeComponent please?
   Jim proposed direct providing
RegistryMessage||PortType||Binding||Service so that users don't have to
WSDL.getXxxRegistry();
   any volunteer to support that from SCA please?
And any volunteer to make component files for impl/API and impl/SCA/WSDL
please?

I'm addressing Jim's concerns inline:

On 9/19/06, Jim Marino [EMAIL PROTECTED] wrote:


Hi Yang,

Looking at the implementation, I think there may be a rather large
disconnect in our views of what needs to be accomplished. So, I will
start by describing what I thought we are and are not trying to do...

I thought we were trying to provide a registry which would resolve
*WSDL* artifacts to be used by binding (or other) extensions during
the build phase as an assembly is processed. These artifacts would be
used by the extensions to create appropriate runtime artifacts. The
goals of this WSDL registry would be primarily to provide a mechanism
where WSDL artifacts could be resolved and processed using a variety
of extensible strategies and, secondarily, as a way to cache them
(although whether caching produces significant performance gains
given typical runtime uses cases is debatable). From an
implementation perspective, the registry would rely on the runtime to
provide the proper visibility constraints which would alleviate the
former from having to provide scoping behavior such as keying on
classloader. Tuscany has a DeploymentContext that could be used to
hold the registry and maintain proper isolation between composites.



Thanks a lot for so concrete requirement.

What I thought we were *not* trying to accomplish is to provide a

generic registry that caches a variety of artifacts and provides
built-in scoping for a number of host environments (e.g. Tuscany,



Scoping are not really built-in;
a SPI (org.apache.tuscany.registry.spi.Scoping) is required implemented.
The Reference Implementation provides the ClassLoader one *just* for Java
users' convenience.

some tool, etc.). Based on the implementation and things like the

package structure (e.g. org.apache.tuscany.registry), I suspect you
may disagree with this. From a project perspective, one of my
concerns here is that we should not be expanding the charter of
Tuscany to include an additional technology category at this point (a
generic registry). From a technology perspective, I have the
following concerns:

- The majority of the implementation appears to offer features not
required by the runtime (e.g util, scoping, all of the stuff related
to multiple keys in SPI and API)



Yes, the Reference Implementation (RI) does provide much more functions than
you expected.

However, it's better than nothing. At least folks can start to use WSDL
Registry
whose API is *not* bound to the RI at all.
The RI does *not* prevent us from implementing the WSDL Registry API from
scratch as you suggested.
While folks are able to use the WSDL Registry, we can go for other
implementation(s) in parallel.

On the other hand, Frank and I talked about the registry the other day
and we both think it might be something useful for SDO Type registry (and
Global Property registry).
And Fuhwei's team needs a registry too.
SCA and SDO as one Tuscany team don't have to duplicate similar effort.

If it ends up used by no one, and we have a new implementation for the WSDL
Registry API already,
we can easily throw the RI away and I don't see 

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-20 Thread Frank Budinsky
Jim, I don't think it should be checked into SDO for the same reasons you 
mentioned below. SDO needs a Type and (global) Property registry. It would 
be nice if we could have a simple generic design that could be used for 
that and also for SCA/WSDL, but maybe that's not possible.

Frank.

Jim Marino [EMAIL PROTECTED] wrote on 09/20/2006 01:08:56 PM:

 Comments inline. Frank, in case you miss it below, could you comment 
 on if perhaps Yang's generic registry is something that is more 
 appropriate for checking into SDO?
 
 Jim
 
 On Sep 20, 2006, at 2:30 AM, Yang ZHONG wrote:
 
 
  Looking at the implementation, I think there may be a rather large
  disconnect in our views of what needs to be accomplished. So, I will
  start by describing what I thought we are and are not trying to do...
 
  I thought we were trying to provide a registry which would resolve
  *WSDL* artifacts to be used by binding (or other) extensions during
  the build phase as an assembly is processed. These artifacts would be
  used by the extensions to create appropriate runtime artifacts. The
  goals of this WSDL registry would be primarily to provide a mechanism
  where WSDL artifacts could be resolved and processed using a variety
  of extensible strategies and, secondarily, as a way to cache them
  (although whether caching produces significant performance gains
  given typical runtime uses cases is debatable). From an
  implementation perspective, the registry would rely on the runtime to
  provide the proper visibility constraints which would alleviate the
  former from having to provide scoping behavior such as keying on
  classloader. Tuscany has a DeploymentContext that could be used to
  hold the registry and maintain proper isolation between composites.
 
 
  Thanks a lot for so concrete requirement.
 
  What I thought we were *not* trying to accomplish is to provide a
  generic registry that caches a variety of artifacts and provides
  built-in scoping for a number of host environments (e.g. Tuscany,
 
 
  Scoping are not really built-in;
  a SPI (org.apache.tuscany.registry.spi.Scoping) is required 
  implemented.
  The Reference Implementation provides the ClassLoader one *just* 
  for Java
  users' convenience.
 
  some tool, etc.). Based on the implementation and things like the
  package structure (e.g. org.apache.tuscany.registry), I suspect you
  may disagree with this. From a project perspective, one of my
  concerns here is that we should not be expanding the charter of
  Tuscany to include an additional technology category at this point (a
  generic registry). From a technology perspective, I have the
  following concerns:
 
  - The majority of the implementation appears to offer features not
  required by the runtime (e.g util, scoping, all of the stuff related
  to multiple keys in SPI and API)
 
 
  Yes, the Reference Implementation (RI) does provide much more 
  functions than
  you expected.
 
  However, it's better than nothing. At least folks can start to use 
  WSDL
  Registry
  whose API is *not* bound to the RI at all.
  The RI does *not* prevent us from implementing the WSDL Registry 
  API from
  scratch as you suggested.
  While folks are able to use the WSDL Registry, we can go for other
  implementation(s) in parallel.
 
 I don't believe we should check this code in for the reasons I 
 previously mentioned. IMO we should work on an implementation that 
 fulfills the requirements that I mentioned above, namely something 
 that resolves WSDL artifacts.
  On the other hand, Frank and I talked about the registry the other day
  and we both think it might be something useful for SDO Type 
  registry (and
  Global Property registry).
  And Fuhwei's team needs a registry too.
  SCA and SDO as one Tuscany team don't have to duplicate similar 
  effort.
 
 If SDO requires a generic registry, perhaps it is best that Frank, 
 Kelvin or one of the other committers working in that area review 
 your patch and decide if it fits their requirements and check it into 
 the SDO subproject? I don't think this should be checked in as a 
 sibling project to SDO, DAS, or SCA as that expands the Tuscany 
 charter. I am also not comfortable with the Java SCA runtime sharing 
 source code between subprojects as we  (I should say Jeremy) just 
 spent a lot of time decoupling them.
 
 Frank, do you feel this is something that could be checked into SDO?
 
  If it ends up used by no one, and we have a new implementation for 
  the WSDL
  Registry API already,
  we can easily throw the RI away and I don't see it hurt anything
  (it will *not* hurt my feeling since I volunteered and it's my 
  interest to
  help with my experience anyway)
 
 I'd prefer we work on a solution that addresses the specific runtime 
 requirements we have without introducing unneeded complexity, keeping 
 in mind YAGNI.
  - It is difficult to follow and does not appear to be similar to how
  other extensions are architected (e.g. loaders, builders,
 

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-18 Thread Yang ZHONG

Thank you all for the patience.
(I also used the waiting time to assure no huge change to the API and SPI)

A Reference Implementation is now available at
   http://issues.apache.org/jira/secure/attachment/12341070/registry4.zip
for JIRA
   http://issues.apache.org/jira/browse/TUSCANY-677

The implementation has a JavaDoc at
 impl/SPI/doc
and please try the live demo at
 impl/API/src/test/java/org/apache/tuscany/registry/test
demonstrating using SPI to register Locator and loader and using API to get
symbol on demand.

A WSDL Reference Implementation will be provided next time.

--

Yang ZHONG


Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-11 Thread Fuhwei Lwo
Hi Yang,
  
  I took a review of your prototype and found you are implementing it in  Java 
5 SDK. Currently SDO impl is on JDK 1.4. Do you plan to support  JDK 1.4 for 
this registry feature?  Thanks.
  
  Fuhwei

Yang ZHONG [EMAIL PROTECTED] wrote:   I've updated the registry proposal 
basing on Jim's feedback especially his
wonderful runtime-pick-scope idea.
Please see the new attachment at
http://issues.apache.org/jira/secure/attachment/12340483/registry3.zip
for JIRA
 http://issues.apache.org/jira/browse/TUSCANY-677

Thanks, Jim.

For your convenience, here copys some package description from the included
JavaDoc
(Still the included ReadMe.txt may help you find corresponding info)

1. Accessing the registry service

WSDLRegistries WSDL;

@Autowire
public setWSDLRegistries(WSDLRegistries registries)
{
WSDL = registries;
}

2. Accessing Definition identified by Name Space

Definition myDefinition = WSDL.getDefinition( 
http://incubator.apache.org/tuscany;);

-- 

Yang ZHONG



Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-11 Thread Yang ZHONG

Frank and I talked about the registry the other day,
we both think it may be something useful for SDO Type registry (and Global
Property registry).
(Did you suggest that too?)
However, there's no concrete plan to integrate yet.

By the time we actually integrate (if it happens), maybe SDO impl is moving
to Java 5 I hope :-)
Otherwise, I can volunteer myself again for the porting.

BTW, many products including Application Servers has moved to Java 5, they
enable standalone usage of the registry.
Otherwise, I can also volunteer myself again for the porting.

On 9/11/06, Fuhwei Lwo [EMAIL PROTECTED] wrote:


Hi Yang,

I took a review of your prototype and found you are implementing it
in  Java 5 SDK. Currently SDO impl is on JDK 1.4. Do you plan to
support  JDK 1.4 for this registry feature?  Thanks.

Fuhwei

Yang ZHONG [EMAIL PROTECTED] wrote:   I've updated the
registry proposal basing on Jim's feedback especially his
wonderful runtime-pick-scope idea.
Please see the new attachment at
   http://issues.apache.org/jira/secure/attachment/12340483/registry3.zip
for JIRA
http://issues.apache.org/jira/browse/TUSCANY-677

Thanks, Jim.

For your convenience, here copys some package description from the
included
JavaDoc
(Still the included ReadMe.txt may help you find corresponding info)

1. Accessing the registry service

   WSDLRegistries WSDL;

   @Autowire
   public setWSDLRegistries(WSDLRegistries registries)
   {
   WSDL = registries;
   }

2. Accessing Definition identified by Name Space

   Definition myDefinition = WSDL.getDefinition( 
http://incubator.apache.org/tuscany;);

--

Yang ZHONG






--

Yang ZHONG


Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-08 Thread Yang ZHONG

I've updated the registry proposal basing on Jim's feedback especially his
wonderful runtime-pick-scope idea.
Please see the new attachment at
   http://issues.apache.org/jira/secure/attachment/12340483/registry3.zip
for JIRA
http://issues.apache.org/jira/browse/TUSCANY-677

Thanks, Jim.

For your convenience, here copys some package description from the included
JavaDoc
(Still the included ReadMe.txt may help you find corresponding info)

1. Accessing the registry service

   WSDLRegistries WSDL;

   @Autowire
   public setWSDLRegistries(WSDLRegistries registries)
   {
   WSDL = registries;
   }

2. Accessing Definition identified by Name Space

   Definition myDefinition = WSDL.getDefinition( 
http://incubator.apache.org/tuscany;);

--

Yang ZHONG


Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-05 Thread Yang ZHONG

Thanks for your comments, and mine are inline below.

On 9/4/06, Jim Marino [EMAIL PROTECTED] wrote:


Hi Yang, comments inline.

On Sep 4, 2006, at 12:14 PM, Yang ZHONG wrote:


 2-1. SPI is not any part of user Programming Model at all, since it's
 internal, we can change it any way later.

I'd prefer before we check something in and use it throughout the
code base we sort these issues (SPI, API, WSDL) out as they will
impact a number of bindings.



Fine with me, it's not a bad idea since we have to do it anyway and it saves
some (refactoring) time overall.
Sorry for folks waiting to wait a little longer.


My current reference implementation has no dependency on SCA at
 all, it
 enables easy development, easy debuging and problems isolation.
 Once the implementation is stabilized, we can always have more time
 and
 resources to refine what granularity to apply SCA.
Where do we intend to house the code? If it is in the Java SCA
project, I'd prefer we only have the capabilities we need and not
build something that is a generic symbol cache. If the code will be
maintained elsewhere, then I would tend to treat it as an external
dependency.



I've proposed hosting the registry dircetly under tuscany/java:
 distribution
 *registry*
 sdo
 spec
 sca
The rational is we are dealing with generic issues beyond just sca and sdo
anyway,
especially I know some SDO implementations are using registry for types (and
elements).
There's one thing I don't even have preference myself at all: where to host
the tailoring for sca.
It can either be
 tuscany/java/registry/sca
or
  tuscany/java/sca/registry



 - It also seems a lot of inner interfaces are used. I think things
 could be simplified by not using inner interfaces at all, possibly
 segregating  classes using subpackages if necessary.


 Some people find inner interface helpful and better readable,
 I think the Java spec wouldn't include it if it's a absolute evil :-)
rantI think statics on interfaces like .INSTANCE are evil.
Thankfully, they are not widely used in Java technologies I am aware
of (outside SDO and EMF) as they cause so many problems in managed
environments where classloader isolation is important. ;-) I honestly
don't understand how this pattern is easier to use as there are
simple alternatives Java developers are familiar with such as IoC and
factories. /rant



The above paragraph was talking about inner interface, *not* singleton.
I understand singleton causes management difficulties although it makes
simplest/easiest Programming Model.
There's no singleton in API and WSDL API already.
I don't see you say inner interfaces are evil, however I can guess they're
not your preference and I sure will replace them in API and SPI.


An example of inner interface usage is EMF
 interface EPackage
 {
  interface Registry
 }
 therefore EPackage.Registry is a Registry of EPackages.
 I don't really normally argue about interface styles, I've already
 changes
 SymbolSpace.Registry to SymbolSpaceRegistry in the *new* attachment
 as you
 suggested before.
 If you're talking about NameSpace.xxx, I sure will change them too
 in next
 update.
Cool. Thanks.

 Right, I only documented non-SCA client Programming Model to use the
 registry,
 I hesitated to include SCA client one because of the requirement
 (setRegistry) and the assumption of SCA clients know what to do.
 Since you mention it (thank you), I'll also document the SCA client
 PM to
 use the registry in next update.

O.K., I think it is really simple:

Registry registry;

@Reference
public void setRegistry(Registry registry){

-or-

@Autowire
public void setRegistry(Registry registry){



Thanks a lot. I'll put them into JavaDoc.



 If I understand correctly, you concern why multiple dimensions.
 A typical scenario is MyApplication.Ear = MyWeb.War + share.jar(
 MyService.wsdl) + MyEJB.jar
 and the share.jar is shared by both MyWeb and MyEJB.
 Some frameworks has an option to check receiving data against
 interface,
 incuding Java and I know SCA used to have that option.


 Checking instance against model may have problems if the model is
 loaded as
 more than one copies,
 Xxx.class and SDO/EMF types all have such problems.

We don't keep the model around during runtime operation so I don't
think this is a problem for us.
 I don't know if current SCA ever computs equals, isSuperType and
 instanceof
 between message/portType/binding/service models.
Even if we did do this, would it ever be done across remote
boundaries (a deployment unit)? At that point we have by-val
semantics (and likely serialization) anyway.
 If never, I admit multi-dimension as a generic isuue doesn't have
 to be
 applied to SCA except for performance concerns
 (I've seen real customers sometimes have huge WSDL/XSD files and
 loading and
 caching them more than once is unecessary pain for customers)

Perhaps we can optimize as needed? If we cache per application, I
don't see this as a huge performance hit. Also, I'd probably want

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-05 Thread Jim Marino


On Sep 5, 2006, at 11:22 AM, Yang ZHONG wrote:



I've proposed hosting the registry dircetly under tuscany/java:
 distribution
 *registry*
 sdo
 spec
 sca
The rational is we are dealing with generic issues beyond just sca  
and sdo

anyway,
especially I know some SDO implementations are using registry for  
types (and

elements).
There's one thing I don't even have preference myself at all: where  
to host

the tailoring for sca.
It can either be
 tuscany/java/registry/sca
or
  tuscany/java/sca/registry
Can we first try and solve the specific issue of WSDL loading and  
then see if we can make something generic? It feels as if a one-size- 
fits-all approach is going to introduce complexity we don't need in  
the SCA runtime. Also, doing this potentially introduces dependencies  
between the projects which was what we just eliminated and which I  
would not want to reintroduce.




 - It also seems a lot of inner interfaces are used. I think things
 could be simplified by not using inner interfaces at all, possibly
 segregating  classes using subpackages if necessary.


 Some people find inner interface helpful and better readable,
 I think the Java spec wouldn't include it if it's a absolute  
evil :-)

rantI think statics on interfaces like .INSTANCE are evil.
Thankfully, they are not widely used in Java technologies I am aware
of (outside SDO and EMF) as they cause so many problems in managed
environments where classloader isolation is important. ;-) I honestly
don't understand how this pattern is easier to use as there are
simple alternatives Java developers are familiar with such as IoC and
factories. /rant



The above paragraph was talking about inner interface, *not*  
singleton.
I understand singleton causes management difficulties although it  
makes

simplest/easiest Programming Model.
There's no singleton in API and WSDL API already.
I don't see you say inner interfaces are evil, however I can guess  
they're

not your preference and I sure will replace them in API and SPI.

Sorry to be so adamant but static references to implementation  
classes on interfaces have caused me a lot of grief in the past. On  
the inner interface issue I think it is more common to use Java  
packages, so thanks for accommodating this.



Brilliant idea! Using the WSDL API as example, we can offer
definition/message/portType/binding/service Registry
directly to SCA contained component exactly the way you mentioned,
and offer scope aware WSDLRegistries to non SCA-contained or low/ 
system

level programming.

I think we can simplify this even further: we just offer a WSDL  
registry that is held in the DeploymentContext and thrown away after  
the deployment process. We don't need the registry to manage any  
scoping as that is done by the runtime. Jeremy suggested this a while  
back, I believe. In this case, we would have a loader that would  
process import.wsdl and create the registry if needed, putting it  
in the DeploymentContext. Subsequent requests would key off that. At  
the end of the deployment process, the DeploymentContext is thrown  
away so we don't have to worry about the cache managing references to  
classloaders or having to implement complex scoping algorithms.



3-3. message/portType/binding/service may not necessarily reside in
 current
 Definition, they may be available from included/delegated  
Definitions.

  Without direct API to query message/portType/binding/service,
 users
 have to query current Definition first,
  then manually and recursively query all included/delegated
 Definitions,
 which is quite error-prone..
Could we provide a utility method or just modify the api to do this?
Jervis or Dan, how does Celtix handle this?

As a way to move forward, do you think we could assume for the time
being the runtime can handle resolving the correct registry instance
and we take the Celtix API and merge it with the API you are  
proposing?



Are you fine/satisfied with the Celtix (WSDL) API? If so, I can put  
a hold
on my efforts since I guess the Celtix (WSDL) API has an  
implementation

already.
I remember someone mentioned a SCDL registry before. If you think  
SCDL could

use a registry too, I can keep on the registry efforts.
Please let me know.
I don't think we need a SCDL registry but I definitely think you  
should keep working on the WSDL registry since we do need one. I took  
Celtix as an example since it seemed intuitive. Perhaps a good way  
forward is to look at their API and make some of the modifications  
you suggested? Then, once we are satisfied with  the API, we look at  
how to best implement it. I would start with the assumption that we  
just need a WSDL registry since I can't think of other model  
artifacts that need to be cached right now (there may be in the  
future but then we will have more use cases to work from). I'd also  
start with the assumption that scoping will be handled by the  
runtime, in this case the deployment context, and that 

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-05 Thread Yang ZHONG

ok, I'll propose a WSDL API similar to Celtix.

On 9/5/06, Jim Marino [EMAIL PROTECTED] wrote:



On Sep 5, 2006, at 11:22 AM, Yang ZHONG wrote:


 I've proposed hosting the registry dircetly under tuscany/java:
  distribution
  *registry*
  sdo
  spec
  sca
 The rational is we are dealing with generic issues beyond just sca
 and sdo
 anyway,
 especially I know some SDO implementations are using registry for
 types (and
 elements).
 There's one thing I don't even have preference myself at all: where
 to host
 the tailoring for sca.
 It can either be
  tuscany/java/registry/sca
 or
   tuscany/java/sca/registry
Can we first try and solve the specific issue of WSDL loading and
then see if we can make something generic? It feels as if a one-size-
fits-all approach is going to introduce complexity we don't need in
the SCA runtime. Also, doing this potentially introduces dependencies
between the projects which was what we just eliminated and which I
would not want to reintroduce.


  - It also seems a lot of inner interfaces are used. I think things
  could be simplified by not using inner interfaces at all, possibly
  segregating  classes using subpackages if necessary.
 
 
  Some people find inner interface helpful and better readable,
  I think the Java spec wouldn't include it if it's a absolute
 evil :-)
 rantI think statics on interfaces like .INSTANCE are evil.
 Thankfully, they are not widely used in Java technologies I am aware
 of (outside SDO and EMF) as they cause so many problems in managed
 environments where classloader isolation is important. ;-) I honestly
 don't understand how this pattern is easier to use as there are
 simple alternatives Java developers are familiar with such as IoC and
 factories. /rant


 The above paragraph was talking about inner interface, *not*
 singleton.
 I understand singleton causes management difficulties although it
 makes
 simplest/easiest Programming Model.
 There's no singleton in API and WSDL API already.
 I don't see you say inner interfaces are evil, however I can guess
 they're
 not your preference and I sure will replace them in API and SPI.

Sorry to be so adamant but static references to implementation
classes on interfaces have caused me a lot of grief in the past. On
the inner interface issue I think it is more common to use Java
packages, so thanks for accommodating this.


 Brilliant idea! Using the WSDL API as example, we can offer
 definition/message/portType/binding/service Registry
 directly to SCA contained component exactly the way you mentioned,
 and offer scope aware WSDLRegistries to non SCA-contained or low/
 system
 level programming.

I think we can simplify this even further: we just offer a WSDL
registry that is held in the DeploymentContext and thrown away after
the deployment process. We don't need the registry to manage any
scoping as that is done by the runtime. Jeremy suggested this a while
back, I believe. In this case, we would have a loader that would
process import.wsdl and create the registry if needed, putting it
in the DeploymentContext. Subsequent requests would key off that. At
the end of the deployment process, the DeploymentContext is thrown
away so we don't have to worry about the cache managing references to
classloaders or having to implement complex scoping algorithms.

 3-3. message/portType/binding/service may not necessarily reside in
  current
  Definition, they may be available from included/delegated
 Definitions.
   Without direct API to query message/portType/binding/service,
  users
  have to query current Definition first,
   then manually and recursively query all included/delegated
  Definitions,
  which is quite error-prone..
 Could we provide a utility method or just modify the api to do this?
 Jervis or Dan, how does Celtix handle this?
 
 As a way to move forward, do you think we could assume for the time
 being the runtime can handle resolving the correct registry instance
 and we take the Celtix API and merge it with the API you are
 proposing?


 Are you fine/satisfied with the Celtix (WSDL) API? If so, I can put
 a hold
 on my efforts since I guess the Celtix (WSDL) API has an
 implementation
 already.
 I remember someone mentioned a SCDL registry before. If you think
 SCDL could
 use a registry too, I can keep on the registry efforts.
 Please let me know.
I don't think we need a SCDL registry but I definitely think you
should keep working on the WSDL registry since we do need one. I took
Celtix as an example since it seemed intuitive. Perhaps a good way
forward is to look at their API and make some of the modifications
you suggested? Then, once we are satisfied with  the API, we look at
how to best implement it. I would start with the assumption that we
just need a WSDL registry since I can't think of other model
artifacts that need to be cached right now (there may be in the
future but then we will have more use cases to work from). I'd also
start with the assumption that scoping 

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-04 Thread Yang ZHONG

Really appreciate your compliment and thanks a lot for your comments.
My comments are below.


On 9/3/06, Jim Marino [EMAIL PROTECTED] wrote:


Hi Yang,

Thanks for your effort on this (the documentation is really
impressive too). I have some more comments based on an initial look:

- There appears to be a number of places static references on
interfaces are used, e.g. SymbolSpace.Registry. Doing this is really
problematic in a managed environment as we have found with SDO and
earlier versions of SCA which used .INSTANCE. As a Java developer I
also find this approach not really intuitive.  Is there a technical
reason for doing this?



Maybe the old attachment is confusing, I tried to remove it however I didn't
find a way to do that.
In the new attachment, I've already removed INSTANCE from API, and there's
no INSTANCE in WSDL API.
If you meant SPI, I didn't feel urgent to change right now from two
perspective:

2-1. SPI is not any part of user Programming Model at all, since it's
internal, we can change it any way later.
  I intend to focus on API, WSDL API and reference implementations so
that Ant and other folks can use as soon as possible.
  Then we can do fine tuning inside the implementations. So I
prioritize SPI changes lower/later than providing something working first.
2-2. There's a granularity to apply SCA. I'm pretty sure about two extremes:
  SCA is perfect for service invocation and SCA is not a replacement
for basic programming such as new ArrayList().
  For granularities between those two extremes, different people may
have different opinions.
  So I prioritize SPI changes lower/later than providing API, WSDL API
and something working first.

My current reference implementation has no dependency on SCA at all, it
enables easy development, easy debuging and problems isolation.
Once the implementation is stabilized, we can always have more time and
resources to refine what granularity to apply SCA.

- It also seems a lot of inner interfaces are used. I think things

could be simplified by not using inner interfaces at all, possibly
segregating  classes using subpackages if necessary.



Some people find inner interface helpful and better readable,
I think the Java spec wouldn't include it if it's a absolute evil :-)
An example of inner interface usage is EMF
interface EPackage
{
 interface Registry
}
therefore EPackage.Registry is a Registry of EPackages.
I don't really normally argue about interface styles, I've already changes
SymbolSpace.Registry to SymbolSpaceRegistry in the *new* attachment as you
suggested before.
If you're talking about NameSpace.xxx, I sure will change them too in next
update.

- I don't think we should hardcode component names into interfaces

nor do we need to use locateService() to find a component. Rather, we
should just rely on the container to inject the correct regsitry
instance through autowire into a component as in:

@Autowire
public void setRegistry(Registry myRegistry){
//
}



Right, I only documented non-SCA client Programming Model to use the
registry,
I hesitated to include SCA client one because of the requirement
(setRegistry) and the assumption of SCA clients know what to do.
Since you mention it (thank you), I'll also document the SCA client PM to
use the registry in next update.

Stepping back a bit, I would also like to understand the requirements

of the registry a little better and this is where my ignorance of
WSDL issues will probably show through...Do we need the ability to
cache using multidimensional keys? For example, if we didn't share
symbols across applications, I don't see that as a major performance
issue given the number of WSDLs and applications a typical runtime
instance is going to manage (limited) versus everything else that is
going on including creation of the assembly model and runtime
artifacts (many).  Instead, couldn't we just cache by deployed unit?



If I understand correctly, you concern why multiple dimensions.
A typical scenario is MyApplication.Ear = MyWeb.War + share.jar(
MyService.wsdl) + MyEJB.jar
and the share.jar is shared by both MyWeb and MyEJB.
Some frameworks has an option to check receiving data against interface,
incuding Java and I know SCA used to have that option.
Checking instance against model may have problems if the model is loaded as
more than one copies,
Xxx.class and SDO/EMF types all have such problems.
I don't know if current SCA ever computs equals, isSuperType and instanceof
between message/portType/binding/service models.
If never, I admit multi-dimension as a generic isuue doesn't have to be
applied to SCA except for performance concerns
(I've seen real customers sometimes have huge WSDL/XSD files and loading and
caching them more than once is unecessary pain for customers)

To help me understand things a bit better, why would a registry

interface like the one below not work for our purposes (let's assume
for the time being the container can provide the client code 

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-04 Thread Jim Marino

Hi Yang, comments inline.

On Sep 4, 2006, at 12:14 PM, Yang ZHONG wrote:



2-1. SPI is not any part of user Programming Model at all, since it's
internal, we can change it any way later.

I'd prefer before we check something in and use it throughout the  
code base we sort these issues (SPI, API, WSDL) out as they will  
impact a number of bindings.
My current reference implementation has no dependency on SCA at  
all, it

enables easy development, easy debuging and problems isolation.
Once the implementation is stabilized, we can always have more time  
and

resources to refine what granularity to apply SCA.
Where do we intend to house the code? If it is in the Java SCA  
project, I'd prefer we only have the capabilities we need and not  
build something that is a generic symbol cache. If the code will be  
maintained elsewhere, then I would tend to treat it as an external  
dependency.


- It also seems a lot of inner interfaces are used. I think things

could be simplified by not using inner interfaces at all, possibly
segregating  classes using subpackages if necessary.



Some people find inner interface helpful and better readable,
I think the Java spec wouldn't include it if it's a absolute evil :-)
rantI think statics on interfaces like .INSTANCE are evil.  
Thankfully, they are not widely used in Java technologies I am aware  
of (outside SDO and EMF) as they cause so many problems in managed  
environments where classloader isolation is important. ;-) I honestly  
don't understand how this pattern is easier to use as there are  
simple alternatives Java developers are familiar with such as IoC and  
factories. /rant



An example of inner interface usage is EMF
interface EPackage
{
 interface Registry
}
therefore EPackage.Registry is a Registry of EPackages.
I don't really normally argue about interface styles, I've already  
changes
SymbolSpace.Registry to SymbolSpaceRegistry in the *new* attachment  
as you

suggested before.
If you're talking about NameSpace.xxx, I sure will change them too  
in next

update.

Cool. Thanks.


Right, I only documented non-SCA client Programming Model to use the
registry,
I hesitated to include SCA client one because of the requirement
(setRegistry) and the assumption of SCA clients know what to do.
Since you mention it (thank you), I'll also document the SCA client  
PM to

use the registry in next update.


O.K., I think it is really simple:

Registry registry;

@Reference
public void setRegistry(Registry registry){

-or-

@Autowire
public void setRegistry(Registry registry){




If I understand correctly, you concern why multiple dimensions.
A typical scenario is MyApplication.Ear = MyWeb.War + share.jar(
MyService.wsdl) + MyEJB.jar
and the share.jar is shared by both MyWeb and MyEJB.
Some frameworks has an option to check receiving data against  
interface,

incuding Java and I know SCA used to have that option.



Checking instance against model may have problems if the model is  
loaded as

more than one copies,
Xxx.class and SDO/EMF types all have such problems.

We don't keep the model around during runtime operation so I don't  
think this is a problem for us.
I don't know if current SCA ever computs equals, isSuperType and  
instanceof

between message/portType/binding/service models.
Even if we did do this, would it ever be done across remote  
boundaries (a deployment unit)? At that point we have by-val  
semantics (and likely serialization) anyway.
If never, I admit multi-dimension as a generic isuue doesn't have  
to be

applied to SCA except for performance concerns
(I've seen real customers sometimes have huge WSDL/XSD files and  
loading and

caching them more than once is unecessary pain for customers)


Perhaps we can optimize as needed? If we cache per application, I  
don't see this as a huge performance hit. Also, I'd probably want  
things loaded separately in different deployment units as it  
simplifies re-deployment and application upgrades. So, I think  
caching per application and not multi-dimensionally should be the  
starting place.




I see at least 3 areas WSDLManager can improve (besides the multi- 
dimension

issue):
3-1. It's nice the WSDLManager supports location(String/URL) Scoping.
 however it doesn't seem supporting other Scoping such as
CompositeComponent
 Particularly, it's a problem when wsdlLocation/scdlLocation is  
absent
3-2. Scope delegation is not mentioned at all. e.g. a location  
query should

be able to be delegated to all included location,
  and a CompositeComponent query should be able to be delegated  
to all

included CompositeComponent
Perhaps we can make this the job of the runtime? In other words, just  
as SCA does not require applications to track instances and has a  
concept of Scope, we could do the same for the registry. This would  
mean client code requests a registry from the runtime and the runtime  
resolves the correct one:


@Autowire
public void setRegistry(Registry 

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-09-03 Thread Jim Marino

Hi Yang,

Thanks for your effort on this (the documentation is really  
impressive too). I have some more comments based on an initial look:


- There appears to be a number of places static references on  
interfaces are used, e.g. SymbolSpace.Registry. Doing this is really  
problematic in a managed environment as we have found with SDO and  
earlier versions of SCA which used .INSTANCE. As a Java developer I  
also find this approach not really intuitive.  Is there a technical  
reason for doing this?


- It also seems a lot of inner interfaces are used. I think things  
could be simplified by not using inner interfaces at all, possibly  
segregating  classes using subpackages if necessary.


- I don't think we should hardcode component names into interfaces  
nor do we need to use locateService() to find a component. Rather, we  
should just rely on the container to inject the correct regsitry  
instance through autowire into a component as in:


@Autowire
public void setRegistry(Registry myRegistry){
//
}


Stepping back a bit, I would also like to understand the requirements  
of the registry a little better and this is where my ignorance of  
WSDL issues will probably show through...Do we need the ability to  
cache using multidimensional keys? For example, if we didn't share  
symbols across applications, I don't see that as a major performance  
issue given the number of WSDLs and applications a typical runtime  
instance is going to manage (limited) versus everything else that is  
going on including creation of the assembly model and runtime  
artifacts (many).  Instead, couldn't we just cache by deployed unit?


To help me understand things a bit better, why would a registry  
interface like the one below not work for our purposes (let's assume  
for the time being the container can provide the client code with the  
correct manager instance scoped to a deployment unit/classloader)?


http://celtix.objectweb.org/docs/api/org/objectweb/celtix/wsdl/ 
WSDLManager.html


Again, thanks for all your effort.

Jim





On Sep 2, 2006, at 12:28 PM, Yang ZHONG wrote:


I've updated the registry proposal basing on feedbacks (thank everyone
especially Jeremy and Jim) and some time to refine diagrams and
examples/samples,
and proposed a WSDL Registry (thank Jeremy for strong-interface  
suggestion).

Please see the new attachment at
http://issues.apache.org/jira/secure/attachment/12340097/registry.zip
for JIRA
 http://issues.apache.org/jira/browse/TUSCANY-677

It seemed easy to overlook ReadMe.txt and miss some info already  
provided,
so please spend a little time on diagrams and examples/samples if  
possible.


The major change is the API Programming Model from
 SymbolSpace.Registry.INSTANCE
to
 CurrentCompositeContext.getContext().locateService(
SymbolSpaceRegistry.class, SymbolSpaceRegistry.SERVICE)
Thank Ant for detailed info.

I've tried not to involve Scoping in the WSDL Registry, so the API  
doesn't

mention Scoping at all.
However, a scope notation is still used in WSDLRegistry to make  
the API

practically useful.
But I've left the signature to be Object to be flexible/open enough.
Although the WSDL Registry proposal doesn't cover Scoping, it's not  
really

necessarily too early to discuss Scoping,
so that we might have a little bit more thorough thinking/ 
discussion about

Scoping before the eventual approach adopting.

I see at least 3 kinds of scenario (examples assume WSDLRegistries  
WSDL =
CurrentCompositeContext.getContext().locateService 
( WSDLRegistries.class,

WSDLRegistries.SERVICE)):

3-1. Designated WSDL location.
Users may need Message/PortType/Binding/Service/Definition lookup  
to be

scoped by the designated location,
and recursively delegated to all included locations. e.g. (location
dimension/Scoping)
 WSDL.getInterfaceRegistry(
FTP://hosting.org/WSDL/vertical.wsdlftp://hosting.org/WSDL/ 
vertical.wsdl

)

3-2. Absent WSDL location with designated CompositeComponent (thank  
Raymond

for explaining me Composite).
Users may need Message/PortType/Binding/Service/Definition lookup  
to be

scoped by the designated CompositeComponent,
and recursively delegated to all included CompositeComponents. e.g.
(CompositeComponent Scoping)
 WSDL.getBindingRegistry( compositeComponent)

3-3. Nothing designated.
Users may need Message/PortType/Binding/Service/Definition lookup  
to be

scoped by context.
I don't know SCA confident enough yet to propose anything, however  
I hope

you don't mind me sharing that I feel CompositeComponent is a natural
context Scoping for SCA.
If that's the approach adopted, the lookup may need to be scoped by  
the

context CompositeComponent and recursively delegated to all included
CompositeComponents. e.g. (no matter what context Scoping ends up  
being

adopted)
 WSDL.getServiceRegistry( null)

For either 3-2 or 3-3, we may need something like:
 static Scoping COMPOSITE_SCOPING = new ScopingCompositeComponent()
 {
   public IterableCompositeComponent 

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Raymond Feng

Hi,

Please see my comments in line.

Thanks,
Raymond

- Original Message - 
From: Jeremy Boynes [EMAIL PROTECTED]

To: tuscany-dev@ws.apache.org
Sent: Wednesday, August 30, 2006 8:19 AM
Subject: Registry proposal, was: Delivery Status Notification (Failure)


I might be missing something as well but I didn't see any code under  impl 
at all


I guess it's for the API/SPI review first.



I'm also with Ant in thinking we should not have a dependency on EMF.




From the javadoc, I don't see the EMF dependencies.


I'd also add that I found it difficult to grok the relationships  between 
all the interfaces and inner-interfaces and how the behaviour  would 
integrate with Map semantics - for example, how does this  differ from 
just using strongly-typed Maps?


I agree. If the interface is designed for public API/SPI, it should be 
first-class interface instead of being inner.


I'm also seeing a lot of naming conflicts among API and SPI 
interfaces/classes/parameterized types. This seems to be very problematic to 
me. When we run out of names, it means to me we don't model it correctly.


A class diagram would be of great help for us.



I'm also not convinced that throwing everything (all types of stuff)  into 
one central registry model is a good way to go. I can see a lot  of 
benefit in having more specialized interfaces tailored for each  type of 
stuff.


I guess we can reuse the same infrastrcture backed by the generic registry 
but provide more specialized interfaces on top of it. And we can also choose 
to have separate instances of registries for specific domains.




--
Jeremy

On Aug 30, 2006, at 4:10 AM, ant elder wrote:


Having this attached to a JIRA is fine, thats preferred over sending
attachments to the dev list.

Thanks for all this, I've only just started looking but it looks very
comprehensive, a lot more than I was expecting 8-). I've a few  questions 
so
far. Firstly you didn't click the button granting license of the  code to 
the
ASF, was that an oversight? The readme talks about some test  examples 
and
samples showing how to use the registry but the test folders don't  seem 
to

be included in the zip? From the brief look it wasn't clear to me  if the
registry will require EMF, hopefully it doesn't?

Thanks,

  ...ant

On 8/30/06, Yang ZHONG [EMAIL PROTECTED] wrote:


Neither tuscany-dev nor infra takes my email with attachment, so I've
attached file for review into
http://issues.apache.org/jira/browse/TUSCANY-677

Sorry for the inconvenience and thanks for any comment.

On 8/30/06, Mail Delivery Subsystem [EMAIL PROTECTED] 
wrote:


 This is an automatically generated Delivery Status Notification

 Delivery to the following recipient failed permanently:

 [EMAIL PROTECTED]

 Technical details of permanent failure:
 PERM_FAILURE: SMTP Error (state 12): 552 Message rejected as it
is spam
 (body)

   - Original message -

 Received: by 10.35.31.14 with SMTP id i14mr634348pyj;
Wed, 30 Aug 2006 03:06:43 -0700 (PDT)
 Received: by 10.35.103.13 with HTTP; Wed, 30 Aug 2006 03:06:41
-0700
(PDT)
 Message-ID:
[EMAIL PROTECTED]

 Date: Wed, 30 Aug 2006 03:06:41 -0700
 From: Yang ZHONG [EMAIL PROTECTED]
 To: tuscany-dev@ws.apache.org
 Subject: Re: Auto discovering WSDL
 Cc: [EMAIL PROTECTED]
 In-Reply-To:
[EMAIL PROTECTED]

 MIME-Version: 1.0
 Content-Type: multipart/mixed;
boundary==_Part_28704_31437365.1156932401933
 References: 
 [EMAIL PROTECTED]
ems2.IONAGLOBAL.COM

[EMAIL PROTECTED]

[EMAIL PROTECTED]

[EMAIL PROTECTED]

[EMAIL PROTECTED]

 --=_Part_28704_31437365.1156932401933
 Content-Type: multipart/alternative;
boundary==_Part_28705_19724073.1156932401933

 --=_Part_28705_19724073.1156932401933
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline

 Could you please review the registry API and SPI?

   - Message truncated -




--

Yang ZHONG





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Yang ZHONG

Raymond guessed right that it's an API/SPI review, so no impl/tests attached
yet although I have some impl already.

Ant guessed right too that I forgot to grant license, I must be not thinking
straight working late :-)
I don't see any link to post-grant, I'll remember to do that for following
attachments. Thank Ant.

There's neither* EMF *nor* Eclipse dependency. impl/EMF and impl/Eclipse
are just subproject targeting certain usage.
Please take a look at ReadMe.txt for more details, it also have info to find
Class Diagram and others.

I agree with Jeremy that strongly-typed Maps/interfaces are sometimes
preferred.
Actually, generalization and extensibility is exactly the selling point of
this generic registry.
Tailoring can be done based on the framework/infrastructure/fundation (as
Raymond commented).
There're at least two ways to provide strong interfaces over this registry.
2-1. Delegating
new StrongInterface()
{
 public MySymbol getMySymbol (QName qName)
 {
   return mySymbolSpace.resolve( qName);
 }
}
2-2. Extending
 class StrongInterfaceImpl extends SymbolSpaceImpl implement
StrongInterface

Thank everyone for all comments.

On 8/30/06, Raymond Feng [EMAIL PROTECTED] wrote:


Hi,

Please see my comments in line.

Thanks,
Raymond

- Original Message -
From: Jeremy Boynes [EMAIL PROTECTED]
To: tuscany-dev@ws.apache.org
Sent: Wednesday, August 30, 2006 8:19 AM
Subject: Registry proposal, was: Delivery Status Notification (Failure)


I might be missing something as well but I didn't see any code
under  impl
at all

I guess it's for the API/SPI review first.


 I'm also with Ant in thinking we should not have a dependency on EMF.


From the javadoc, I don't see the EMF dependencies.

 I'd also add that I found it difficult to grok the
relationships  between
 all the interfaces and inner-interfaces and how the behaviour  would
 integrate with Map semantics - for example, how does this  differ from
 just using strongly-typed Maps?

I agree. If the interface is designed for public API/SPI, it should be
first-class interface instead of being inner.

I'm also seeing a lot of naming conflicts among API and SPI
interfaces/classes/parameterized types. This seems to be very problematic
to
me. When we run out of names, it means to me we don't model it correctly.

A class diagram would be of great help for us.


 I'm also not convinced that throwing everything (all types of
stuff)  into
 one central registry model is a good way to go. I can see a lot  of
 benefit in having more specialized interfaces tailored for each  type of
 stuff.

I guess we can reuse the same infrastrcture backed by the generic registry
but provide more specialized interfaces on top of it. And we can also
choose
to have separate instances of registries for specific domains.


 --
 Jeremy

 On Aug 30, 2006, at 4:10 AM, ant elder wrote:

 Having this attached to a JIRA is fine, thats preferred over sending
 attachments to the dev list.

 Thanks for all this, I've only just started looking but it looks very
 comprehensive, a lot more than I was expecting 8-). I've a
few  questions
 so
 far. Firstly you didn't click the button granting license of the  code
to
 the
 ASF, was that an oversight? The readme talks about some test  examples
 and
 samples showing how to use the registry but the test folders
don't  seem
 to
 be included in the zip? From the brief look it wasn't clear to me  if
the
 registry will require EMF, hopefully it doesn't?

 Thanks,

   ...ant

 On 8/30/06, Yang ZHONG [EMAIL PROTECTED] wrote:

 Neither tuscany-dev nor infra takes my email with attachment, so I've
 attached file for review into
 http://issues.apache.org/jira/browse/TUSCANY-677

 Sorry for the inconvenience and thanks for any comment.

 On 8/30/06, Mail Delivery Subsystem [EMAIL PROTECTED]
 wrote:
 
  This is an automatically generated Delivery Status Notification
 
  Delivery to the following recipient failed permanently:
 
  [EMAIL PROTECTED]
 
  Technical details of permanent failure:
  PERM_FAILURE: SMTP Error (state 12): 552 Message rejected as it
 is spam
  (body)
 
- Original message -
 
  Received: by 10.35.31.14 with SMTP id i14mr634348pyj;
 Wed, 30 Aug 2006 03:06:43 -0700 (PDT)
  Received: by 10.35.103.13 with HTTP; Wed, 30 Aug 2006 03:06:41
 -0700
 (PDT)
  Message-ID:
 [EMAIL PROTECTED]
 
  Date: Wed, 30 Aug 2006 03:06:41 -0700
  From: Yang ZHONG [EMAIL PROTECTED]
  To: tuscany-dev@ws.apache.org
  Subject: Re: Auto discovering WSDL
  Cc: [EMAIL PROTECTED]
  In-Reply-To:
 [EMAIL PROTECTED]
 
  MIME-Version: 1.0
  Content-Type: multipart/mixed;
 boundary==_Part_28704_31437365.1156932401933
  References: 
  [EMAIL PROTECTED]
 ems2.IONAGLOBAL.COM
 
 [EMAIL PROTECTED]
 
 [EMAIL PROTECTED]
 
 [EMAIL PROTECTED]
 
 [EMAIL PROTECTED]
 
  --=_Part_28704_31437365.1156932401933
  Content-Type: multipart/alternative;
 boundary==_Part_28705_19724073.1156932401933
 
  --=_Part_28705_19724073.1156932401933

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Jim Marino
I had one additional comment: is there a reason we have to use the  
.INSTANCE approach to locating the default Provider?


Jim

On Aug 30, 2006, at 9:39 AM, Yang ZHONG wrote:

Raymond guessed right that it's an API/SPI review, so no impl/tests  
attached

yet although I have some impl already.

Ant guessed right too that I forgot to grant license, I must be not  
thinking

straight working late :-)
I don't see any link to post-grant, I'll remember to do that for  
following

attachments. Thank Ant.

There's neither* EMF *nor* Eclipse dependency. impl/EMF and impl/ 
Eclipse

are just subproject targeting certain usage.
Please take a look at ReadMe.txt for more details, it also have  
info to find

Class Diagram and others.

I agree with Jeremy that strongly-typed Maps/interfaces are sometimes
preferred.
Actually, generalization and extensibility is exactly the selling  
point of

this generic registry.
Tailoring can be done based on the framework/infrastructure/ 
fundation (as

Raymond commented).
There're at least two ways to provide strong interfaces over this  
registry.

2-1. Delegating
new StrongInterface()
{
 public MySymbol getMySymbol (QName qName)
 {
   return mySymbolSpace.resolve( qName);
 }
}
2-2. Extending
 class StrongInterfaceImpl extends SymbolSpaceImpl implement
StrongInterface

Thank everyone for all comments.

On 8/30/06, Raymond Feng [EMAIL PROTECTED] wrote:


Hi,

Please see my comments in line.

Thanks,
Raymond

- Original Message -
From: Jeremy Boynes [EMAIL PROTECTED]
To: tuscany-dev@ws.apache.org
Sent: Wednesday, August 30, 2006 8:19 AM
Subject: Registry proposal, was: Delivery Status Notification  
(Failure)



I might be missing something as well but I didn't see any code
under  impl
at all

I guess it's for the API/SPI review first.


 I'm also with Ant in thinking we should not have a dependency on  
EMF.



From the javadoc, I don't see the EMF dependencies.

 I'd also add that I found it difficult to grok the
relationships  between
 all the interfaces and inner-interfaces and how the behaviour   
would
 integrate with Map semantics - for example, how does this   
differ from

 just using strongly-typed Maps?

I agree. If the interface is designed for public API/SPI, it  
should be

first-class interface instead of being inner.

I'm also seeing a lot of naming conflicts among API and SPI
interfaces/classes/parameterized types. This seems to be very  
problematic

to
me. When we run out of names, it means to me we don't model it  
correctly.


A class diagram would be of great help for us.


 I'm also not convinced that throwing everything (all types of
stuff)  into
 one central registry model is a good way to go. I can see a lot  of
 benefit in having more specialized interfaces tailored for each   
type of

 stuff.

I guess we can reuse the same infrastrcture backed by the generic  
registry

but provide more specialized interfaces on top of it. And we can also
choose
to have separate instances of registries for specific domains.


 --
 Jeremy

 On Aug 30, 2006, at 4:10 AM, ant elder wrote:

 Having this attached to a JIRA is fine, thats preferred over  
sending

 attachments to the dev list.

 Thanks for all this, I've only just started looking but it  
looks very

 comprehensive, a lot more than I was expecting 8-). I've a
few  questions
 so
 far. Firstly you didn't click the button granting license of  
the  code

to
 the
 ASF, was that an oversight? The readme talks about some test   
examples

 and
 samples showing how to use the registry but the test folders
don't  seem
 to
 be included in the zip? From the brief look it wasn't clear to  
me  if

the
 registry will require EMF, hopefully it doesn't?

 Thanks,

   ...ant

 On 8/30/06, Yang ZHONG [EMAIL PROTECTED] wrote:

 Neither tuscany-dev nor infra takes my email with attachment,  
so I've

 attached file for review into
 http://issues.apache.org/jira/browse/TUSCANY-677

 Sorry for the inconvenience and thanks for any comment.

 On 8/30/06, Mail Delivery Subsystem mailer- 
[EMAIL PROTECTED]

 wrote:
 
  This is an automatically generated Delivery Status Notification
 
  Delivery to the following recipient failed permanently:
 
  [EMAIL PROTECTED]
 
  Technical details of permanent failure:
  PERM_FAILURE: SMTP Error (state 12): 552 Message rejected as it
 is spam
  (body)
 
- Original message -
 
  Received: by 10.35.31.14 with SMTP id i14mr634348pyj;
 Wed, 30 Aug 2006 03:06:43 -0700 (PDT)
  Received: by 10.35.103.13 with HTTP; Wed, 30 Aug 2006 03:06:41
 -0700
 (PDT)
  Message-ID:
 [EMAIL PROTECTED]
 
  Date: Wed, 30 Aug 2006 03:06:41 -0700
  From: Yang ZHONG [EMAIL PROTECTED]
  To: tuscany-dev@ws.apache.org
  Subject: Re: Auto discovering WSDL
  Cc: [EMAIL PROTECTED]
  In-Reply-To:
 [EMAIL PROTECTED]
 
  MIME-Version: 1.0
  Content-Type: multipart/mixed;
 boundary==_Part_28704_31437365.1156932401933
  References: 
  [EMAIL PROTECTED]
 ems2.IONAGLOBAL.COM
 
 [EMAIL

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Jeremy Boynes

I don't think we need Provider at all.
--
Jeremy

On Aug 30, 2006, at 9:59 AM, Jim Marino wrote:

I had one additional comment: is there a reason we have to use the  
.INSTANCE approach to locating the default Provider?


Jim

On Aug 30, 2006, at 9:39 AM, Yang ZHONG wrote:

Raymond guessed right that it's an API/SPI review, so no impl/ 
tests attached

yet although I have some impl already.

Ant guessed right too that I forgot to grant license, I must be  
not thinking

straight working late :-)
I don't see any link to post-grant, I'll remember to do that for  
following

attachments. Thank Ant.

There's neither* EMF *nor* Eclipse dependency. impl/EMF and impl/ 
Eclipse

are just subproject targeting certain usage.
Please take a look at ReadMe.txt for more details, it also have  
info to find

Class Diagram and others.

I agree with Jeremy that strongly-typed Maps/interfaces are sometimes
preferred.
Actually, generalization and extensibility is exactly the selling  
point of

this generic registry.
Tailoring can be done based on the framework/infrastructure/ 
fundation (as

Raymond commented).
There're at least two ways to provide strong interfaces over this  
registry.

2-1. Delegating
new StrongInterface()
{
 public MySymbol getMySymbol (QName qName)
 {
   return mySymbolSpace.resolve( qName);
 }
}
2-2. Extending
 class StrongInterfaceImpl extends SymbolSpaceImpl implement
StrongInterface

Thank everyone for all comments.

On 8/30/06, Raymond Feng [EMAIL PROTECTED] wrote:


Hi,

Please see my comments in line.

Thanks,
Raymond

- Original Message -
From: Jeremy Boynes [EMAIL PROTECTED]
To: tuscany-dev@ws.apache.org
Sent: Wednesday, August 30, 2006 8:19 AM
Subject: Registry proposal, was: Delivery Status Notification  
(Failure)



I might be missing something as well but I didn't see any code
under  impl
at all

I guess it's for the API/SPI review first.


 I'm also with Ant in thinking we should not have a dependency  
on EMF.



From the javadoc, I don't see the EMF dependencies.

 I'd also add that I found it difficult to grok the
relationships  between
 all the interfaces and inner-interfaces and how the behaviour   
would
 integrate with Map semantics - for example, how does this   
differ from

 just using strongly-typed Maps?

I agree. If the interface is designed for public API/SPI, it  
should be

first-class interface instead of being inner.

I'm also seeing a lot of naming conflicts among API and SPI
interfaces/classes/parameterized types. This seems to be very  
problematic

to
me. When we run out of names, it means to me we don't model it  
correctly.


A class diagram would be of great help for us.


 I'm also not convinced that throwing everything (all types of
stuff)  into
 one central registry model is a good way to go. I can see a  
lot  of
 benefit in having more specialized interfaces tailored for  
each  type of

 stuff.

I guess we can reuse the same infrastrcture backed by the generic  
registry
but provide more specialized interfaces on top of it. And we can  
also

choose
to have separate instances of registries for specific domains.


 --
 Jeremy

 On Aug 30, 2006, at 4:10 AM, ant elder wrote:

 Having this attached to a JIRA is fine, thats preferred over  
sending

 attachments to the dev list.

 Thanks for all this, I've only just started looking but it  
looks very

 comprehensive, a lot more than I was expecting 8-). I've a
few  questions
 so
 far. Firstly you didn't click the button granting license of  
the  code

to
 the
 ASF, was that an oversight? The readme talks about some test   
examples

 and
 samples showing how to use the registry but the test folders
don't  seem
 to
 be included in the zip? From the brief look it wasn't clear to  
me  if

the
 registry will require EMF, hopefully it doesn't?

 Thanks,

   ...ant

 On 8/30/06, Yang ZHONG [EMAIL PROTECTED] wrote:

 Neither tuscany-dev nor infra takes my email with attachment,  
so I've

 attached file for review into
 http://issues.apache.org/jira/browse/TUSCANY-677

 Sorry for the inconvenience and thanks for any comment.

 On 8/30/06, Mail Delivery Subsystem mailer- 
[EMAIL PROTECTED]

 wrote:
 
  This is an automatically generated Delivery Status  
Notification

 
  Delivery to the following recipient failed permanently:
 
  [EMAIL PROTECTED]
 
  Technical details of permanent failure:
  PERM_FAILURE: SMTP Error (state 12): 552 Message rejected  
as it

 is spam
  (body)
 
- Original message -
 
  Received: by 10.35.31.14 with SMTP id i14mr634348pyj;
 Wed, 30 Aug 2006 03:06:43 -0700 (PDT)
  Received: by 10.35.103.13 with HTTP; Wed, 30 Aug 2006 03:06:41
 -0700
 (PDT)
  Message-ID:
 [EMAIL PROTECTED]
 
  Date: Wed, 30 Aug 2006 03:06:41 -0700
  From: Yang ZHONG [EMAIL PROTECTED]
  To: tuscany-dev@ws.apache.org
  Subject: Re: Auto discovering WSDL
  Cc: [EMAIL PROTECTED]
  In-Reply-To:
 [EMAIL PROTECTED]
 
  MIME-Version: 1.0
  Content-Type: multipart/mixed;
 boundary

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Yang ZHONG

I'm fine with other service locating mechanisms, please name one and I'll
update.

Please keep little dependency. If the other mechanism(s) has dependency more
than just J2SE such as SCA, JNDI repository,
may be we can have several mechanism coexisted target various requirement...

Thanks again for comments.

On 8/30/06, Jeremy Boynes [EMAIL PROTECTED] wrote:


I don't think we need Provider at all.
--
Jeremy

On Aug 30, 2006, at 9:59 AM, Jim Marino wrote:

 I had one additional comment: is there a reason we have to use the
 .INSTANCE approach to locating the default Provider?

 Jim

 On Aug 30, 2006, at 9:39 AM, Yang ZHONG wrote:

 Raymond guessed right that it's an API/SPI review, so no impl/
 tests attached
 yet although I have some impl already.

 Ant guessed right too that I forgot to grant license, I must be
 not thinking
 straight working late :-)
 I don't see any link to post-grant, I'll remember to do that for
 following
 attachments. Thank Ant.

 There's neither* EMF *nor* Eclipse dependency. impl/EMF and impl/
 Eclipse
 are just subproject targeting certain usage.
 Please take a look at ReadMe.txt for more details, it also have
 info to find
 Class Diagram and others.

 I agree with Jeremy that strongly-typed Maps/interfaces are sometimes
 preferred.
 Actually, generalization and extensibility is exactly the selling
 point of
 this generic registry.
 Tailoring can be done based on the framework/infrastructure/
 fundation (as
 Raymond commented).
 There're at least two ways to provide strong interfaces over this
 registry.
 2-1. Delegating
 new StrongInterface()
 {
  public MySymbol getMySymbol (QName qName)
  {
return mySymbolSpace.resolve( qName);
  }
 }
 2-2. Extending
  class StrongInterfaceImpl extends SymbolSpaceImpl implement
 StrongInterface

 Thank everyone for all comments.

 On 8/30/06, Raymond Feng [EMAIL PROTECTED] wrote:

 Hi,

 Please see my comments in line.

 Thanks,
 Raymond

 - Original Message -
 From: Jeremy Boynes [EMAIL PROTECTED]
 To: tuscany-dev@ws.apache.org
 Sent: Wednesday, August 30, 2006 8:19 AM
 Subject: Registry proposal, was: Delivery Status Notification
 (Failure)


 I might be missing something as well but I didn't see any code
 under  impl
 at all

 I guess it's for the API/SPI review first.

 
  I'm also with Ant in thinking we should not have a dependency
 on EMF.
 

 From the javadoc, I don't see the EMF dependencies.

  I'd also add that I found it difficult to grok the
 relationships  between
  all the interfaces and inner-interfaces and how the behaviour
 would
  integrate with Map semantics - for example, how does this
 differ from
  just using strongly-typed Maps?

 I agree. If the interface is designed for public API/SPI, it
 should be
 first-class interface instead of being inner.

 I'm also seeing a lot of naming conflicts among API and SPI
 interfaces/classes/parameterized types. This seems to be very
 problematic
 to
 me. When we run out of names, it means to me we don't model it
 correctly.

 A class diagram would be of great help for us.

 
  I'm also not convinced that throwing everything (all types of
 stuff)  into
  one central registry model is a good way to go. I can see a
 lot  of
  benefit in having more specialized interfaces tailored for
 each  type of
  stuff.

 I guess we can reuse the same infrastrcture backed by the generic
 registry
 but provide more specialized interfaces on top of it. And we can
 also
 choose
 to have separate instances of registries for specific domains.

 
  --
  Jeremy
 
  On Aug 30, 2006, at 4:10 AM, ant elder wrote:
 
  Having this attached to a JIRA is fine, thats preferred over
 sending
  attachments to the dev list.
 
  Thanks for all this, I've only just started looking but it
 looks very
  comprehensive, a lot more than I was expecting 8-). I've a
 few  questions
  so
  far. Firstly you didn't click the button granting license of
 the  code
 to
  the
  ASF, was that an oversight? The readme talks about some test
 examples
  and
  samples showing how to use the registry but the test folders
 don't  seem
  to
  be included in the zip? From the brief look it wasn't clear to
 me  if
 the
  registry will require EMF, hopefully it doesn't?
 
  Thanks,
 
...ant
 
  On 8/30/06, Yang ZHONG [EMAIL PROTECTED] wrote:
 
  Neither tuscany-dev nor infra takes my email with attachment,
 so I've
  attached file for review into
  http://issues.apache.org/jira/browse/TUSCANY-677
 
  Sorry for the inconvenience and thanks for any comment.
 
  On 8/30/06, Mail Delivery Subsystem mailer-
 [EMAIL PROTECTED]
  wrote:
  
   This is an automatically generated Delivery Status
 Notification
  
   Delivery to the following recipient failed permanently:
  
   [EMAIL PROTECTED]
  
   Technical details of permanent failure:
   PERM_FAILURE: SMTP Error (state 12): 552 Message rejected
 as it
  is spam
   (body)
  
 - Original message -
  
   Received: by 10.35.31.14 with SMTP id i14mr634348pyj

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Jeremy Boynes
As part of Tuscany there should not be any mechanism in a API for  
service location - that is the responsibility of the IoC container.

--
Jeremy

On Aug 30, 2006, at 10:43 AM, Yang ZHONG wrote:

I'm fine with other service locating mechanisms, please name one  
and I'll

update.

Please keep little dependency. If the other mechanism(s) has  
dependency more

than just J2SE such as SCA, JNDI repository,
may be we can have several mechanism coexisted target various  
requirement...


Thanks again for comments.

On 8/30/06, Jeremy Boynes [EMAIL PROTECTED] wrote:


I don't think we need Provider at all.
--
Jeremy

On Aug 30, 2006, at 9:59 AM, Jim Marino wrote:

 I had one additional comment: is there a reason we have to use the
 .INSTANCE approach to locating the default Provider?

 Jim

 On Aug 30, 2006, at 9:39 AM, Yang ZHONG wrote:

 Raymond guessed right that it's an API/SPI review, so no impl/
 tests attached
 yet although I have some impl already.

 Ant guessed right too that I forgot to grant license, I must be
 not thinking
 straight working late :-)
 I don't see any link to post-grant, I'll remember to do that for
 following
 attachments. Thank Ant.

 There's neither* EMF *nor* Eclipse dependency. impl/EMF and impl/
 Eclipse
 are just subproject targeting certain usage.
 Please take a look at ReadMe.txt for more details, it also have
 info to find
 Class Diagram and others.

 I agree with Jeremy that strongly-typed Maps/interfaces are  
sometimes

 preferred.
 Actually, generalization and extensibility is exactly the selling
 point of
 this generic registry.
 Tailoring can be done based on the framework/infrastructure/
 fundation (as
 Raymond commented).
 There're at least two ways to provide strong interfaces over this
 registry.
 2-1. Delegating
 new StrongInterface()
 {
  public MySymbol getMySymbol (QName qName)
  {
return mySymbolSpace.resolve( qName);
  }
 }
 2-2. Extending
  class StrongInterfaceImpl extends SymbolSpaceImpl implement
 StrongInterface

 Thank everyone for all comments.

 On 8/30/06, Raymond Feng [EMAIL PROTECTED] wrote:

 Hi,

 Please see my comments in line.

 Thanks,
 Raymond

 - Original Message -
 From: Jeremy Boynes [EMAIL PROTECTED]
 To: tuscany-dev@ws.apache.org
 Sent: Wednesday, August 30, 2006 8:19 AM
 Subject: Registry proposal, was: Delivery Status Notification
 (Failure)


 I might be missing something as well but I didn't see any code
 under  impl
 at all

 I guess it's for the API/SPI review first.

 
  I'm also with Ant in thinking we should not have a dependency
 on EMF.
 

 From the javadoc, I don't see the EMF dependencies.

  I'd also add that I found it difficult to grok the
 relationships  between
  all the interfaces and inner-interfaces and how the behaviour
 would
  integrate with Map semantics - for example, how does this
 differ from
  just using strongly-typed Maps?

 I agree. If the interface is designed for public API/SPI, it
 should be
 first-class interface instead of being inner.

 I'm also seeing a lot of naming conflicts among API and SPI
 interfaces/classes/parameterized types. This seems to be very
 problematic
 to
 me. When we run out of names, it means to me we don't model it
 correctly.

 A class diagram would be of great help for us.

 
  I'm also not convinced that throwing everything (all types of
 stuff)  into
  one central registry model is a good way to go. I can see a
 lot  of
  benefit in having more specialized interfaces tailored for
 each  type of
  stuff.

 I guess we can reuse the same infrastrcture backed by the generic
 registry
 but provide more specialized interfaces on top of it. And we can
 also
 choose
 to have separate instances of registries for specific domains.

 
  --
  Jeremy
 
  On Aug 30, 2006, at 4:10 AM, ant elder wrote:
 
  Having this attached to a JIRA is fine, thats preferred over
 sending
  attachments to the dev list.
 
  Thanks for all this, I've only just started looking but it
 looks very
  comprehensive, a lot more than I was expecting 8-). I've a
 few  questions
  so
  far. Firstly you didn't click the button granting license of
 the  code
 to
  the
  ASF, was that an oversight? The readme talks about some test
 examples
  and
  samples showing how to use the registry but the test folders
 don't  seem
  to
  be included in the zip? From the brief look it wasn't clear to
 me  if
 the
  registry will require EMF, hopefully it doesn't?
 
  Thanks,
 
...ant
 
  On 8/30/06, Yang ZHONG [EMAIL PROTECTED] wrote:
 
  Neither tuscany-dev nor infra takes my email with attachment,
 so I've
  attached file for review into
  http://issues.apache.org/jira/browse/TUSCANY-677
 
  Sorry for the inconvenience and thanks for any comment.
 
  On 8/30/06, Mail Delivery Subsystem mailer-
 [EMAIL PROTECTED]
  wrote:
  
   This is an automatically generated Delivery Status
 Notification
  
   Delivery to the following recipient failed permanently:
  
   [EMAIL PROTECTED]
  
   Technical details

Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Jim Marino


On Aug 30, 2006, at 10:49 AM, Jeremy Boynes wrote:

As part of Tuscany there should not be any mechanism in a API for  
service location - that is the responsibility of the IoC container.


+1 (which nicely avoids external dependencies on some locator  
implementation and evil Singletons)



--
Jeremy




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Yang ZHONG

Can someone propose a SCA specific API mentioned by Jeremy please?
Something like
 interface ScaRegistry
 {
   Definition getDefinition (String nameSpace);
   Message getMessage (QName);
 }
I don't know the SCA requirement much enough to make such proposal.

At the same time, we can practise IoC in ScaRegistry service locating.
I hope I can learn from that practice and update the registry generic API
accordingly.

Thanks for pointing out a nice mechanism.

On 8/30/06, Jim Marino [EMAIL PROTECTED] wrote:



On Aug 30, 2006, at 10:49 AM, Jeremy Boynes wrote:

 As part of Tuscany there should not be any mechanism in a API for
 service location - that is the responsibility of the IoC container.

+1 (which nicely avoids external dependencies on some locator
implementation and evil Singletons)

 --
 Jeremy



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--

Yang ZHONG


Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread ant elder

In case its not completely clear from Jeremy and Jim's emails what to do:
you could define a client interface for the registry, write an
implementation of that and define that impl class name in some scdl. We can
then include the scdl in the runtime and things could use autowire to get
hold of the registry instance. As and example of this you can look at our
ServletHost, ServletHostImpl, how thats defined in the web app scdl, and
then how thats used by the Axis2 binding:

http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java
http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/runtime/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/ServletHostImpl.java
http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/runtime/webapp-host/src/main/resources/META-INF/sca/webapp.system.scdl
http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java

  ...ant

On 8/30/06, Jim Marino [EMAIL PROTECTED] wrote:



On Aug 30, 2006, at 10:49 AM, Jeremy Boynes wrote:

 As part of Tuscany there should not be any mechanism in a API for
 service location - that is the responsibility of the IoC container.

+1 (which nicely avoids external dependencies on some locator
implementation and evil Singletons)

 --
 Jeremy



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Jeremy Boynes
I'm having trouble parsing this. Are you talking about an SCA  
registry, or a WSDL registry, or the mechanism for locating it (via  
IoC as Ant described or something else)?


I was saying that in an IoC world there is /no/ provider part of the  
API - a user never locates anything, they declare dependencies and  
the container resolves them. The dependency would be on the actual  
client interface (SymbolSpace.Registry I guess but I've already  
admitted to not grokking the interfaces).


--
Jeremy

On Aug 30, 2006, at 11:28 AM, Yang ZHONG wrote:


Can someone propose a SCA specific API mentioned by Jeremy please?
Something like
 interface ScaRegistry
 {
   Definition getDefinition (String nameSpace);
   Message getMessage (QName);
 }
I don't know the SCA requirement much enough to make such proposal.

At the same time, we can practise IoC in ScaRegistry service locating.
I hope I can learn from that practice and update the registry  
generic API

accordingly.

Thanks for pointing out a nice mechanism.

On 8/30/06, Jim Marino [EMAIL PROTECTED] wrote:



On Aug 30, 2006, at 10:49 AM, Jeremy Boynes wrote:

 As part of Tuscany there should not be any mechanism in a API for
 service location - that is the responsibility of the IoC  
container.


+1 (which nicely avoids external dependencies on some locator
implementation and evil Singletons)

 --
 Jeremy



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--

Yang ZHONG



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Yang ZHONG

Thank Ant so much for details, that's very helpful!

I'll update the API:
2-1. remove INSTANCE
2-2. demonstrate the SCA way to get SymbolSpace.Registry implementation in
JavaDoc

SymbolSpace.Registry is the generic registry interface, it doesn't prevent
us from having SCA specific interface(s).
I can come up with a WSDL Registry interface proposal. Can someone tell me
which model is used by SCA: WST, WSDL4J, EMF, home grown or anything else?

On 8/30/06, Jeremy Boynes [EMAIL PROTECTED] wrote:


I'm having trouble parsing this. Are you talking about an SCA
registry, or a WSDL registry, or the mechanism for locating it (via
IoC as Ant described or something else)?

I was saying that in an IoC world there is /no/ provider part of the
API - a user never locates anything, they declare dependencies and
the container resolves them. The dependency would be on the actual
client interface (SymbolSpace.Registry I guess but I've already
admitted to not grokking the interfaces).

--
Jeremy

On Aug 30, 2006, at 11:28 AM, Yang ZHONG wrote:

 Can someone propose a SCA specific API mentioned by Jeremy please?
 Something like
  interface ScaRegistry
  {
Definition getDefinition (String nameSpace);
Message getMessage (QName);
  }
 I don't know the SCA requirement much enough to make such proposal.

 At the same time, we can practise IoC in ScaRegistry service locating.
 I hope I can learn from that practice and update the registry
 generic API
 accordingly.

 Thanks for pointing out a nice mechanism.

 On 8/30/06, Jim Marino [EMAIL PROTECTED] wrote:


 On Aug 30, 2006, at 10:49 AM, Jeremy Boynes wrote:

  As part of Tuscany there should not be any mechanism in a API for
  service location - that is the responsibility of the IoC
 container.
 
 +1 (which nicely avoids external dependencies on some locator
 implementation and evil Singletons)

  --
  Jeremy
 


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




 --

 Yang ZHONG


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--

Yang ZHONG


Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Jim Marino


On Aug 30, 2006, at 11:59 AM, Yang ZHONG wrote:


Thank Ant so much for details, that's very helpful!

I'll update the API:
2-1. remove INSTANCE
2-2. demonstrate the SCA way to get SymbolSpace.Registry  
implementation in

JavaDoc

Why do we have the inner interface? I agree with Jeremy that it  
doesn't seem very intuitive.


SymbolSpace.Registry is the generic registry interface, it doesn't  
prevent

us from having SCA specific interface(s).
I can come up with a WSDL Registry interface proposal. Can someone  
tell me
which model is used by SCA: WST, WSDL4J, EMF, home grown or  
anything else?


On 8/30/06, Jeremy Boynes [EMAIL PROTECTED] wrote:


I'm having trouble parsing this. Are you talking about an SCA
registry, or a WSDL registry, or the mechanism for locating it (via
IoC as Ant described or something else)?

I was saying that in an IoC world there is /no/ provider part of the
API - a user never locates anything, they declare dependencies and
the container resolves them. The dependency would be on the actual
client interface (SymbolSpace.Registry I guess but I've already
admitted to not grokking the interfaces).

--
Jeremy

On Aug 30, 2006, at 11:28 AM, Yang ZHONG wrote:

 Can someone propose a SCA specific API mentioned by Jeremy please?
 Something like
  interface ScaRegistry
  {
Definition getDefinition (String nameSpace);
Message getMessage (QName);
  }
 I don't know the SCA requirement much enough to make such proposal.

 At the same time, we can practise IoC in ScaRegistry service  
locating.

 I hope I can learn from that practice and update the registry
 generic API
 accordingly.

 Thanks for pointing out a nice mechanism.

 On 8/30/06, Jim Marino [EMAIL PROTECTED] wrote:


 On Aug 30, 2006, at 10:49 AM, Jeremy Boynes wrote:

  As part of Tuscany there should not be any mechanism in a API  
for

  service location - that is the responsibility of the IoC
 container.
 
 +1 (which nicely avoids external dependencies on some locator
 implementation and evil Singletons)

  --
  Jeremy
 


  
-

 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




 --

 Yang ZHONG


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--

Yang ZHONG



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Yang ZHONG

No problem, consider them removed in API.

Sorry, what's the WSDL model used in SCA again please?


On 8/30/06, Jim Marino [EMAIL PROTECTED] wrote:



On Aug 30, 2006, at 11:59 AM, Yang ZHONG wrote:

 Thank Ant so much for details, that's very helpful!

 I'll update the API:
 2-1. remove INSTANCE
 2-2. demonstrate the SCA way to get SymbolSpace.Registry
 implementation in
 JavaDoc

Why do we have the inner interface? I agree with Jeremy that it
doesn't seem very intuitive.

 SymbolSpace.Registry is the generic registry interface, it doesn't
 prevent
 us from having SCA specific interface(s).
 I can come up with a WSDL Registry interface proposal. Can someone
 tell me
 which model is used by SCA: WST, WSDL4J, EMF, home grown or
 anything else?

 On 8/30/06, Jeremy Boynes [EMAIL PROTECTED] wrote:

 I'm having trouble parsing this. Are you talking about an SCA
 registry, or a WSDL registry, or the mechanism for locating it (via
 IoC as Ant described or something else)?

 I was saying that in an IoC world there is /no/ provider part of the
 API - a user never locates anything, they declare dependencies and
 the container resolves them. The dependency would be on the actual
 client interface (SymbolSpace.Registry I guess but I've already
 admitted to not grokking the interfaces).

 --
 Jeremy

 On Aug 30, 2006, at 11:28 AM, Yang ZHONG wrote:

  Can someone propose a SCA specific API mentioned by Jeremy please?
  Something like
   interface ScaRegistry
   {
 Definition getDefinition (String nameSpace);
 Message getMessage (QName);
   }
  I don't know the SCA requirement much enough to make such proposal.
 
  At the same time, we can practise IoC in ScaRegistry service
 locating.
  I hope I can learn from that practice and update the registry
  generic API
  accordingly.
 
  Thanks for pointing out a nice mechanism.
 
  On 8/30/06, Jim Marino [EMAIL PROTECTED] wrote:
 
 
  On Aug 30, 2006, at 10:49 AM, Jeremy Boynes wrote:
 
   As part of Tuscany there should not be any mechanism in a API
 for
   service location - that is the responsibility of the IoC
  container.
  
  +1 (which nicely avoids external dependencies on some locator
  implementation and evil Singletons)
 
   --
   Jeremy
  
 
 
 
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 
  --
 
  Yang ZHONG


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




 --

 Yang ZHONG


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--

Yang ZHONG


Re: Registry proposal, was: Delivery Status Notification (Failure)

2006-08-30 Thread Jeremy Boynes

On Aug 30, 2006, at 12:20 PM, Yang ZHONG wrote:


No problem, consider them removed in API.

Sorry, what's the WSDL model used in SCA again please?


We don't really model WSDL. We do parse it using WSDL4J for now but  
need something to support WSDL2.0 (probably Woden when it can support  
1.1).

--
Jeremy

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]