[jira] Resolved: (AXIS2-4247) JAX-WS API fails to build an endpoint reference (IllegalStateException) when service is published with Endpoint.publish()

2010-02-03 Thread Bill Nagy (JIRA)

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

Bill Nagy resolved AXIS2-4247.
--

Resolution: Fixed
  Assignee: Bill Nagy

 JAX-WS API fails to build an endpoint reference (IllegalStateException) when 
 service is published with Endpoint.publish()
 -

 Key: AXIS2-4247
 URL: https://issues.apache.org/jira/browse/AXIS2-4247
 Project: Axis2
  Issue Type: Bug
  Components: jaxws
Affects Versions: nightly
 Environment: JDK 1.6.0_06, WinXP
Reporter: Franck Michel
Assignee: Bill Nagy
 Attachments: Axis2Test.java, LaunchAxis2Test.java, 
 WithwsdlLocation.patch


 Hi, I'm facing a trouble using the Enpoint.publish() JAXWS API. I've checked 
 several issues that may be related, with no success until now :
 https://issues.apache.org/jira/browse/AXIS2-3116?page=com.atlassian.jira.plugin.ext.subversion:subversion-commits-tabpanel
 https://wso2.org/jira/browse/CARBON-738
 I'm using the last nightly build as some issues were fixed on this kind of 
 thing recently.
 I publish a very basic WS Endpoint.publish(String url) API: the service seems 
 to be published (isPublished() returns true), but it fails to return an 
 endpoint reference. My code does this (the code of the web service is at the 
 end of this post):
 Endpoint endPoint = Endpoint.create(new Axis2Test());
 endPoint.publish(http://localhost:8081/services/Test;);
 logger.debug(isPublished:  + endPoint.isPublished());
 logger.debug(getProperties:  + endPoint.getProperties());
 logger.debug(getMetadata:  + endPoint.getMetadata());
 logger.debug(getEndpointReference:  + 
 endPoint.getEndpointReference());
 This fails on endPoint.getEndpointReference(), an returns:
 2009-02-23 11:28:37,242 [main] DEBUG 
 fr.anr.techlog.neurolog.server.LaunchStandaloneWebServices:18 - isPublished: 
 true
 2009-02-23 11:28:37,242 [main] DEBUG 
 fr.anr.techlog.neurolog.server.LaunchStandaloneWebServices:19 - 
 getProperties: null
 2009-02-23 11:28:37,242 [main] DEBUG 
 fr.anr.techlog.neurolog.server.LaunchStandaloneWebServices:20 - getMetadata: 
 null
 2009-02-23 11:28:37,492 [main] FATAL 
 fr.anr.techlog.neurolog.server.LaunchStandaloneWebServices:24 - Unable to 
 create server
 java.lang.IllegalStateException: Unable to locate a deployed service that 
 maps to the requested endpoint, Service: {http://mypackage/}Axis2TestService, 
 Port: {http://mypackage/}Axis2TestPort
 at 
 org.apache.axis2.jaxws.addressing.factory.impl.Axis2EndpointReferenceFactoryImpl.createEndpointReference(Axis2EndpointReferenceFactoryImpl.java:66)
 at 
 org.apache.axis2.jaxws.addressing.factory.impl.Axis2EndpointReferenceFactoryImpl.createEndpointReference(Axis2EndpointReferenceFactoryImpl.java:97)
 at 
 org.apache.axis2.jaxws.addressing.util.EndpointReferenceUtils.createAxis2EndpointReference(EndpointReferenceUtils.java:133)
 at 
 org.apache.axis2.jaxws.server.endpoint.EndpointImpl.getEndpointReference(EndpointImpl.java:244)
 at 
 org.apache.axis2.jaxws.server.endpoint.EndpointImpl.getEndpointReference(EndpointImpl.java:261)
 at mypackage.LaunchA2xis2Test.main(LaunchA2xis2Test.java:21)
 Also, accessing the service using Firefox returns this :
 2009-02-23 11:52:46,184 [HttpConnection-8081-2] ERROR 
 org.apache.axis2.engine.AxisEngine:212 - The service cannot be found for the 
 endpoint reference (EPR) /services/Test?wsdl
 org.apache.axis2.AxisFault: The service cannot be found for the endpoint 
 reference (EPR) /services/Test?wsdl
 at 
 org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:65)
 at org.apache.axis2.engine.Phase.invoke(Phase.java:333)
 at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
 at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
 at 
 org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:136)
 at 
 org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:130)
 at 
 org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:257)
 at 
 org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:281)
 at 
 org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:187)
 at 
 org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:82)
 at 
 edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
 at 
 edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java

[Axis2] Re: svn commit: r835113 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/ServiceClient.java

2009-11-13 Thread Bill Nagy
Ignoring the performance degradation for a moment, the
AUTO_OPERATION_CLEANUP feature had removed thread-safety from the
ServiceClient (i.e. if two threads invoke
serviceclient.createClient(...), there is the distinct possibility that,
before Roy's modification, the code would have cleaned up the transport
before the first invoking thread had finished.)

If the ServiceClient is not meant to be thread-safe, then this needs to
be explicitly stated in the JavaDoc and the JAX-WS code will need to be
reworked to take this into account.

If the ServiceClient is supposed to be thread-safe, then either the
default should remain as Roy has set it (i.e. to be 'false') or the
cleanup code needs to be rewritten so as not to cause threading issues.

-Bill


On Thu, 2009-11-12 at 17:44 -0600, Roy Wood wrote:
 
 Andreas, 
 Yes, I agree...thanks for the correction. I went back and did a quick
 search on AUTO_OPERATION_CLEANUP and didn't find any intent on what
 the 
 actual default should be, other than the original code using a default
 of 'true'. 
 
 This property came to our attention when we ran into a threading
 problem in one of our test cases. By setting the default to false,
 thus disabling the call to 
 'cleanupTransport' in createClient, the threading problem disappeared.
 I'm also a bit concerned about the performance warning in
 cleanupTransport 
 javadocs. For that reason, as well as, providing a degree backwards
 compatability,  I would like to propose that the default for this
 property be 'false'. 
 
 Roy A. Wood, Jr.
 WebSphere Development - Web Services
 wood...@us.ibm.com
 512-286-9307  T/L:363-9307
 11501 Burnet Road,  Austin TX   78758 (Internal ZIP: 9372) 
 
 
 
 Re: svn commit: r835113
 - 
 /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/ServiceClient.java
 
 Andreas
 Veithen 
 to: 
 axis-dev 
 11/12/2009 03:30 PM
 
 Cc: 
 Glen
 Daniels
 
 Please respond to
 axis-dev 
 
 
 
 
 
 
 __
 
 
 
 That is not correct. The entire Javadoc of the cleanupTransport method
 was written before the introduction of the AUTO_OPERATION_CLEANUP
 property. It only refers to callTransportCleanup, which is a
 different property. Since the AUTO_OPERATION_CLEANUP feature is
 something that has been recently introduced by Glen for the 1.5.1
 release, it would be good to start a discussion to get his feedback if
 you think that the default value should be different for the next
 release.
 
 Andreas
 
 On Wed, Nov 11, 2009 at 23:54,  wood...@apache.org wrote:
  Author: woodroy
  Date: Wed Nov 11 22:54:35 2009
  New Revision: 835113
 
  URL: http://svn.apache.org/viewvc?rev=835113view=rev
  Log:
  Use proper default value of AUTO_OPERATION_CLEANUP property
 
  Javadoc for cleanupTransport states the default value is 'false'
 
  Modified:
 
  
 webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/ServiceClient.java
 
  Modified:
 webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/ServiceClient.java
  URL:
 http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/ServiceClient.java?rev=835113r1=835112r2=835113view=diff
 
 ==
  ---
 webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/ServiceClient.java
  (original)
  +++
 webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/ServiceClient.java
  Wed Nov 11 22:54:35 2009
  @@ -660,7 +660,7 @@
  public OperationClient createClient(QName operationQName) throws
 AxisFault {
  // If we're configured to do so, clean up the last
 OperationContext (thus
  // releasing its resources) each time we create a new one.
  -if
 (JavaUtils.isTrue(getOptions().getProperty(AUTO_OPERATION_CLEANUP),
 true) 
  +if
 (JavaUtils.isTrue(getOptions().getProperty(AUTO_OPERATION_CLEANUP),
 false) 
  !getOptions().isUseSeparateListener()) {
  cleanupTransport();
  }
 
 
 
 



Re: [VOTE] Web Services Reorg Part 1 : Axis2 TLP

2009-11-08 Thread Bill Nagy
+1

-Bill

On Fri, 2009-11-06 at 09:20 -0800, Glen Daniels wrote:
 Greetings, everyone.
 
 A bunch of us here at ApacheCon were talking about the Axis2 TLP idea, and
 how to move this forward in the simplest and most effective way.  We came up
 with *exactly* the same structure that we had proposed a year ago. :)  So,
 having only altered the page in order to remove a step (the promotion of
 WS-Commons sub-sub-projects to WS subprojects - this isn't really necessary
 as we can still decide what to do about each sub-sub-project individually
 later), I'd like to bring the following proposal up for a VOTE of the Web
 Services PMC.  If this passes, I plan to submit this resolution to the board
 as soon as possible.
 
 http://wiki.apache.org/ws/FrontPage/Proposals/Axis2TLPProposal
 
 Note that I added just the first few people in the current PMC roster as
 examples.  I also nominated myself as the Axis2 chair for now - if anyone
 else would like to volunteer to do this, please let me know.  Eventually I'd
 like to drop one or the other PMC chair role, but for now I'm OK doing both.
 
 So if you would, please:
 
 1) VOTE
 2) Add yourself to the list of project members on the wiki page if you are an
 existing PMC member and would like to be on the new Axis2 PMC
 
 Here is my +1 for this proposal.
 
 Thanks,
 --Glen



Re: [Axis2] Update to JAX-WS 2.2

2009-10-31 Thread Bill Nagy
(I forgot the [Axis2] prefix on my original note -- sorry to anyone who
missed it.)

If they are necessary to pass the CTS test suites, then yes.  Otherwise
I can't make any promises.

-Bill

On Fri, 2009-10-30 at 23:15 +0530, Isuru Suriarachchi wrote:
 Hi Bill,
  
 AFAIK, there are some WSDL generation issues in our JAX-WS
 implementation. Specially when Complex types are involved. Are you
 going to address those issues as well during this improvement? 
  
 Thanks,
 ~Isuru
 
 
 On Fri, Oct 30, 2009 at 7:22 PM, Bill Nagy n...@watson.ibm.com
 wrote:
 I just wanted to give everyone a heads-up that we are going to
 start
 upgrading the JAX-WS support to conform to the 2.2 spec
 relatively soon.
 The spec update may be found at
 http://jcp.org/en/jsr/detail?id=224.
 
 -Bill
 
 
 
 
 
 



Update to JAX-WS 2.2

2009-10-30 Thread Bill Nagy
I just wanted to give everyone a heads-up that we are going to start
upgrading the JAX-WS support to conform to the 2.2 spec relatively soon.
The spec update may be found at http://jcp.org/en/jsr/detail?id=224.

-Bill




Re: [Axis2][VOTE] Axis2 1.4 FINAL - Take #2

2008-04-28 Thread Bill Nagy
+1

-Bill

On Sat, 2008-04-26 at 12:05 -0400, Davanum Srinivas wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Folks,
 
 Firstly, Many thanks to Dan Kulp for reviewing the previous cut. I've moved 
 the old directory away (to FINAL-TAKE1 under
 http://people.apache.org/~dims/axis2-1.4/) and placed the new files.
 
 So please review:
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/
 
 The m2 repository is here:
 http://people.apache.org/~dims/axis2-1.4/FINAL/m2-repo/
 
 SVN Info:
 revision is 651799 on 
 https://svn.apache.org/repos/asf/webservices/axis2/branches/java/1_4
 
 Here's my +1 to declaring the above dist as Axis2 1.4 FINAL.
 
 Thanks,
 dims
 
 PS: Here are links to the individual Zip/Jar/Mar files:
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/1_4/axis2-1.4-bin.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/1_4/axis2-1.4-docs.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/1_4/axis2-1.4-src.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/1_4/axis2-1.4-war.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/modules/addressing/1_4/addressing-1.4.mar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/modules/soapmonitor/1_4/soapmonitor-1.4.mar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-aar-maven-plugin-1.4.jar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-ant-plugin-1.4.jar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-eclipse-codegen-wizard-1.4.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-eclipse-service-archiver-wizard-1.4.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-idea-plugin-1.4.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-java2wsdl-maven-plugin-1.4.jar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-mar-maven-plugin-1.4.jar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-wsdl2code-maven-plugin-1.4.jar
 
 PPS: FYI, The Apache SVN is down for an outage/maintainenance. You can see 
 the diffs on axis-cvs mailing list if you are
 curious.
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.5 (Cygwin)
 
 iD8DBQFIE1KygNg6eWEDv1kRAu7wAKDVq0+uCdEWjZosM8Pm1ApUU8NvUwCfW+i0
 jC6ej20Yz6dNAYP71wO0xTY=
 =1WnY
 -END PGP SIGNATURE-
 
 -
 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: [Axis2][VOTE] Axis2 1.4 FINAL

2008-04-24 Thread Bill Nagy
+1

-Bill

On Thu, 2008-04-24 at 12:39 -0400, Davanum Srinivas wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Folks,
 
 After all the excitement of the past few days :) We almost forgot the release
 
 Please review:
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/
 
 The m2 repository is here:
 http://people.apache.org/~dims/axis2-1.4/FINAL/m2-repo/
 
 SVN Info:
 revision is 651268 on 
 https://svn.apache.org/repos/asf/webservices/axis2/branches/java/1_4
 
 Here's my +1 to declaring the above dist as Axis2 1.4 FINAL.
 
 Thanks,
 dims
 
 PS: Here are links to the individual Zip/Jar/Mar files:
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/1_4/axis2-1.4-bin.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/1_4/axis2-1.4-docs.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/1_4/axis2-1.4-src.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/1_4/axis2-1.4-war.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/modules/addressing/1_4/addressing-1.4.mar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/modules/soapmonitor/1_4/soapmonitor-1.4.mar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-aar-maven-plugin-1.4.jar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-ant-plugin-1.4.jar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-eclipse-codegen-wizard-1.4.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-eclipse-service-archiver-wizard-1.4.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-idea-plugin-1.4.zip
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-java2wsdl-maven-plugin-1.4.jar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-mar-maven-plugin-1.4.jar
 http://people.apache.org/~dims/axis2-1.4/FINAL/dist/ws/axis2/tools/1_4/axis2-wsdl2code-maven-plugin-1.4.jar
 
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.5 (Cygwin)
 
 iD8DBQFIELfTgNg6eWEDv1kRAtDoAJ9xOJrbhAlQoSnVl7I79C3gDOEFDQCgi7Vy
 gtoyG/P/Q3RWxIk1wwBphl0=
 =QD87
 -END PGP SIGNATURE-
 
 -
 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: [VOTE] XmlSchema 1.4.1 / Axiom 1.2.6 / Neethi 2.0.3 Releases for Axis2 1.4

2008-04-10 Thread Bill Nagy
+1 for all

-Bill

On Thu, 2008-04-10 at 00:47 -0400, Davanum Srinivas wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Folks,
 
 Here are the src/bin dist artifacts, the maven2 repo and a revisions.txt with 
 the svn information:
 
 http://people.apache.org/~dims/axis2-1.4-commons/
 
 
 Please VOTE:
 
 [ ] - Ship XmlSchema 1.4.1
 [ ] - Don't Ship XmlSchema 1.4.1
 
 [ ] - Ship Axiom 1.2.6
 [ ] - Don't Axiom 1.2.6
 
 [ ] - Ship Neethi 2.0.3
 [ ] - Don't Ship Neethi 2.0.3
 
 Here's my +1 for all 3 distributions.
 
 thanks,
 dims
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.5 (Cygwin)
 
 iD8DBQFH/ZvsgNg6eWEDv1kRApoAAKDQAsT7hCrn2BruP6c7N6qwvQuIAACeMnhU
 grBUP5S3B0dYtfu6jMulw38=
 =tEtH
 -END PGP SIGNATURE-
 
 -
 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]



[jira] Resolved: (AXIS2-3547) JAXWS Sessions working in Standalone Axis2+Tomcat / Axis2+SimpleAxisServer with Simple JAXWS client

2008-03-25 Thread Bill Nagy (JIRA)

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

Bill Nagy resolved AXIS2-3547.
--

Resolution: Invalid

I've tried out a number of scenarios, and a JAX-WS client and service are able 
to utilize HTTP sessions correctly.  The JAX-WS spec does not talk about 
sessions beyond being able to participate in an HTTP session (i.e. being able 
to set/extract things in the Servlet context,) so further integration with the 
Axis2 session model is not required for compliance with the spec.

 JAXWS Sessions working in Standalone Axis2+Tomcat / Axis2+SimpleAxisServer 
 with Simple JAXWS client
 ---

 Key: AXIS2-3547
 URL: https://issues.apache.org/jira/browse/AXIS2-3547
 Project: Axis 2.0 (Axis2)
  Issue Type: Bug
Reporter: Davanum Srinivas
Assignee: Bill Nagy
Priority: Blocker
 Fix For: 1.4


 Looks like the JAXWS Sessions scenarios need work. 
 - JAXWS Service inside Tomcat/Axis2 should be able to participate in a 
 transport session
 - JAXWS Service inside SimpleAxisServer/Axis2 should be able to participate 
 in a transport session
 These services should be able to work with
 - Standalone Axis2/ADB client with sessions enabled.
 - JAXWS Client with sessions enabled.
 thanks.,
 dims

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


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



[jira] Assigned: (AXIS2-2098) There are numerous public methods on MessageContext that do not have comments.

2007-09-20 Thread Bill Nagy (JIRA)

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

Bill Nagy reassigned AXIS2-2098:


Assignee: Roy A. Wood Jr.  (was: Bill Nagy)

 There are numerous public methods on MessageContext that do not have comments.
 --

 Key: AXIS2-2098
 URL: https://issues.apache.org/jira/browse/AXIS2-2098
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy
Assignee: Roy A. Wood Jr.



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


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



[jira] Assigned: (AXIS2-2095) There are numerous public methods on ConfigurationContext which do not have comments.

2007-09-20 Thread Bill Nagy (JIRA)

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

Bill Nagy reassigned AXIS2-2095:


Assignee: Roy A. Wood Jr.  (was: Bill Nagy)

 There are numerous public methods on ConfigurationContext which do not have 
 comments.
 -

 Key: AXIS2-2095
 URL: https://issues.apache.org/jira/browse/AXIS2-2095
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy
Assignee: Roy A. Wood Jr.



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


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



Re: [axis2] Handler interface (cleanup(), flowComplete() and errors)

2007-06-22 Thread Bill Nagy
Hi Glen,

On Fri, 2007-06-22 at 12:52 -0400, Glen Daniels wrote:
 A few questions about the Handler interface based on recent conversations:
 
 1) cleanup() never gets called.  Can we remove it now that we've got 
 flowComplete()?

I had always assumed that cleanup() was the counterpart to init(), and
thus would be called when a handler was deregistered thereby providing
the handler with the ability to release resources that it had acquired.
I'm happy to have it removed until someone actually needs that type of
functionality.

 2) flowComplete() seems somewhat flawed in that there is currently no 
 way (AFAICT) to conclusively determine whether it is being called as a 
 result of a fault/thrown exception or due to the normal termination of 
 processing.  This leaves no easy way for Handler developers to do 
 rollbacks of any work they've done.  It appears we used to have 
 revoke(), which I think seems like the right thing (it's easier to code 
 an explicit fault handler API than it is to remember to check for 
 something that the compiler won't tell you about), but that was 
 apparently replaced with flowComplete()?
 
PROPOSAL - add a failureReason field (of type Exception) to 
 MessageContext, and ensure that the engine ALWAYS sets this if we have 
 to back out the processing chain due to an error.  Leave flowComplete() 
 as is, but now implementors can mc.getFailureReason() and react 
 appropriately.

+1

 3) Why are we forcing every Handler to keep a pointer to it's 
 HandlerDesc?  We only call this in a couple of places (Phase), and IMHO 
 it clutters up the interface unnecessarily.  It seems like Phase should 
 be keeping HandlerDescs, and those should be pointing to Handlers... 
 that would more loosely and cleanly decouple the two classes.
 

I assume that you mean removing the getHandlerDesc() method (and not
removing the HandlerDescription being passed into the Handler) -- +1 if
we're already modifying the Handler interface to remove the cleanup()
method.

 Comments/thoughts?

If we're only going to do (1) or (3), but not both, then perhaps we
shouldn't do either unless it provides a great enough improvement to the
code quality such that it's worth forcing users to modify their
implementations.

 
 Thanks,
 --Glen
 
 -
 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: [Axis2] API Change - Handler flowComplete

2007-03-12 Thread Bill Nagy
I purposely did not allow flowComplete(...) to throw an exception, as I
have no idea what the runtime could possibly do if that occurs seeing as
how all of the important work will have already been done and the
connections most likely terminated.

I would prefer that we leave the interface explicit in this manner (i.e.
not make handlers think that the runtime can/will do something useful
with an exception by specifying it in the interface) unless we have a
valid use case that says otherwise.

I believe that given the semantics of what flowComplete(...) is trying
to accomplish, that simply logging the exception is a valid means of
dealing with it. 

-Bill


