RE: Axis2C support for dynamic operations
Hi Senaka, This is great news, thank you. I have two questions: 1. How do I specify the alias in services.xml? 2. How do I get the original alias that was used? For example, if I map "Update*Item" to the "UpdateItem" operation, and the actual operation that comes in is "UpdateFooItem", can I get the "UpdateFooItem" or the "Foo" string from inside my server code? -Dave. -Original Message- From: Senaka Fernando [mailto:[EMAIL PROTECTED] Sent: Friday, January 25, 2008 11:17 PM To: Apache AXIS C Developers List Subject: RE: Axis2C support for dynamic operations Hi Dave, I did some modifications to the action-mapping and operation name resolution in the soap_action_based_dispatcher on Axis2/C. The patch is currently being moderated by the developers. Once it has been done, you may go ahead with providing any alias you desire for your operation. I will add onto this the ability to accept the '*' character, for alias mapping scenarios. You may refer issue, AXIS2C-854, at [1] for more information. This will be made available during the next week. [1] https://issues.apache.org/jira/browse/AXIS2C-854 Regards, Senaka > Hi Samisa, > > Is there any way to do the equivalent of "any" for a service? Kind of > like an "any" element in a schema, except for an operation. All I > need is to have the engine call my invoke method and at that point I > can write all the code that knows how to handle the operation. > > If this is not possible, maybe I could alter the axis2 code where it > looks up the operation and map it to an existing operation, but store > the original operation name in the context. So for example, if I have > a known operation called "Update" and a request comes in called > "UpdateFoo" I would map this operation to "Update" and store "UpdateFoo" > somewhere in the context. So I would have something like the > following in my services.xml: > > name="wsamapping">\"\" > > > Then on the response, I would need to make sure it used the original > "UpdateFoo" name. > > I don't mind going off and modifying the axis2 code for my purposes to > make this work. Can you point me to where this would be done? > > Thanks, > > -Dave. > > -Original Message- > From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED] > Sent: Thursday, January 24, 2008 6:06 PM > To: Apache AXIS C Developers List > Subject: Re: Axis2C support for dynamic operations > > This cannot be done with WSDLs because we do not have a WSDL model > associated with the description hierarchy. > > However, you can add support for new operations, dynamically to the > description hierarchy, in runtime, by accessing configuration. > However, this may have threading issues. Other problem with dynamic > operations, is how to map the operation to a function. For current > operations this happens at the server startup time. We can achieve > dynamic operation to function mapping using a custom message receiver, > which will load the functions mapped to the operation on the run. > > In short, this can be done. However, that needs lots of engineering. > > Thanks, > Samisa... > > Dave Meier wrote: >> Hi All, >> >> I have a requirement to support dynamically generated wsdls. Each >> wsdl will contain a core set of operations, but will then have >> additional operations defined. I want to use the wsdl with the core >> set of operations as my service in Axis2C, but then write code in my >> invoke method that will know about the additional new operations as >> they will follow a standard pattern. >> >> My question is, how can I get Axis2C to forward the request to my >> invoke method, for operations that are not in the services.xml file? >> >> In services.xml could I somehow use wildcards? Like this: >> >> >> \"\" >> >> >> So then a custom wsdl file would be given to a client and it could >> have operations like "UpdateFoo" and "UpdateBar", which are not in >> the > >> services.xml, but the "Update*" could match them. Then in my invoke >> method I could analyze the operation name and know what to do with it >> (e.g. "UpdateFoo" would tell me to use "Foo" logic and I would know >> how to handle that). >> >> The purpose for this is ease of use to the client. We have many >> operations that are generalized, but if I can generate new wsdl to do >> specifically what the user is trying to do, they can use these custom >> operation names directly. This will result in
Re: Axis2C support for dynamic operations
Dave Meier wrote: Hi Samisa, Is there any way to do the equivalent of "any" for a service? Kind of like an "any" element in a schema, except for an operation. All I need is to have the engine call my invoke method and at that point I can write all the code that knows how to handle the operation. You should be able to do that. It is an OM node that is passed to the function being invoked. So it is equivalent to an "any" element. You can decide to process it whichever way you want. Thanks, Samisa... If this is not possible, maybe I could alter the axis2 code where it looks up the operation and map it to an existing operation, but store the original operation name in the context. So for example, if I have a known operation called "Update" and a request comes in called "UpdateFoo" I would map this operation to "Update" and store "UpdateFoo" somewhere in the context. So I would have something like the following in my services.xml: \"\" Then on the response, I would need to make sure it used the original "UpdateFoo" name. I don't mind going off and modifying the axis2 code for my purposes to make this work. Can you point me to where this would be done? Thanks, -Dave. -Original Message- From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED] Sent: Thursday, January 24, 2008 6:06 PM To: Apache AXIS C Developers List Subject: Re: Axis2C support for dynamic operations This cannot be done with WSDLs because we do not have a WSDL model associated with the description hierarchy. However, you can add support for new operations, dynamically to the description hierarchy, in runtime, by accessing configuration. However, this may have threading issues. Other problem with dynamic operations, is how to map the operation to a function. For current operations this happens at the server startup time. We can achieve dynamic operation to function mapping using a custom message receiver, which will load the functions mapped to the operation on the run. In short, this can be done. However, that needs lots of engineering. Thanks, Samisa... Dave Meier wrote: Hi All, I have a requirement to support dynamically generated wsdls. Each wsdl will contain a core set of operations, but will then have additional operations defined. I want to use the wsdl with the core set of operations as my service in Axis2C, but then write code in my invoke method that will know about the additional new operations as they will follow a standard pattern. My question is, how can I get Axis2C to forward the request to my invoke method, for operations that are not in the services.xml file? In services.xml could I somehow use wildcards? Like this: \"\" So then a custom wsdl file would be given to a client and it could have operations like "UpdateFoo" and "UpdateBar", which are not in the services.xml, but the "Update*" could match them. Then in my invoke method I could analyze the operation name and know what to do with it (e.g. "UpdateFoo" would tell me to use "Foo" logic and I would know how to handle that). The purpose for this is ease of use to the client. We have many operations that are generalized, but if I can generate new wsdl to do specifically what the user is trying to do, they can use these custom operation names directly. This will result in greatly increased usability. I think most of the work is on the service in my code, but I need a way to tell Axis2C to forward along the request even if it is not in the known set. Is there a way to do this, or is there a way to modify the code to support this? Thank you much, -Dave. ** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. ** -- -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.19.10/1240 - Release Date: 1/23/2008 5:47 PM - 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: Axis2C support for dynamic operations
Hi Dave, I did some modifications to the action-mapping and operation name resolution in the soap_action_based_dispatcher on Axis2/C. The patch is currently being moderated by the developers. Once it has been done, you may go ahead with providing any alias you desire for your operation. I will add onto this the ability to accept the '*' character, for alias mapping scenarios. You may refer issue, AXIS2C-854, at [1] for more information. This will be made available during the next week. [1] https://issues.apache.org/jira/browse/AXIS2C-854 Regards, Senaka > Hi Samisa, > > Is there any way to do the equivalent of "any" for a service? Kind of > like an "any" element in a schema, except for an operation. All I need > is to have the engine call my invoke method and at that point I can > write all the code that knows how to handle the operation. > > If this is not possible, maybe I could alter the axis2 code where it > looks up the operation and map it to an existing operation, but store > the original operation name in the context. So for example, if I have a > known operation called "Update" and a request comes in called > "UpdateFoo" I would map this operation to "Update" and store "UpdateFoo" > somewhere in the context. So I would have something like the following > in my services.xml: > > > \"\" > > > Then on the response, I would need to make sure it used the original > "UpdateFoo" name. > > I don't mind going off and modifying the axis2 code for my purposes to > make this work. Can you point me to where this would be done? > > Thanks, > > -Dave. > > -----Original Message- > From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED] > Sent: Thursday, January 24, 2008 6:06 PM > To: Apache AXIS C Developers List > Subject: Re: Axis2C support for dynamic operations > > This cannot be done with WSDLs because we do not have a WSDL model > associated with the description hierarchy. > > However, you can add support for new operations, dynamically to the > description hierarchy, in runtime, by accessing configuration. However, > this may have threading issues. Other problem with dynamic operations, > is how to map the operation to a function. For current operations this > happens at the server startup time. We can achieve dynamic operation to > function mapping using a custom message receiver, which will load the > functions mapped to the operation on the run. > > In short, this can be done. However, that needs lots of engineering. > > Thanks, > Samisa... > > Dave Meier wrote: >> Hi All, >> >> I have a requirement to support dynamically generated wsdls. Each >> wsdl will contain a core set of operations, but will then have >> additional operations defined. I want to use the wsdl with the core >> set of operations as my service in Axis2C, but then write code in my >> invoke method that will know about the additional new operations as >> they will follow a standard pattern. >> >> My question is, how can I get Axis2C to forward the request to my >> invoke method, for operations that are not in the services.xml file? >> >> In services.xml could I somehow use wildcards? Like this: >> >> >> \"\" >> >> >> So then a custom wsdl file would be given to a client and it could >> have operations like "UpdateFoo" and "UpdateBar", which are not in the > >> services.xml, but the "Update*" could match them. Then in my invoke >> method I could analyze the operation name and know what to do with it >> (e.g. "UpdateFoo" would tell me to use "Foo" logic and I would know >> how to handle that). >> >> The purpose for this is ease of use to the client. We have many >> operations that are generalized, but if I can generate new wsdl to do >> specifically what the user is trying to do, they can use these custom >> operation names directly. This will result in greatly increased >> usability. >> >> I think most of the work is on the service in my code, but I need a >> way to tell Axis2C to forward along the request even if it is not in >> the known set. Is there a way to do this, or is there a way to modify > >> the code to support this? >> >> Thank you much, >> >> -Dave. >> >> >> ** >> >> This email and any files transmitted with it are confidential and >> intended solely for the use of the individual or entity to whom they >> are addressed. Any unauthorized review, use, discl
RE: Axis2C support for dynamic operations
Hi Samisa, Is there any way to do the equivalent of "any" for a service? Kind of like an "any" element in a schema, except for an operation. All I need is to have the engine call my invoke method and at that point I can write all the code that knows how to handle the operation. If this is not possible, maybe I could alter the axis2 code where it looks up the operation and map it to an existing operation, but store the original operation name in the context. So for example, if I have a known operation called "Update" and a request comes in called "UpdateFoo" I would map this operation to "Update" and store "UpdateFoo" somewhere in the context. So I would have something like the following in my services.xml: \"\" Then on the response, I would need to make sure it used the original "UpdateFoo" name. I don't mind going off and modifying the axis2 code for my purposes to make this work. Can you point me to where this would be done? Thanks, -Dave. -Original Message- From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED] Sent: Thursday, January 24, 2008 6:06 PM To: Apache AXIS C Developers List Subject: Re: Axis2C support for dynamic operations This cannot be done with WSDLs because we do not have a WSDL model associated with the description hierarchy. However, you can add support for new operations, dynamically to the description hierarchy, in runtime, by accessing configuration. However, this may have threading issues. Other problem with dynamic operations, is how to map the operation to a function. For current operations this happens at the server startup time. We can achieve dynamic operation to function mapping using a custom message receiver, which will load the functions mapped to the operation on the run. In short, this can be done. However, that needs lots of engineering. Thanks, Samisa... Dave Meier wrote: > Hi All, > > I have a requirement to support dynamically generated wsdls. Each > wsdl will contain a core set of operations, but will then have > additional operations defined. I want to use the wsdl with the core > set of operations as my service in Axis2C, but then write code in my > invoke method that will know about the additional new operations as > they will follow a standard pattern. > > My question is, how can I get Axis2C to forward the request to my > invoke method, for operations that are not in the services.xml file? > > In services.xml could I somehow use wildcards? Like this: > > > \"\" > > > So then a custom wsdl file would be given to a client and it could > have operations like "UpdateFoo" and "UpdateBar", which are not in the > services.xml, but the "Update*" could match them. Then in my invoke > method I could analyze the operation name and know what to do with it > (e.g. "UpdateFoo" would tell me to use "Foo" logic and I would know > how to handle that). > > The purpose for this is ease of use to the client. We have many > operations that are generalized, but if I can generate new wsdl to do > specifically what the user is trying to do, they can use these custom > operation names directly. This will result in greatly increased > usability. > > I think most of the work is on the service in my code, but I need a > way to tell Axis2C to forward along the request even if it is not in > the known set. Is there a way to do this, or is there a way to modify > the code to support this? > > Thank you much, > > -Dave. > > > ** > > This email and any files transmitted with it are confidential and > intended solely for the use of the individual or entity to whom they > are addressed. Any unauthorized review, use, disclosure or > distribution is prohibited. If you are not the intended recipient, > please contact the sender by reply e-mail and destroy all copies of > the original message. > > ** > > > > -- > -- > > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.516 / Virus Database: 269.19.10/1240 - Release Date: > 1/23/2008 5:47 PM > - 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: Axis2C support for dynamic operations
BTW, I just realized that a similar thing has been done in the WSF/PHP project. In there, new operations are added on the fly with a custom message receiver. So if you want to have a look on how that can be done you can have a look into the source here: http://wso2.org/downloads/wsf/php Thanks, Samisa... Samisa Abeysinghe wrote: This cannot be done with WSDLs because we do not have a WSDL model associated with the description hierarchy. However, you can add support for new operations, dynamically to the description hierarchy, in runtime, by accessing configuration. However, this may have threading issues. Other problem with dynamic operations, is how to map the operation to a function. For current operations this happens at the server startup time. We can achieve dynamic operation to function mapping using a custom message receiver, which will load the functions mapped to the operation on the run. In short, this can be done. However, that needs lots of engineering. Thanks, Samisa... Dave Meier wrote: Hi All, I have a requirement to support dynamically generated wsdls. Each wsdl will contain a core set of operations, but will then have additional operations defined. I want to use the wsdl with the core set of operations as my service in Axis2C, but then write code in my invoke method that will know about the additional new operations as they will follow a standard pattern. My question is, how can I get Axis2C to forward the request to my invoke method, for operations that are not in the services.xml file? In services.xml could I somehow use wildcards? Like this: \"\" So then a custom wsdl file would be given to a client and it could have operations like "UpdateFoo" and "UpdateBar", which are not in the services.xml, but the "Update*" could match them. Then in my invoke method I could analyze the operation name and know what to do with it (e.g. "UpdateFoo" would tell me to use "Foo" logic and I would know how to handle that). The purpose for this is ease of use to the client. We have many operations that are generalized, but if I can generate new wsdl to do specifically what the user is trying to do, they can use these custom operation names directly. This will result in greatly increased usability. I think most of the work is on the service in my code, but I need a way to tell Axis2C to forward along the request even if it is not in the known set. Is there a way to do this, or is there a way to modify the code to support this? Thank you much, -Dave. ** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. ** No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.19.10/1240 - Release Date: 1/23/2008 5:47 PM - 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: Axis2C support for dynamic operations
This cannot be done with WSDLs because we do not have a WSDL model associated with the description hierarchy. However, you can add support for new operations, dynamically to the description hierarchy, in runtime, by accessing configuration. However, this may have threading issues. Other problem with dynamic operations, is how to map the operation to a function. For current operations this happens at the server startup time. We can achieve dynamic operation to function mapping using a custom message receiver, which will load the functions mapped to the operation on the run. In short, this can be done. However, that needs lots of engineering. Thanks, Samisa... Dave Meier wrote: Hi All, I have a requirement to support dynamically generated wsdls. Each wsdl will contain a core set of operations, but will then have additional operations defined. I want to use the wsdl with the core set of operations as my service in Axis2C, but then write code in my invoke method that will know about the additional new operations as they will follow a standard pattern. My question is, how can I get Axis2C to forward the request to my invoke method, for operations that are not in the services.xml file? In services.xml could I somehow use wildcards? Like this: \"\" So then a custom wsdl file would be given to a client and it could have operations like "UpdateFoo" and "UpdateBar", which are not in the services.xml, but the "Update*" could match them. Then in my invoke method I could analyze the operation name and know what to do with it (e.g. "UpdateFoo" would tell me to use "Foo" logic and I would know how to handle that). The purpose for this is ease of use to the client. We have many operations that are generalized, but if I can generate new wsdl to do specifically what the user is trying to do, they can use these custom operation names directly. This will result in greatly increased usability. I think most of the work is on the service in my code, but I need a way to tell Axis2C to forward along the request even if it is not in the known set. Is there a way to do this, or is there a way to modify the code to support this? Thank you much, -Dave. ** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. ** No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.19.10/1240 - Release Date: 1/23/2008 5:47 PM - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Axis2C support for dynamic operations
Hi Devs, I believe we are still working on WSDL support. But, even if we do, is this possible without hot-deployment? Thanks, Senaka > Hi All, > > I have a requirement to support dynamically generated wsdls. Each wsdl > will contain a core set of operations, but will then have additional > operations defined. I want to use the wsdl with the core set of > operations as my service in Axis2C, but then write code in my invoke > method that will know about the additional new operations as they will > follow a standard pattern. > > My question is, how can I get Axis2C to forward the request to my invoke > method, for operations that are not in the services.xml file? > > In services.xml could I somehow use wildcards? Like this: > > > \"\" > > > So then a custom wsdl file would be given to a client and it could have > operations like "UpdateFoo" and "UpdateBar", which are not in the > services.xml, but the "Update*" could match them. Then in my invoke > method I could analyze the operation name and know what to do with it > (e.g. "UpdateFoo" would tell me to use "Foo" logic and I would know how > to handle that). > > The purpose for this is ease of use to the client. We have many > operations that are generalized, but if I can generate new wsdl to do > specifically what the user is trying to do, they can use these custom > operation names directly. This will result in greatly increased > usability. > > I think most of the work is on the service in my code, but I need a way > to tell Axis2C to forward along the request even if it is not in the > known set. Is there a way to do this, or is there a way to modify the > code to support this? > > Thank you much, > > -Dave. > > > ** > This email and any files transmitted with it are confidential and intended > solely for the use of the individual or entity to whom they are addressed. > Any unauthorized review, use, disclosure or distribution is prohibited. If > you are not the intended recipient, please contact the sender by reply > e-mail and destroy all copies of the original message. > ** > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Axis2C support for dynamic operations
Hi All, I have a requirement to support dynamically generated wsdls. Each wsdl will contain a core set of operations, but will then have additional operations defined. I want to use the wsdl with the core set of operations as my service in Axis2C, but then write code in my invoke method that will know about the additional new operations as they will follow a standard pattern. My question is, how can I get Axis2C to forward the request to my invoke method, for operations that are not in the services.xml file? In services.xml could I somehow use wildcards? Like this: \"\" So then a custom wsdl file would be given to a client and it could have operations like "UpdateFoo" and "UpdateBar", which are not in the services.xml, but the "Update*" could match them. Then in my invoke method I could analyze the operation name and know what to do with it (e.g. "UpdateFoo" would tell me to use "Foo" logic and I would know how to handle that). The purpose for this is ease of use to the client. We have many operations that are generalized, but if I can generate new wsdl to do specifically what the user is trying to do, they can use these custom operation names directly. This will result in greatly increased usability. I think most of the work is on the service in my code, but I need a way to tell Axis2C to forward along the request even if it is not in the known set. Is there a way to do this, or is there a way to modify the code to support this? Thank you much, -Dave. ** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. **