[ 
https://issues.apache.org/jira/browse/CXF-658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12498086
 ] 

maomaode commented on CXF-658:
------------------------------

This is done in http://svn.apache.org/viewvc?view=rev&rev=520805, 
previous the xsds are in common/schemas and  xsd2java them in rt/transports
This is not ok since tools remove it's own wsdl extensions and want to reuse 
the wsdldefinitionbuilder in rt/core

Then we moved the xsds into tools/common, and xsd2java them in tools/common, so 
we don't need to depends on the specific transports/bindings in tools, if 
there's a new transports/bindings, we don't need to add dependencies in tools, 
because rt/core will load them automatically. 

So IMO the xsds should be in a common place which can be loaded by rt/core and 
tools.

I also feel xsds in tools/common is not quite a good place.  I was trying to 
put them in API module, because i believe the wsdl extensions should also be 
API doc-ed. I can not remember the exact reason why it can not be placed in 
API, maybe some xsd2java plugin problems, then i decided to place some into 
tools/common. and make the jms depend on tools/common.

If we can place them in API, everything will be just fine.

I'm trying to move to API again, is that ok?

> Tool dependecies on runtime components
> --------------------------------------
>
>                 Key: CXF-658
>                 URL: https://issues.apache.org/jira/browse/CXF-658
>             Project: CXF
>          Issue Type: Bug
>          Components: Tooling
>    Affects Versions: 2.0-RC
>            Reporter: Andrea Smyth
>         Assigned To: maomaode
>
> In order to get schema validation working for all of our Spring XML 
> extensions I wanted to make some changes to jms.xsd.
> I was a bit surprised to find this schema not in the jms module itself but in 
> cxf- tools-common instead (and jms-context.xsd in cxf-common-schemas). 
> An attempt to move it into xf-rt-transports-jms revealed a dependency of 
> cxf-tools-wsdlto on this schema. This dependency is wrong and violates the 
> principle of extensibility.
> If tools want to support generation of code/wsdl that involves details of a 
> specific binding or transport they should do so via an interface instead of 
> hardcoding that dependency into the generators.
> The concept of customising xjc with plugins is an example of how this can be 
> done: the generator/tool checks on its path for components that are able to 
> generate address elements for a particular address type "jms". If the jms 
> module is on the path that is should implement the bit that is needed by the 
> tool,  fine, the tool embeds the result into whatever else it generates.  
> Otherwise the tool fails with: "No processor found for adddress type "jms" or 
> similar.

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

Reply via email to