On Mon, 2007-03-12 at 15:52 +0530, Chamikara Jayalath wrote:
 Hi David,
 
 On 3/12/07, David Illsley [EMAIL PROTECTED] wrote:
 So it's valid to do post MR work in flowComplete but swallow
 exceptions if they occur. The clearest example (in my mind) is
 removing a transaction from a thread. That itself could have a
 failure
 but it shouldn't prevent the other flocwCompletes bing
 called. 
 
 From the original proposal:
 
 (If the flowComplete(...) method
 throws an exception, the rest of the handlers must still have
 their
 flowComplete(...) methods invoked.)
 
 We could wrap the calls to flowComplete with a catch block,
 ensure all 
 the flowCompletes are called and then throw a new exception
 with the
 rootCause of the fist exception caught.
 
 
 That looks like a good option. Will try to implement that.
 
 Chamikara
 
  
 
 David
 
 On 12/03/07, Chamikara Jayalath [EMAIL PROTECTED] wrote:
  Hi David,
 
  See your point. We need to clearly define the semantics
 here. With my
  change, once an exception get thrown the rest of the
 handlers will not be 
  called.
 
  I was using the flowComplete method as a way to do some post
 MR work (both
  here and in Sandesha2). If we do not throw out an exception,
 that should not
  be recommended. (In that case I will revert my change). 
 
 
  Chamikara
 
 
  On 3/12/07, David Illsley [EMAIL PROTECTED] wrote:
   Hmm, I'm not sure that an exception there is the right
 thing to do... 
   but I'll take a look at the code and get back to you.
  
   I do have a concern that the whole point of flowComplete
 is to let
   handlers get a callback when the flow is complete. If one
 of them 
   thows an AxisFault, will the remaining handlers get
 flowComplete
   called?
  
   David
  
   On 12/03/07, Chamikara Jayalath [EMAIL PROTECTED]
 wrote:
Yep. (just committed this).
In the clustering impl I needed to do some replication
 stuff in the
flowComplete method. Didn't want to eat up exceptions
 with only a log 
 :-)
   
Chamikara
   
   
   
 On 3/12/07, David Illsley  [EMAIL PROTECTED]
 wrote:

 Hi,
 I imagine there's a reason why you want to do this...?
 David

 On 11/03/07, Chamikara Jayalath 
 [EMAIL PROTECTED] wrote:
  Hi All,
 
  Currently the Handler.flowComplete method does not
 throw any 
  exceptions.
  Shall we change this to throw out an AxisFault ?
 
  Chamikara
 

 
 --
 David Illsley - IBM Web Services Development


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


   
   
  
  
   --
   David Illsley - IBM Web Services Development
   
  
 
 -
   To unsubscribe, e-mail:
  [EMAIL PROTECTED]
   For additional commands, e-mail:
 [EMAIL PROTECTED]
  
  
 
 
 
 
 --
 David Illsley - IBM Web Services Development 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


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

Re: [Axis2] API Change - Handler flowComplete

2007-03-12 Thread Bill Nagy
Hi Chamikara,

If you are doing work that is a critical part of the interaction, and
where an error needs to be communicated back to the requestor, then that
work should be completed before the response message (assuming that the
operation isn't one-way) is sent, so that that fault can be returned as
the response  -- we don't have a MEP that supports any other style of
interaction (e.g. sending a response followed by a fault.)  This can
either be accomplished by placing the logic in the output flow (for
req/rsp) or placing the entire req under a transaction.

-Bill

On Mon, 2007-03-12 at 20:36 +0530, Chamikara Jayalath wrote:
 Hi Bill,
 
 What do u think of the use case where some handler want to do some
 post-MR work. But still it may want to let the client know of any
 exceptions that occured (through a SOAP fault).
 
 And as David sugested, we can make sure that the flowComplete of all
 the handlers get called by enclosing it's invocation within a try
 block and sending only the very first exception to the client. 
 
 Chamikara
 
 
 On 3/12/07, Bill Nagy [EMAIL PROTECTED] wrote:
 I purposely did not allow flowComplete(...) to throw an
 exception, as I
 have no idea what the runtime could possibly do if that occurs
 seeing as
 how all of the important work will have already been done
 and the 
 connections most likely terminated.
 
 I would prefer that we leave the interface explicit in this
 manner (i.e.
 not make handlers think that the runtime can/will do something
 useful
 with an exception by specifying it in the interface) unless we
 have a 
 valid use case that says otherwise.
 
 I believe that given the semantics of what flowComplete(...)
 is trying
 to accomplish, that simply logging the exception is a valid
 means of
 dealing with it.
 
 -Bill 
 
 
 On Mon, 2007-03-12 at 15:52 +0530, Chamikara Jayalath wrote:
  Hi David,
 
  On 3/12/07, David Illsley [EMAIL PROTECTED] wrote:
  So it's valid to do post MR work in flowComplete but
 swallow 
  exceptions if they occur. The clearest example (in
 my mind) is
  removing a transaction from a thread. That itself
 could have a
  failure
  but it shouldn't prevent the other flocwCompletes
 bing 
  called.
 
  From the original proposal:
 
  (If the flowComplete(...) method
  throws an exception, the rest of the handlers must
 still have
  their 
  flowComplete(...) methods invoked.)
 
  We could wrap the calls to flowComplete with a catch
 block,
  ensure all
  the flowCompletes are called and then throw a new
 exception 
  with the
  rootCause of the fist exception caught.
 
 
  That looks like a good option. Will try to implement that.
 
  Chamikara
 
 
 
  David 
 
  On 12/03/07, Chamikara Jayalath
 [EMAIL PROTECTED] wrote:
   Hi David,
  
   See your point. We need to clearly define the
 semantics 
  here. With my
   change, once an exception get thrown the rest of
 the
  handlers will not be
   called.
  
   I was using the flowComplete method as a way to do
 some post 
  MR work (both
   here and in Sandesha2). If we do not throw out an
 exception,
  that should not
   be recommended. (In that case I will revert my
 change). 
  
  
   Chamikara
  
  
   On 3/12/07, David Illsley [EMAIL PROTECTED]
 wrote:
Hmm, I'm not sure that an exception there is the
 right
  thing to do...
but I'll take a look at the code and get back to
 you.

I do have a concern that the whole point of
 flowComplete
  is to let
handlers get a callback when the flow is
 complete. If one
  of them
thows an AxisFault, will the remaining handlers
 get
  flowComplete
called?
   
David

On 12/03/07, Chamikara Jayalath
 [EMAIL PROTECTED

Re: [AXIS2] Holding response in HTTPWorker

2007-02-28 Thread Bill Nagy
Hi Keith,

The relevant commits are:

Revision 489259 - (view) (download) (annotate) - [select for diffs] 
Modified Thu Dec 21 03:39:21 2006 UTC (2 months, 1 week ago) by
chamikara 
File length: 13755 byte(s) 
Diff to previous 487227 (colored) 
Added a mechanism to give the current state of the RequestResponseTransport. 
This could be used by RM 
in resending of messages. Message will be allowed to be resent only if the 
RequestResponseTranspor object 
is in the correct state.

Added a mechanism to allow somebody to set an custom transport response code. 
For e.g. Sandesha2 has a requirement to return HTTP 408, but there was not way 
do do this in Axis2.

Added a boolean property which should be used by transports to decide weather 
or not a certain request 
thread should be blocked (by calling RequestResponseTransport.awaitResponse () 
) object. Simply doing 
this based on wehater or not the request has been is paused is not enough in 
some cases.

Please see javadocs for more details.

and 

Revision 481505 - (view) (download) (annotate) - [select for diffs] 
Modified Sat Dec 2 05:38:19 2006 UTC (2 months, 3 weeks ago) by nagy 
File length: 13301 byte(s) 
Diff to previous 475355 (colored) 
Extended RequestResponseTransport to allow the transport to block after control 
is returned (e.g. if the
message is paused) and then resume once a response is available.  This will 
enable RM to be used for
IN-OUT MEPs over a request/response transport.

In short, it's required for RM to support a request/response transport in a 
request/response fashion
(i.e. not as a one-way connection.)  Since you can't really use RM with those 
other verbs,
I don't really have another use case right now where it would make sense to 
replicate that code.

-Bill

On Wed, 2007-02-28 at 11:40 +0530, keith chapman wrote:
 Hi,
 
 I was working on adding HTTP methods PUT and DELETE to HTTPWorker so
 that we can get that support. This code appears at the end of handling
 HTTP POST.
 
 Boolean holdResponse = (Boolean) msgContext.getProperty
 (RequestResponseTransport.HOLD_RESPONSE);
 
 if (pi.equals(InvocationResponse.SUSPEND) ||
 (holdResponse != null  Boolean.TRUE.equals(holdResponse))) {
 try {
 
 ((RequestResponseTransport)msgContext.getProperty( 
 RequestResponseTransport.TRANSPORT_CONTROL)).awaitResponse();
   }
 catch (InterruptedException e) {
 throw new IOException(We were interrupted, so this
 may not function correctly:+ e.getMessage());
   }
 }
 
 Whats the reason for having this in the POST case? It does not appear
 in the GET. Was wondering whether its needed for PUT too.
 
 Does anybody know the reason for this code? 
 
 Thanks,
 Keith.
 
 -- 
 Keith Chapman
 WSO2 Inc.
 Oxygen for Web Services Developers.
 http://wso2.org/


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



Re: [axis2] Pinging capability to services deployed in Axis2

2007-02-12 Thread Bill Nagy
[I'm a little late to the conversation but anyways...]

I vote against extending the MessageReceiver interface -- unless you go
to the service itself (i.e. actually invoke part of its logic,) you're
going to end up with responses whose meanings you can't interpret (e.g.
This service said that it was up, but it's using the Axis2 programming
model so that means ..., and this service said that it was up, but it's
using the JAX-WS programming model so that means ..., and this service
said that it was up, but I have no idea what it's using so)  If you
want true service status, then implement that as part of your exposed
interface.

On the other hand, I think that implementing 'ping' as a module that
exposes a 'ping' operation is a fine idea; what you would get is a
consistent answer -- whether or not the service is 'available' from the
runtime's perspective.  That's what the pinging a machine's network
interface gives you -- the answer to whether or not the pinged interface
is active.

-Bill




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



Re: [axis2] Pinging capability to services deployed in Axis2

2007-02-12 Thread Bill Nagy
Hi Paul,

I'm disagreeing with (2) and (3) (and was agreeing with (1).)  My
problem is that the semantics associated with the response to the ping
are not captured anywhere and may, in fact, vary between services --
i.e. somebody accessing the ping service has no idea what the ping
response actually indicates.  If the ping is implemented solely as a
module, without any special hooks into MessageReceivers etc., then every
ping to a service indicates that the server is aware of the service and
is able to handle requests for it.  If a service wants to provide
something more specific, then that ability should be explicit within its
interface and a user should be expected to consult the service for the
extended semantics.

If the deployment code wants to do more checking in each case, before it
allows a service to be deployed, I'm fine with that.  I'm not OK with a
service (which requires changes to the core interfaces) being defined
over the entire runtime that behaves in an inconsistent fashion.

-Bill

On Mon, 2007-02-12 at 14:40 +, Paul Fremantle wrote:
 Bill
 
 Maybe I misunderstood the discussion, but I thought we had the
 following approach in mind.
 
 1) Implement a ping module. This does its best to let you know if the
 service is up.
 2) Add a new interface (e.g. PingableMR) that MR's may implement. This
 allows the ping module to ask the MR if the service is up. (better
 than just the module's answer). For example the MR may try to new up
 an instance of the Service class (if that is appropriate) to ensure
 classloading is working.
 3) The MR that implements the PingableMR interface can see if the
 service implements the PingableService interface. If this is the case
 then the MR will call that method. This will allow the service itself
 to test things (such as connections to databases, classloading,
 whatever). This is the best test.
 
 Unless you deploy the Ping module then none of this is exposed.
 
 Paul
 
 On 2/12/07, Bill Nagy [EMAIL PROTECTED] wrote:
  [I'm a little late to the conversation but anyways...]
 
  I vote against extending the MessageReceiver interface -- unless you go
  to the service itself (i.e. actually invoke part of its logic,) you're
  going to end up with responses whose meanings you can't interpret (e.g.
  This service said that it was up, but it's using the Axis2 programming
  model so that means ..., and this service said that it was up, but it's
  using the JAX-WS programming model so that means ..., and this service
  said that it was up, but I have no idea what it's using so)  If you
  want true service status, then implement that as part of your exposed
  interface.
 
  On the other hand, I think that implementing 'ping' as a module that
  exposes a 'ping' operation is a fine idea; what you would get is a
  consistent answer -- whether or not the service is 'available' from the
  runtime's perspective.  That's what the pinging a machine's network
  interface gives you -- the answer to whether or not the pinged interface
  is active.
 
  -Bill
 
 
 
 
  -
  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: [axis2] Clustering prototype available

2007-02-12 Thread Bill Nagy
When you guys get to a state that you are happy with, could you please
generate and post a diff between your branch and the trunk, so those of
us that are time-impaired can be clear as to exactly what is being done?
Thanks.

-Bill


On Mon, 2007-02-12 at 11:42 -0500, Rajith Attapattu wrote:
 A big +1 for this proposal.
 
 2. Do not call the ContextListner in property get, set methods.
 - These events will not be captured by the listener.
 In my opinion this is key for performance. Now this gives rise to the
 problem waiting to long for replication, especially in the case of
 long running invocations or asynch invocations (where the message
 receiver returns before the business logic is fully executed. 
 
 To counter that we disscussed on the other clustering thread the
 following proposal.
 We can introduce two modes.
 1) Container Managed replication
 2) Service Managed replication.
 
 Container managed replication will call update state when the
 container things it's time to do so. 
 With user managed replication the service author has the discreetion
 in calling updateState when ever he wants. The service author can call
 it for every property change or at any given point as the author
 things it's appropriate. 
 
 If we can get the ContextListerner going on the trunk we can quiclky
 add that to the cluster branch. Deepal ?
 
 Rajith
 
 On 2/12/07, Chamikara Jayalath [EMAIL PROTECTED] wrote:
 Hi Rajith, All, 
 
 ReplicationHandler can be placed at various places of the
 Handler chain and it does replication both at its 'invoke' and
 'flowComplete' methods. FlowComplete methods get called after
 the invocation of the MessageReceiver, so the state of the
 contexsts get replicated without a problem even in the InOnly
 case. 
 
 Introducing this handler made things more flexible and reduced
 coupling. I have another suggestion that could reduce coupling
 further.
 
 The idea is to introduce a ContextListner. This will get
 called in specific places like, 
 1. When a context get created
 2. When a context get removed
 3. When a context get flushed.
 
 If we can have this feature we will be able to move clustering
 code into a module. At initiation this module will register a
 ContextListener which will allow it to listen to context
 updates. 
 
 For having a minimum affect on the performance there are
 several things we can do.
 
 1. Do not initialize the ContextListner Map until the first
 Listener is added.
 - This reduces the load to a 'null' check when no listeners
 are available. 
 
 2. Do not call the ContextListner in property get, set
 methods.
 - These events will not be captured by the listener.
 
 3. Not all the contexts should call the listeners. 
  - For e.g. we may decide not to call the ContextListeners for
 events of the MessageContexts. 
 
 This will not have any performance drawback from the approach
 we are following now. But it will allow us to fully decouple
 clustering code from the kernel.
 
 What do u think ?
 
 
 Chamikara
 
 
 
 
 
 On 2/12/07, Rajith Attapattu [EMAIL PROTECTED] wrote:
 Hey Chamikara,
 
 Thanks for making the changes, I was busy with Qpid
 work so couldn't even do the Null change we
 discussed. 
 
 However I have a concern about moving updateState from
 the Engine and placing this in a handler. 
 The handler approach will only work if the MEP is
 IN_OUT.
 
 If this is a IN_ONLY operation then there is no
 outflow, so update state wan't be called. That is why
 I put it in the engine.
 (see the disscussion on the other clustering thread,
 about using flowComplete() as a replication point) 
 
 Regards,
 
 Rajith
 
 
 On 2/12/07, Chamikara Jayalath [EMAIL PROTECTED]
 wrote:
 Hi Deepal,
 
 On 2/12/07, Deepal Jayasinghe
 [EMAIL PROTECTED] wrote:
 Hi Chamikara;
 
  Hi Rajith, All,
 
  I did some changes to the clustering
 code. Please send your comments ...

Re: [Axis2] Adding ClusterManager code the the codebase

2007-02-06 Thread Bill Nagy
What is the cost of this going to be for someone who doesn't want
clustering/this particular approach to clustering?  I can't infer much
from the interface -- exactly which respective events are you referring
to?

-Bill


On Thu, 2007-02-01 at 23:16 +0530, Chamikara Jayalath wrote:
 At initiation Axis2 will load a ClusterManager implementation object
 (if configured) and will call the methods of it whenever respective
 events occur. 
 
 Chamikara
 
 
 [1] ClusterManager interface
 
 public abstract class ClusterManager {
 
 public abstract void init (ConfigurationContext context);
 public abstract void addContext (AbstractContext context); 
 public abstract void removeContext (AbstractContext context);
 public abstract void addProperty (AbstractContext context, String
 propertyName, Object  propertyValue);
 public abstract void removeProperty (AbstractContext context,
 String propertyName); 
 public abstract void touchProperty (AbstractContext context,
 String propertyName);
 public abstract void commit ();  
 
 }
 


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



Re: [Axis2] Adding ClusterManager code the the codebase

2007-02-06 Thread Bill Nagy
That's what I inferred from the interface -- any time there is a context
change or a property change, you want your interface to be invoked.
That's an awful lot of method invocations (even if they're no-ops) for
something arguably not core to a web services runtime.

-Bill

On Tue, 2007-02-06 at 21:32 +0530, Chamikara Jayalath wrote:
 Hi Dims,
 
 As this is still is its design stage final approach hs not been
 decided. The current code is available in a branch so no affect on the
 performance of the trunk.
 
 A method of the ClusterManager instance hs to be called in events such
 as Context creation and removal. Currently these directly get called
 from respective places of the context classes (should happen only if a
 ClusterManager hs been set i.e. when clustering is enabled).
 
 Chamikara
 
 
 On 2/6/07, Davanum Srinivas [EMAIL PROTECTED] wrote:
 Chamikara, 
 
 New notifications? like what we have already for
 services/modules?
 
 -- dims
 
 On 2/6/07, Chamikara Jayalath [EMAIL PROTECTED] wrote:
  Hi Bill, Dims, 
 
  The ClusterManager impl will be initiated with the
 ConfigContext. This will
  be called in places like Context Creation and removal and
 may be property
  updates (hvnt fully decided yet). When Clustering is not
 present the cost 
  should be reduced to a null check.
 
  Chamikara
 
 
 
 
  On 2/6/07, Davanum Srinivas [EMAIL PROTECTED] wrote:
   Bill, 
  
   from what i understand, it's in a separate maven module.
 Not in
   kernel. So you can ignore it :)
  
   -- dims
  
   On 2/6/07, Bill Nagy  [EMAIL PROTECTED]  wrote:
What is the cost of this going to be for someone who
 doesn't want 
clustering/this particular approach to clustering?  I
 can't infer much 
from the interface -- exactly which respective events
 are you referring
to?
   
-Bill
   
   
On Thu, 2007-02-01 at 23:16 +0530, Chamikara Jayalath
 wrote: 
 At initiation Axis2 will load a ClusterManager
 implementation object
 (if configured) and will call the methods of it
 whenever respective
 events occur. 

 Chamikara


 [1] ClusterManager interface

 public abstract class ClusterManager { 

 public abstract void init (ConfigurationContext
 context);
 public abstract void addContext (AbstractContext
 context);
 public abstract void removeContext
 (AbstractContext context); 
 public abstract void addProperty (AbstractContext
 context, String
 propertyName, Object  propertyValue);
 public abstract void removeProperty
 (AbstractContext context, 
 String propertyName);
 public abstract void touchProperty
 (AbstractContext context,
 String propertyName);
 public abstract void commit (); 

 }

   
   
   
 
 -
To unsubscribe, e-mail: 
  [EMAIL PROTECTED]
For additional commands, e-mail:
 [EMAIL PROTECTED]
   
   
  
  
   --
   Davanum Srinivas :: http://wso2.org/:: Oxygen for Web
 Services Developers
  
   
 
 -
   To unsubscribe, e-mail:
  [EMAIL PROTECTED]
   For additional commands, e-mail:
 [EMAIL PROTECTED]
  
  
 
 
 
 
 --
 Davanum Srinivas :: http://wso2.org/ :: Oxygen for Web
 Services Developers 
 
 -
 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: [Axis2]Re: svn commit: r503499 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java

2007-02-05 Thread Bill Nagy
Hi dims,

I am worried about the ease of use of developers, but not necessarily in
this particular case.  What I am worried about, however, is requiring
people to recycle their application server (restart their JVM) in
production environments simply to alter logging levels to debug an
issue.  If you want to skip the isDebugEnabled(...) etc, do something
like:

private static final boolean loggingEnabled =
(System.getProperty(Axis2.disableLogging) == null);

if (loggingEnabled  isDebugEnabled(...))
{
  log.debug(...);
}

