Let me get something started and see where that leads us...we should be able to contain it for 1.5, as long as someone can do the makefile modifications....
"Lilantha Darshana" <[EMAIL PROTECTED]> wrote on 01/13/2005 12:17:11 PM: > Yes, lets delay the APR usage to later version. > > However, how much time you think it would take impl., integrate and > test only the OO model (PAL) with > required functionalities we needed? > regards > -Lilantha > -----Original Message----- > From: John Hawkins [mailto:[EMAIL PROTECTED] > Sent: Thursday, January 13, 2005 5:16 AM > To: Apache AXIS C Developers List > Subject: Re: Fw: Platform specific class > > So, I think we can conclude that we would like to use APR and that > we would like a more OO model on the classes that we have and that > they are still required. > However, we do not intend to do this until post 1.5 > > Agreed? > > John Hawkins > > > > Samisa Abeysinghe <[EMAIL PROTECTED]> wrote on 13/01/2005 02:18:26: > > > > Platform specific class will only ever be called from C++ > > interally and never by external C applications > > > > +1. > > > > Samisa... > > > > > > On Wed, 12 Jan 2005 09:59:11 +0000, Mark Whitlock > > <[EMAIL PROTECTED]> wrote: > > > > > > > > > Hi, > > > The generated C stubs can be compiled with a C compiler and willnot need a > > > C++ compiler. The C support is being separated out from the AxisC++ engine > > > into a separate DLL/shared library. So C applications will link with > > > AxisClientC.dll. > > > > > > Currently the PlatformAutoSense.hpp and other platform header > files are not > > > externalised (they are in src not include) so C/C++ generated stubs cannot > > > use them. Any platform support is in GDefine.hpp or AxisUserAPI.hpp. I'm > > > not proposing to change this so the Platform specific class willonly ever > > > be called from C++ interally and never by external C applications. > > > Mark > > > Mark Whitlock > > > IBM > > > > > > ----- Forwarded by Mark Whitlock/UK/IBM on 12/01/2005 09:43 ----- > > > > > > Nadir Amra > > > <[EMAIL PROTECTED]> > > > To > > > 12/01/2005 06:58 "Apache AXIS C Developers List" > > > <axis-c-dev@ws.apache.org> > > > cc > > > Please respond to > > > "Apache AXIS C Subject > > > Developers List" RE: Platform specific class > > > > > > > > > I guess I would like to tackle the question of whether the "generated C > > > stubs can be compiled by just using a C compiler?". > > > > > > I guess the person working on C stub generation needs to answer that. > > > However, even if customer requires a C++ compiler, generating C stubs is > > > still useful. Yes, the customer would have to compile C++ code, but does > > > not have to understand what the C++ code is doing, as long as customer has > > > the ability to call a C stub to access a Web Service. That is the most > > > important thing. > > > > > > Obviously, I would prefer a purely C implementation for C stub generation, > > > which means Axis would have to provide a C interface to the Axis engine > > > that is compiled with C++ compiler (the C interface would be wrapper'ed > > > with extern "C"). The C interface then can access the C++ engine. I > > > thought that was the direction we were going on this, but I may be > > > mistaken. > > > > > > Even in a purely C stub interface, I think we can go with C++ abstraction > > > as long as we provide C interfaces to the platform abstractions. That is > > > a possible solution. Discussion on how the abstraction should be > > > implemented should be left for later....unless you want to discuss now. We > > > can start a new thread on that. > > > > > > "Lilantha Darshana" <[EMAIL PROTECTED]> wrote on 01/10/2005 06:03:55 PM: > > > > > > > > > > > Let me make myself clear on what I said. > > > > We can have the suggested bridge pattern to make axis transparent > > > > from platform > > > > specific functions. i.e decouple an abstraction from its real > > > implementation. > > > > This would make things more manageable esp. when OS/HW or > > > > environment (runtime lib etc) > > > > changes. Better option is to have layered architecture (PAL) and > > > > grow up from it. > > > > This is not a short term answer, but is a long term solution. > > > > > > > > One question will crops up when we convert platform support to > > > > classes as pointed by > > > > Nadir is: when we create C stubs if C stubs need these functions > > > > what shall we do? > > > > My question is, can the generated C stubs be compiled by just using > > > > a C compiler (none C++) > > > > and link it with axis libs? If not, my general assumption is: > > > > creating C stubs does not > > > > make much sense to me, if you do not have strong arguments of > > > > supporting C stubs. > > > > May be I have not heard of your perspectives on that(we can discuss) > > > > We can create C++ stubs and call any external APIs from it - this > > > > external API could > > > > have been written by any language not just C. Often, with > > > > webservices we would rather > > > > require to call/access to external code written in different legacy > > > > languages, eg. COBOL. > > > > So, how you would suggest to call a service written in any other > > > > language than C? > > > > Therefore, my understanding is, if we additionally support C services > > > that > > > > does not solve all requirements what ppl try to resolve by using > > > > webservices these days. > > > > > > > > APR is just one of the good option if we need some OS/HW dependent > > > > functions and make > > > > it transparent to axis when we impl. above design. So APR can be > > > > used to impl. some > > > > of the common functions in the base class. However, this is not > > > > mandatory to go in to > > > > any particular axis release, rather, is a thought whether we have > > > > any complications > > > > on using it. I'm afraid whether I could make much comment about APR > > > > running on OS/400. > > > > You IBM forks must know about it more than I do. Although, I have > > > > seen that IBM provides > > > > APR with HTTP server for IBM iSeries server. So my assumption is at > > > least 90% > > > > is compatible. > > > > > > > > Functions like: > > > > #define PLATFORM_STRTOASC( x ) ( x ) > > > > #define PLATFORM_ASCTOSTR( x ) ( x ) > > > > > > > > is required because we deal with ASCII/EBCDIC rather than with real > > > > Unicode char sets > > > > So my strong suggestion is we need moving to use Unicode (with > > > > w_char) in place of bytes (char), > > > > esp. in the Axis lib - In stubs we might want to support by giving some > > > > functions to convert back and forth - or make call to a platform > > > > abstraction layer that > > > > we try to introduce here to make this conversion. > > > > > > > > Thoughts please?? > > > > > > > > regards > > > > -Lilantha > > > > > > > > > > > > -----Original Message----- > > > > From: Nadir Amra [mailto:[EMAIL PROTECTED] > > > > Sent: Thursday, January 06, 2005 4:11 PM > > > > To: Apache AXIS C Developers List > > > > Subject: RE: Platform specific class > > > > > > > > > > > > Two things. > > > > > > > > First, the use of APR should be delayed until 1.6 or beyond because we > > > > have too many things we need to get done for 1.5, at least from my > > > > perspective. Major hurdle is I want to overcome is making code locale > > > > sensitive. Adding APR to the mix would be too much to handle. > > > > > > > > Second, I do not think we can get rid of the platform header files that > > > > includes defines and typedefs, etc. As far as making a platform class > > > > with methods to say load library, get locale, etc...my only concern is > > > if > > > > C code needed to access any platform-specific APIs. I know the AXIS > > > > engine is purely C++, and if we can guarantee that C stubs do not need > > > > access, then I would say yes going to the class implementation, although > > > I > > > > am not sure it would not be overkill. > > > > > > > > I do not mind in 1.5 changing macros to functions if you feel it is > > > > necessary. For example: > > > > > > > > In PlatformAutoSense.hpp, the APIs the platforms would need toimplement > > > > > > > would be listed: > > > > > > > > extern "C" platform_loadlibray( ...) > > > > . > > > > . > > > > extern "C" platform_unloadlibrary(...) > > > > > > > > > > > > And the implementation of the code would be in the separate files for > > > each > > > > platform, for example, > > > > > > > > \axis\axis-c\src\platforms\os400\PlatformSpecificOS400.cpp > > > > \axis\axis-c\src\platforms\aix\PlatformSpecificAIX.cpp > > > > . > > > > . > > > > . > > > > > > > > and in the ANT build, we can choose what platform cpp file to include > > > > based on platform. > > > > > > > > In addition, this could be a separate DLL so that we do not have to > > > > include in all DLLs used. > > > > > > > > Or, we can revisit this in a future release :-) and leave as-is. There > > > > > > > is not that much in the files at this point in time. > > > > > > > > > > > > > > > > > > > > > > > > John Hawkins <[EMAIL PROTECTED]> > > > > 01/06/2005 04:58 AM > > > > Please respond to > > > > "Apache AXIS C Developers List" > > > > > > > > > > > > To > > > > "Apache AXIS C Developers List" <axis-c-dev@ws.apache.org> > > > > cc > > > > > > > > Subject > > > > RE: Platform specific class > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi Lilantha, > > > > > > > > Good point - I'd forgotten about that project ! > > > > > > > > Yes, the library routines there are exactly what we are talking about > > > here > > > > e.g. they have a getErrorMessage equivelant and most of the other > > > > functions > > > > that we have defined in our platform objects now. > > > > I can't see the equivelant of our -> > > > > #define PLATFORM_STRTOASC( x ) ( x ) > > > > #define PLATFORM_ASCTOSTR( x ) ( x ) > > > > > > > > in it but I might have missed it. > > > > > > > > If we were to use this library. We might still need some level of > > > > "Platform" object because our platform stuff has filenames in it (but > > > this > > > > is minor and is more architecture dependent than OS dependent between > > > Win > > > > and non-windows) and it might even be solved I perhaaps just didn't see > > > > the > > > > routine in the APR ? > > > > > > > > I'm worried about using APR because it's quite big and they say they > > > have > > > > compiled it on windows and Unix. This may have ramifications for us as > > > we > > > > support OS400 - Nadir - thoughts please? > > > > > > > > It would be a big move to use APR and it might be better to doit slowly > > > - > > > > if at all depending on the OS400 issue. If OS400 has issues with APR (or > > > > indeed other architectures/platforms) then we could have a compromise > > > (not > > > > a great one but a way forward) of moving to the platform model as > > > > previously described but making the base class use APR. That way any > > > > functions we had issues with or architectures/platforms that could not > > > be > > > > supported using APR could overwrite the methods. > > > > > > > > It's not great because it means that for every APR function that does > > > not > > > > work on all platforms we have to wrapper. > > > > > > > > > > > > Thoughts please folks? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > John Hawkins > > > > > > > > > > > > > > > > > > > > > > > > "Lilantha > > > > Darshana" > > > > <[EMAIL PROTECTED] To > > > > > > > > com> "Apache AXIS C Developers List" > > > > <axis-c-dev@ws.apache.org> > > > > 05/01/2005 15:08 cc > > > > > > > > > > > > Subject > > > > > > > > Please respond to RE: Platform specific class > > > > "Apache AXIS C > > > > Developers List" > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > +1 for a Bridge pattern to support. PAL - Platform Abstraction Layer. > > > > Can we think of using APR (http://apr.apache.org/) for some of impl. ? > > > > > > > > regards > > > > -Lilantha > > > > > > > > > > > > -----Original Message----- > > > > From: John Hawkins [mailto:[EMAIL PROTECTED] > > > > Sent: Wednesday, January 05, 2005 6:38 AM > > > > To: Apache AXIS C Developers List > > > > Subject: Re: Platform specific class > > > > > > > > > > > > > > > > > > > > > > > > > > > > I was thinking of something like the following: > > > > > > > > (See attached file: Platform hierarchy.jpeg) > > > > > > > > As you can see the IPlatform interface has base implementations for > > > macros > > > > and pure virtual methods only. This makes it really clear what the > > > > platforms have to implement (with appropriate documentation at this > > > > level). > > > > The architecture layer (Windows, Unix etc.) then has platform specific > > > > implementations of the methods and any overriding of the macros that may > > > > > > > be > > > > necessary. > > > > The platform specific layer (WINNT, AIX, HP_UX etc.) then has any more > > > > specific overrides that may be necessary over and above the architecture > > > > layer. > > > > > > > > The Platform factory is the key class it is set out something like this > > > > (Pseudo) -> > > > > > > > > class Platform > > > > { > > > > static IPlatform platform; > > > > #ifdef WIN32 > > > > platform = Win32Platform > > > > #endif > > > > /** > > > > * > > > > * returns the specific instance of Platform > > > > */ > > > > static IPlatform getplatform(); > > > > } > > > > > > > > > > > > Thoughts folks? > > > > > > > > > > > > John Hawkins > > > > > > > > > > > > > > > > > > > > > > > > Nadir Amra > > > > <[EMAIL PROTECTED]> > > > > To > > > > 04/01/2005 18:44 "Apache AXIS C Developers List" > > > > <axis-c-dev@ws.apache.org> > > > > cc > > > > Please respond to > > > > "Apache AXIS C Subject > > > > Developers List" Re: Transport specific class > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I agree, and was thinking of doing that....although do we want a > > > > PlatformServices class or just individual APIs? > > > > > > > > Nadir K. Amra > > > > e-Business Technologies - IBM eServer i5/OS > > > > IBM Rochester, MN, (Tel. 507-253-0645, t/l 553-0645) > > > > Internet: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > John Hawkins <[EMAIL PROTECTED]> > > > > 01/04/2005 12:40 PM > > > > Please respond to > > > > "Apache AXIS C Developers List" > > > > > > > > > > > > To > > > > axis-c-dev@ws.apache.org > > > > cc > > > > > > > > Subject > > > > Transport specific class > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi Folks, > > > > > > > > I've just been putting some error information into transport and > > > realised > > > > a > > > > few things. (I'm going to start another thread re other issue.) > > > > > > > > I just implemented a "getErrorMessage" piece of code which should have > > > > gone > > > > into the platform specifics but it was quite chunky and did not sit > > > easily > > > > with being a macro. > > > > > > > > The Platform specific files are not classes - this surprised me - would > > > it > > > > be better to have a platform interface that the specific classes > > > overrode > > > > with their implementation? I understand that the macros are probably > > > fine > > > > for most things but if we had a platform class it would be more explicit > > > > what each method had to achieve. These methods could also return values > > > > more explicitly? > > > > > > > > > > > > > > > > John Hawkins > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >