On Mon, Jul 28, 2008 at 7:02 PM, Ramkumar R <[EMAIL PROTECTED]> wrote:
> Hi Ant, > I believe, this issue cropped up due to a fix provided through > TUSCANY-2354, this issue did not exist before in 1.2 release as the code did > not do proper validation to ensure that all the intents and policysets are > resolved. TUSCANY-2354 came up with a fix as to resolve all the simple > intents first and then simple policysets and then the referred policysets > and so on, which i believe worked for most of the validation. > > Currently, I am able to resolve this issue by applying this patch.... > (reason: a confilict exist wsClientAuthenticationPolicy) > > Index: > modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/definitions.xml > =================================================================== > --- > modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/definitions.xml > (revision > 680260) > +++ > modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/definitions.xml > (working > copy) > @@ -37,7 +37,7 @@ > </tuscany:wsConfigParam> > </sca:policySet> > > - <sca:policySet name="wsClientAuthenticationPolicy" > + <sca:policySet name="wsClientAuthenticationPolicy2" > provides="tuscany:wsAuthentication" > appliesTo="//sca:binding.ws"> > <tuscany:wsConfigParam> > Index: > src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/WSSecurityAuthentication.composite > =================================================================== > --- > modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/WSSecurityAuthentication.composite > (revision > 680260) > +++ > modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/WSSecurityAuthentication.composite > (working > copy) > @@ -41,7 +41,7 @@ > <reference name="helloWorldWS" /> > </component> > > - <reference name="helloWorldWS" > promote="HelloWorldComponent/helloWorldWS" > policySets="tuscany:wsClientAuthenticationPolicy"> > + <reference name="helloWorldWS" > promote="HelloWorldComponent/helloWorldWS" > policySets="tuscany:wsClientAuthenticationPolicy2"> > <interface.wsdl interface=" > http://helloworld-om-uri#wsdl.interface(HelloWorld<http://helloworld-om-uri/#wsdl.interface%28HelloWorld>)" > /> > <binding.ws wsdlElement=" > http://helloworld-om-uri#wsdl.binding(HelloWorldSoapBinding<http://helloworld-om-uri/#wsdl.binding%28HelloWorldSoapBinding> > )" > > uri="http://localhost:8085/myExplicitURI"/<http://localhost:8085/myExplicitURI%22/> > > > > Can anyone try this and let me know if this works. > > NOTE: I also strongly believe that we need to address the issue of treating > the definitions.xml as global to SCA domain, and try to resolve the policy > artifacts once all the policy definitions are loaded. > > > On 7/28/08, ant elder <[EMAIL PROTECTED]> wrote: >> >> >> >> On Mon, Jul 28, 2008 at 6:20 PM, Jean-Sebastien Delfino < >> [EMAIL PROTECTED]> wrote: >> >>> Simon Laws wrote: >>> >>>> >>>> >>>> On Sat, Jul 26, 2008 at 7:27 PM, Raymond Feng <[EMAIL PROTECTED]<mailto: >>>> [EMAIL PROTECTED]>> wrote: >>>> >>>> I see the same regression too. >>>> I further debugged the issue and found out the behavior depends >>>> the >>>> order how artifacts are resolved. >>>> 1) The SCADefinitions model contains the Intent and PolicySet >>>> models >>>> 2) The PolicySet model may reference Intent models >>>> Now say we have two definitions.xml file in the contribution, >>>> then >>>> there will be two SCADefinitions objects: D1 and D2. Let's assume D1 >>>> contains I1 (Intent) and D2 contains P1 (PolicySet). P1 references >>>> I1. The current code resolve D1 and D2 independently. If D1 >>>> is resolved before D2, then I1 is set to resolved and P1 will >>>> be resolved as I1 is resolved. But if D2 is resolved before D1, the >>>> P1 cannot be resolved as I1 is not resolved yet. This explains why >>>> we see different behaviors. >>>> It seems that we will have to resolve all the Intents first >>>> before >>>> we can resolve PolictSets. This happens within one single >>>> SCADefinitions but not across more than one SCADefinitions. >>>> One hack would be to set Intent to resolved during the read >>>> phase. >>>> Or we merge all the definitions before the resolve. Any suggestions? >>>> Thanks, >>>> Raymond >>>> >>>> >>>> *From:* ant elder <mailto:[EMAIL PROTECTED]> >>>> *Sent:* Saturday, July 26, 2008 4:20 AM >>>> *To:* dev@tuscany.apache.org <mailto:dev@tuscany.apache.org> >>>> *Subject:* Re: Policy error building binding-ws-axis2, was: Error >>>> building binding-ws-axis2 >>>> >>>> >>>> >>>> On Sat, Jul 26, 2008 at 2:38 AM, Jean-Sebastien Delfino >>>> >>>> <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote: >>>> >>>> Raymond Feng wrote: >>>> >>>> My guess is that the message complains: >>>> >>>> With the following policySet: >>>> >>>> <sca:policySet name="wsClientAuthenticationPolicy" >>>> provides="tuscany:wsAuthentication" >>>> >>>> appliesTo="//sca:binding.ws <http://binding.ws>"> >>>> >>>> "tuscany:wsAuthentication" is a provided intent by the >>>> policy set and it cannot find the definition of intent >>>> "tuscany:wsAuthentication". >>>> >>>> Thanks, >>>> Raymond >>>> >>>> >>>> I've debugged, opened JIRA TUSCANY-2499 to track the problem and >>>> committed a workaround (linked to 2499). >>>> >>>> -- Jean-Sebastien >>>> >>>> >>>> The work around breaks the build for me with the error below. >>>> Backing out r679944 and everything is working ok in my environment. >>>> >>>> Caused by: org.osoa.sca.ServiceRuntimeException: Provided Intent - >>>> >>>> {http://tuscany.apache.org/xmlns/sca/1.0}wsAuthentica<http://tuscany.apache.org/xmlns/sca/1.0%7DwsAuthentica> >>>> >>>> <http://tuscany.apache.org/xmlns/sca/1.0%7DwsAuthentica> >>>> tion not found for PolicySet >>>> { >>>> http://tuscany.apache.org/xmlns/sca/1.0}wsClientAuthenticationPolicy<http://tuscany.apache.org/xmlns/sca/1.0%7DwsClientAuthenticationPolicy> >>>> >>>> < >>>> http://tuscany.apache.org/xmlns/sca/1.0%7DwsClientAuthenticationPolicy> >>>> >>>> at >>>> >>>> >>>> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.analyseProblems(DefaultSCADomain.java:309) >>>> at >>>> >>>> >>>> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.addContribution(DefaultSCADomain.java:334) >>>> at >>>> >>>> >>>> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:183) >>>> at >>>> >>>> >>>> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:120) >>>> at >>>> >>>> >>>> org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:242) >>>> ... 20 more >>>> >>>> ...ant >>>> >>>> Looking at the code it's interesting as >>>> ContributionServiceImp.processReadPhase() has special code to ensure that >>>> all the intents, policy sets etc from all definitions that are found during >>>> the read of a single contribution are added to the >>>> policyDefinitionsResolver. However when it comes to resolve time, as >>>> Raymond >>>> points out, the definitions.xml files are resolved independently, one at a >>>> time. Hence successful resolution is order dependent. >>>> >>>> It seems to me that the solution to this depends on whether we take the >>>> spec at face value and assume that definitions.xml files that can appear in >>>> contributions in Tuscany are logically part of "a global, SCA Domain-wide >>>> file". Or if these individual definitions.xml files are subject to >>>> contribution import/export semantics? >>>> >>>> If the former then we need some separate domain level processing (just >>>> before the build phase?) that does policy resolution. If the latter we need >>>> to make sure that the policy artifacts are resolved in the correct order >>>> across definitions files within a contribution rather than just within a >>>> single definitons.xml file. >>>> >>>> To me the latter seems to fit the contribution model more accurately and >>>> hence it seems to be the more consistent of the two. Does seem to >>>> contradict >>>> the spec though. >>>> >>>> Simon >>>> >>>> >>>> >>> >>> Two thoughts: >>> >>> - We should follow the spec and assume that definitions.xml are global in >>> an SCA domain. Using the contribution resolve mechanism would contribute to >>> pollute app artifacts (contributions) with Policy related declarations (as >>> your app contributions would have to declare imports for the policies). >>> >>> - This issue is just another manifestation of a bigger issue with the >>> Contribution service which runs the resolve phase too early, per >>> contribution, before all contributions are read. Fixing that will fix the >>> Policy issue and will allow us to remove the workarounds in the current >>> Policy processing code, which - although I didn't completely understand that >>> code - seems to change the Intent's unresolved flag when it shouldn't. >>> >>> -- >>> Jean-Sebastien >>> >> >> Does anyone know if something changed recently to cause this problem or >> did it exist before in the 1.2 release? It sounds like it existed before and >> as it seems like a non-trivial fix I wondered if we could still release 1.3 >> anyway and try to fix this later in a 1.3.1 release? >> >> ...ant >> >> > > > > -- > Thanks & Regards, > Ramkumar Ramalingam So am I right in thinking that this patch does not affect release 1.3? Simon