(I would also put that System.getProperty(...) in a single class so that
you don't have every class invoke it [an expensive op] on loading.)

-Bill


On Mon, 2007-02-05 at 04:29 -0500, Davanum Srinivas wrote:
 Bill,
 
 Am not worried about ease of use of the developers. This thing needs
 to perform in a production environment. If it wastes 5 mins of
 developer time in editing code. So be it!
 
 thanks,
 dims
 
 On 2/5/07, Bill Nagy [EMAIL PROTECTED] wrote:
  Hi dims,
 
  Thank you for wrapping those, but 2 points: (1) they need to be wrapped
  with a log.isWarnEnabled(...) and not a log.isDebugEnabled(...), as the
  output message is log.warn(...) and not log.debug(...) and (2) please
  don't use a static (and especially a static final) to control logging,
  because that prevents users from changing log levels after a class has
  been loaded.  Thanks.
 
  -Bill
 
 
  On Sun, 2007-02-04 at 22:49 +, [EMAIL PROTECTED] wrote:
   Author: dims
   Date: Sun Feb  4 14:49:15 2007
   New Revision: 503499
  
   URL: http://svn.apache.org/viewvc?view=revrev=503499
   Log:
   no need to call no-op methods that prints warnings unless debug is enabled
  
   Modified:
   
   webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
  
   Modified: 
   webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
   URL: 
   http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java?view=diffrev=503499r1=503498r2=503499
   ==
   --- 
   webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
(original)
   +++ 
   webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/MessageContext.java
Sun Feb  4 14:49:15 2007
   @@ -88,6 +88,7 @@
 * setup for logging
 */
private static final Log log = 
   LogFactory.getLog(MessageContext.class);
   +private static final boolean isDebugEnabled = log.isDebugEnabled();
  
/**
 * @serial An ID which can be used to correlate operations on a 
   single
   @@ -570,12 +571,16 @@
}
  
public AxisOperation getAxisOperation() {
   -checkActivateWarning(getAxisOperation);
   +if(isDebugEnabled) {
   +checkActivateWarning(getAxisOperation);
   +}
return axisOperation;
}
  
public AxisService getAxisService() {
   -checkActivateWarning(getAxisService);
   +if(isDebugEnabled) {
   +checkActivateWarning(getAxisService);
   +}
return axisService;
}
  
   @@ -585,12 +590,16 @@
 * so the service might not match up with this serviceGroup
*/
public AxisServiceGroup getAxisServiceGroup() {
   -checkActivateWarning(getAxisServiceGroup);
   +if(isDebugEnabled) {
   +checkActivateWarning(getAxisServiceGroup);
   +}
return axisServiceGroup;
}
  
public ConfigurationContext getConfigurationContext() {
   -checkActivateWarning(getConfigurationContext);
   +if(isDebugEnabled) {
   +checkActivateWarning(getConfigurationContext);
   +}
return configurationContext;
}
  
   @@ -610,7 +619,9 @@
}
  
public ArrayList getExecutionChain() {
   -checkActivateWarning(getExecutionChain);
   +if(isDebugEnabled) {
   +checkActivateWarning(getExecutionChain);
   +}
return executionChain;
}
  
   @@ -646,7 +657,9 @@
 */
public Iterator getInboundExecutedPhases()
{
   -checkActivateWarning(getInboundExecutedPhases);
   +if(isDebugEnabled) {
   +checkActivateWarning(getInboundExecutedPhases);
   +}
if (inboundExecutedPhases == null)
{
inboundExecutedPhases = new LinkedList();
   @@ -698,7 +711,9 @@
 */
public Iterator getOutboundExecutedPhases()
{
   -checkActivateWarning(getOutboundExecutedPhases);
   +if(isDebugEnabled) {
   +checkActivateWarning(getOutboundExecutedPhases);
   +}
if (outboundExecutedPhases == null)
{
outboundExecutedPhases = new LinkedList

Re: [Axis2] Re: [continuum] BUILD FAILURE: Axis2

2007-02-03 Thread Bill Nagy
Thanks Jeremy.  I could swear that I tried to do that last night and
that what I got didn't have the target directory under modules, so I
just thought that it was just the pure source tree.  Unfortunately now
the previous build has gotten erased so I can't see what went wrong.

-Bill

On Sat, 2007-02-03 at 06:50 +, Jeremy Hughes wrote:
 On 03/02/07, Bill Nagy [EMAIL PROTECTED] wrote:
  How do I (can I?) get at the test report logs for the continuum build?
  I didn't see anything off of the continuum page except for the log that
  was in the body of the notification.  I assume that, for example, the
  logs for JAX-WS are
  at 
  /export/home/illsleyd/continuum/continuum-1.0.3/apps/continuum/working-directory/1/modules/jaxws/target/test-reports,
   but I have no idea how/if I can get at that directory.
 
 You can access the working copy the Continuum server has for each
 project. The directory you specify is here:
 
 http://ws.zones.apache.org:1/continuum/servlet/continuum/target/WorkingCopy.vm/view/WorkingCopy/id/1?userDirectory=modules/jaxws/target/test-reports
 
 Cheers,
 Jeremy
 
 -
 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]



[jira] Resolved: (AXIS2-2084) Improve performance in AxisEngine by removing calls to MessageContext.activate()

2007-02-02 Thread Bill Nagy (JIRA)

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

Bill Nagy resolved AXIS2-2084.
--

Resolution: Fixed
  Assignee: Bill Nagy

 Improve performance in AxisEngine by removing calls to 
 MessageContext.activate()
 

 Key: AXIS2-2084
 URL: https://issues.apache.org/jira/browse/AXIS2-2084
 Project: Axis 2.0 (Axis2)
  Issue Type: Improvement
  Components: kernel
Reporter: Ann Robinson
 Assigned To: Bill Nagy
Priority: Minor
 Attachments: patch.txt


 The AxisEngine currently invokes the MessageContext.activate() method to 
 ensure that a message context is in a usable state, in the event that a 
 message context has been saved/restored.   However, this responsibility can 
 be shifted to the code that saves/restore the message context so the 
 AxisEngine should not need to make this call.
 The solution is to remove calls to MessageContext.activate() from the 
 AxisEngine.

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


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



[jira] Resolved: (AXIS2-2002) Reduce the trace messages for object serialization to improve performance with trace enabled

2007-02-02 Thread Bill Nagy (JIRA)

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

Bill Nagy resolved AXIS2-2002.
--

Resolution: Fixed

 Reduce the trace messages for object serialization to improve performance 
 with trace enabled 
 -

 Key: AXIS2-2002
 URL: https://issues.apache.org/jira/browse/AXIS2-2002
 Project: Axis 2.0 (Axis2)
  Issue Type: Improvement
  Components: kernel
Reporter: Ann Robinson
 Assigned To: Bill Nagy
 Attachments: patch.txt, patch502673.txt


 There is extensive tracing being performed by the message context 
 serialization related code.  While this has been
 helpful in quickly debugging problems, the amount of trace messages needs to 
 be reduced to improve performance
 when tracing is enabled.
 Since much of the read/write to streams is done in a utility class, the 
 improvement can be made there.  
  

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


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



[Axis2] Re: [continuum] BUILD FAILURE: Axis2

2007-02-02 Thread Bill Nagy
How do I (can I?) get at the test report logs for the continuum build?
I didn't see anything off of the continuum page except for the log that
was in the body of the notification.  I assume that, for example, the
logs for JAX-WS are
at 
/export/home/illsleyd/continuum/continuum-1.0.3/apps/continuum/working-directory/1/modules/jaxws/target/test-reports,
 but I have no idea how/if I can get at that directory.

-Bill



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



[jira] Created: (AXIS2-2094) The class level comment on ConfigurationContext is not very descriptive.

2007-02-02 Thread Bill Nagy (JIRA)
The class level comment on ConfigurationContext is not very descriptive.


 Key: AXIS2-2094
 URL: https://issues.apache.org/jira/browse/AXIS2-2094
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy




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


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



[jira] Created: (AXIS2-2095) There are numerous public methods on ConfigurationContext which do not have comments.

2007-02-02 Thread Bill Nagy (JIRA)
There are numerous public methods on ConfigurationContext which do not have 
comments.
-

 Key: AXIS2-2095
 URL: https://issues.apache.org/jira/browse/AXIS2-2095
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy




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


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



[jira] Created: (AXIS2-2096) The isServerSide/setServerSide methods on MessageContext are inappropriately named.

2007-02-02 Thread Bill Nagy (JIRA)
The isServerSide/setServerSide methods on MessageContext are inappropriately 
named.
---

 Key: AXIS2-2096
 URL: https://issues.apache.org/jira/browse/AXIS2-2096
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy


The isServerSide/setServerSide methods on MessageContext are inappropriately 
named, as they would lead one to believe that it is a test as to whether or not 
you were running in a server environment (as opposed to on a client.)

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


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



[jira] Created: (AXIS2-2097) The class level comment on MessageContext is not very descriptive.

2007-02-02 Thread Bill Nagy (JIRA)
The class level comment on MessageContext is not very descriptive.
--

 Key: AXIS2-2097
 URL: https://issues.apache.org/jira/browse/AXIS2-2097
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy




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


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



[jira] Created: (AXIS2-2098) There are numerous public methods on MessageContext that do not have comments.

2007-02-02 Thread Bill Nagy (JIRA)
There are numerous public methods on MessageContext that do not have comments.
--

 Key: AXIS2-2098
 URL: https://issues.apache.org/jira/browse/AXIS2-2098
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy




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


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



[jira] Created: (AXIS2-2099) The class level comment on PhaseHolder is not very descriptive.

2007-02-02 Thread Bill Nagy (JIRA)
The class level comment on PhaseHolder is not very descriptive.
---

 Key: AXIS2-2099
 URL: https://issues.apache.org/jira/browse/AXIS2-2099
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy




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


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



[jira] Created: (AXIS2-2100) The class level comment on PhaseResolver is not very descriptive.

2007-02-02 Thread Bill Nagy (JIRA)
The class level comment on PhaseResolver is not very descriptive.
-

 Key: AXIS2-2100
 URL: https://issues.apache.org/jira/browse/AXIS2-2100
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy




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


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



[jira] Created: (AXIS2-2101) The engageModuleToOperation method on PhaseResolver is missing a comment.

2007-02-02 Thread Bill Nagy (JIRA)
The engageModuleToOperation method on PhaseResolver is missing a comment.
-

 Key: AXIS2-2101
 URL: https://issues.apache.org/jira/browse/AXIS2-2101
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy




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


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



[jira] Created: (AXIS2-2102) The logic in the engageModuleToOperation method on PhaseResolver is very obfuscated.

2007-02-02 Thread Bill Nagy (JIRA)
The logic in the engageModuleToOperation method on PhaseResolver is very 
obfuscated.


 Key: AXIS2-2102
 URL: https://issues.apache.org/jira/browse/AXIS2-2102
 Project: Axis 2.0 (Axis2)
  Issue Type: Task
  Components: kernel
Reporter: Bill Nagy


The logic in the engageModuleToOperation method on PhaseResolver is very 
obfuscated (e.g. why is there a for loop for iterating over the set of flows 
when there is a switch block inside of it which explicitly enumerates each 
flow?)

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


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



[Axis2] Re: svn commit: r501805 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/OperationClient.java

2007-02-01 Thread Bill Nagy
Can we please come to an agreement to fix a single issue in a commit and
not to make unrelated formatting or other changes at the same time?  It
makes it much more difficult to figure out what has been done if you do
that.  (Note that I'm not saying that multiple things can't change if
they are related to the same issue/feature, just that we should try to
eliminate irrelevant changes within the same commit.)  Thanks.

-Bill

On Wed, 2007-01-31 at 11:32 +, [EMAIL PROTECTED] wrote:
 Author: deepal
 Date: Wed Jan 31 03:32:17 2007
 New Revision: 501805
 
 URL: http://svn.apache.org/viewvc?view=revrev=501805
 Log:
 fixing 1857
  - rather than just keeping parent option object inside opclient ,
 changed to create new option putting parent option as parent.
 
 Modified:
 
 webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/OperationClient.java
 
 Modified:
 webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/OperationClient.java
 URL:
 http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/OperationClient.java?view=diffrev=501805r1=501804r2=501805
 ==
 ---
 webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/OperationClient.java
  (original)
 +++
 webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/client/OperationClient.java
  Wed Jan 31 03:32:17 2007
 @@ -25,11 +25,11 @@
  import org.apache.axis2.context.OperationContext;
  import org.apache.axis2.context.ServiceContext;
  import org.apache.axis2.description.AxisOperation;
 -import org.apache.axis2.description.TransportOutDescription;
  import org.apache.axis2.description.ClientUtils;
 +import org.apache.axis2.description.TransportOutDescription;
  import org.apache.axis2.i18n.Messages;
 -import org.apache.axis2.util.UUIDGenerator;
  import org.apache.axis2.util.TargetResolver;
 +import org.apache.axis2.util.UUIDGenerator;
  import org.apache.axis2.wsdl.WSDLConstants;
  
  import java.util.Iterator;
 @@ -47,31 +47,31 @@
   */
  public abstract class OperationClient {
  
 - protected AxisOperation axisOp;
 - 
 - protected ServiceContext sc;
 - 
 - protected Options options;
 - 
 - protected OperationContext oc;
 - 
 - protected Callback callback;
 - 
 - /*
 -  * indicates whether the MEP execution has completed (and hence
 ready for
 -  * resetting)
 -  */
 - protected boolean completed;
 - 
 - protected OperationClient(AxisOperation axisOp, ServiceContext
 sc,
 -   Options options) {
 - this.axisOp = axisOp;
 - this.sc = sc;
 - this.options = options;
 - this.completed = false;
 - this.oc = new OperationContext(axisOp);
 - this.oc.setParent(this.sc);
 - }
 +protected AxisOperation axisOp;
 +
 +protected ServiceContext sc;
 +
 +protected Options options;
 +
 +protected OperationContext oc;
 +
 +protected Callback callback;
 +
 +/*
 +* indicates whether the MEP execution has completed (and hence
 ready for
 +* resetting)
 +*/
 +protected boolean completed;
 +
 +protected OperationClient(AxisOperation axisOp, ServiceContext
 sc,
 +  Options options) {
 +this.axisOp = axisOp;
 +this.sc = sc;
 +this.options = new Options(options);
 +this.completed = false;
 +this.oc = new OperationContext(axisOp);
 +this.oc.setParent(this.sc);
 +}
  
  /**
   * Sets the options that should be used for this particular
 client. This
 @@ -162,11 +162,11 @@
  
  
  /**
 - * To close the transport if necessary , can call this method.
 The main 
 - * usage of this method is when client uses two tarnsports for
 sending and 
 - * receiving , and we need to remove entries for waiting calls in
 the 
 + * To close the transport if necessary , can call this method.
 The main
 + * usage of this method is when client uses two tarnsports for
 sending and
 + * receiving , and we need to remove entries for waiting calls in
 the
   * transport listener queue.
 - * Note : DO NOT call this method if you are not using two
 transports to 
 + * Note : DO NOT call this method if you are not using two
 transports to
   * send and receive
   *
   * @param msgCtxt : MessageContext# which has all the transport
 information
 @@ -215,7 +215,8 @@
  
  protected void addReferenceParameters(MessageContext msgctx) {
  EndpointReference to = msgctx.getTo();
 -if (options.isManageSession()) {
 +if (options.isManageSession() || (options.getParent() != null
 
 +options.getParent().isManageSession())) {
  EndpointReference tepr = sc.getTargetEPR();
  if (tepr != null) {
  Map map = tepr.getAllReferenceParameters();
 @@ -232,7 +233,7 @@

Re: [Axis2] Issues with the current code base

2007-02-01 Thread Bill Nagy
Hi Rajith,

Usage of the serialization is/will be configurable through Sandesha --
Matt said that he would be adding code to do that (if it isn't there
already.)  If the serialization doesn't get invoked, then all that will
occur will be a few no-op method invocations.

I don't agree with point 5 being a definite no no.  I believe that it
is a matter of personal preference and if the author of the code
believes that it makes it easier to read and doesn't create issues then
so be it.  Any reasonable editor today will have no difficulty locating
the definition if you need to look at it.

As I said, I certainly welcome any concerned party to show me (in
hard/accurate numbers) where the code does not perform and it will be
addressed.

-Bill

On Wed, 2007-01-31 at 10:24 -0500, Rajith Attapattu wrote:
 I do have one question for Anne, is this serialization configurable ?
 In other words can I switch off this behaviour if I don't want it?
 (Pardon me for not going through the code to figure this out )
 
 I also share the same concerns as Deepal about code conventions. 
 No matter what coding convention was followed, point 5 is a definite
 no no.
 
 Sanjiva, I am glad that you are requesting some benchmarking, I was
 consistently proposing that Anne should subject this code through some
 high volume message scenarios to figure out the performance impact. 
 
 The basis for my objections was that the overhead introduced by this
 feature, out weighs the benefits of it. YMMV
 
 Rajith
 
 On 1/29/07, Deepal Jayasinghe [EMAIL PROTECTED] wrote:
 Hi Bill, 
 
 
 Among the all , the most worst thing I saw in the code is
 following kind
 of things, I strongly believe we should not have this kind
 of code in
 the code base, If you found such kind of code please point
 out them then 
 and there.
 
  - String tmpClassNameStr = null;   (is this the way we
 initialize to
 NULL )
  - String tmpHasList  = no list
  - Unnecessary casting 
  - A number of unused variables
  - Variable declarations here and there  (as an example
 private static
 final String  - selfManagedDataDelimiter = *;)
 
 
 
 I'm indifferent on the first two; in some cases it makes the
 code easier
 to read and debug at the cost of an assignment and space in
 the string
 table.
 
 Well , more focus should be for code readability than
 debugging . 
 
 The third one should be caught by any decent compiler and
 eliminated (so long as you're not casting back and forth) and
 again
 sometimes enhances readability so I'm indifferent on this one
 as well. 
 I agree on the fourth -- I don't think that there's ever a
 good case for
 extraneous variables.  The fifth is again a code readability
 issue and
 one of the reasons that Java doesn't require that you declare
 everything 
 up front.
 
 
 Thank's for trying to clarify all these points. Just hope not
 everybody
 will start writing code like this :-)
 
 BTW in point 5, I was talking about class level 'public
 static' 
 variables, not method level variables.
 For e.g.
 
 class {
 public static v1;
 method1 ();
 public static v2();
 method2();
 }
 
 I dont think this is the way to go.
 
 Deepal. 
 
 
 
 
 -
 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: [Axis2] Issues with the current code base

2007-02-01 Thread Bill Nagy
Hi Sanjiva,

On Thu, 2007-02-01 at 21:33 +0530, Sanjiva Weerawarana wrote:
 On Thu, 2007-02-01 at 06:10 -0800, Bill Nagy wrote:
  Hi Rajith,
  
  Usage of the serialization is/will be configurable through Sandesha --
  Matt said that he would be adding code to do that (if it isn't there
  already.)  If the serialization doesn't get invoked, then all that will
  occur will be a few no-op method invocations.
  
  I don't agree with point 5 being a definite no no.  I believe that it
  is a matter of personal preference and if the author of the code
  believes that it makes it easier to read and doesn't create issues then
  so be it.  Any reasonable editor today will have no difficulty locating
  the definition if you need to look at it.
 
 I disagree- as an open source effort we should write in ways that
 everyone can easily read and understand. These conventions are not
 tailorable for personal preference!
 
 It seems to me that most people declare variables at the top and methods
 below. Is that such a hard convention to accept?
 

I don't honestly think that anyone who we want to be writing code for
the project would have trouble understanding code simply because braces
weren't on the lines where they typically put them or that methods
aren't named in the same way that they usually name them.  With respect
to this particular issue, I don't think that the vast majority of people
go look for declarations by scrolling to the top of the file -- IDEs
have made that unnecessary.  I think that we simply disagree on where to
draw the line for reasonable deviations from the rules.

  As I said, I certainly welcome any concerned party to show me (in
  hard/accurate numbers) where the code does not perform and it will be
  addressed.
 
 IMO its everyone's responsibility to make sure Axis2 performs well.
 Telling someone else to run perf tests, do profiling and then point out
 the place to fix is silly .. that person might as well fix it. Can't Ann
 write some tests and check the perf and confirm all is koshure??

I completely agree.  The issues that have been raised so far, however,
have all been of the form The code gets invoked on every invocation --
I don't like that.  I was addressing those issues.  I committed the
code, therefore I am ultimately responsible for it.  Before I did so, I
read through it and did my best to make sure that it was not adversely
effecting performance, and those are the points that I keep raising.  Is
this a lot of code that was changed/added?  Certainly.  Do I believe
that it is isolated when not in use?  Yes.  I don't have to run
performance tests simply because somebody says so when I'm comfortable
with the logic of a particular change.  Likewise, I don't believe that
anybody runs performance tests for the vast majority of the changes that
they make to the code, and they probably have thought about isolation a
lot less than was done so for this particular change.

Now if you want to raise the issue of performance when this particular
branch of code is in use, that's a fair thing to look at.  Right from
the start, however, I will tell you that what existed before and what
exists in the new code are not functionally equivalent.  I'm not saying
that the new code is slower or that if it is that it shouldn't be made
to be faster -- I'm simply saying that it won't be comparing apples to
apples.

 
 I'd prefer to be having this conversation with Ann .. not that I don't
 like to chat with you Bill ;-)).

That's fine; she's free to speak up (as she did.)  I was just aware that
she was busy, and since I'm aware of the details I wanted to address
your concerns as quickly as possible.  Also, as I stated, I committed
the code into the tree, and so am ultimately responsible for that
commit.

-Bill



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



[jira] Resolved: (AXIS2-2076) Improve trace correlation for message context serialization

2007-02-01 Thread Bill Nagy (JIRA)

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

Bill Nagy resolved AXIS2-2076.
--

Resolution: Fixed
  Assignee: Bill Nagy

 Improve trace correlation for message context serialization
 ---

 Key: AXIS2-2076
 URL: https://issues.apache.org/jira/browse/AXIS2-2076
 Project: Axis 2.0 (Axis2)
  Issue Type: Improvement
  Components: kernel
Reporter: Ann Robinson
 Assigned To: Bill Nagy
Priority: Minor
 Attachments: patch.txt


 In debugging some of the more complicated application scenarios, it has 
 become clear that having better correlation in the trace messages among some 
 of the objects in the message context object graph is very helpful in 
 determining failure points.
 The following needs to be done:
 - Make use of the logCorrelationIDString in the MessageContext
 - Add a logCorrelationIDString to the OperationContext
 - Add a logCorrelationIDString to the Options
 - Add some try..catch blocks around the use of 
 ObjectStateUtils.writeObject(...) for some objects
 In addition, clean up the following
 - remove commented out System.out.println lines 
 - move the check of the NeedsToBeReconciled flag to a method 

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


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



Re: [Axis2] Issues with the current code base

2007-01-29 Thread Bill Nagy
Hi Deepal,

On Mon, 2007-01-29 at 11:41 +0530, Deepal Jayasinghe wrote:
 Hi all;
 
 I just went though the current code base and realized that
 MessageContext code has been changed a lot . I found few issues with the
 code base and hope we need to fix them. So I thought of sending this
 mail for everyone's consideration.
 
 Well someone please explain to me whose going to need MessageContext
 serialization ,
  Chamikara : Do you want that for Sandesha ?
  Ruchith : Do you want that for Security ?
 If none of you want this , who else need this ?

As Matt pointed out, we went through this on an earlier discussion --
Sandesha is the intended consumer.


 I am asking this question b'coz introduction of MC serialization we have
 the following for each req.
  - When ever Axis2 received a message it calls 
 activateMessageContext(msgContext);
  - And what that does is , it calls mc.activate(engineContext); method
 
 Unfortunately that method is TOO long and was very difficult to
 understand:). Ann can you simplify the method (that will be very helpful) .

Actually, if you notice, the first line of MessageContext.activate(...)
is a short-circuit test on needsToBeReconciled, which is only ever set
when the MessageContext (and related parts) are deserialized using the
MessageContext deserialization routines -- for all other cases, it ends
up being a no-op so you can stop reading at that point 8-].  As for the
method being too long, of the 306 lines in that method, 110 are
comments/log messages, and the rest of the code consists of
if-not-null-invoke-a-method blocks.  Unfortunately the MessageContext
has a lot of handles to other objects, so there need to be a number of
those tests.  If you're having difficulty understanding a particular
section of that method, please ask and we'd be happy to explain it to
you.  

I certainly think that the rest of the code could use some code
bloat (i.e. comments) -- e.g. there are no class-level comments on
ListenerManager, AxisConfiguration, PhaseResolver (just to name a few.)

  
 In the meantime code convention in MC has changed a lot and need to have
 very consistent code convention, please do not differ form that.

This is the second time that code conventions have been mentioned
(Sanjiva brought this up in an earlier discussion as well) -- I was not
aware of these, and was unable to find anything in the docs that talk
about them.  (The Developer Guidelines only talk about the mailing
list.)  Could you please point me to where these are codified?

 Among the all , the most worst thing I saw in the code is following kind
 of things, I strongly believe we should not have this kind of code in
 the code base, If you found such kind of code please point out them then
 and there.
 
  - String tmpClassNameStr = null;   (is this the way we initialize to
 NULL )
  - String tmpHasList  = no list
  - Unnecessary casting
  - A number of unused variables
  - Variable declarations here and there  (as an example private static
 final String  - selfManagedDataDelimiter = *;)

I'm indifferent on the first two; in some cases it makes the code easier
to read and debug at the cost of an assignment and space in the string
table.  The third one should be caught by any decent compiler and
eliminated (so long as you're not casting back and forth) and again
sometimes enhances readability so I'm indifferent on this one as well.
I agree on the fourth -- I don't think that there's ever a good case for
extraneous variables.  The fifth is again a code readability issue and
one of the reasons that Java doesn't require that you declare everything
up front. 

-Bill


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



Re: [Axis2] Issues with the current code base

2007-01-29 Thread Bill Nagy
Hi Sanjiva,

On Mon, 2007-01-29 at 23:42 +0530, Sanjiva Weerawarana wrote:
 Bill, IMO I made a mistake in lifting my -1 on this patch .. this
 could've and should've gone in as an auxiliary bit of code without
 modifying MC at all. Calling mc.activateMessageContext on *every*
 message that comes in seems like a major ovehead to the mind even if not
 to the body (you know what I mean). There was no technical need
 whatsoever for this code to be in MC itself for Matt to be able to do
 whatever he needs to make Sandesha persist using Java object
 serialization instead of the serialization architecture that exists
 now. 
 
 Next time I won't give in so easy :).

You are certainly entitled to your opinion; I did attempt to continue
the discussion.

 
 In any case, I'm yet to see an explanation from Anne for the algorithm
 used to figure out the parent service context etc. for a message
 context. Anne, can you explain how you're going about figuring those
 refs out please? Please don't say RTFS :(.
 

I will make sure that she is aware of your request.

 We need to performance compare 1.1.1 with the current head and see what
 the impact of this change is. 

I would be more than happy for someone to compare r495105 to r495106(the
version where the changes were committed) and would be more than willing
to address any performance concerns that arise from that comparison.

 
 On code conventions- search the archives please .. we've had lots of
 discussion on this in the early days and decided on the conventions. I'm
 pretty sure we put them in the wiki somewhere but have no idea where off
 the top of my head :(. Interestingly, even the original JAX-WS proposal
 by IBM mentions coding conventions:
 http://wiki.apache.org/ws/FrontPage/Axis2/JAX-WS-Proposal. so maybe
 someone in IBM found a ref?

I was unable to find them on the wiki (I looked at both the current as
well as the old root pages.)  The JAX-WS proposal only speaks in the
abstract about code organization -- it says nothing about the formatting
of Java source files.  Certainly you can't expect people to adhere to
coding guidelines that only appear in email messages from almost 2 years
ago or even know that they exist in the first place.

-Bill

 
 Sanjiva.
 
 On Mon, 2007-01-29 at 07:27 -0800, Bill Nagy wrote:
  Hi Deepal,
  
  On Mon, 2007-01-29 at 11:41 +0530, Deepal Jayasinghe wrote:
   Hi all;
   
   I just went though the current code base and realized that
   MessageContext code has been changed a lot . I found few issues with the
   code base and hope we need to fix them. So I thought of sending this
   mail for everyone's consideration.
   
   Well someone please explain to me whose going to need MessageContext
   serialization ,
Chamikara : Do you want that for Sandesha ?
Ruchith : Do you want that for Security ?
   If none of you want this , who else need this ?
  
  As Matt pointed out, we went through this on an earlier discussion --
  Sandesha is the intended consumer.
  
  
   I am asking this question b'coz introduction of MC serialization we have
   the following for each req.
- When ever Axis2 received a message it calls 
   activateMessageContext(msgContext);
- And what that does is , it calls mc.activate(engineContext); method
   
   Unfortunately that method is TOO long and was very difficult to
   understand:). Ann can you simplify the method (that will be very helpful) 
   .
  
  Actually, if you notice, the first line of MessageContext.activate(...)
  is a short-circuit test on needsToBeReconciled, which is only ever set
  when the MessageContext (and related parts) are deserialized using the
  MessageContext deserialization routines -- for all other cases, it ends
  up being a no-op so you can stop reading at that point 8-].  As for the
  method being too long, of the 306 lines in that method, 110 are
  comments/log messages, and the rest of the code consists of
  if-not-null-invoke-a-method blocks.  Unfortunately the MessageContext
  has a lot of handles to other objects, so there need to be a number of
  those tests.  If you're having difficulty understanding a particular
  section of that method, please ask and we'd be happy to explain it to
  you.  
  
  I certainly think that the rest of the code could use some code
  bloat (i.e. comments) -- e.g. there are no class-level comments on
  ListenerManager, AxisConfiguration, PhaseResolver (just to name a few.)
  

   In the meantime code convention in MC has changed a lot and need to have
   very consistent code convention, please do not differ form that.
  
  This is the second time that code conventions have been mentioned
  (Sanjiva brought this up in an earlier discussion as well) -- I was not
  aware of these, and was unable to find anything in the docs that talk
  about them.  (The Developer Guidelines only talk about the mailing
  list.)  Could you please point me to where these are codified?
  
   Among the all , the most worst thing I saw in the code

[Axis2] Re: svn commit: r499521 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2: client/ServiceClient.java description/OutInAxisOperation.java

2007-01-25 Thread Bill Nagy
Hi Sanjiva,

I wasn't making the point because I think that it is wrong (at least in
this case,) I was making the point that the same process has occurred
over and over again in the past -- meaning that there are lots of JIRA
issues and even just commits that occur without discussion.  I made this
statement because, as I indicated, Matt's change didn't modify the API,
so I viewed it no differently than other people shifting code around to
fix other issues.  I read through his change, compiled it, tested it,
and it worked so I committed it.  Had the API been modified or had it
been a major modification I would have brought it up on the list just as
I have done in the past.

-Bill


On Fri, 2007-01-26 at 04:48 +0530, Sanjiva Weerawarana wrote:
 On Thu, 2007-01-25 at 05:49 -0800, Bill Nagy wrote:
  
  I can point out 100s of instances of this pattern of modification
  without any discussion on the mailing list what so ever.
 
 This is the second time you've made this type of an assertion recently
 (the last time was during the MC serialization discussion when you said
 that there were lots of areas where things don't work as advertised). 
 
 If you see a problem please point it out then and there without keeping
 silent and then making a very general statement of community
 malpractice. We're an open source project running under a fully open
 model- if someone's not doing the right thing point it out, ask for an
 explanation and then let's force changes as needed.
 
 Sanjiva.


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



[Axis2]Re: svn commit: r499521 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2: client/ServiceClient.java description/OutInAxisOperation.java

2007-01-25 Thread Bill Nagy
Hi Sanjiva,

I find this statement odd -- the JAXWS code has been in place for
several months and is clearly another API (yes, I know that it hasn't
been packaged in a release, but neither have Matt's changes.)  Nobody is
advocating that end-users go through the OperationClient, however any
other programming models that are layered on top of the base Axis2
runtime (e.g. JAXWS) probably will.

Matt's modifications made no reference in any of the comments about this
being a new or the preferred API, so I don't see how users are going to
be aware of these modifications.  It shouldn't make a difference at all
where the logic lives -- they should be using what we tell them to use.

-Bill
 

On Fri, 2007-01-26 at 04:51 +0530, Sanjiva Weerawarana wrote:
 On Wed, 2007-01-24 at 22:38 -0600, Nicholas L Gallardo wrote:
  
  Matt's patch is intended to push some logic that exists in the
  ServiceClient down to the OperationClient.  I don't see this as a
  change in the API, just an addition to the behavior based on certain
  criteria.  Would there be a reason for not including this in the
  OperationClient rather than the ServiceClient? 
 
 It changes the API because we've so far had exactly one way to invoke a
 service: using the ServiceClient API. Now we have two. I view that as a
 major API change because the user experience has changed dramatically. 
 
 Matt, is this change meant to be something for say JAX-WS to use and not
 for end users? If so can we document it as such? If not I don't
 understand how Sandesha has been able to handle every RM scenario we've
 seen so far without the need for this API change.
 
 Sanjiva.


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



[Axis2] Improving trace logs

2007-01-07 Thread Bill Nagy
Hi folks,

At least for me, trying to parse all but the most trivial trace file is
a nightmare -- we have multiple threads, multiple concurrent messages
being sent and received on a single thread, message processing being
handed off between threads, etc.  I figure that there has to be a way to
make the logs easier to understand, so as a small first step I would
like to propose adding a unique id to each message/MessageContext to be
used as a correlation point for each of the log messages.  (e.g. Message
uid:2J39JAJQI11U2: AxisEngine receive: ...)

We can't correlate on the object id's of the MessageContext's, because
those change if the message is persisted/restored.  We also can't
correlate on the WS-A MessageID, as that is not guaranteed to be
present, and even if it is, it won't be identified early enough in the
flow to prevent having to perform a double correlation.

The usefulness of this will, of course, depend upon log messages taking
advantage of its presence, but I certainly view it as a worthwhile use
of bytes.  Comments?

-Bill



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



Re: [AXIS2] Proposal for saving the message context

2007-01-05 Thread Bill Nagy
I'm not giving up, and I want to argue some more 8-].

From a pure Axis context perspective, I agree (without having looked
through the code in detail) that your assertion about there not being
any private state is correct.  From the perspective of the state as a
whole, I don't agree -- in our use of Axis2, for example, we have
properties stored in the contexts that have private state information
that must be serialized.

I'm not arguing with the fact that we COULD place the serialization code
outside of the objects that they operate on -- that can always be done
(although it may require exposing an interface only used by the
serialization mechanism if there is private info) -- I'm arguing about
whether or not it SHOULD be done.  By moving it outside of the objects
themselves, you are duplicating the metadata of the object structure
and hierarchy and therefore any changes to that metadata (e.g. adding
a new field, changing types, moving fields, etc.) need to be made both
to the class and to logic external to the class.  I believe this to be
error-prone and a bad design.  Maybe your are correct in believing that
the serialization code can only be used by RM -- even so, I believe that
RM is important enough that the core should make allowances for it and
that this particular allowance makes for a more maintainable system if
nothing else. 

-Bill

On Fri, 2007-01-05 at 23:19 +0530, Sanjiva Weerawarana wrote:
 On Tue, 2007-01-02 at 15:28 -0800, Bill Nagy wrote:
  OK, here's my $0.02:
  
  (1)I would argue that reliable delivery of messages is an integral part
  of a web services stack and therefore deserves special treatment in the
  core where necessary so long as it does not adversely affect processing
  when the reliability is achieved through other means (such as being
  inherent with a transport) or is not required.  I believe that exposing
  a serialization/deserialization API as part of the MessageContext API is
  a part of this.  If this API can't be used by other things, then we
  should try to make it better (See (3) below.)
 
 I think we're in agreement that there's no private state involved with
 this serialization- so there's no fundamental reason for this code to be
 inside MC instead of outside. 
 
  (2)I will also argue that, following good design practices (e.g.
  encapsulation,) objects themselves should be in charge of
  persisting/restoring their state.
 
 The problem is that we've changed the conversation from the right
 solution to the problem to having a solution which needs a problem. The
 problem is one of supporting saving state for RM and we both appear to
 agree that technically this can be outside of MC stuff. The solution
 that is in front of is much more generic (saving an MC), yet the current
 impl is not so generic and really cannot be made to be generic. (That's
 my conclusion after thinking about this for more than an year ..
 remember we've been here done this before; these objects were
 serializable a while back and we backtracked. YMMV obviously.
 
Does this increase the amount of code
  within the objects?  Sure.  Does it make the objects harder for others
  to understand?  Doubtful -- most of the relevant code is kept within a
  few methods.  Does it make modifications to the object more convenient
  and less error prone?  Certainly -- having all of the code in once place
  is much easier, although it still requires some degree of vigilance.
  It's far better to have each object delegate the tasks of serializing to
  each of its subordinate objects (i.e. fields) than to have a single
  block of code that understands how to serialize the entire graph --
  something which may be impossible if some of the properties stored
  within the contexts are well encapsulated.
 
 Except that in this case none of the things Ann is saving are private
 members. I would not agree that that means things are not well
 encapsulated- it means that interesting bits of the various contexts
 are public properties.
 
  (3)This is iterative development -- lets be real, there are a lot of
  things in Axis2 that don't work quite the way that one would think.  I
  don't believe that anything should be held out simply because it doesn't
  address every possible usecase, so long as it doesn't break the rest of
  the system.
 
 Sure. If you do know of other areas that need improvement please do open
 JIRAs so that we can keep track of them.
 
  While Ann's patch is undoubtedly not perfect and will continue to
  evolve, I do believe that it is a step in the right direction and should
  be committed.
 
 I don't agree its the right way to solve the problem but I'm giving up
 and lifting the objection because this conversation has become
 unnecessarily politicized. Disappointing but let's get on with it and
 move onto bigger and better problems we have to deal with!
 
 Sanjiva.


-
To unsubscribe, e-mail: [EMAIL PROTECTED

Re: [AXIS2] Proposal for saving the message context

2007-01-02 Thread Bill Nagy
OK, here's my $0.02:

(1)I would argue that reliable delivery of messages is an integral part
of a web services stack and therefore deserves special treatment in the
core where necessary so long as it does not adversely affect processing
when the reliability is achieved through other means (such as being
inherent with a transport) or is not required.  I believe that exposing
a serialization/deserialization API as part of the MessageContext API is
a part of this.  If this API can't be used by other things, then we
should try to make it better (See (3) below.)

(2)I will also argue that, following good design practices (e.g.
encapsulation,) objects themselves should be in charge of
persisting/restoring their state.  Does this increase the amount of code
within the objects?  Sure.  Does it make the objects harder for others
to understand?  Doubtful -- most of the relevant code is kept within a
few methods.  Does it make modifications to the object more convenient
and less error prone?  Certainly -- having all of the code in once place
is much easier, although it still requires some degree of vigilance.
It's far better to have each object delegate the tasks of serializing to
each of its subordinate objects (i.e. fields) than to have a single
block of code that understands how to serialize the entire graph --
something which may be impossible if some of the properties stored
within the contexts are well encapsulated.

(3)This is iterative development -- lets be real, there are a lot of
things in Axis2 that don't work quite the way that one would think.  I
don't believe that anything should be held out simply because it doesn't
address every possible usecase, so long as it doesn't break the rest of
the system.

While Ann's patch is undoubtedly not perfect and will continue to
evolve, I do believe that it is a step in the right direction and should
be committed.

-Bill

On Fri, 2006-12-22 at 04:49 +0530, Sanjiva Weerawarana wrote:
 On Thu, 2006-12-21 at 11:14 -0600, Ann Robinson wrote:
  I have submitted an updated patch for the message context save/restore
  proposal (under JIRA axis2-1567). Now, when a message context is
  restored, it looks for existing ServiceContext and ServiceGroupContext
  objects to use in its object hierarchy. This means that a restored
  object graph for a MessageContext is made up of mostly existing
  *Context and Axis* objects. In other words, object re-use for the
  *Context and Axis* objects is maximized. And, when existing context
  object are re-used, any saved properties are merged into the existing
  objects.
  
  Just to summarize, when a message context is saved, its state is
  collected and saved, including:
  - the settings for various flags in the message context
  - properties associated with the message context (which are really
  contained in an Options object)
  - the actual message 
  - where in the message processing the message is
  - meta data about the handlers associated with processing the message
  - meta data about the AxisOperation/AxisService/AxisServiceGroup
  associated with the message context
  - the OperationContext/ServiceContext/ServiceGroupContext associated
  with the message context
 
 As far as I can see none of this data is private to a message context;
 so the answer to the question I asked earlier appears to be that this
 code can perfectly well live in a utility class.
 
  When a message context is restored, the message context object graph
  is re-built based on the information that was saved. If possible,
  existing objects are used from the engine where the message context is
  being restored. Names or IDs are used to find existing objects that
  correspond to their counterparts from the saved environment. Where
  existing objects are used, saved properties are merged into the
  existing objects.
 
 I'm confused. What do you mean by existing objects? A particular message
 exchange lives within a particular service context. You can't just put
 it back into some exiting object; it must go back into the corresponding
 service context etc.. is that what you mean? If so how do you record the
 ID of the service context object? Two different message contexts saved
 during two save actions could refer to the same service context with
 different state values of course.
 
  The message context save/restore proposal is intended to benefit
  AXIS2. This proposal gives AXIS2 some functionality that allows AXIS2
  to be used in more customer environments. 
  
  I have indicated in previous postings that the prototype for the
  message context save/restore proposal has been used internally by IBM.
  This statement was not intended to divide the open source community
  along company lines but instead, to indicate that the prototype has
  been tested and reached a level of stability and that negative
  side-effects have been minimized.
 
 Absolutely. As I stated earlier, there's nothing wrong with providing
 hooks that help people who build on top of Axis2. 

Re: [Axis2][Proposal] Folding changes back to trunk

2006-11-16 Thread Bill Nagy
Hi dims,

That's fine, I'll start merging in the changes.

-Bill

On Wed, 2006-11-15 at 01:06 -0500, Davanum Srinivas wrote:
 Folks,
 
 I spent the day today staring at diff's...tried all sorts of things
 with svn merge and winmerge. Bottom line, there's tons of changes in
 the branch and HEAD has much fewer changes. So here's the proposal.
 
 (Assuming base svn url is http://svn.apache.org/repos/asf/webservices/axis2/)
 1. Freeze check-ins to trunk/java and branches/java/1_1/
 2. copy trunk/java into branches/java/old_trunk/
 3. copy branches/java/1_1/ to trunk/java
 4. Fix all the version #'s in project.xml/project.properties/pom.xml's
 5. Copy branches/java/old_trunk/modules/jaxws to
 trunk/java/modules/jaxws (complete overwrite since all changes were
 made in head)
 6. Merge addressing module changes from
 branches/java/old_trunk/modules/addressing  to
 trunk/java/modules/addressing by hand
 7. Merge kernel module changes from
 branches/java/old_trunk/modules/kernel to trunk/java/modules/kernel by
 hand
 8. Unfreeze trunk/java and branches/java/1_1/
 9. Any other items can be merged on a need basis from old_trunk.
 
 I can handle 1-5 and 8.
 
 Bill and David, could you please help with 6 and 7? I could use some
 help with 5 too if i run into trouble getting all the tests to work
 properly.
 
 Everyone can pitch in after step 8. people can continue working on
 old_trunk, but they would be responsible for merging back...Please
 remember, we have gone to great lengths to stabilize the code on the
 branch and this is the best way that i can think of to minimize
 instability and move forward.
 
 Questions, comments, concerns?
 
 Thanks,
 dims
 


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



Re: [Axis2] Can someone explain the logic in AxisEngine.TransportNonBlockingInvocationWorker?

2006-11-08 Thread Bill Nagy
Hi Deepal,

I understand why the class is there; I don't understand why the changes
in 415245 were made -- that's what I was asking for clarification about.
The 'done' block is completely irrelevant and makes the code harder to
read, unless there is something that I'm missing, which is why I was
asking.  BTW, the result of your comment modification is inaccurate; the
class is used anytime someone sets the useSeparateListener option on an
OutIn operation, not just when two transports are in use.

-Bill


On Wed, 2006-11-08 at 10:30 +0530, Deepal Jayasinghe wrote:
 Hi Bill ;
 I added a few comment line into the code.
 
 In revision 415245, some code was added to the
 AxisEngine.TransportNonBlockingInvocationWorker with the comment -
 minor modification -- this code added a boolean, done, and a while loop
 which tests that boolean.
 
 /**
  * This class is the workhorse for a non-blocking invocation that uses a 
  two
  * way transport.
  */
 private class TransportNonBlockingInvocationWorker implements Runnable {
 private MessageContext msgctx;
 private TransportSender sender;
 private boolean done;
 
 public TransportNonBlockingInvocationWorker(MessageContext msgctx,
 TransportSender sender) {
 this.msgctx = msgctx;
 this.sender = sender;
 }
 
 public void run() {
 try {
 while (!done) {
 sender.invoke(msgctx);
 done = true;
 }
 } catch (Exception e) {
 log.info(e.getMessage());
 }
 }
 }
 
 The ThreadPool is the the only one that has a handle to the
 TransportNonBlockingInvocationWorker instance, and he can't tell what
 the outcome was so this addition is rather confusing.  
 
 I am not clear what do you mean by this , thread is just to send the
 request. It will create AxisEngine and and send the message and wait
 till it get the transport ack.
 
 Can someone
 enlighten me as to its purpose since the commit message is utterly
 useless and there are no other comments in the code? 
   
 
 already done in the code.
 
 
 -
 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]



[jira] Created: (AXIS2-1649) Invocation with useSeparateListener option set will never complete if an error occurs in the outbound transport

2006-11-08 Thread Bill Nagy (JIRA)
Invocation with useSeparateListener option set will never complete if an error 
occurs in the outbound transport
---

 Key: AXIS2-1649
 URL: http://issues.apache.org/jira/browse/AXIS2-1649
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: kernel
Reporter: Bill Nagy
 Assigned To: Bill Nagy


If the useSeparateListener option is set, MessageContext.TRANSPORT_NON_BLOCKING 
will, in turn, be set forcing the actual message transmission to occur on 
another thread via the TransportNonBlockingInvocationWorker.  However, the 
TransportNonBlockingInvocationWorker swallows all exceptions, so if an error 
occurs during the outbound transport, the callback will never be notified and 
the requestor will hang indefinately.  I will modify the 
TransportNonBlockingInvocationWorker to invoke Callback.onError(), if it 
exists, passing the exception and eliminating the hang.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[Axis2] Can someone explain the logic in AxisEngine.TransportNonBlockingInvocationWorker?

2006-11-07 Thread Bill Nagy
In revision 415245, some code was added to the
AxisEngine.TransportNonBlockingInvocationWorker with the comment -
minor modification -- this code added a boolean, done, and a while loop
which tests that boolean.

/**
 * This class is the workhorse for a non-blocking invocation that uses a two
 * way transport.
 */
private class TransportNonBlockingInvocationWorker implements Runnable {
private MessageContext msgctx;
private TransportSender sender;
private boolean done;

public TransportNonBlockingInvocationWorker(MessageContext msgctx,
TransportSender sender) {
this.msgctx = msgctx;
this.sender = sender;
}

public void run() {
try {
while (!done) {
sender.invoke(msgctx);
done = true;
}
} catch (Exception e) {
log.info(e.getMessage());
}
}
}

The ThreadPool is the the only one that has a handle to the
TransportNonBlockingInvocationWorker instance, and he can't tell what
the outcome was so this addition is rather confusing.  Can someone
enlighten me as to its purpose since the commit message is utterly
useless and there are no other comments in the code?  (I'm trying to
fix an issue with a requester hanging because it's waiting for a
response that will never come because the transmission actually
failed [since the exception is just getting swallowed here], but
I don't want to screw up a dependency if something's trying to
deal with the exception.)  Thanks.

-Bill


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



Re: [Axis2] Nightly builds for 1.1 branch

2006-10-25 Thread Bill Nagy
Hi dims,

Are you going to start building trunk there as well?  (You can't build
off of the trunk right now, as the old repositories are still being
referenced, and I didn't see any of the trunk jars/mars under
http://ws.zones.apache.org/repository/ .)  I can't commit my fixes for
the Sandesha race condition to 1.1 until I can commit them to trunk as
well.  Thanks.

-Bill

On Tue, 2006-10-24 at 19:44 -0400, Davanum Srinivas wrote:
 Team,
 
 Please get the nightly builds from here:
 http://ws.zones.apache.org/dist/axis2/nightly/
 
 Please note that the repo that was under my id is now here:
 http://ws.zones.apache.org/repository/
 
 FYI, We had to dump a box (minotaur) that got corrupted in the colo move.
 
 thanks,
 dims
 


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



Re: [Axis2] Nightly builds for 1.1 branch

2006-10-25 Thread Bill Nagy
Hi dims,

Not really.  We can't build/test/fix code reliably without the repos. 

-Bill

On Wed, 2006-10-25 at 14:05 -0400, Davanum Srinivas wrote:
 Bill,
 
 Can it wait a couple of days? I want to see if the Infra folks get
 people.apache.org back up. They are almost there...
 
 thanks,
 dims
 
 On 10/25/06, Bill Nagy [EMAIL PROTECTED] wrote:
  Hi dims,
 
  Are you going to start building trunk there as well?  (You can't build
  off of the trunk right now, as the old repositories are still being
  referenced, and I didn't see any of the trunk jars/mars under
  http://ws.zones.apache.org/repository/ .)  I can't commit my fixes for
  the Sandesha race condition to 1.1 until I can commit them to trunk as
  well.  Thanks.
 
  -Bill
 
  On Tue, 2006-10-24 at 19:44 -0400, Davanum Srinivas wrote:
   Team,
  
   Please get the nightly builds from here:
   http://ws.zones.apache.org/dist/axis2/nightly/
  
   Please note that the repo that was under my id is now here:
   http://ws.zones.apache.org/repository/
  
   FYI, We had to dump a box (minotaur) that got corrupted in the colo move.
  
   thanks,
   dims
  
 
 
  -
  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: [Axis2] Need help with Axis2 1.1 Release

2006-10-25 Thread Bill Nagy
On Wed, 2006-10-25 at 15:59 -0400, Davanum Srinivas wrote:
 Folks,
 
 We need help with testing Axis2. As Thilina mentioned in another
 email, we have zero blockers right now. All the API changes are
 already in. ADB/Codegen seems more solid than ever. We are working on

Does this mean that you no longer want me to check in the fix for the
Sandesha race condition?  (It will alter the Handler interface.)

-Bill



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



Re: [Axis2] Nightly builds for 1.1 branch

2006-10-25 Thread Bill Nagy
Thanks.  All's better now 8-].

-Bill

On Wed, 2006-10-25 at 16:42 -0400, Davanum Srinivas wrote:
 Ok. Switched on only the jars from HEAD:
 
 http://ws.zones.apache.org/repository/org.apache.axis2/jars/
 
 -- dims
 
 On 10/25/06, Bill Nagy [EMAIL PROTECTED] wrote:
  Hi dims,
 
  Not really.  We can't build/test/fix code reliably without the repos.
 
  -Bill
 
  On Wed, 2006-10-25 at 14:05 -0400, Davanum Srinivas wrote:
   Bill,
  
   Can it wait a couple of days? I want to see if the Infra folks get
   people.apache.org back up. They are almost there...
  
   thanks,
   dims
  
   On 10/25/06, Bill Nagy [EMAIL PROTECTED] wrote:
Hi dims,
   
Are you going to start building trunk there as well?  (You can't build
off of the trunk right now, as the old repositories are still being
referenced, and I didn't see any of the trunk jars/mars under
http://ws.zones.apache.org/repository/ .)  I can't commit my fixes for
the Sandesha race condition to 1.1 until I can commit them to trunk as
well.  Thanks.
   
-Bill
   
On Tue, 2006-10-24 at 19:44 -0400, Davanum Srinivas wrote:
 Team,

 Please get the nightly builds from here:
 http://ws.zones.apache.org/dist/axis2/nightly/

 Please note that the repo that was under my id is now here:
 http://ws.zones.apache.org/repository/

 FYI, We had to dump a box (minotaur) that got corrupted in the colo 
 move.

 thanks,
 dims

   
   
-
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]
 
 
 
 


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



Re: [Axis2] Need help with Axis2 1.1 Release

2006-10-25 Thread Bill Nagy
Yep -- I was waiting until I could compile and test (i.e. the repos were
back up.) 8-]  I just committed the changes to 1.1 and will do so to the
trunk shortly.  Someone will need to modify the Sandesha code (and any
other dependent handlers) to do the correct thing.

-Bill


On Wed, 2006-10-25 at 16:46 -0400, Davanum Srinivas wrote:
 oops!!! is that still pending? please go ahead.
 
 -- dims
 
 On 10/25/06, Bill Nagy [EMAIL PROTECTED] wrote:
  On Wed, 2006-10-25 at 15:59 -0400, Davanum Srinivas wrote:
   Folks,
  
   We need help with testing Axis2. As Thilina mentioned in another
   email, we have zero blockers right now. All the API changes are
   already in. ADB/Codegen seems more solid than ever. We are working on
 
  Does this mean that you no longer want me to check in the fix for the
  Sandesha race condition?  (It will alter the Handler interface.)
 
  -Bill
 
 
 
  -
  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: [axis2] handler API change for race condition fixing

2006-10-25 Thread Bill Nagy
I don't like mixing implementation and interface, but I don't feel like
arguing now, so done.

-Bill

On Wed, 2006-10-25 at 21:25 -0400, Glen Daniels wrote:
 Hi Sanjiva, Bill:
 
 Sanjiva Weerawarana wrote:
  I know I +1'ed whatever approach but the approach of introducing a top
  level class for the return status looks ugly to me. If consts aren't
  good enough can't we at least shove this (static) class inside Handler?
  That way one returns Handler.InvocationResponse.CONTINUE_PROCESSING etc.
  which at least tells people immediately what it means.
 
 +1 to Sanjiva's suggestion.  Removes the need for another import/file, 
 and from inside a Handler-derived class, you can actually still just 
 return InvocationResponse.CONTINUE (see below), which looks clean.
 
 I also like InvocationResponse *much* better than 
 InvocationProcessingInstruction.  And do we really need the 
 _PROCESSING suffix on CONTINUE/SUSPEND/ABORT? :)
 
 Yours for succinct code,
 --Glen
 
 -
 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]



[Axis2] 1_1 build failing (adb_codegen test failures)

2006-10-19 Thread Bill Nagy
(Running IBM JDK 1.5)

[junit] [ERROR] Test
org.apache.axis2.schema.testsuite.CustomElementsTest FAILED
[junit] Running org.apache.axis2.schema.testsuite.IntElementsTest
[junit] Tests run: 2, Failures: 2, Errors: 0, Time elapsed: 0.254
sec
[junit] [ERROR] Test
org.apache.axis2.schema.testsuite.IntElementsTest FAILED
[junit] Running org.apache.axis2.schema.testsuite.StringElementsTest
[junit] Tests run: 2, Failures: 2, Errors: 0, Time elapsed: 0.242
sec
[junit] [ERROR] Test
org.apache.axis2.schema.testsuite.StringElementsTest FAILED


Testsuite: org.apache.axis2.schema.testsuite.CustomElementsTest
Tests run: 2, Failures: 2, Errors: 0, Time elapsed: 0.247 sec

- Standard Output ---
minOccurs = 0 and nillable true
minOccurs = 0 and nillable true
-  ---
- Standard Error -
java.lang.NullPointerException
at
org.apache.axiom.om.impl.MTOMXMLStreamWriter.init(MTOMXMLStreamWriter.java:66)
at
org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:410)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serializeAndConsume(OMSourcedElementImpl.java:601)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:562)
at
org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:929)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.toString(OMSourcedElementImpl.java:751)
at java.lang.String.valueOf(String.java:1475)
at java.lang.StringBuffer.append(StringBuffer.java:232)
at
org.apache.axis2.schema.testsuite.CustomElementsTest.testCustom(CustomElementsTest.java:208)
at
org.apache.axis2.schema.testsuite.CustomElementsTest.testCustom(CustomElementsTest.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:297)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:672)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:567)
-  ---
Testcase:
testCustomArray(org.apache.axis2.schema.testsuite.CustomElementsTest):
FAILED
null
junit.framework.AssertionFailedError
at
org.apache.axis2.schema.testsuite.CustomElementsTest.testCustomArray(CustomElementsTest.java:48)


Testcase:
testCustom(org.apache.axis2.schema.testsuite.CustomElementsTest):   FAILED
null
junit.framework.AssertionFailedError
at
org.apache.axis2.schema.testsuite.CustomElementsTest.testCustom(CustomElementsTest.java:163)



Testsuite: org.apache.axis2.schema.testsuite.IntElementsTest
Tests run: 2, Failures: 2, Errors: 0, Time elapsed: 0.254 sec

- Standard Output ---
minOccurs = 0 nillable true
-  ---
- Standard Error -
java.lang.NullPointerException
at
org.apache.axiom.om.impl.MTOMXMLStreamWriter.init(MTOMXMLStreamWriter.java:66)
at
org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:410)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serializeAndConsume(OMSourcedElementImpl.java:601)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:562)
at
org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:929)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.toString(OMSourcedElementImpl.java:751)
at java.lang.String.valueOf(String.java:1475)
at java.lang.StringBuffer.append(StringBuffer.java:232)
at
org.apache.axis2.schema.testsuite.IntElementsTest.testIntArray(IntElementsTest.java:90)
at
org.apache.axis2.schema.testsuite.IntElementsTest.testIntArray(IntElementsTest.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  

Re: [Axis2] 1_1 build failing (adb_codegen test failures)

2006-10-19 Thread Bill Nagy
)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:562)
at
org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:929)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.toString(OMSourcedElementImpl.java:751)
at java.lang.String.valueOf(String.java:1475)
at java.lang.StringBuffer.append(StringBuffer.java:232)
at
org.apache.axis2.schema.testsuite.IntElementsTest.testIntArray(IntElementsTest.java:90)
at
org.apache.axis2.schema.testsuite.IntElementsTest.testIntArray(IntElementsTest.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:297)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:672)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:567)
Caused by: javax.xml.stream.XMLStreamException: property key cannot be
null!
at
org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:842)
at
org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:789)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:116)
... 40 more
-  ---
Testcase:
testIntArray(org.apache.axis2.schema.testsuite.IntElementsTest):FAILED
null
junit.framework.AssertionFailedError
at
org.apache.axis2.schema.testsuite.IntElementsTest.testIntArray(IntElementsTest.java:46)



Testsuite: org.apache.axis2.schema.testsuite.StringElementsTest
Tests run: 2, Failures: 1, Errors: 0, Time elapsed: 0.623 sec

- Standard Output ---
Test minOccurs 0 nillable true
Test minOccurs 0 nillable true
OMElement ns1:testString2
xmlns:ns1=http://types.echo.services;testValue
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
xmlns=http://types.echo.services; xsi:nil=true //ns1:testString2
OMElement ns1:testString2
xmlns:ns1=http://types.echo.services;testValue
xmlns=http://types.echo.services;Test/testValue/ns1:testString2
Test minOccurs = 0 nillable false
OMElement ns1:testString4 xmlns:ns1=http://types.echo.services; /
OMElement ns1:testString4
xmlns:ns1=http://types.echo.services;testValue
xmlns=http://types.echo.services;Test/testValue/ns1:testString4
Test minOccurs = 1 nillable true
OMElement ns1:testString6
xmlns:ns1=http://types.echo.services;testValue
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
xmlns=http://types.echo.services; xsi:nil=true //ns1:testString6
OMElement ns1:testString6
xmlns:ns1=http://types.echo.services;testValue
xmlns=http://types.echo.services;Test/testValue/ns1:testString6
Test minOccurs = 1 nillable false
OMElement ns1:testString8
xmlns:ns1=http://types.echo.services;testValue
xmlns=http://types.echo.services;Test/testValue/ns1:testString8
-  ---
Testcase:
testStringArray(org.apache.axis2.schema.testsuite.StringElementsTest):
FAILED
null
junit.framework.AssertionFailedError
at
org.apache.axis2.schema.testsuite.StringElementsTest.testStringArray(StringElementsTest.java:47)




On Thu, 2006-10-19 at 08:13 -0400, Davanum Srinivas wrote:
 just checked in rev 465595 in axiom
 
 On 10/19/06, Bill Nagy [EMAIL PROTECTED] wrote:
  (Running IBM JDK 1.5)
 
  [junit] [ERROR] Test
  org.apache.axis2.schema.testsuite.CustomElementsTest FAILED
  [junit] Running org.apache.axis2.schema.testsuite.IntElementsTest
  [junit] Tests run: 2, Failures: 2, Errors: 0, Time elapsed: 0.254
  sec
  [junit] [ERROR] Test
  org.apache.axis2.schema.testsuite.IntElementsTest FAILED
  [junit] Running org.apache.axis2.schema.testsuite.StringElementsTest
  [junit] Tests run: 2, Failures: 2, Errors: 0, Time elapsed: 0.242
  sec
  [junit] [ERROR] Test
  org.apache.axis2.schema.testsuite.StringElementsTest FAILED
 
 
  Testsuite: org.apache.axis2.schema.testsuite.CustomElementsTest
  Tests run: 2, Failures: 2, Errors: 0, Time elapsed: 0.247 sec
 
  - Standard Output ---
  minOccurs = 0

Re: [Axis2] Proposal to add return type to Handler.invoke(...)

2006-10-18 Thread Bill Nagy
Sold, but I was OK on waiting until after 1.1 as the handler unwind
stuff changed the Handler interface anyways.  We still need either the
multi-value return type or another property in the MessageContext to
indicate that message processing should abort vs pause (so that the
handler unwind can happen vs not.)  [We may simply be able to replace
the MessageContext.ispaused property with a MessageContext.isaborted
property, as there shouldn't be a race condition with that one, and then
implicitly intrepret a false returned with isAborted==false as the
message is just paused.  This is a little less clear in my opinion, but
would do the job.]

If you'd rather have the property, I'm fine with that -- I just want to
make the decision now and not have to change the interface again later.

-Bill

On Thu, 2006-10-19 at 04:57 +0530, Sanjiva Weerawarana wrote:
 OK how about this alternative- let's make this change on the HEAD and
 the 1.1 branch now? That way we do it and finish it off.
 
 Sanjiva.
 
 On Wed, 2006-10-18 at 11:05 +0530, Sanjiva Weerawarana wrote:
  Sorry for the delay Bill.
  
  +1 to your solution. However I'd personally prefer if you change the
  return type to be boolean: true means paused and false means all is
  cool.
  
  I'm very wary of executing thing change right now because it'll break
  all downstream projects including Rahas/Rampart/Sandesha/Synapse etc.
  which have not cut 1.1 branches. We definitely want them to run on Axis2
  1.1 and so its necessary to not change them. Is there any way to wait
  until we get back onto one trunk?
  
  Or maybe the right answer is for those projects to branch too now.
  
  Thoughts?
  
  Sanjiva.
  
  On Tue, 2006-10-17 at 06:39 -0700, Bill Nagy wrote:
   Do you still have an objection to this Sanjiva?
   
   -Bill
   
   On Tue, 2006-10-10 at 18:20 -0700, Bill Nagy wrote:
Hi Sanjiva,

The problem isn't that both people are modifying MessageContext.paused,
so synchronizing that isn't going to work, the problem is that if the RM
handler, for instance, pauses the message and returns, but the RM thread
picks up the message and resumes it (thereby unpausing the message)
before control returns to the logic in the Phase/AxisEngine, the
Phase/AxisEngine are going to proceed as if the message was never
paused.

I was trying to avoid the overhead of synchronization when we have
another solution that works just as well (i.e. the return value) without
the overhead (and is more logically correct IMO.)

Using the return code also allows us to capture whether or not a message
was 'paused' vs 'aborted' -- this is important in the handler unwinding,
as no unwinding needs to occur in the 'paused' case while it does in the
'aborted' case.

I prefer an enumeration object because it's clear from the method
signature what is being returned (InvocationProcessingInstruction vs.
int in this case,) but if that's all that is holding you up, I'll switch
it to constants.

-Bill

On Tue, 2006-10-10 at 18:13 +0530, Sanjiva Weerawarana wrote: 
 On Mon, 2006-10-09 at 19:51 -0700, Bill Nagy wrote:
  There is currently a race condition between code that pauses the 
  message
  flow within a handler and resumes it on another thread (e.g. 
  Sandesha)
  and the message flow processing chain (Phase.invoke(...),
  AxisEngine.invoke(...), etc.)
  (http://issues.apache.org/jira/browse/SANDESHA2-32)  This is caused
  because the control of processing is keyed off of 
  MessageContext.paused
  and not through some other mechanism (return code, semaphore, 
  etc.).  If
  a handler pauses a message and returns, handing the message off to
  another thread for execution, there is the possibility that the new
  execution thread will resume processing of the message, unsetting
  MessageContext.paused, before control returns to one of the invoke
  methods.  If this happens, the logic in the invoke method, which 
  looks
  at the MessageContext.paused flag, will believe that it should 
  continue
  execution instead of halting.
 
 Can't this be solved by synchronizing access to 
 MessageContext.paused()?
 Sorry I looked at the sandesha issue but didn't see it.
 
 Alternatively,
 
 synchronized {
   h.invoke();
   h.getPaused();
 }
 
 I must be missing something obvious as to why this doesn't work.
 
  Since the problem revolves around flow control logic, I suggest 
  that we
  use the return code from the method invocation to deal with it.  I 
  would
  like to add a return code to the Handler.invoke(...) which would
  identify how processing of the message should proceed, e.g. :
 
 How does this solve the problem as other thread could go get the MC 
 and
 do stuff while still in this method

Re: [Axis2] Proposal to add return type to Handler.invoke(...)

2006-10-17 Thread Bill Nagy
Do you still have an objection to this Sanjiva?

-Bill

On Tue, 2006-10-10 at 18:20 -0700, Bill Nagy wrote:
 Hi Sanjiva,
 
 The problem isn't that both people are modifying MessageContext.paused,
 so synchronizing that isn't going to work, the problem is that if the RM
 handler, for instance, pauses the message and returns, but the RM thread
 picks up the message and resumes it (thereby unpausing the message)
 before control returns to the logic in the Phase/AxisEngine, the
 Phase/AxisEngine are going to proceed as if the message was never
 paused.
 
 I was trying to avoid the overhead of synchronization when we have
 another solution that works just as well (i.e. the return value) without
 the overhead (and is more logically correct IMO.)
 
 Using the return code also allows us to capture whether or not a message
 was 'paused' vs 'aborted' -- this is important in the handler unwinding,
 as no unwinding needs to occur in the 'paused' case while it does in the
 'aborted' case.
 
 I prefer an enumeration object because it's clear from the method
 signature what is being returned (InvocationProcessingInstruction vs.
 int in this case,) but if that's all that is holding you up, I'll switch
 it to constants.
 
 -Bill
 
 On Tue, 2006-10-10 at 18:13 +0530, Sanjiva Weerawarana wrote: 
  On Mon, 2006-10-09 at 19:51 -0700, Bill Nagy wrote:
   There is currently a race condition between code that pauses the message
   flow within a handler and resumes it on another thread (e.g. Sandesha)
   and the message flow processing chain (Phase.invoke(...),
   AxisEngine.invoke(...), etc.)
   (http://issues.apache.org/jira/browse/SANDESHA2-32)  This is caused
   because the control of processing is keyed off of MessageContext.paused
   and not through some other mechanism (return code, semaphore, etc.).  If
   a handler pauses a message and returns, handing the message off to
   another thread for execution, there is the possibility that the new
   execution thread will resume processing of the message, unsetting
   MessageContext.paused, before control returns to one of the invoke
   methods.  If this happens, the logic in the invoke method, which looks
   at the MessageContext.paused flag, will believe that it should continue
   execution instead of halting.
  
  Can't this be solved by synchronizing access to MessageContext.paused()?
  Sorry I looked at the sandesha issue but didn't see it.
  
  Alternatively,
  
  synchronized {
h.invoke();
h.getPaused();
  }
  
  I must be missing something obvious as to why this doesn't work.
  
   Since the problem revolves around flow control logic, I suggest that we
   use the return code from the method invocation to deal with it.  I would
   like to add a return code to the Handler.invoke(...) which would
   identify how processing of the message should proceed, e.g. :
  
  How does this solve the problem as other thread could go get the MC and
  do stuff while still in this method? 
  
   /**
   * This type encapsulates an enumeration of possible message processing
   * instruction values that may be returned by a handler/phase within the
   * runtime.
   */
   public class InvocationProcessingInstruction
   {
 public static InvocationProcessingInstruction CONTINUE_PROCESSING =
   new InvocationProcessingInstruction(0);
 public static InvocationProcessingInstruction SUSPEND_PROCESSING = new
   InvocationProcessingInstruction(1);
 public static InvocationProcessingInstruction ABORT_PROCESSING = new
   InvocationProcessingInstruction(2);
 
 private int instructionID;
   
 private InvocationProcessingInstruction(int instructionID)
 {
   this.instructionID = instructionID;
 }
   
 public boolean equals(InvocationProcessingInstruction instruction)
 {
   return this.instructionID == instruction.instructionID;
 }
   
 public int hashCode()
 {
   return instructionID;
 }
   }
   
   Most handlers will return
   InvocationProcessingInstruction.CONTINUE_PROCESSING; the RM handler may
   return that, SUSPEND_PROCESSING (for a pause), or ABORT_PROCESSING (for
   a duplicate msg.)
  
  I must be really jetlagged (traveling again): do we need all this or
  just use an int to return the status?? (some consts basically).
  
  Sanjiva.
  
  
  
  -
  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]


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



Re: [Axis2] Should requestors not be reusing AxisService's that have been registered for deployed services or is AxisService.isClientSide() untrustworthy?

2006-10-16 Thread Bill Nagy
Hi Sanjiva,

Nope, you're not missing anything; I just wanted to make sure that my
understanding was correct (that requestors need their own AxisService
which is separate from the provider's) and that the Sandesha code was
wrong.  (org.apache.sandesha2.util.RMMsgCreator.createCreateSeqMsg(...)
passes in a message that it has received to
org.apache.sandesha2.util.SandeshaUtil.createNewRelatedMessageContext(...) 
which simply sets the AxisService from the passed-in message onto the new 
message and adds an OutIn operation to it.)  Thanks.

-Bill
 

On Sun, 2006-10-15 at 13:44 +0530, Sanjiva Weerawarana wrote:
 On Thu, 2006-10-12 at 06:37 -0700, Bill Nagy wrote:
  Hi,
  
  If you have a service, (A), deployed into the runtime and you want to
  invoke either it or another service with the same WSDL, (A'), from that
  runtime, should you (1)not be passing (A)'s AxisService into the
  ServiceClient and always creating a new one to represent the client or
  (2)is AxisService.isClientSide() untrustworthy (i.e. will it sometimes
  return false even if you are a requestor -- a fact of reusing the
  AxisService from a deployed service?  Thanks.
 
 I'm confused (as usual :-)). The scenario is that there's a *service* A
 with its AxisService AS-A. Now you want to invoke that service right?
 
 If so the AxisService for the client is different from the AxisService
 for the service. Remember the direction of the operations? So you'll
 have another AxisService AS-AC which is like AS-A except the operations
 are reversed (and bindings different etc.). So if you do
 AS-A.isClientSide() it should return false and AS-AC.isClientSide()
 should return true.
 
 Am I missing a link?
 
 Sanjiva.
 
 
 
 
 -
 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]



[Axis2] Should requestors not be reusing AxisService's that have been registered for deployed services or is AxisService.isClientSide() untrustworthy?

2006-10-12 Thread Bill Nagy
Hi,

If you have a service, (A), deployed into the runtime and you want to
invoke either it or another service with the same WSDL, (A'), from that
runtime, should you (1)not be passing (A)'s AxisService into the
ServiceClient and always creating a new one to represent the client or
(2)is AxisService.isClientSide() untrustworthy (i.e. will it sometimes
return false even if you are a requestor -- a fact of reusing the
AxisService from a deployed service?  Thanks.

-Bill



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



[jira] Closed: (AXIS2-1233) Handlers do not get a chance to undo work if a fault occurs or complete work when message processing finishes (this was split off from AXIS2-653)

2006-10-10 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-1233?page=all ]

Bill Nagy closed AXIS2-1233.


Resolution: Fixed

 Handlers do not get a chance to undo work if a fault occurs or complete work 
 when message processing finishes (this was split off from AXIS2-653)
 -

 Key: AXIS2-1233
 URL: http://issues.apache.org/jira/browse/AXIS2-1233
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Reporter: Bill Nagy
 Assigned To: Bill Nagy
 Attachments: qoslifecyclepatch.txt


 I split this off of AXIS2-653, so that we could track this bit of work 
 separately.  The basic gist of the matter is that the handlers do not have an 
 opportunity to clean up/complete their work after message processing has 
 completed (either due to a fault or to successful processing.)  Here's some 
 of the original discussion: 
 http://marc.theaimsgroup.com/?l=axis-devm=114505970102143w=2 .

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: [Axis2] Proposal to add return type to Handler.invoke(...)

2006-10-10 Thread Bill Nagy
Hi Sanjiva,

The problem isn't that both people are modifying MessageContext.paused,
so synchronizing that isn't going to work, the problem is that if the RM
handler, for instance, pauses the message and returns, but the RM thread
picks up the message and resumes it (thereby unpausing the message)
before control returns to the logic in the Phase/AxisEngine, the
Phase/AxisEngine are going to proceed as if the message was never
paused.

I was trying to avoid the overhead of synchronization when we have
another solution that works just as well (i.e. the return value) without
the overhead (and is more logically correct IMO.)

Using the return code also allows us to capture whether or not a message
was 'paused' vs 'aborted' -- this is important in the handler unwinding,
as no unwinding needs to occur in the 'paused' case while it does in the
'aborted' case.

I prefer an enumeration object because it's clear from the method
signature what is being returned (InvocationProcessingInstruction vs.
int in this case,) but if that's all that is holding you up, I'll switch
it to constants.

-Bill

On Tue, 2006-10-10 at 18:13 +0530, Sanjiva Weerawarana wrote: 
 On Mon, 2006-10-09 at 19:51 -0700, Bill Nagy wrote:
  There is currently a race condition between code that pauses the message
  flow within a handler and resumes it on another thread (e.g. Sandesha)
  and the message flow processing chain (Phase.invoke(...),
  AxisEngine.invoke(...), etc.)
  (http://issues.apache.org/jira/browse/SANDESHA2-32)  This is caused
  because the control of processing is keyed off of MessageContext.paused
  and not through some other mechanism (return code, semaphore, etc.).  If
  a handler pauses a message and returns, handing the message off to
  another thread for execution, there is the possibility that the new
  execution thread will resume processing of the message, unsetting
  MessageContext.paused, before control returns to one of the invoke
  methods.  If this happens, the logic in the invoke method, which looks
  at the MessageContext.paused flag, will believe that it should continue
  execution instead of halting.
 
 Can't this be solved by synchronizing access to MessageContext.paused()?
 Sorry I looked at the sandesha issue but didn't see it.
 
 Alternatively,
 
 synchronized {
   h.invoke();
   h.getPaused();
 }
 
 I must be missing something obvious as to why this doesn't work.
 
  Since the problem revolves around flow control logic, I suggest that we
  use the return code from the method invocation to deal with it.  I would
  like to add a return code to the Handler.invoke(...) which would
  identify how processing of the message should proceed, e.g. :
 
 How does this solve the problem as other thread could go get the MC and
 do stuff while still in this method? 
 
  /**
  * This type encapsulates an enumeration of possible message processing
  * instruction values that may be returned by a handler/phase within the
  * runtime.
  */
  public class InvocationProcessingInstruction
  {
public static InvocationProcessingInstruction CONTINUE_PROCESSING =
  new InvocationProcessingInstruction(0);
public static InvocationProcessingInstruction SUSPEND_PROCESSING = new
  InvocationProcessingInstruction(1);
public static InvocationProcessingInstruction ABORT_PROCESSING = new
  InvocationProcessingInstruction(2);

private int instructionID;
  
private InvocationProcessingInstruction(int instructionID)
{
  this.instructionID = instructionID;
}
  
public boolean equals(InvocationProcessingInstruction instruction)
{
  return this.instructionID == instruction.instructionID;
}
  
public int hashCode()
{
  return instructionID;
}
  }
  
  Most handlers will return
  InvocationProcessingInstruction.CONTINUE_PROCESSING; the RM handler may
  return that, SUSPEND_PROCESSING (for a pause), or ABORT_PROCESSING (for
  a duplicate msg.)
 
 I must be really jetlagged (traveling again): do we need all this or
 just use an int to return the status?? (some consts basically).
 
 Sanjiva.
 
 
 
 -
 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]



[Axis2] Proposal to add return type to Handler.invoke(...)

2006-10-09 Thread Bill Nagy
There is currently a race condition between code that pauses the message
flow within a handler and resumes it on another thread (e.g. Sandesha)
and the message flow processing chain (Phase.invoke(...),
AxisEngine.invoke(...), etc.)
(http://issues.apache.org/jira/browse/SANDESHA2-32)  This is caused
because the control of processing is keyed off of MessageContext.paused
and not through some other mechanism (return code, semaphore, etc.).  If
a handler pauses a message and returns, handing the message off to
another thread for execution, there is the possibility that the new
execution thread will resume processing of the message, unsetting
MessageContext.paused, before control returns to one of the invoke
methods.  If this happens, the logic in the invoke method, which looks
at the MessageContext.paused flag, will believe that it should continue
execution instead of halting.

Since the problem revolves around flow control logic, I suggest that we
use the return code from the method invocation to deal with it.  I would
like to add a return code to the Handler.invoke(...) which would
identify how processing of the message should proceed, e.g. :

/**
* This type encapsulates an enumeration of possible message processing
* instruction values that may be returned by a handler/phase within the
* runtime.
*/
public class InvocationProcessingInstruction
{
  public static InvocationProcessingInstruction CONTINUE_PROCESSING =
new InvocationProcessingInstruction(0);
  public static InvocationProcessingInstruction SUSPEND_PROCESSING = new
InvocationProcessingInstruction(1);
  public static InvocationProcessingInstruction ABORT_PROCESSING = new
InvocationProcessingInstruction(2);
  
  private int instructionID;

  private InvocationProcessingInstruction(int instructionID)
  {
this.instructionID = instructionID;
  }

  public boolean equals(InvocationProcessingInstruction instruction)
  {
return this.instructionID == instruction.instructionID;
  }

  public int hashCode()
  {
return instructionID;
  }
}

Most handlers will return
InvocationProcessingInstruction.CONTINUE_PROCESSING; the RM handler may
return that, SUSPEND_PROCESSING (for a pause), or ABORT_PROCESSING (for
a duplicate msg.)

Comments?

-Bill



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



[Axis2] When merging changes between branches please put the revision number that the changes are coming from into the commit message

2006-10-06 Thread Bill Nagy
e.g. Merged r23914 (Spelling fixes) from 1.1 branch.

This makes it easier to keep track of which changes have been merged
into where.  Thanks.

-Bill



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



Re: [Axis2] Convention violations/ inconsistencies

2006-10-02 Thread Bill Nagy
Please do.

+1

-Bill
On Mon, 2006-10-02 at 17:19 +0530, Afkham Azeez wrote:
 Hi,
 There are a number of spelling mistakes/convention violations in some
 of the Axis2 API methods. 
 
 e.g. public void disEngageModule(QName moduleName); 
 Should be disengageModule(QName)
 
 In the axis2.xml the phase orders types named as follows:
 
 phaseOrder type=inflow
 phaseOrder type=outflow
 phaseOrder type=INfaultflow 
 phaseOrder type=Outfaultflow
 
 As can be seen, no convention has been followed in naming these, and
 the same are used as tagnames in the module.xml files.
 Is it ok if I go ahead and fix these, at this moment? IMHO, we should
 fix these type of inconsistencies before 1.1 and have cleaner APIs 
 configuration files.
 
 
 
 -- 
 Thanks
 Afkham Azeez


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



[jira] Closed: (AXIS2-1238) org.apache.axis2.deployment.util.PhasesInfo has hard coded phase names which prevent the phase ordering in axis2.xml from functioning properly

2006-09-27 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-1238?page=all ]

Bill Nagy closed AXIS2-1238.


Resolution: Invalid

This was addressed (at least partially -- there are still hardcoded names, but 
less of them) between the time that I brought it up and when I opened the JIRA.

 org.apache.axis2.deployment.util.PhasesInfo has hard coded phase names which 
 prevent the phase ordering in axis2.xml from functioning properly
 --

 Key: AXIS2-1238
 URL: http://issues.apache.org/jira/browse/AXIS2-1238
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: deployment
Reporter: Bill Nagy
 Assigned To: Bill Nagy
Priority: Critical

 org.apache.axis2.deployment.util.PhasesInfo has hard coded phase names (well, 
 the constant equivalent of them anyways.)  This makes it impossible to add 
 new phases in certain cases and have the ordering during execution reflect 
 what appeared in the axis2.xml file.  (e.g. the change that Ruchith just made 
 to add a security phase to the outflow won't work correctly, as the PhaseInfo 
 class will return the Security phase as an operation-level phase and not a 
 global phase, thus screwing up the execution order in AxisEngine.send(...).)  
 Simply adding a new hard coded constant switch (as seems to have been done in 
 the past) is not a good solution.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Reopened: (AXIS2-1233) Handlers do not get a chance to undo work if a fault occurs or complete work when message processing finishes (this was split off from AXIS2-653)

2006-09-27 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-1233?page=all ]

Bill Nagy reopened AXIS2-1233:
--

 
This issue is being reopened as the changes were backed out due to Sanjiva's -1.

 Handlers do not get a chance to undo work if a fault occurs or complete work 
 when message processing finishes (this was split off from AXIS2-653)
 -

 Key: AXIS2-1233
 URL: http://issues.apache.org/jira/browse/AXIS2-1233
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Reporter: Bill Nagy
 Assigned To: Bill Nagy
Priority: Blocker
 Attachments: qoslifecyclepatch.txt


 I split this off of AXIS2-653, so that we could track this bit of work 
 separately.  The basic gist of the matter is that the handlers do not have an 
 opportunity to clean up/complete their work after message processing has 
 completed (either due to a fault or to successful processing.)  Here's some 
 of the original discussion: 
 http://marc.theaimsgroup.com/?l=axis-devm=114505970102143w=2 .

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[Axis2] Handler invocation pattern improvements (was Re: svn commit: r450121 - in /webservices/axis2/trunk/java/modules: integration/test/org/apache/axis2/engine/ kernel/src/org/apache/axis2/context/

2006-09-27 Thread Bill Nagy
I have backed out my commit as per the -1, and reopened JIRA 1233.
Could you please now explain why you don't agree with my solution to the
problem?

-Bill

On Tue, 2006-09-26 at 21:45 -0700, Bill Nagy wrote:
 Hi Sanjiva,
 
 While the JIRA issue may have had cleanup in the title, points 2 and 3
 of the issue (and also Deepal's later comments) deal with what I fixed.
 
 I'm not sure that I understand why you say the impl that has been
 committed is going to slow Axis2 down big time.  It makes one extra
 method invocation to each phase, which in turn makes one extra method
 call to each handler that was previously invoked for each message flow.
 If the handlers don't need to do anything, then that time is negligible
 -- if they do need to do something, then they need to do the work, and
 spend the time for a reason.
 
 -Bill
 
 
 On Wed, 2006-09-27 at 09:58 +0530, Sanjiva Weerawarana wrote:
  Hi Bill,
  
   This change actually addresses part of a JIRA issue that was marked as a
   blocker (AXIS2-653), and according to Thilina's post these are to be
   fixed before the release.  (I will address the other part as well, but
   there were two separate issues so I separated this one out and tackled
   if first.)  
  
  I think the original issue which was marked a blocker was that cleanup()
  wasn't called. That's not what's implemented by this patch. 
  
  I am not opposed to solving the problem you want to solve with this
  patch but the impl that has been committed is going to slow Axis2 down
  big time. We have discussed the problem but IIRC didn't come to a
  consensus on the solution. I'd really rather work thru this more before
  we do it. If a performance degrading solution is the only one then I'd
  like to think long and hard about it before doing it. 
  
  We've gotten hammered on the user mailing list for having stuff that is
  not fully baked in a major release. Doing this now (literally 2 days
  before the planned code freeze) is going to put in something that hasn't
  been tried, tested and proven into a major release. 
  
  So, I'd like to request that we remove the blocker status on this issue
  and revert this patch. My apologies but I'm not lifting my -1 on this
  patch.
  
  I guess I should be arguing with the release manager for leaving this as
  a blocker! 
  
  Let's pick it up after 1.1 and sort it out. ApacheCon US would be a
  great time to do it if you'll be around there.
  
  Sanjiva.
  
  
  
  -
  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]


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



[jira] Created: (AXIS2-1233) Handlers do not get a chance to undo work if a fault occurs or complete work when message processing finishes (this was split off from AXIS2-653)

2006-09-25 Thread Bill Nagy (JIRA)
Handlers do not get a chance to undo work if a fault occurs or complete work 
when message processing finishes (this was split off from AXIS2-653)
-

 Key: AXIS2-1233
 URL: http://issues.apache.org/jira/browse/AXIS2-1233
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Reporter: Bill Nagy
 Assigned To: Bill Nagy
Priority: Blocker


I split this off of AXIS2-653, so that we could track this bit of work 
separately.  The basic gist of the matter is that the handlers do not have an 
opportunity to clean up/complete their work after message processing has 
completed (either due to a fault or to successful processing.)  Here's some of 
the original discussion: 
http://marc.theaimsgroup.com/?l=axis-devm=114505970102143w=2 .

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Updated: (AXIS2-1233) Handlers do not get a chance to undo work if a fault occurs or complete work when message processing finishes (this was split off from AXIS2-653)

2006-09-25 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-1233?page=all ]

Bill Nagy updated AXIS2-1233:
-

Attachment: qoslifecyclepatch.txt

This is the patch that was originally attached to AXIS2-653.

 Handlers do not get a chance to undo work if a fault occurs or complete work 
 when message processing finishes (this was split off from AXIS2-653)
 -

 Key: AXIS2-1233
 URL: http://issues.apache.org/jira/browse/AXIS2-1233
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Reporter: Bill Nagy
 Assigned To: Bill Nagy
Priority: Blocker
 Attachments: qoslifecyclepatch.txt


 I split this off of AXIS2-653, so that we could track this bit of work 
 separately.  The basic gist of the matter is that the handlers do not have an 
 opportunity to clean up/complete their work after message processing has 
 completed (either due to a fault or to successful processing.)  Here's some 
 of the original discussion: 
 http://marc.theaimsgroup.com/?l=axis-devm=114505970102143w=2 .

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Updated: (AXIS2-653) Handler method cleanup is never called

2006-09-25 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-653?page=all ]

Bill Nagy updated AXIS2-653:


Attachment: (was: qoslifecyclepatch.txt)

 Handler method cleanup is never called
 

 Key: AXIS2-653
 URL: http://issues.apache.org/jira/browse/AXIS2-653
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Affects Versions: 1.0
Reporter: Thilo Frotscher
 Assigned To: Deepal Jayasinghe
Priority: Blocker

 1) My IDE couldn't find any references to method cleanup in the Axis2 
 source code. It's never called...
 2) What happens if the handler's invoke method thows a fault? Javadoc for 
 invoke says that onFault would be called. But there is no such method...
 3) User guide, page 4 
 - mentions a method called revoke. There is no such method in interface 
 Handler. 
 - refers to green lines in sample configuration...there are no green lines
 - sample configuration contains mistakes
  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Commented: (AXIS2-653) Handler method cleanup is never called

2006-09-25 Thread Bill Nagy (JIRA)
[ 
http://issues.apache.org/jira/browse/AXIS2-653?page=comments#action_12437571 ] 

Bill Nagy commented on AXIS2-653:
-

I've created a new task, AXIS2-1233, to track the handler invocation/lifecycle 
issues (i.e. not the cleanup(...)) and moved my patch there.  Had I been 
smarter, I would have created a sub-task instead of a new issue...

 Handler method cleanup is never called
 

 Key: AXIS2-653
 URL: http://issues.apache.org/jira/browse/AXIS2-653
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Affects Versions: 1.0
Reporter: Thilo Frotscher
 Assigned To: Deepal Jayasinghe
Priority: Blocker

 1) My IDE couldn't find any references to method cleanup in the Axis2 
 source code. It's never called...
 2) What happens if the handler's invoke method thows a fault? Javadoc for 
 invoke says that onFault would be called. But there is no such method...
 3) User guide, page 4 
 - mentions a method called revoke. There is no such method in interface 
 Handler. 
 - refers to green lines in sample configuration...there are no green lines
 - sample configuration contains mistakes
  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Created: (AXIS2-1237) OutInAxisOperation invokes the InFlow and InFaultFlow when a fault is received in a response

2006-09-25 Thread Bill Nagy (JIRA)
OutInAxisOperation invokes the InFlow and InFaultFlow when a fault is received 
in a response


 Key: AXIS2-1237
 URL: http://issues.apache.org/jira/browse/AXIS2-1237
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Reporter: Bill Nagy
 Assigned To: Bill Nagy


OutInAxisOperation invokes the InFlow for all response messages, even if that 
response is a fault.  See the discussion at 
http://marc.theaimsgroup.com/?l=axis-devm=115835375100509w=2 for more details.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Created: (AXIS2-1238) org.apache.axis2.deployment.util.PhasesInfo has hard coded phase names which prevent the phase ordering in axis2.xml from functioning properly

2006-09-25 Thread Bill Nagy (JIRA)
org.apache.axis2.deployment.util.PhasesInfo has hard coded phase names which 
prevent the phase ordering in axis2.xml from functioning properly
--

 Key: AXIS2-1238
 URL: http://issues.apache.org/jira/browse/AXIS2-1238
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: deployment
Reporter: Bill Nagy
 Assigned To: Bill Nagy
Priority: Critical


org.apache.axis2.deployment.util.PhasesInfo has hard coded phase names (well, 
the constant equivalent of them anyways.)  This makes it impossible to add new 
phases in certain cases and have the ordering during execution reflect what 
appeared in the axis2.xml file.  (e.g. the change that Ruchith just made to add 
a security phase to the outflow won't work correctly, as the PhaseInfo class 
will return the Security phase as an operation-level phase and not a global 
phase, thus screwing up the execution order in AxisEngine.send(...).)  Simply 
adding a new hard coded constant switch (as seems to have been done in the 
past) is not a good solution.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Updated: (AXIS2-653) Handler method cleanup is never called

2006-09-24 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-653?page=all ]

Bill Nagy updated AXIS2-653:


Attachment: qoslifecyclepatch.txt

Here's a patch that implements the QoS/handler lifecycle.  (This still doesn't 
fix the module lifecycle issue [i.e. the cleanup() method not being invoked.]). 
 The flowComplete(...) method for a handler will be invoked as the stack is 
unwound from either a successful completion or an error.  (If you want to know 
the order in which things occur, you can look at the comparisons at the end of 
the test cases.)  The only extra info that is kept is two linked lists in the 
MessageContext which maintain the set of phases that have been processed.  (If 
a phase could certainly keep extra state if it desired, but I didn't need to do 
so in any of the standard Axis2 phases.)  The only cost to execute (besides 
list insertions) is the added invocation of the flowComplete(...) on each 
handler that was executed during processing of the message.  (The handler can 
do whatever it wants in the flowComplete(...), so we have no control over how 
long that takes.)  

 Handler method cleanup is never called
 

 Key: AXIS2-653
 URL: http://issues.apache.org/jira/browse/AXIS2-653
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Affects Versions: 1.0
Reporter: Thilo Frotscher
 Assigned To: Deepal Jayasinghe
Priority: Blocker
 Attachments: qoslifecyclepatch.txt


 1) My IDE couldn't find any references to method cleanup in the Axis2 
 source code. It's never called...
 2) What happens if the handler's invoke method thows a fault? Javadoc for 
 invoke says that onFault would be called. But there is no such method...
 3) User guide, page 4 
 - mentions a method called revoke. There is no such method in interface 
 Handler. 
 - refers to green lines in sample configuration...there are no green lines
 - sample configuration contains mistakes
  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[Axis2] Why does org.apache.axis2.deployment.util.PhasesInfo have hard coded phase names?

2006-09-22 Thread Bill Nagy
Is there a particular reason that
org.apache.axis2.deployment.util.PhasesInfo has hard coded phase names
(well, the constant equivalent of them anyways?)  This makes it
impossible to add new phases in certain cases and have the ordering
during execution reflect what appeared in the axis2.xml file.  (e.g. the
change that Ruchith just made to add a security phase to the outflow
won't work correctly, as the PhaseInfo class will return the Security
phase as an operation-level phase and not a global phase, thus screwing
up the execution order in AxisEngine.send(...).)  Simply adding a new
hard coded constant switch (as seems to have been done in the past) is
not a good solution.

-Bill
 


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



[Axis2] Why does sending out a fault require two passes through the phases?

2006-09-15 Thread Bill Nagy
Could someone please explain to me why when sending out a fault message,
AxisEngine.sendFault(...) invokes all of the phases in the operation
outFaultFlow and the global outFaultFlow with the type of MessageContext
being set to OUT_FAULT_FLOW and then re-invokes the global outFaultFlow
phases with the type of MessageContext being set to OUT_FLOW?  (I
understand the first part, but not the second invocation.)

Also, this doesn't work the same way if the message flow pauses
partially through the invocation, as the resume code won't make the
second pass.

-Bill
 


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



Re: [Axis2][Vote] Create a branch for the Axis2 1.1 release

2006-09-15 Thread Bill Nagy
Hi all,

There's actually a good description of the why and how's of creating a
release branch in the Subversion book
(http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.branchmerge.commonuses.patterns.release)

I don't understand why folks are saying that figuring out what goes
where is tricky or that the work is that difficult.  I agree with dims
that the RM should be in charge of creating the branch for the release
-- that branch is then the RM's responsibility.  The RM gets to decide
which bug fixes (or features I suppose) get added to the branch after it
is made.

The RM, however, has no more of a vote than anyone else as to what gets
placed into the trunk.  Bug fixes that are made to the release branch
should most likely be committed to the trunk as well, but the RM doesn't
have to be the one that does it.  (If another committer made the change
to the release branch, then they should probably also commit the change
to the trunk.)  Moving changes between branches with subversion is
relatively trivial, and, unless the release drags on, I can't imagine
that the code bases will diverge that much.

-Bill



On Fri, 2006-09-15 at 10:45 -0400, Rajith Attapattu wrote:
 I am also worried about the concerns raised by Ajith and then Eran.
 Especially the decision around when to create the branch and what
 fixes should be propagated to the trunk are going to be a bit tricky.
 
 I also agree that the workload for the RM is going to be increased
 substantially. 
 
 How about if we free the RM of his other duties (bug fixes ..etc) and
 get him to do RM on a full-time basis during the release cycle?
 We need a person to fully manage the release process, especially make
 the important decisions of which fixes are propagated to trunk ..etc
 without being burdened by other tasks. 
 
 Regards,
 
 Rajith
 
 On 9/15/06, Brent Ulbricht [EMAIL PROTECTED] wrote:
 
 +1 for a branch 
 
 I agree that the branch would be best created when new
 function cannot be committed to head. 
 
 Brent Ulbricht
 IBM Software Group - WebSphere FVT
 [EMAIL PROTECTED]
 
 
 
 
 
 Jeff Barrett/Austin/[EMAIL PROTECTED] 
 
 09/15/2006 07:49 AM
 
Please respond to
 axis-dev@ws.apache.org
 
 
  To
 axis-dev@ws.apache.org
  cc
 
 
 Subject
 Re:
 [Axis2][Vote]
 Create a branch
 for the Axis2
 1.1 release
 
 
 
 
 
 
 
 
 
 
 
 +1 to creating the branch. 
 
 As to the timing of the creating the branch, It seems it needs
 to be created at the point when we are asked to stop
 committing new function to HEAD, i.e. code freeze. 
 
 Thanks,
 Jeff
 
 IBM Software Group - WebSphere Web Services Development
 Phone: 512-838-4587 or Tie Line 678-4587
 Internet e-mail and Sametime ID: [EMAIL PROTECTED]
 
 Nicholas L
 Gallardo/Austin/[EMAIL PROTECTED] 
 
 09/14/2006 04:18 PM 
Please respond to
 axis-dev@ws.apache.org
 
  To
 axis-dev@ws.apache.org
  cc
 
 
 Subject
 Re:
 [Axis2][Vote]
 Create a branch
 for the Axis2
 1.1 release
 
 
 
 
 
 
 
 
 
 
 
 
 
 Ajith, 
 
 Branching before would allow others to continue longer term
 development items while the final fixes are being applied to
 the upcoming release.
 
 Regards, 
 
 Nicholas Gallardo
 WebSphere  -  WebServices Development
 [EMAIL PROTECTED]
 Phone: 512-838-1182
 Building: 901 / 5G-016 
 Ajith Ranabahu
 [EMAIL PROTECTED] 
 
 09/14/2006 04:11 PM 
Please respond to
 axis-dev@ws.apache.org
 
 
 
 
 
  To
 axis-dev@ws.apache.org
  cc
 
 
 Subject
 Re:
 [Axis2][Vote]
 Create a branch
 for the Axis2
 1.1 release
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Hi guys,
 If I understand right the branching usually happens at the
 same time  of a release (or slightly after) and is usually
 used to fix issues in that particular release. We can
 definitely use a branch before the 

[Axis2] Why does OutInAxisOperation invoke the InFlow and InFaultFlow when a fault is received in a response?

2006-09-15 Thread Bill Nagy
Is there a particular reason that the OutInAxisOperation invokes the
InFlow (via AxisEngine.receive()) for all response messages, even though
it could most likely use transport information (e.g. ask the transport
if an error was returned) to determine that a fault had occurred and
simply invoke the InFaultFlow (via AxisEngine.receiveFault())?  As it
stands now, the InFlow will be executed followed by the InFaultFlow.  If
the policy (i.e. set of QoS handlers) is different, executing the InFlow
could cause the message processing to fail when it would have succeeded
using the InFaultFlow.

-Bill



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



Re: [Axis2][Vote] Create a branch for the Axis2 1.1 release

2006-09-15 Thread Bill Nagy
Hi Ajith,

On Fri, 2006-09-15 at 16:42 -0400, Ajith Ranabahu wrote:
 Hi Bill,
 Yep - subversion makes it very easy to merge the branches. However it
 does not talk about conflicts ! So merging is easy if there are no
 conflicts.
 
 Also the authors must make sure they commit and apply the changes to
 the trunk (with the consent of the release manager of course) at the
 same time - a bit of a burden to the authors when the numbers are
 high.
 

I'm not sure that I understand this last statement.  The point of
branching is that the code paths don't have to be identical, i.e. a
change made to the release branch doesn't have to appear in the trunk at
the same time.  It doesn't really matter if a bug fix put into the
release (or vice versa) appears in the trunk 2 seconds later or 2 days
later.  (It's unlikely that the code is going to diverge in that period
so much as to make the change exponentially more difficult.)  Again, the
release manager should have no say (other than the one vote) about what
goes into the trunk, but should have complete control over the release
branch.


 SO We'll let the RM (Thilina) decide when to cut the branch. My
 personal feeling is you guys can keep on working in the trunk and the
 RM will cut a branch after the code freeze so that the trunk folks can
 move on without any hassel. Code freeze means the code is fairly
 stable so whatever the changes that happens to the branch will be
 minimal.
 
 Anyway its Thilina's call :)

-Bill

 
 On 9/15/06, Bill Nagy [EMAIL PROTECTED] wrote:
  Hi all,
 
  There's actually a good description of the why and how's of creating a
  release branch in the Subversion book
  (http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.branchmerge.commonuses.patterns.release)
 
  I don't understand why folks are saying that figuring out what goes
  where is tricky or that the work is that difficult.  I agree with dims
  that the RM should be in charge of creating the branch for the release
  -- that branch is then the RM's responsibility.  The RM gets to decide
  which bug fixes (or features I suppose) get added to the branch after it
  is made.
 
  The RM, however, has no more of a vote than anyone else as to what gets
  placed into the trunk.  Bug fixes that are made to the release branch
  should most likely be committed to the trunk as well, but the RM doesn't
  have to be the one that does it.  (If another committer made the change
  to the release branch, then they should probably also commit the change
  to the trunk.)  Moving changes between branches with subversion is
  relatively trivial, and, unless the release drags on, I can't imagine
  that the code bases will diverge that much.
 
  -Bill
 
 
 
  On Fri, 2006-09-15 at 10:45 -0400, Rajith Attapattu wrote:
   I am also worried about the concerns raised by Ajith and then Eran.
   Especially the decision around when to create the branch and what
   fixes should be propagated to the trunk are going to be a bit tricky.
  
   I also agree that the workload for the RM is going to be increased
   substantially.
  
   How about if we free the RM of his other duties (bug fixes ..etc) and
   get him to do RM on a full-time basis during the release cycle?
   We need a person to fully manage the release process, especially make
   the important decisions of which fixes are propagated to trunk ..etc
   without being burdened by other tasks.
  
   Regards,
  
   Rajith
  
   On 9/15/06, Brent Ulbricht [EMAIL PROTECTED] wrote:
  
   +1 for a branch
  
   I agree that the branch would be best created when new
   function cannot be committed to head.
  
   Brent Ulbricht
   IBM Software Group - WebSphere FVT
   [EMAIL PROTECTED]
  
  
  
  
  
   Jeff Barrett/Austin/[EMAIL PROTECTED]
  
   09/15/2006 07:49 AM
  
  Please respond to
   axis-dev@ws.apache.org
  
  
To
   axis-dev@ws.apache.org
cc
  
  
   Subject
   Re:
   [Axis2][Vote]
   Create a branch
   for the Axis2
   1.1 release
  
  
  
  
  
  
  
  
  
  
  
   +1 to creating the branch.
  
   As to the timing of the creating the branch, It seems it needs
   to be created at the point when we are asked to stop
   committing new function to HEAD, i.e. code freeze.
  
   Thanks,
   Jeff
  
   IBM Software Group - WebSphere Web Services Development
   Phone: 512-838-4587 or Tie Line 678-4587
   Internet e-mail and Sametime ID: [EMAIL PROTECTED]
  
   Nicholas L
   Gallardo/Austin/[EMAIL PROTECTED]
  
   09/14/2006 04:18 PM
  Please respond to
   axis-dev@ws.apache.org
  
To
   axis-dev@ws.apache.org
cc
  
  
   Subject
   Re:
   [Axis2][Vote

[Axis2][Vote] Create a branch for the Axis2 1.1 release

2006-09-13 Thread Bill Nagy
Hi all,

I would like to propose that we create a branch in Subversion for the
1.1 release (and all future releases) so that we can continue
development on the main trunk while the release is occurring.  This
would also enable us to make point fixes to each release without
requiring that users adopt a whole bag of new features (i.e. the next
release) in order to get bug fixes.  (I'm not saying that we will
backport all bug fixes, just that having the release branch would enable
us to do so.)

-Bill




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



[Axis2] Options.getProperties() question

2006-09-11 Thread Bill Nagy
Is Options.getProperties() not supposed to return a full Map (including
parent properties) or is the current code incorrect?  (I'm voting for
the later, but I figured that I'd ask before I made any changes.)

-Bill




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



Re: [Axis2] Build failing

2006-09-09 Thread Bill Nagy
Still doesn't work.  This is all that I have in the repo (for XmlSchema
that is):

~ ls -lah .maven/repository/org.apache.ws.commons/jars
total 144K
drwxrwxr-x 2 nagy nagy 4.0K Sep  8 21:05 ./
drwxrwxr-x 3 nagy nagy 4.0K Jun 19 13:38 ../
-rw-rw-r-- 1 nagy nagy 120K Sep  8 21:05 XmlSchema-SNAPSHOT.jar

-Bill


On Fri, 2006-09-08 at 19:05 -0400, Davanum Srinivas wrote:
 Please cleanup your old Xmlschema jar from your maven repo...
 
 On 9/8/06, Bill Nagy [EMAIL PROTECTED] wrote:
  I just pulled from Subversion, did a full build (maven clean; maven),
  and found that some of the codegen tests are failing:
 
  Testsuite:
  org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest
  Tests run: 4, Failures: 0, Errors: 4, Time elapsed: 0.397 sec
 
  Testcase:
  testScenarioOne(org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest):
Caused an ERROR
  The prefix xs is not bound.
  java.lang.IllegalStateException: The prefix xs is not bound.
  at
  org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:515)
  at
  org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:496)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleElement(SchemaBuilder.java:1390)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleSequence(SchemaBuilder.java:956)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleComplexType(SchemaBuilder.java:584)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleElement(SchemaBuilder.java:1417)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:143)
  at
  org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:67)
  at
  org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:294)
  at
  org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:286)
  at
  org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.loadSchema(SchemaUnwrapperExtensionTest.java:161)
  at
  org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.createAndWalkSchema(SchemaUnwrapperExtensionTest.java:147)
  at
  org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.testScenarioOne(SchemaUnwrapperExtensionTest.java:65)
 
 
  Testcase:
  testScenarioTwo(org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest):
Caused an ERROR
  The prefix xs is not bound.
  java.lang.IllegalStateException: The prefix xs is not bound.
  at
  org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:515)
  at
  org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:496)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleElement(SchemaBuilder.java:1390)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleSequence(SchemaBuilder.java:956)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleComplexType(SchemaBuilder.java:584)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:138)
  at
  org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:67)
  at
  org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:294)
  at
  org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:286)
  at
  org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.loadSchema(SchemaUnwrapperExtensionTest.java:161)
  at
  org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.createAndWalkSchema(SchemaUnwrapperExtensionTest.java:147)
  at
  org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.testScenarioTwo(SchemaUnwrapperExtensionTest.java:87)
 
 
  Testcase:
  testScenarioThree(org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest):
  Caused an ERROR
  The prefix ns is not bound.
  java.lang.IllegalStateException: The prefix ns is not bound.
  at
  org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:515)
  at
  org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:496)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleComplexContentExtension(SchemaBuilder.java:875)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleComplexContent(SchemaBuilder.java:713)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleComplexType(SchemaBuilder.java:614)
  at
  org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:138)
  at
  org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:67)
  at
  org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:294)
  at
  org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:286

[Axis2] Build failing

2006-09-08 Thread Bill Nagy
I just pulled from Subversion, did a full build (maven clean; maven),
and found that some of the codegen tests are failing:

Testsuite:
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest
Tests run: 4, Failures: 0, Errors: 4, Time elapsed: 0.397 sec

Testcase:
testScenarioOne(org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest):
  Caused an ERROR
The prefix xs is not bound.
java.lang.IllegalStateException: The prefix xs is not bound.
at
org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:515)
at
org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:496)
at
org.apache.ws.commons.schema.SchemaBuilder.handleElement(SchemaBuilder.java:1390)
at
org.apache.ws.commons.schema.SchemaBuilder.handleSequence(SchemaBuilder.java:956)
at
org.apache.ws.commons.schema.SchemaBuilder.handleComplexType(SchemaBuilder.java:584)
at
org.apache.ws.commons.schema.SchemaBuilder.handleElement(SchemaBuilder.java:1417)
at
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:143)
at
org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:67)
at
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:294)
at
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:286)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.loadSchema(SchemaUnwrapperExtensionTest.java:161)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.createAndWalkSchema(SchemaUnwrapperExtensionTest.java:147)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.testScenarioOne(SchemaUnwrapperExtensionTest.java:65)


Testcase:
testScenarioTwo(org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest):
  Caused an ERROR
The prefix xs is not bound.
java.lang.IllegalStateException: The prefix xs is not bound.
at
org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:515)
at
org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:496)
at
org.apache.ws.commons.schema.SchemaBuilder.handleElement(SchemaBuilder.java:1390)
at
org.apache.ws.commons.schema.SchemaBuilder.handleSequence(SchemaBuilder.java:956)
at
org.apache.ws.commons.schema.SchemaBuilder.handleComplexType(SchemaBuilder.java:584)
at
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:138)
at
org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:67)
at
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:294)
at
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:286)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.loadSchema(SchemaUnwrapperExtensionTest.java:161)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.createAndWalkSchema(SchemaUnwrapperExtensionTest.java:147)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.testScenarioTwo(SchemaUnwrapperExtensionTest.java:87)


Testcase:
testScenarioThree(org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest):
Caused an ERROR
The prefix ns is not bound.
java.lang.IllegalStateException: The prefix ns is not bound.
at
org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:515)
at
org.apache.ws.commons.schema.SchemaBuilder.getRefQName(SchemaBuilder.java:496)
at
org.apache.ws.commons.schema.SchemaBuilder.handleComplexContentExtension(SchemaBuilder.java:875)
at
org.apache.ws.commons.schema.SchemaBuilder.handleComplexContent(SchemaBuilder.java:713)
at
org.apache.ws.commons.schema.SchemaBuilder.handleComplexType(SchemaBuilder.java:614)
at
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:138)
at
org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:67)
at
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:294)
at
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:286)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.loadSchema(SchemaUnwrapperExtensionTest.java:161)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.createAndWalkSchema(SchemaUnwrapperExtensionTest.java:147)
at
org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest.testScenarioThree(SchemaUnwrapperExtensionTest.java:108)


Testcase:
testScenarioFour(org.apache.axis2.wsdl.codegen.extension.SchemaUnwrapperExtensionTest):
 Caused an ERROR
The prefix ns is not bound.
java.lang.IllegalStateException: The prefix ns is not bound.
at

[jira] Updated: (AXIS2-1119) Dispatcher support for ServiceMode=MESSAGE annotation

2006-09-07 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-1119?page=all ]

Bill Nagy updated AXIS2-1119:
-

Component/s: jaxws

 Dispatcher support for ServiceMode=MESSAGE annotation
 -

 Key: AXIS2-1119
 URL: http://issues.apache.org/jira/browse/AXIS2-1119
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: New Feature
  Components: jaxws
Reporter: Jeff Barrett

 The Dispatcher currently assumes ServiceMode=PAYLOAD (e.g. the Body of the 
 message).   MESSAGE mode support for ProviderT  types of Source, 
 SOAPMessage, and String needs to be added.
 I am working on a patch which I will submit shortly

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Commented: (AXIS2-653) Handler method cleanup is never called

2006-08-31 Thread Bill Nagy (JIRA)
[ 
http://issues.apache.org/jira/browse/AXIS2-653?page=comments#action_12431888 ] 

Bill Nagy commented on AXIS2-653:
-

Hi Deepal.  I actually proposed this modification to the lifecycle sometime in 
April ( http://marc.theaimsgroup.com/?l=axis-devm=114505970102143w=2 ), but 
haven't gotten the code out yet.  You still need a cleanup() method to match 
the init() to allow, for instance, a handler that is maintaining a DB 
connection throughout its lifetime (the lifetime of the system as you said) to 
close the connection when it is being shut down (i.e. when the system is 
stopped.)  As for the antiinvoke methods, you need to make sure that they get 
called in the opposite order that the invokes happened (and in the same place 
in the call stack,) that they are called only for those handlers who have had 
their invokes called, and that they are called both for normal completion as 
well as in the case of a fault.


 Handler method cleanup is never called
 

 Key: AXIS2-653
 URL: http://issues.apache.org/jira/browse/AXIS2-653
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
  Components: core
Affects Versions: 1.0
Reporter: Thilo Frotscher
 Assigned To: Deepal Jayasinghe
Priority: Blocker

 1) My IDE couldn't find any references to method cleanup in the Axis2 
 source code. It's never called...
 2) What happens if the handler's invoke method thows a fault? Javadoc for 
 invoke says that onFault would be called. But there is no such method...
 3) User guide, page 4 
 - mentions a method called revoke. There is no such method in interface 
 Handler. 
 - refers to green lines in sample configuration...there are no green lines
 - sample configuration contains mistakes
  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Created: (AXIS2-1095) Transmission with MTOM enabled fails when client sets useSeparateListener for req/rsp

2006-08-30 Thread Bill Nagy (JIRA)
Transmission with MTOM enabled fails when client sets useSeparateListener for 
req/rsp
-

 Key: AXIS2-1095
 URL: http://issues.apache.org/jira/browse/AXIS2-1095
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
Affects Versions: M2
Reporter: Bill Nagy
 Attachments: EchoRawMTOMTest.java, maven.xml, MTOM-enabled-axis2.xml, 
TEST-org.apache.axis2.mtom.EchoRawMTOMTest.txt

I was creating a new testcase when I ran into this issue, but I was able to 
replicate it by modifying the EchoRawMTOMTest in the integration module.  I 
have added the addressing mar to the build and enabled addressing in the config 
file.  The test case continues to work until I add 
options.setUseSeparateListener(true).  I've attached my modified files as well 
as the test report.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Updated: (AXIS2-1095) Transmission with MTOM enabled fails when client sets useSeparateListener for req/rsp

2006-08-30 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-1095?page=all ]

Bill Nagy updated AXIS2-1095:
-

Attachment: MTOM-enabled-axis2.xml

 Transmission with MTOM enabled fails when client sets useSeparateListener for 
 req/rsp
 -

 Key: AXIS2-1095
 URL: http://issues.apache.org/jira/browse/AXIS2-1095
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
Affects Versions: M2
Reporter: Bill Nagy
 Attachments: EchoRawMTOMTest.java, maven.xml, MTOM-enabled-axis2.xml, 
 TEST-org.apache.axis2.mtom.EchoRawMTOMTest.txt


 I was creating a new testcase when I ran into this issue, but I was able to 
 replicate it by modifying the EchoRawMTOMTest in the integration module.  I 
 have added the addressing mar to the build and enabled addressing in the 
 config file.  The test case continues to work until I add 
 options.setUseSeparateListener(true).  I've attached my modified files as 
 well as the test report.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Updated: (AXIS2-1095) Transmission with MTOM enabled fails when client sets useSeparateListener for req/rsp

2006-08-30 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-1095?page=all ]

Bill Nagy updated AXIS2-1095:
-

Affects Version/s: (was: M2)

 Transmission with MTOM enabled fails when client sets useSeparateListener for 
 req/rsp
 -

 Key: AXIS2-1095
 URL: http://issues.apache.org/jira/browse/AXIS2-1095
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
Reporter: Bill Nagy
 Attachments: EchoRawMTOMTest.java, maven.xml, MTOM-enabled-axis2.xml, 
 TEST-org.apache.axis2.mtom.EchoRawMTOMTest.txt


 I was creating a new testcase when I ran into this issue, but I was able to 
 replicate it by modifying the EchoRawMTOMTest in the integration module.  I 
 have added the addressing mar to the build and enabled addressing in the 
 config file.  The test case continues to work until I add 
 options.setUseSeparateListener(true).  I've attached my modified files as 
 well as the test report.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Updated: (AXIS2-1095) Reception of response from server when using MTOM fails when client sets useSeparateListener for req/rsp

2006-08-30 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-1095?page=all ]

Bill Nagy updated AXIS2-1095:
-

Summary: Reception of response from server when using MTOM fails when 
client sets useSeparateListener for req/rsp  (was: Transmission with MTOM 
enabled fails when client sets useSeparateListener for req/rsp)

Clarified the summary (I hope)

 Reception of response from server when using MTOM fails when client sets 
 useSeparateListener for req/rsp
 

 Key: AXIS2-1095
 URL: http://issues.apache.org/jira/browse/AXIS2-1095
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Bug
Reporter: Bill Nagy
 Attachments: EchoRawMTOMTest.java, maven.xml, MTOM-enabled-axis2.xml, 
 TEST-org.apache.axis2.mtom.EchoRawMTOMTest.txt


 I was creating a new testcase when I ran into this issue, but I was able to 
 replicate it by modifying the EchoRawMTOMTest in the integration module.  I 
 have added the addressing mar to the build and enabled addressing in the 
 config file.  The test case continues to work until I add 
 options.setUseSeparateListener(true).  I've attached my modified files as 
 well as the test report.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Commented: (AXIS2-938) Plugpoint to allow for migration between context and TLS

2006-07-31 Thread Bill Nagy (JIRA)
[ 
http://issues.apache.org/jira/browse/AXIS2-938?page=comments#action_12424587 ] 

Bill Nagy commented on AXIS2-938:
-

(Sorry that I'm a little late to the discussion; I just switched machines and 
apparently my mail filtering is screwed up.)

The plugpoint was indeed meant to be PM-agnostic, and I know for a fact that 
when Tuscany integrates with Axis2 they will need this as well.  As Nick 
pointed out, the invocations have to happen at the PM layer, as the PM may 
introduce thread-switches of its own, and that's the only place that will know 
when all of those have been completed or will know before they start.

As to putting the LinkedList into the AxisConfiguration vs. the 
ConfigurationContext, I had likened the migrators to modules, transports, 
phases, etc. all of which reside in the AxisConfiguration.  At least on the 
client side, migrators are going to have to be statically registered/deployed, 
as they need to be invoked high up in the PM and not much of the engine will 
have executed at that point in time.  If you still think that they belong in 
the ConfigurationContext, then I'm happy to move the List.

-Bill



 Plugpoint to allow for migration between context and TLS
 

 Key: AXIS2-938
 URL: http://issues.apache.org/jira/browse/AXIS2-938
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: New Feature
  Components: core, jaxws
Reporter: Bill Nagy
 Assigned To: Bill Nagy
 Attachments: tlsmigrator.patch


 We have an issue with some APIs (e.g. security, Tx) requiring that data be 
 present on Thread Local Storage (TLS).  I believe that we can work around (at 
 least for now) needing to migrate information between threads, and can simply 
 get away with storing it in one of the contexts and then moving it to TLS 
 before we get into user space (i.e. up through the service programming model) 
 and then back again if need be.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: [jira] Commented: (AXIS2-938) Plugpoint to allow for migration between context and TLS

2006-07-31 Thread Bill Nagy
Hi dims,

If all you are asking me for is to add calls into the other
MessageReceiver's and the ServiceClient, I'd be happy to do it; I just
didn't have a use case that required that, so didn't want to clutter the
code.

Alternatively I can make it more explicit in the comments that it is up
to the programming model layer to make these invocations, and that not
all may.  (The migrators really border between the QoSes and the
PM-level code, so anyone implementing one has to understand the PM-layer
as well anyways.)

Which would you prefer (or did I miss what you were trying to explain?)

-Bill

On Mon, 2006-07-31 at 14:58 -0400, Davanum Srinivas wrote:
 Bill,
 
 If we decide to mode the whole thing into modules/core, then i will
 have no problem keeping the methods for migrators and make it similar
 to modules, transports, phases etc.
 
 Here's my problem, the Patch does not reflect the intention. If you
 check it in as-is right now. Anyone using the core module and *NOT*
 using module/jaxws will scratch their heads as their entry points are
 *NEVER* called from the code.
 
 Do you see the problem?
 
 thanks,
 dims
 
 On 7/31/06, Bill Nagy (JIRA) [EMAIL PROTECTED] wrote:
  [ 
  http://issues.apache.org/jira/browse/AXIS2-938?page=comments#action_12424587
   ]
 
  Bill Nagy commented on AXIS2-938:
  -
 
  (Sorry that I'm a little late to the discussion; I just switched machines 
  and apparently my mail filtering is screwed up.)
 
  The plugpoint was indeed meant to be PM-agnostic, and I know for a fact 
  that when Tuscany integrates with Axis2 they will need this as well.  As 
  Nick pointed out, the invocations have to happen at the PM layer, as the PM 
  may introduce thread-switches of its own, and that's the only place that 
  will know when all of those have been completed or will know before they 
  start.
 
  As to putting the LinkedList into the AxisConfiguration vs. the 
  ConfigurationContext, I had likened the migrators to modules, transports, 
  phases, etc. all of which reside in the AxisConfiguration.  At least on the 
  client side, migrators are going to have to be statically 
  registered/deployed, as they need to be invoked high up in the PM and not 
  much of the engine will have executed at that point in time.  If you still 
  think that they belong in the ConfigurationContext, then I'm happy to move 
  the List.
 
  -Bill
 
 -
 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: [jira] Commented: (AXIS2-938) Plugpoint to allow for migration between context and TLS

2006-07-31 Thread Bill Nagy
Hi Sanjiva,

Unless I'm not explaining it well, the only piece that is different from
what I had described earlier
(http://marc.theaimsgroup.com/?l=axis-devm=115270290506219w=2) is the
interface; there are now two extra methods to make it more clear to
someone who is writing a migrator (or reading the PM-level code) what
the migrator is supposed to be doing (i.e. moving info from the context
to the TLS or vice versa.)

If that doesn't help, RTFP 8-].

-Bill

On Mon, 2006-07-31 at 23:53 +0530, Sanjiva Weerawarana wrote:
 On Mon, 2006-07-31 at 10:41 -0700, Bill Nagy (JIRA) wrote:
  (Sorry that I'm a little late to the discussion; I just switched
   machines and apparently my mail filtering is screwed up.)
  
  The plugpoint was indeed meant to be PM-agnostic, and I know for a fact
   that when Tuscany integrates with Axis2 they will need this as well. 
   As Nick pointed out, the invocations have to happen at the PM layer,
   as the PM may introduce thread-switches of its own, and that's the
   only place that will know when all of those have been completed or
   will know before they start.
  
  As to putting the LinkedList into the AxisConfiguration vs. the
   ConfigurationContext, I had likened the migrators to modules,
   transports, phases, etc. all of which reside in the
   AxisConfiguration.  At least on the client side, migrators are going
   to have to be statically registered/deployed, as they need to be
   invoked high up in the PM and not much of the engine will have
   executed at that point in time.  If you still think that they belong
   in the ConfigurationContext, then I'm happy to move the List.
 
 I haven't had a chance to go thru the patch yet .. any chance of sending
 a description of it? From the discussion I see its somewhat diff from
 what was originally suggested (which is cool of course). If u want to
 tell me RTFP I'll accept it :).
 
 Sanjiva.
 
 
 
 -
 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: [AXIS2] [Sandesha2] Saving the message context

2006-07-29 Thread Bill Nagy
On Fri, 2006-07-28 at 23:46 -0400, Rajith Attapattu wrote:
 Anne,
 
 Again I will advice again serializing the contexts using any form of
 serialization. This will not scale at all in a production environment.

Hi Rajith,

Could you please explain this last comment?

 Again this approach will be error prone and as chamikara mentioned
 there will be too many information saved in the database. 

I don't understand why you and Chamikara keep saying that there will be
too much information serialized.  You have the option of taking complete
control of the serialization, thereby writing/reading only the
information that you want and in the form that you want it to be in.  I
don't believe that Ann is arguing for simply using the default
serialization, only about who should be in control of making the
decisions as to what should be saved.


 
 I am looking at clustering certain information within the ctx heirachy
 for high availability and I would only do with the bare minimum.
 
 In my opinion the performance overhead of serializing and
 deserializing (and validations to avoid erros) is a lot more than
 saving the required info in a bean like what chamikara does for
 Sandesha and then reconstructing it. 
 

Having the objects persist their own state is far less error prone than
having a third-party piece of code do the persistence.  For one, anytime
someone changes or adds a piece of information that needs to be saved in
order to correctly restore the state, they have to remember to modify
the external code.  It's generally hard enough to remember to modify
code embedded in the class itself, much less having to remember to
modify a completely separate piece of code.

Secondly, you require the objects that need to be saved to expose
methods, to return the portions that you want to have serialized, that
you may not have to expose otherwise.

In effect, the approach that you've chosen has abandoned encapsulation
and created fragile dependencies -- this is bad design.

-Bill

 Regards,
 
 Rajith
 
 
 On 7/28/06, Chamikara Jayalath [EMAIL PROTECTED] wrote: 
 Hi Ann,
 
 Yes. We had introduced Externalizable implementaitons for all
 of the Context hierarchy objects sometime back. But this
 approach seemed to be saving too much information on the
 database. 
 
 For example at some point there may be following context
 objects available in a running axis2 instance.
 1. configuration context object
 2. service group context objects
 3 service context objects
 4. Operation context objects
 5. A lot of message context objects
 
 If we try serializing starting from a message context, since
 we have to serialize every incoming message context all these
 objects will be serialized every time (recall that the message
 context hs a link to the configuration context which has links
 to all other context objects). Think how deficult the
 reconstruction would be. Every deserialized message context
 will come up with its own hierarchy of context objects which
 may not map with the context objects reconstructed by
 deserializing others message contexts.
 
 Thats why I went for this approach of saving only the relavent
 information. It seemed to be much cleaner and it was
 working :-)
 
 You had mentioned about serializing the AxisOperaion object.
 All the 'Axis*'  objects in Axis2 (AxisConfiguration,
 AxisServiceGroupt etc.) contains deployment time information.
 So we can safely ignore them in the serializing process.
 
 
 Chamikara
 
 
 
 
 On 7/29/06, Ann Robinson [EMAIL PROTECTED] wrote:
 Hi Chamikara,
 Thanks for the information.
 
 Did you consider using java.io.Externalizable for the
 AXIS2 message context-related classes? (Having the
 work done by the AXIS2 objects would have simplified
 the actions that Sandesha needed to take in order to
 save the message context, so I am curious about any
 issues that were encountered.
 
 
 In the MessageStoreBean, how much of the various
 objects do you store as Strings? For example, the
 AxisOperation object contains several lists and the
 executionChain object contains a list of handlers and
 phases.
 
 
 
 
 Ann
 
 
 WebSphere Development, Web Services Engine
 
 IBM
 11501 Burnet Rd IZip 9035G021
 Austin, TX 78758
   

[jira] Resolved: (AXIS2-910) JAXWS: Update AxisInvocationController to use the OperationClient instead of the ServiceClient

2006-07-27 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-910?page=all ]

Bill Nagy resolved AXIS2-910.
-

Resolution: Fixed

 JAXWS: Update AxisInvocationController to use the OperationClient instead of 
 the ServiceClient
 --

 Key: AXIS2-910
 URL: http://issues.apache.org/jira/browse/AXIS2-910
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Improvement
  Components: jaxws
Reporter: Nick Gallardo
 Assigned To: Bill Nagy
 Attachments: 910-src-patch.txt, 910-test-patch.txt, 
 jaxws-test-patch.txt


 For the purposes of greater flexibility, the AxisInvocationController should 
 use the Axis2 OperationClient API rather than using the ServiceClient.  I've 
 started a little bit of this work in a sandbox and will hopefully have 
 patches to post later on today.
 Also, this work is dependant upon the patch that I posted for JIRA issue 909.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Created: (AXIS2-938) Plugpoint to allow for migration between context and TLS

2006-07-27 Thread Bill Nagy (JIRA)
Plugpoint to allow for migration between context and TLS


 Key: AXIS2-938
 URL: http://issues.apache.org/jira/browse/AXIS2-938
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: New Feature
  Components: core, jaxws
Reporter: Bill Nagy
 Assigned To: Bill Nagy
 Attachments: tlsmigrator.patch

We have an issue with some APIs (e.g. security, Tx) requiring that data be 
present on Thread Local Storage (TLS).  I believe that we can work around (at 
least for now) needing to migrate information between threads, and can simply 
get away with storing it in one of the contexts and then moving it to TLS 
before we get into user space (i.e. up through the service programming model) 
and then back again if need be.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] Updated: (AXIS2-938) Plugpoint to allow for migration between context and TLS

2006-07-27 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-938?page=all ]

Bill Nagy updated AXIS2-938:


Attachment: tlsmigrator.patch

 Plugpoint to allow for migration between context and TLS
 

 Key: AXIS2-938
 URL: http://issues.apache.org/jira/browse/AXIS2-938
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: New Feature
  Components: core, jaxws
Reporter: Bill Nagy
 Assigned To: Bill Nagy
 Attachments: tlsmigrator.patch


 We have an issue with some APIs (e.g. security, Tx) requiring that data be 
 present on Thread Local Storage (TLS).  I believe that we can work around (at 
 least for now) needing to migrate information between threads, and can simply 
 get away with storing it in one of the contexts and then moving it to TLS 
 before we get into user space (i.e. up through the service programming model) 
 and then back again if need be.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: [Axis2] Plugpoint to allow for migration between context and TLS

2006-07-27 Thread Bill Nagy
This took a little longer than I would have liked, but I've opened a
JIRA issue (Axis2-938) and attached my patch.  Comments are welcome.

-Bill

On Wed, 2006-07-12 at 14:20 -0400, Bill Nagy wrote:
 Hi Sanjiva,
 
 Logically, you can think of them as an extension to the handler
 mechanism that runs at the border between the core Axis2 code and the
 programming model layer (e.g. in the JAX-WS case they'll be run inside
 of the JAXWSMessageReceiver, the jaxws...AxisInvocationController, and
 the jaxws...AxisCallback (I believe.))  They're really just a set of
 utility methods that get invoked to bridge between the Axis2 context
 model and the external programming model that is exposed to the end
 user, so they don't have a lifecycle per say.  I specifically haven't
 tied the registration of the migrators (I'm happy for a different name
 8-]) to a handler or module, as (1) they are programming model specific,
 while the modules/handlers deal with the Axis2 model and (2) on the
 sender side, the modules may not have been engaged by the time that this
 code needs to execute.  Implementation of the migrators falls somewhere
 between the responsibility of the programming model implementor and the
 QoS implementor -- as I said, it's really bridging code.
 
 I will try to send out the diffs of my code later today after I get the
 changes put into the new JAX-WS code.
 
 -Bill
 
 
 On Wed, 2006-07-12 at 22:12 +0530, Sanjiva Weerawarana wrote:
  On Wed, 2006-07-12 at 09:40 -0400, Bill Nagy wrote:
   Hi dims,
   
   Sure.  You are correct, there is no TLS code currently in Axis2.
   However we (IBM) have several cases (e.g. security) where we need to
   migrate information between the Axis2 contexts and TLS.  For example, we
   have identity APIs that rely upon tokens being placed in TLS.  While we
   can have the handler place the information in the MessageContext for
   example, we need to move it to TLS before we enter user space, so that
   if the user invokes one of our security APIs the information will be
   available.  (We also need to make sure that the info is removed from TLS
   when we're done, hence the flowComplete() method.)
  
  So is this basically a utility class that a specific handler invokes? Or
  are you suggesting that people register these migrators against a
  handler and then they get invoked upon entry/exit? I guess the lifecycle
  and programming model for TCMigrators is not clear enough to me yet!
  
  Sanjiva.
  
  
  
  -
  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]


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



[jira] Assigned: (AXIS2-910) JAXWS: Update AxisInvocationController to use the OperationClient instead of the ServiceClient

2006-07-25 Thread Bill Nagy (JIRA)
 [ http://issues.apache.org/jira/browse/AXIS2-910?page=all ]

Bill Nagy reassigned AXIS2-910:
---

Assignee: Bill Nagy  (was: Rich Scheuerle)

 JAXWS: Update AxisInvocationController to use the OperationClient instead of 
 the ServiceClient
 --

 Key: AXIS2-910
 URL: http://issues.apache.org/jira/browse/AXIS2-910
 Project: Apache Axis 2.0 (Axis2)
  Issue Type: Improvement
  Components: jaxws
Reporter: Nick Gallardo
 Assigned To: Bill Nagy
 Attachments: 910-src-patch.txt, 910-test-patch.txt, 
 jaxws-test-patch.txt


 For the purposes of greater flexibility, the AxisInvocationController should 
 use the Axis2 OperationClient API rather than using the ServiceClient.  I've 
 started a little bit of this work in a sandbox and will hopefully have 
 patches to post later on today.
 Also, this work is dependant upon the patch that I posted for JIRA issue 909.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



  1   2   >