Introduction

2006-04-21 Thread Simon Laws
Hi, my name is Simon Laws and I'm based in the UK. My recent background is
web services in the data grid space and I've just started looking at the
Tuscany C++ code. Apologies in advance for my newby questions.

Regards

Simon


MSVC build

2006-04-21 Thread Simon Laws
I checked out the C++/SDO code this morning and I'm assuming I caught it mid
change as the MSVC project doesn't build. To make it work I had to add:

GroupEvent.cpp
GroupDefinition.cpp

to the sdo_runtime project

utils.cpp
main.cpp

to the sdo_test project

Simon


Cross language interop?

2006-04-25 Thread Simon Laws
Has anyone in the team done any work in Tuscany looking at cross language
interoperability? I'm initially interested in ensuring SDO serialization is
compatible between PHP, C++ and Java. If there is existing work it gives me
somewhere to start. If not I'll start something.

Simon


Summer of code tuscany-das proposal

2006-04-27 Thread Simon Laws
We would like to add the following to the list of Apache Summer Of Code
proposals.

A) does the team support this
B) is it an appropriate task for summer of code

Also, if there is anyone who would like to help out with mentoring and wants
their name added to the list then that would be great.

**
*=

Subject ID*   *tuscany-das*

*Title*Alternative data access service implementations

*ASF Project* Tuscany

*Keywords*Service Data Objects (SDO) alternative Data Access Service
(DAS) implementations

*Description*

*SDO relies on DAS in order to read and update the in memory SDO data graph
from/to persistent store. Some DAS implementations exist, in particular XML
(for PHP, C++ and Java) and in some cases relational database(for PHP). New
implementations could target different data resources such as flat file
(CSV), Microsoft Excel, LDAP  or could be driven by different schema
languages such as RelaxNG.  ***

*Possible Mentors*

*Caroline Maynard, Simon Laws,*

*Status*

*-*
=


Fwd: Summer of code tuscany-das proposal

2006-04-28 Thread Simon Laws

I had two positive responses to the summer of code proposal. But none of the
interested parties are Apache committers. The Apache summer of code wiki
says Any Apache member and experienced committers can submit ideas Any
committers out there interested in supporting this proposal?

-- Forwarded message --
From: Simon Laws [EMAIL PROTECTED]
Date: Apr 27, 2006 8:46 AM
Subject: Summer of code tuscany-das proposal
To: tuscany-dev tuscany-dev@ws.apache.org

We would like to add the following to the list of Apache Summer Of Code
proposals.

A) does the team support this
B) is it an appropriate task for summer of code

Also, if there is anyone who would like to help out with mentoring and wants
their name added to the list then that would be great.

* *
*=

Subject ID*   *tuscany-das*

*Title*Alternative data access service implementations

*ASF Project* Tuscany

*Keywords*Service Data Objects (SDO) alternative Data Access Service
(DAS) implementations

*Description*

*SDO relies on DAS in order to read and update the in memory SDO data graph
from/to persistent store. Some DAS implementations exist, in particular XML
(for PHP, C++ and Java) and in some cases relational database(for PHP). New
implementations could target different data resources such as flat file
(CSV), Microsoft Excel, LDAP  or could be driven by different schema
languages such as RelaxNG.  ***

*Possible Mentors*

*Caroline Maynard, Simon Laws,*

*Status*

*-*
=


Re: C++ release before ApacheCon Europe

2006-05-02 Thread Simon Laws

+1

Following on from Ed's point. I'm working my way through doing some simple
read/write interop test for PHP/C++/Java XML at the moment initially based
on the company data example. However to make this a useful test it would
seem sensible to make a schema that contains all of the simple and complex
types and sequences that we expect to come across in SDO/XML. Has one been
made already?

On the SCA testing front. Can we use and modify an existing sample like Big
Bank to pull in implementations other than Java? I will take a look at it
and maybe we can start a separate thread on SCA/SDO interop testing.

Regards

Simon

On 5/2/06, Edward Slattery [EMAIL PROTECTED] wrote:


+1.
From the SDO C++ point of view, the interop that could be done by then
would
be at the serialized level - I.E being able to load/save the same XML in
both systems.
In terms of Axis2C support, I am looking into providing a utility to write
AXIOM from SDOs and SDO types. Ideally I would do that by creating AXIOM
objects directly from SDO properties, but the quick solution would be to
stream the SDO to XML, and then use axis2 to read the XML.

cheers,
Ed.

On 01/05/06, Pete Robbins [EMAIL PROTECTED] wrote:

 I think it would be a good idea to have a release of the C++ subproject
 before ApacheCon Europe (Last week in June).
 I'll set up a wiki page along the lines of the Java Tasks page to set
 out
 what we need to do to get to a release.

 I'd like to have an IRC chat (Wednesday?) to discuss the functional
 content
 of this proposed release and how we get there.

 Current thoughts are to have webservice support using Axis2C and a
sample
 to
 demonstrate interoperability with the Java release and ... 

 Cheers,

 --
 Pete






Big Bank status?

2006-05-02 Thread Simon Laws

Hi

I just tried running the maven build (I checked out from svn a couple of
hours ago) for the big bank sample and the AccountService.java interface
that is generated from the AccountService.wsdl matches neither the wsdl nor
the checked in AccountServiceImpl.java and hence the build fails. The
signatures are all represented but they are incorrect, e.g.

WSDL
   xsd:element name=deposit
   xsd:complexType
   xsd:sequence
   xsd:element name=accountNumber
   type=xsd:string /
   xsd:element name=amount type=xsd:float /
   /xsd:sequence
   /xsd:complexType
   /xsd:element

AccountServiceImpl.java

   public float deposit(String account, float ammount) throws
RemoteException {
   try{

Generated AccountService.java

   public float deposit(
java.lang.String param0) throws java.rmi.RemoteException;

I had assumed this would work as Rick has been posting fixes to big bank. If
this is being caused by work in progress then not to worry I will wait. If
not I will raise JIRAs

Regards

Simon


Re: Big Bank status?

2006-05-02 Thread Simon Laws

Rick

Thanks for looking, sorry to distrct you. Must be something wrong with my
check out. I'll start again.

Regards

Simon

On 5/2/06, Rick Rineholt [EMAIL PROTECTED] wrote:


Fresh build compiles for me

AccountService.java: snippet  is below matches WSDL and AccountServiceImpl

/**
 * Auto generated method signatures
 * @param param6* @param param7
 */
 public float deposit(
 java.lang.String param6,float param7) throws
java.rmi.RemoteException;



Simon Laws wrote:
 Hi

 I just tried running the maven build (I checked out from svn a couple of
 hours ago) for the big bank sample and the AccountService.java interface
 that is generated from the AccountService.wsdl matches neither the
 wsdl nor
 the checked in AccountServiceImpl.java and hence the build fails. The
 signatures are all represented but they are incorrect, e.g.

 WSDL
xsd:element name=deposit
xsd:complexType
xsd:sequence
xsd:element name=accountNumber
type=xsd:string /
xsd:element name=amount type=xsd:float /
/xsd:sequence
/xsd:complexType
/xsd:element

 AccountServiceImpl.java

public float deposit(String account, float ammount) throws
 RemoteException {
try{

 Generated AccountService.java

public float deposit(
 java.lang.String param0) throws java.rmi.RemoteException;

 I had assumed this would work as Rick has been posting fixes to big
 bank. If
 this is being caused by work in progress then not to worry I will
 wait. If
 not I will raise JIRAs

 Regards

 Simon





Re: Cross language interop

2006-05-04 Thread Simon Laws

Hi Kevin

When you suggest and example of reading data from a data source and
shipping it to some remote engine for processing would this include, for
example, an application that reads a data graph from a relational database
and then forwards is in the form of and XML document to, say, an XFoms
engine. Is this the kind of thing you were talking about? Once the XML form
has been completed in this case the modified XML doc would have to be sent
back to the SDO in some way and, as you say, be committed to the database.
How is this done in SDO? Are interfaces provided that allow an existing SDO
to be updated with a new graph (the modifieed XML document) while
maintaining the original change history?

Regards Simon


On 5/3/06, Kevin Williams [EMAIL PROTECTED] wrote:


kelvin goodson wrote:
[snip]


 With regards to sharing change histories,  I imagine the primary use
case
 for change histories is when you give a give a modified graph back to
the
 same DAS for writing back to the original source. So I in terms of
 cross
 language interoperability I would extrapolate that the scenario we
 would be
 supporting would be that of fairly tightly coupled DAS
 implementations, all
 accessing the same source.  I may be wrong, but It doesn't sound like a
 frequently encountered scenario, so whilst it sounds like goodness, it
 wouldn't be at the top of my priority list.

[snip]

I have also not seen many interop scenarios requiring cooperation
between two different DAS implementations.  The only one that comes to
mind is reading from one database and writing to another.  This would be
very cool, especially if the two DAS implementations were in different
languages(C++, Java, PHP, Ruby), but I doubt that this scenario will be
common.

I think a more frequent interop scenario will involve reading data from
a data source and shipping it to some remote engine for processing.  The
modified graph would be shipped back to the originating DAS and the
changes reflected to the originating data source.  The remote engine
could be implemented in another language or, if it is the same language,
it could be using a different implementation of SDO.




Re: Cross language interop

2006-05-04 Thread Simon Laws

So are you thinking about a specific services interface for an SDO object,
i.e. the SDO acts as a conduit between the data resource and the client
(browser)? In this scenario what happens when data is changed. Does the SDO
cache the change awaiting the request to update the data resource or does it
pass the update directly through to the data resource. There are a number of
examples of web services type implementations of access to relational and
file data. Would you propose that we adopt and exisitng interface
description or construct a service interface that wraps the SDO interface as
currently specified?

Regards

Simon

On 5/4/06, Edward Slattery [EMAIL PROTECTED] wrote:


With regard to the interop scenario concerning moving data graphs from
location to location, I am a bit concerned that we are not covering the
other option.  With the coming of AJAX, some people are looking more at
leaving the data where it is, and using the API to modify it on the
server.
How does this fit with SDO?  Currently (certainly in the C++
implementation), we load the data into objects in memory from the data
storage, and can then serialize them to XML to be moved around.
If we imagine a case where ajax is used to call get/set APIs on data
objects, then perhaps we dont even need to load the data from the database
until its used.

I feel the need for an SDO implmentation which just wraps data access, and
does nothing until a data object is actually requested, at which point it
uses whatever mechanism is used by the data access service (stored procs
etc) to load that individual data object, and send that to the client.

Perhaps thats really a separate thread - what do you all think?

On 03/05/06, Kevin Williams [EMAIL PROTECTED] wrote:

 kelvin goodson wrote:
 [snip]

 
  With regards to sharing change histories,  I imagine the primary use
 case
  for change histories is when you give a give a modified graph back to
 the
  same DAS for writing back to the original source. So I in terms of
  cross
  language interoperability I would extrapolate that the scenario we
  would be
  supporting would be that of fairly tightly coupled DAS
  implementations, all
  accessing the same source.  I may be wrong, but It doesn't sound like
a
  frequently encountered scenario, so whilst it sounds like goodness, it
  wouldn't be at the top of my priority list.
 
 [snip]

 I have also not seen many interop scenarios requiring cooperation
 between two different DAS implementations.  The only one that comes to
 mind is reading from one database and writing to another.  This would be
 very cool, especially if the two DAS implementations were in different
 languages(C++, Java, PHP, Ruby), but I doubt that this scenario will be
 common.

 I think a more frequent interop scenario will involve reading data from
 a data source and shipping it to some remote engine for processing.  The
 modified graph would be shipped back to the originating DAS and the
 changes reflected to the originating data source.  The remote engine
 could be implemented in another language or, if it is the same language,
 it could be using a different implementation of SDO.






Re: [vote] Project structure - renaming java/samples

2006-05-10 Thread Simon Laws

+1 [X] sample applications - java/sampleapps/bigbank/

On 5/10/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


I'm not sure that we really have decided on a good name for our top
level samples directory, currently java/samples/.

This directory hosts samples. They are of a different nature than the
technology samples under sca/samples, das/samples and sdo/samples.
For M1 the only sample in this directory is BigBank (in the future we
may want to add others like Petstore, the WS-I supply chain sample etc).
We've all been using different terms to describe these samples, so far
I've heard: samples, examples, sample applications, blueprints, business
samples, business scenarios, sample scenarios, scenarios, demos.

We need to pick a reasonable directory name for our M1 distribution asap
as we're trying to put together the distribution build. Could you all
please vote for one of the following?
[   ] samples - java/samples/bigbank/
[   ] examples - java/examples/bigbank/
[   ] sample applications - java/sampleapps/bigbank/
[   ] blueprints - java/blueprints/bigbank/
[   ] business samples - java/businesssamples/bigbank/
[   ] business scenarios - java/businessscenarios/bigbank/
[   ] sample scenarios - java/samplescenarios/bigbank/
[   ] scenarios - java/scenarios/bigbank/
[   ] demos - java/demos/bigbank/
[   ] big bank - java/bigbank/ (with no parent samples directory if
there is only sample like that in M1)
[   ] any other creative idea :)

Thanks,

--
Jean-Sebastien




[PHP] PHP wish list?

2006-05-11 Thread Simon Laws

Pete has recently followed the java team's lead and initiated a to
do/wish list up on the Tuscany wiki for the C++ implementation effort.
The PHP/SDO PECL project needs  to do the same thing but we don't have a
wiki over at PECL at the moment. It would seem sensible (to me at least) if
we borrow a page of the project Tuscany wiki for this purpose as many of the
same items will appear for PHP as for Java and C++. We would then link this
wiki page from our PHP/SDO PECL project page (
http://pecl.php.net/package/sdo) and vice versa.

Does anyone have any objections to me doing this?

Regards

Simon


Re: [C++] Options for string handling in SDO

2006-05-12 Thread Simon Laws

Hi Geoff

When you talk about string objects do you mean instances of the ANSI string
class (basic_string) or is this a special SDO designed string class?

Also why is this an either/or? It would seem like a useful thing to have an
interface that allows string objects to be used but not sure I would want to
loose the ability to use C strings as well.

Simon

On 5/12/06, Geoffrey Winn [EMAIL PROTECTED] wrote:


Much of the string data in SDO for C++ is handled as C style,
null-terminated arrays of characters. I'm trying to move that to a style
where most string data is represented as true string objects.

The painless (less painful) way to do that is to leave the externals alone
and to introduce string objects internally, converting between string
objects and C-style strings at the earliest convenient point when called
and
the last convenient point on return.

The alternative is to extend the public interface with extra methods that
take string objects as arguments rather than C-style strings. In this case
we would have to publicise a new string class as well.

Does anyone have any opinions on which of these is preferable (or any
other
alternatives)? We could of course make the internal only changes first and
add an extended public interface later.

Regards,

Geoff.




Re: C++ Release

2006-05-26 Thread Simon Laws

Pete

+1 for release and IRC chat

On 5/25/06, Pete Robbins [EMAIL PROTECTED] wrote:


As mentioned previously we would be a like to have a binary release of the
C++ code by ApacheCon Europe.

I'd like to propose an IRC chat on Tuesday 6th June 17:00 BST (18:00 GMT)
12:00 (Eastern) 09:00 (Pacific) to finalize content and schedule to
achieve
this.

As a starting point, and for discussion until then, there is a wiki page,
http://wiki.apache.org/ws/Tuscany/TuscanyCpp/Tasks.

I will be unavailable from 28th May - June 5th but I'd hope that there
will
be some discussion on this thread before I get back.

Cheers,

--
Pete




Cross language interop testing

2006-05-26 Thread Simon Laws

A long time ago I posted about doing some interoperability testing. I've got
back to this now and I've put some ideas about how we do this on the wiki,
here (http://wiki.apache.org/ws/Tuscany/Interop).

At a high level we have two products to consider for interoperability
testing, SDO and SCA. This testing should be performed across all
implementations, i.e. Java, C++ and PHP. As it stands the only available SCA
implementation that can talk to anything else is Java (C++ is nearly there
with Axis2 integration going on as we speak) so we can skip the SCA
interoperability conversation for the time being. That brings us to SDO.

SDO interoperability involves successfully moving SDO data (instance, model
and/or change history data) from one implementation of SDO to another. The
scenarios section gives a few ideas about why we might want to do this.
This is not intended to be a complete list so any more SDO interoperability
scenarios you can think of are gratefully accepted.

We have Java, C++ and PHP implementations of SDO to date but the features
available vary slightly across these implementations. From an
interoperability point of view Kelvin and myself talked offline and listed
the features that seemed important in the Features section. You will note
that we marked which implementations currently support which features. Is
this assessment correct? The order column simply indicates which order the
tests could be constructed in, for example, to get my head round this
process I have made a start on the test which involves reading an XML
document and writing it out again via the XMLHelper/DAS (item 1.1). This
seems like an obvious place to start while, for example, the Axiom
serialization code is note done yet in C++ so it would be difficult to start
with that.

In general the approach to this testing can be fairly simple I believe. For
each implementation we write a test program that performs the required test,
e.g. read and write an XML file. Then we compare:

A/ the input with the output to check that it works for an individual
implantation
B/ the output of all of the implementations to check interoperability. If
all of the inputs and outputs in A match there should be no issue here.

So if we lay these tests out in order I would expect to do the following in
Java, C++ and PHP where the feature is supported

1.1.  Read an XML file and write it out again

1.2.  Read an XML file and write out an XSD file

2.1  Read and write Records from a database

3.1  Read XML and write Axiom

3.2  Read Axiom and write XML

4   Serialize XML from/To SDO – I'm not sure that this is different
from 1.1at present as I seen documents mention it but haven't tried it

1.3 Read an XML file and make changes before writing it back out again.
Changes to be made through both dynamic and generated interfaces

4.2 Read from a database and make changes before writing is back out again.
Changes to be made through both dynamic and generated interfaces

As I mentioned previously I've had a go at 1.1. This first involved creating
XSD files to include all of the type mappings defined in the SDO
2.0.1specification. I have this now and am able to pass it in and out
of SDO in
Java and C++. PHP is still To Do. The results are included in the schema
feature table and I will raise JIRA as I investigate what I have found in
more detail.

Now I have the XML schema the other XML tests become easier as, to a great
extent, they are just variations on a theme.  I will have to generate a
relational schema to match of course.

So, is this going to work and is it sufficient? Any thoughts you have on any
of this are gratefully received on the mailing list. It may be useful for us
to have an IRC chat based on feedback to discuss the best way forward. I
will post with details depending on what feedback I get.

An unresolved issue is what to do with the test code and files that this
process will generate. The test code will happily live within each project
somewhere (where is a good place in each project structure?), for example,
it could be

Java: tuscany/java/sdo/impl/src/test/org/apache/Tuscany/sdo/interop
C++: tuscany/cpp/sdo/runtime/core/interop
PHP: tuscanyphp/sdo-1.0.1/tests/interop

The input files themselves are common across all projects as are the results
of cross implementation file comparisons. So where should they live. Maybe
the thing to do is just pick on project, C++ or Java, and put the common
files there.

We have a UK public holiday on Monday but I'll be back to this on Tuesday.


Re: Cross language interop testing

2006-05-31 Thread Simon Laws

On 5/30/06, Geoffrey Winn [EMAIL PROTECTED] wrote:


Simon,

On 26/05/06, Simon Laws [EMAIL PROTECTED] wrote:

 A long time ago I posted about doing some interoperability testing. I've
 got
 back to this now and I've put some ideas about how we do this on the
wiki,
 here (http://wiki.apache.org/ws/Tuscany/Interop).


...

So if we lay these tests out in order I would expect to do the following
in
 Java, C++ and PHP where the feature is supported

 1.1.  Read an XML file and write it out again

 1.2.  Read an XML file and write out an XSD file

 2.1  Read and write Records from a database

 3.1  Read XML and write Axiom

 3.2  Read Axiom and write XML


I see the sense in 1.1 However, I'm not so sure about 1.2. Presumably that
is saying that we read an XML instance and in the process of creating an
SDO
for it we have also defined a variety of types, properties and so on to
describe it. Then we use that information to generate an XSD. This is
pretty
much the same as inspecting an XML instance document and then writing an
XSD
for it. It isn't obvious to me that different implementations would
necessarily generate the same XSD in these cases. I'm willing to be
convinced; I'm just not sure that it's fair to expect that different
implementations will generate the same XSD when what they were doing was
populating a model with whatever they needed to read an XML instance.

Regards

Geoff.




Yes, you have spotted a slip up here I think. This is an interesting test of
schema free XML loading but I'm told this doesn't work in PHP so probably
doesn't in C++. The spec implies that you can do this in Java although I
have to admit to not having tried it yet. As its difficult to test
interoperability with one implementation we could replace 1.2.  Read an XML
file and write out an XSD file with 1.2.  Generate metadata statically in
code and write out an XSD file  and test the case where the type model
comes from elsewhere prior to XSD generation. What we are testing here is
each implementations' type model to XSD mapping to see if they are
compatible.


Is there an example of using a DB Stored Procedure as part of an SCA module?

2006-05-31 Thread Simon Laws

The SCA Assembly Model specification (0.9) gives database stored procedure
as an example of a binding type. I've had a bit of a scout around the
Tuscany site and in Google and there is discussion of interacting with
stored procedures via SDO, i.e. using a relational DAS. Before I have a go
does anyone know if there is an existing code example of the use of a stored
procedure as the target of a SCA reference, for example, via an existing
HTTP or web services binding.

Regards

Simon


Re: Tuscany website content updates

2006-06-01 Thread Simon Laws

+1 for FAQ on the wiki. I raised a few JIRAs on potential FAQ entries that I
could add directy if it were there.

Simon

On 6/1/06, haleh mahbod [EMAIL PROTECTED] wrote:


Hi Venkata,
InstallJava and projectJava pages were created with two different audience
in mind.
The assumption was that a person exploring Java SCA section (under which
is
installation)
is a user who does not necessary want to get involved in development but
wants to download
the binaries and use SCA. This page needs to be updated with distribution
information once we have
M1 release in place.

On the other hand, project java page was created for developers. It helps
them setup their development environment and run samples.

Maybe this flow is not working and should be fixed.

You can find all existing website JIRA issues under website category.
Please
go ahead and create JIRAs with your suggestions and provide fixes if you
can. Help is very welcomed :)

I am also thinking that FAQ should be moved to Wiki and website should be
linked to it. This way anyone can post their questions and answers. As is,
only committers can update the website and one needs to go through patch
submission to update FAQ. What does everyone think?

Haleh


On 5/31/06, Venkata Krishnan [EMAIL PROTECTED] wrote:

 Hi
 A couple of others that I opine should be ironed out...

 1) There is a discussion thread on JIRA-438 that quotes
 http://incubator.apache.org/tuscany/projectjava.html for installation
 instructions etc.  Now there is another page
 http://incubator.apache.org/tuscany/installjava.html that contains a
 subset
 of the what you might find in
 http://incubator.apache.org/tuscany/projectjava.html.  I found the
 contents
 of http://incubator.apache.org/tuscany/projectjava.htm more clean and
 complete and should probably be the only one.

 2) In http://incubator.apache.org/tuscany/projectjava.html there is a
 section that talks about downloading and building tuscany.  This build,
in
 my opinion also includes building the samples.  Now following this
section
 is another section titled Running the Samples' where in one is asked to
 go
 to the distribution directory and build.  Is this required if I have
 already
 built from the root?

 Is there a JIRA where we are tracking down 'things to do' with respect
to

 - Venkat







 On 5/31/06, Simon Nash [EMAIL PROTECTED] wrote:
 
  I think these are good suggestions.  Having an FAQ that is updated
  frequently based on real user questions on common newbie issues
  would be a great help in enabling new users to overcome initial
  obstacles to using Tuscany.
 
  The BigBank pdf document does a good job of describing the code
  and other source artifacts.  Since it is a generic SCA document,
  it does not say anything about how to build, deploy and run the
  BigBank application in the Tuscany environment.  As well as
  pointing to this document, it might be helpful to go slightly
  beyond this by also including some Tuscany-specific how to
  information.
 
 Simon
 
  Venkata Krishnan wrote:
 
   Hi,
   Can we update the page
   http://incubator.apache.org/tuscany/userguidejava.html with
 information
  for
   the Your First Tuscany Application and FAQ.  These sections have
  been
   empty for a while now.  To start with we could point to the pdf on
   Simplified Big Bank application on the 'documenation' page
   http://incubator.apache.org/tuscany/documentation.html .  For
trouble
   shooting we could divide the FAQ into sections,  one of which can
deal
  with
   TroubleShooting and then just keep updating the FAQ.
  
   If this sounds ok to everybody let me know how I could update these
  pages
   and I can do so.
  
   - Venkat
  
 
  --
  Simon C Nash   IBM Distinguished Engineer
  Hursley Park, Winchester, UK   [EMAIL PROTECTED]
  Tel. +44-1962-815156   Fax +44-1962-818999
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 






[C++] C++ / PHP BOF at apache con

2006-06-08 Thread Simon Laws

I believe Pete was thinking of trying for a C++ BOF at ApacheCon in a few
weeks time. In the C++ release IRC on Tuesday (
http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg03746.html) there
was discussion of trying to get a simple sample, based loosely on the big
bank scenario, running in C++ and also possibly across the different
implementations.  Is there any appetite to use this during the BOF (assuming
a slot is available of course) end extend the BOF scope to interoperatbility
across implementations?


Re: [C++] C++ / PHP BOF at apache con

2006-06-08 Thread Simon Laws

Oh Dear, that pretty much answers that then. Is this just a statement for
this time or are them stopping BOFs in future events too. You could always
retire to the pub!

I still think we should do what we discussed and put a PHP front end on the
demo that you are constructing for C++ SCA. So lets start thinking about
what we can do in that direction.

Currently only SDO is implemented in PHP. As I think we discussed on the IRC
we could do a number of things, for example:

1/ Try the PHP SOAP extension and see if we can talk to C++ big bank
services
2/ Use to PHP SDO to access details directly from the database being used by
C++ big bank

I guess we could also use a java service at the back end, but maybe that is
another discussion.

S

On 6/8/06, Edward Slattery [EMAIL PROTECTED] wrote:


I just got confirmation that there are not going to be any BOFs at
ApacheCon
Europe - so that may change our approach

On 08/06/06, Edward Slattery [EMAIL PROTECTED] wrote:

 I am hoping to have a bigbank back-end coded by apachecon - it would be
 good to have another language as the front end to show WS interop


 On 08/06/06, Simon Laws [EMAIL PROTECTED] wrote:
 
  I believe Pete was thinking of trying for a C++ BOF at ApacheCon in a
  few
  weeks time. In the C++ release IRC on Tuesday (
  http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg03746.html)
  there
  was discussion of trying to get a simple sample, based loosely on the
  big
  bank scenario, running in C++ and also possibly across the different
  implementations.  Is there any appetite to use this during the BOF
  (assuming
  a slot is available of course) end extend the BOF scope to
  interoperatbility
  across implementations?
 
 





Re: Tuscany blog

2006-06-09 Thread Simon Laws

Ant

Happy to contribute. I think the uname/password will be problematic if you
intend to distribute it and this is intended to be the blog voice of
tuscany. Maybe it needs to stay a committer thing, or even have one person
manage posts, and use the mail list as a submission vehicle for others?

Alternatively we need to find some hosted community blogging service
(although I did a quick google and didn't find anything obvious - was just a
quick look though) or set up our own (would need some hosted LAMP service)
and hand out unames/passwords as required.

b.t.w jroller gave me an error saying they are not accepting new users. So
blogger (i think blogspot is part of google also) vs bloglines?

S

On 6/8/06, ant elder [EMAIL PROTECTED] wrote:


How about setting up a blog for the Tuscany project? We could use it to
publicize interesting events for all the different Tuscany sub projects -
new releases, use of Tuscany by another another project/company, upcoming
conference talks or slides from presentations, new spec release etc.

Other projects do this, for example the Dojo project has one at:
http://blog.dojotoolkit.org/

I think I could sometimes find interesting things to comment on from the
Java SCA perspective, but to be successful there would need to be more
frequent posts, so buy in from others involved in Tuscany to make sure
there
are regular topical posts - would others be willing to participate?

If so, the next question is how to do this. There's various free blog
sites,
http://www.jroller.com/, although thats specifically Java so may not fit
our
multi-language nature so http://www.bloglines.com/ maybe better, I know
some
other Apache WS people use that. Any other suggestions or which blog host
to
use? Then there's how to administer the blog userid and password, i guess
the obvious thing is to share that with every Tuscany committer so all the
committers can post when ever they want, although there are other Tuscany
users and contributors who may want to post so should we consider
distributing the uid/pswd more widely?

   ...ant




Re: [C++] Axis2C Web Service Entrypoint

2006-06-09 Thread Simon Laws

Ok, ant. Thanks for pointing us at that. A couple of things come to mind

1/ Looking at the interop doc test we could extend this over time to include
more comprehensive schema to test some of the dusty corners (as kelvin would
put it). Looking at the client code it looks like the schema types in the
WSDL get generated into in SDO type models so this is ideal for extending to
run the interop schemas we are building and hence test the full range of
SDO/XML(and hence AXIOM) mappings.

2/ I'm sure the client/service implementations can be extended to include
Tuscany C++ implementations. I like the approach you have of being able to
choose a Tuscany or external service. We could take this same approach
between Java and C++ and implemente the services/clients in the appropriate
projects.

S

On 6/9/06, ant elder [EMAIL PROTECTED] wrote:


We've also some WS interop tests in the Java runtime:
http://svn.apache.org/repos/asf/incubator/tuscany/java/testing/interop/

Right now there's not so much there yet, the clients use the SCA Java WS
binding to invoke some remote WSs out on the Internet, the services are
supposed to be  SCA WS impls of the services those clients use, and and
when
you run the clients you set a property to say if you want to call the real
remote services or the local impls. We've still a way to go to make this
easy to setup and use and to get a good selection of services to test.

Anyway, would be good to fit the Axis2C stuff in here somehow.

   ...ant

On 6/9/06, Simon Laws [EMAIL PROTECTED] wrote:

 OK, that's great. Feel free to go in and modify the wiki page to suite (
 http://wiki.apache.org/ws/Tuscany/Interop). I have also attached a
 preliminary schema here for testing xml types. I have used this to
 complete
 the series 1 feature table you see there. However I think that I might
 refactor this into a set of separate files to make the testing process a
 little easier. The contents will be pretty much the same just spread
 across
 more files. Let me know when you are ready to have a go at some of this
 and
 I can attach up to date files.

 S

 On 6/9/06, Andrew Borley [EMAIL PROTECTED] wrote:
 
  Hi Simon,
 
  I've done some rudimentary testing using an Axis2 (Java) client, but
 this
  is
  definately something I'd like to do more of. I'm currently tidying my
 code
  so I can put the patch and initial tests up, but further testing 
 interop
  will be following that.
 
  Cheers
  Andy
 
  On 6/8/06, Simon Laws [EMAIL PROTECTED] wrote:
  
   Hi Andy
  
   Re. Axis2C support for C++ SCA.  Are you also looking at testing
 against
   the
   Java SCA Axis2 WS binding? If so this ties in nicely with the series
4
   tests
   here http://wiki.apache.org/ws/Tuscany/Interop;. I added some
words,
   towards the end of this page, about what we might test here so would
   appreciate any input on the type of test that make sense.
  
   Regards
  
   Simon
  
   On 6/5/06, Andrew Borley [EMAIL PROTECTED] wrote:
   
Hi All,
   
I've been taking a look at Axis2C recently and I see that one of
the
   items
on the list for the ApacheCon C++ release (
http://wiki.apache.org/ws/Tuscany/TuscanyCpp/Tasks) is an Axis2C
Web
Service
Entrypoint (jira# TUSCANY-429). I've had a quick hack around and
got
something going, so unless someone's already taken it, I'm happy
to
  own
this
task and turn my hackings into something uselful!
   
Cheers
   
Andrew
   
   
  
  
 
 






Re: Update on cross language interop testing

2006-06-19 Thread Simon Laws

Ok, Ant, that sounds like a good compromise. So we have two copies of the
common resources

1/ tuscany/interop/resources
2/ tuscanyphp/sdo-1.0.1/tests/interop

The test programs themselves live in test directories under the appropriate
projects.

I'm just refactoring the XSD/XML files a little so when they are done I'll
raise a JIRA and attach patches.

Anyone else have a view?

On 6/19/06, ant elder [EMAIL PROTECTED] wrote:


In the Java project we already have some interop tests in
tuscany/java/testing/interop/ so for these SDO ones how about
tuscany/java/testing/interop/sdo?

How about a mix for options (2) and (3) - I can understand duplicating the
resources across Apache and PECL, but at least within Apache Tuscany could
all the language impls share a common resource folder, maybe
tuscany/interop/resources?

Note I don't really mind so if either of these suggestions make things
more
difficult I'm fine with the suggestions in your email.

   ...ant

On 6/19/06, Simon Laws [EMAIL PROTECTED] wrote:

 I've done more work on this. The issues that have been raised so far

 Java
   None raised so far

 C++
   JIRA444 - Causes crash
   JIRA445
   JIRA447
   JIRA448 - Causes crash - Pete has fixed
   JIRA449
   JIRA450
   JIRA451
   JIRA452
   JIRA453

 Off the two that cause runtime crashes 444 remains unresolved. The
others
 lead to output that doesn't match the input.

 PHP
   As C++ (as it is based on C++) plus
   PECL7878
   PECL7879
   PECL7880

 Of these 7878 and 7879 as usability issues. I'm going to take a look a
 7880

 There is still more testing to do, particularly around Axis2 between
Java
 and C++, but most things have been working so far so my confidence
levels
 are building.

 From my previous mail on this subject I'm still undecided about where to
 put
 the code. There is not much code involved but it needs to live
somewhere.
 I've
 been assuming to date that the test code will happily live within each
 project somewhere (where is a good place in each project structure?),
for
 example, it could be

 Java: tuscany/java/sdo/impl/src/test/org/apache/Tuscany/sdo/interop
 C++: tuscany/cpp/sdo/runtime/core/interop
 PHP: tuscanyphp/sdo-1.0.1/tests/interop

 The input files (XSD, XML, DDL etc) themselves are common across all
 projects. So where should they live?

 1/  Just pick on project, C++/Java/PHP, and put the common files there.
 You
 have to check the files out and move them around to set up for testing

 2/ Duplicate the common files across all projects. Leads to maintenance
 problem but is convenient for running the tests

 3/ Create some common interop directory somewhere. Don't know where this
 would be

 As the projects are spread across Apache and PECL I would go for option
2
 and suffer the maintenance burden. I.e. to test PHP I don't really want
to
 ask the developer to go and retrieve files from Apache.
 Thoughts?

 Simon






Re: Update on cross language interop testing

2006-06-20 Thread Simon Laws

Mmmm. My fault. I mean that to be pecl/php... not tuscanyphp.

On 6/20/06, Caroline Maynard [EMAIL PROTECTED] wrote:


I'm confused about this proposal. Didn't you say earlier that the php
tests would be added to the PECL repository? In which case the logical
place would be pecl/sdo/tests/interop/. But (I'm guessing) your
tuscanyphp directory is in the Apache repository. And why is it
tuscanyphp/ and not tuscany/php/ like the other languages?

 Ok, Ant, that sounds like a good compromise. So we have two copies of
the
 common resources

 1/ tuscany/interop/resources
 2/ tuscanyphp/sdo-1.0.1/tests/interop

 The test programs themselves live in test directories under the
 appropriate
 projects.

 I'm just refactoring the XSD/XML files a little so when they are done
I'll
 raise a JIRA and attach patches.

  Anyone else have a view?


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




Re: XML Comparison

2006-06-22 Thread Simon Laws

Thanks Oisin, I don't seen anything at [1] that specifically mentions
canonicalization. Is the sample code you refer to the DocumentTracer.java?

S

On 6/22/06, Oisin Hurley [EMAIL PROTECTED] wrote:


Hi Simon,

 However this test compares everything and I am hitting the problem
 which is
 touched on in http://issues.apache.org/jira/browse/TUSCANY-427,
 i.e. my
 input xml files have comments and my output XML files don't so the
 current
 equalXML... function always returns false.

What might be useful here is some XML Canonicalization (c14n) code that
will munge both XML sources to a canonical form and then compare
those forms.
This does things like elide extraneous whitespace in the elements,
reorder attributes using a particular algorithm, optionally remove
comments and that kind of thing. The Canonical XML spec is at [0],
but you might be more interested in the example implementation which you
can find in the Xerces samples at [1]. A candidate for that testutils
jar that Dan was talking about, perhaps.

  regards
Oisin

[0] http://www.w3.org/TR/xml-c14n
[1] http://svn.apache.org/viewvc/xerces/java/trunk/samples/sax/
Writer.java

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




Re: XML Comparison

2006-06-23 Thread Simon Laws

Doh, thanks Oisin. I was looking in the wrong file.

S

On 6/23/06, Oisin Hurley [EMAIL PROTECTED] wrote:



On 22 Jun 2006, at 22:24, Simon Laws wrote:

 Thanks Oisin, I don't seen anything at [1] that specifically mentions
 canonicalization. Is the sample code you refer to the
 DocumentTracer.java?

The code itself is just a writer, but it has an option to have the
output canonicalized - if you look in the java src [0] you will
see

 /** Sets whether output is canonical. */
 public void setCanonical(boolean canonical) {
 fCanonical = canonical;
 } // setCanonical(boolean)


  regards
Oisin


[0] http://svn.apache.org/viewvc/xerces/java/trunk/samples/sax/
Writer.java?view=markup


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




Re: prerequisites

2006-06-23 Thread Simon Laws

Hi Eric, welcome

I'm relatively new to this myself and, as I'm not not focusing on the Java
implementation, I can't help you with Java details much but I did read a
good article by Martin Fowler about the inversion of control/dependency
injection pattern [1].

There was also a recent telcon about the changes proposed to support the
recursive assembly model in Java so this would be a place where you could
look to find out how things might change going forward. Jim posted about
this [2].

Also have a go with the current code base and ask questions here or on the
IRC [3]

[1] http://www.martinfowler.com/articles/injection.html
[2] http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg03853.html
[3] http://incubator.apache.org/tuscany/getinvolved.html

Regards

Simon

On 6/22/06, Eric Le Goff [EMAIL PROTECTED] wrote:


Hi everyone,

I am an average Java developer and my goal would be to get deeper
understanding of the open source development process in general and I
chose the Tuscany project architecture / implementation / tooling
etc... as a starting point (since SOA sounds like an interesting
concept).

My question is about pre-requisite readings / knowledge / training
before some newbie java developer like me is able to provide some
help with code and document.

There are indeed so many things for a newcomer to read :
- this mailing list
- the project wiki pages
- the specs (0.9 already obsolete ?)
- more (???)

I know how to use Eclipse, maven, how to find JIRA issues ...but I
would need some help when it comes to the project architecture (from
4 ft, not the details...), development concepts like dependency
injection, or what do you mean by recursive model...

I know the general answer is Read the f... Manual but all I need is
the correct pointers and a global methodology.
In other words I would like to know what shold be absolutely known
before pretending contributing to the project.
And if all this does not sound stupid ;) I promise to work hard and
learn these prerequisite and maybe some day to contribute to the code
:)...

thanks for your help

Eric

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




Re: XML Comparison

2006-06-23 Thread Simon Laws

Hi ant, what is the process to determine whether the license for this piece
of software is acceptable for use during Tuscany development. I assume, if
we use it, we woudln't use it during runtime and hence wouldn't need to
redistribute or reference it from released packages.

S

On 6/22/06, ant elder [EMAIL PROTECTED] wrote:


What about using http://xmlunit.sourceforge.net/, i think some of the
other
Apache WS projects use that.

   ...ant

On 6/22/06, Simon Laws [EMAIL PROTECTED] wrote:

 I want to add a little automated testing to the interop suite to compare
 input XML files with output XML files. I note that there is XML
comparison
 function in

 org.apache.tuscany.sdo.test.TestUtil

 However this test compares everything and I am hitting the problem which
 is
 touched on in http://issues.apache.org/jira/browse/TUSCANY-427, i.e. my
 input xml files have comments and my output XML files don't so the
current
 equalXML... function always returns false. For my local testing what I
 have
 done is edited the class to:

 1/ Change all the static operations to non static operations
 2/ Add a member variable to describe what should be ignored when testing
 for
 equality
 3/ Add outputs in each failure case to record what causes XML files to
be
 marked as not equal
 4/ Added a string output stream member variable to capture all of this
 output
 5/ Added a getReport method to return the contents of this output stream
 if
 you are interested in why the XMLs differ

 Now this is all very well and good but of course this breaks anything
that
 relies on this class having static methods (it's used in about 50
places).
 So I can make a slight change to maintain the static interface. The
 question
 is would you rather I:

 A/ Make a special version for me and not patch the original (not ideal)
 B/ Create a patch for the original

 As an aside there already seems to be two copies of this file, in:

 tuscany\java\sdo\impl\src\test\java\org\apache\tuscany\sdo\test
 tuscany\java\sdo\tools\src\test\java\org\apache\tuscany\sdo\test

 Is there a good reason for this? If not, which one stays?

 Simon






Java SDO Date exception?

2006-06-26 Thread Simon Laws

I need a little help interpreting an exception I'm getting from an SDO test
I have. I'm porting some interop tests to HEAD so that I can create a patch
and (having updated to use the new DAS) the relational SDO no longer works
with date fields . All other types I'm testing are OK. The test basically
creates a new data object by copying all the properties from an existing
data object one by one.

The offending line is

newRow.setDate(ADATE, row.getDate(ADATE) );

The exception that is thrown is below. When I comment this line out
everything works fine. I'm not sure where to start looking as there is lots
of emf stuff here that I'm not familiar with. I took a look at the JIRAs for
SDO and it doesn't appear that this is happening for anyone else so there
may be something wrong with my setup. If this exception means anything to
anyone who knows emf let me know.

java.lang.ClassCastException: The value of type 'class
org.eclipse.emf.ecore.xml
.type.internal.XMLCalendar' must be of type 'class java.util.Date'
   at
org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDele
gateSingleDataStatic.validate(EStructuralFeatureImpl.java:2046)
   at
org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDele
gateSingleData.dynamicSet(EStructuralFeatureImpl.java:1942)
   at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicSet
(BasicEObjectI
mpl.java:686)
   at org.apache.tuscany.sdo.impl.DynamicDataObjectImpl.eDynamicSet
(Dynamic
DataObjectImpl.java:147)
   at org.apache.tuscany.sdo.impl.DataObjectImpl.eSet(
DataObjectImpl.java:1
439)
   at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(
BasicEObjectImpl.jav
a:642)
   at org.apache.tuscany.sdo.impl.DataObjectImpl.set(
DataObjectImpl.java:14
0)
   at org.apache.tuscany.sdo.util.DataObjectUtil.setDate(
DataObjectUtil.jav
a:570)
   at org.apache.tuscany.sdo.impl.DataObjectImpl.setDate(
DataObjectImpl.jav
a:493)
   at
org.apache.tuscany.test.interop.sdo.rdb.InteropTestReadWriteRDB.test5
ReadAndWriteRDB(InteropTestReadWriteRDB.java:178)
   at org.apache.tuscany.sdo.test.xml.InteropTestCase.testReadWriteRDB
(Inte
ropTestCase.java:54)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.
java:64)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAcces
sorImpl.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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.
java:64)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAcces
sorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:615)
   at org.apache.maven.surefire.junit.JUnitTestSet.execute(
JUnitTestSet.jav
a:210)
   at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
tSet(AbstractDirectoryTestSuite.java:135)
   at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
stractDirectoryTestSuite.java:122)
   at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.
java:64)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAcces
sorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:615)
   at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
refireBooter.java:225)
   at org.apache.maven.surefire.booter.SurefireBooter.main(
SurefireBooter.j
ava:747)

Thanks

Simon


Re: [jira] Commented: (TUSCANY-495) Java Interop Testing

2006-06-26 Thread Simon Laws

Ah, meant to comment that out. Sorry for making you do this twice Ant. For
now if you could comment out the dependency for DB2 in the POM and it should
run but you will see a class not found exception for the DB2 test. This is
OK for now. I don't believe that these tests are patched into the main build
yet. I need to write a Derby test case but haven't go round to it yet. I
could also do with finding a way to get params into the code so that I can
actually turn off the DB2 testing if the POM doesn't specify the jars (I
guess I could trap the exception but a bit nasty) any ideas?

S

On 6/26/06, ant elder [EMAIL PROTECTED] wrote:


In this patch the pom.xml in the sdo/rdb folder has a dependency on some
IBM
DB2 jars which aren't in any maven repository:

1) com.ibm.db2:db2jcc:jar:8.2
2) com.ibm.db2:db2jcc_license_cu:jar:8.2

There's a commented out dependency for derby, could I just uncomment that
and delete thedb2 ones, or what?

   ...ant

On 6/26/06, Simon Laws (JIRA) tuscany-dev@ws.apache.org wrote:

 [

http://issues.apache.org/jira/browse/TUSCANY-495?page=comments#action_12417802
]

 Simon Laws commented on TUSCANY-495:
 

 I should have noted that the 2nd patch (patch-interopsdo-java.txt)
 includes a new project test dependency on XMLUnit (
 http://xmlunit.sourceforge.net/).

  Java Interop Testing
  
 
   Key: TUSCANY-495
   URL: http://issues.apache.org/jira/browse/TUSCANY-495
   Project: Tuscany
  Type: New Feature

Components: Java SDO Implementation
  Versions: Java-M1
   Environment: Windows XP
  Reporter: Simon Laws
  Assignee: ant elder
  Priority: Minor
   Attachments: patch-interopresources.txt, patch-interopsdo-java.txt
 
  Patches to include first pass interop testing
- /tuscany/interop   - interop resources
- /tuscany/java/testing/interop - simple java interop tests that use
 the resources above

 --
 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: Java SDO Date exception?

2006-06-26 Thread Simon Laws

Hi Frank

I checked out the java project again. The only updates I go were to do with
DAS tests
 AliasTest.java
 ExceptionTest.java
 BooksConfigWithAlias.xml

No new java code. I still get the exception. Is there one of the provided
tests that I should run to try and tie it down a bit?

Regards

Simon

On 6/26/06, Frank Budinsky [EMAIL PROTECTED] wrote:


Hi Simon,

We fixed some bugs related to Date types, late last week (Thursday or
Friday). If you don't have the very latest SDO code, please try with the
latest, and see if it fixes this problem. Otherwise, it looks like there
still may be another bug.

Thanks,
Frank.

Simon Laws [EMAIL PROTECTED] wrote on 06/26/2006 05:25:43 AM:

 I need a little help interpreting an exception I'm getting from an SDO
test
 I have. I'm porting some interop tests to HEAD so that I can create a
patch
 and (having updated to use the new DAS) the relational SDO no longer
works
 with date fields . All other types I'm testing are OK. The test
basically
 creates a new data object by copying all the properties from an existing
 data object one by one.

 The offending line is

 newRow.setDate(ADATE, row.getDate(ADATE) );

 The exception that is thrown is below. When I comment this line out
 everything works fine. I'm not sure where to start looking as there is
lots
 of emf stuff here that I'm not familiar with. I took a look at the JIRAs
for
 SDO and it doesn't appear that this is happening for anyone else so
there
 may be something wrong with my setup. If this exception means anything
to
 anyone who knows emf let me know.

 java.lang.ClassCastException: The value of type 'class
 org.eclipse.emf.ecore.xml
 .type.internal.XMLCalendar' must be of type 'class java.util.Date'
 at
 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDele
 gateSingleDataStatic.validate(EStructuralFeatureImpl.java:2046)
 at
 org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDele
 gateSingleData.dynamicSet(EStructuralFeatureImpl.java:1942)
 at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicSet
 (BasicEObjectI
 mpl.java:686)
 at org.apache.tuscany.sdo.impl.DynamicDataObjectImpl.eDynamicSet
 (Dynamic
 DataObjectImpl.java:147)
 at org.apache.tuscany.sdo.impl.DataObjectImpl.eSet(
 DataObjectImpl.java:1
 439)
 at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(
 BasicEObjectImpl.jav
 a:642)
 at org.apache.tuscany.sdo.impl.DataObjectImpl.set(
 DataObjectImpl.java:14
 0)
 at org.apache.tuscany.sdo.util.DataObjectUtil.setDate(
 DataObjectUtil.jav
 a:570)
 at org.apache.tuscany.sdo.impl.DataObjectImpl.setDate(
 DataObjectImpl.jav
 a:493)
 at
 org.apache.tuscany.test.interop.sdo.rdb.InteropTestReadWriteRDB.test5
 ReadAndWriteRDB(InteropTestReadWriteRDB.java:178)
 at
org.apache.tuscany.sdo.test.xml.InteropTestCase.testReadWriteRDB
 (Inte
 ropTestCase.java:54)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke
 (NativeMethodAccessorImpl.
 java:64)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAcces
 sorImpl.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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke
 (NativeMethodAccessorImpl.
 java:64)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAcces
 sorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:615)
 at org.apache.maven.surefire.junit.JUnitTestSet.execute(
 JUnitTestSet.jav
 a:210)
 at
 org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
 tSet(AbstractDirectoryTestSuite.java:135)
 at
 org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
 stractDirectoryTestSuite.java:122)
 at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke
 (NativeMethodAccessorImpl.
 java:64)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAcces
 sorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:615)
 at
 org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
 refireBooter.java:225

[C++] SCA usability

2006-06-27 Thread Simon Laws

I've spent a little time playing with the C++ SCA implementation. I want to
replay my understanding to see if it is correct.

When constructing a service that will have a web service binding you have to
provide a number of things including

 myservice.h to define the class that is the service
 myservice.cpp to implement the class that is the service
 myservice.wsdl to describe the service interface

Of course you have to provide the appropriate SCA configuration files also,
e.g. sca.module, Tuscany-model.config  etc, and you have to SCAGen the
interface to generate proxies and wrappers.

- At this point in time there is no WSDL - C++ or C++ - WSDL tooling

Hence at present there is a requirement that you, as the developer of the
service, ensure that the interface described in C++ matches the interface
described in WSDL.

- At this point in time there is no C++ SDO support for static types

Hence interfaces to services that take SDOs will always descibe the
interface in terms of DataObjects.

- The web services interfaces adopt the doc/literal/wrapped  pattern

Hence the WSDL has to be constructed/used carefully in this respect to match
the expectations of the runtime and the types that are used to describe WSDL
message elements are not the types that find their way in and out of the C++
service implementation. It is the types that are themselves wrapped that
find themselves presented to and returned from the service implementation.

Is this understanding correct?

Is there some way we can provide a helper function (or simple generator)
that demonstrates how a service operation should handle the types it is
presented with and produce a type for return based on the WSDL description
of the interface? This could be as simple as providing a mechanism to print
out a template C++ operation based on the model formed from the WSDL. Maybe
this could be done with good documentation and samples but I'm not sure.

I sense that there will be mistakes made in this area by new users;-)

Regards

Simon


Re: Java SDO Date exception?

2006-06-27 Thread Simon Laws

OK, thanks Kevin. Have to admit that I haven't got round to trying what
Fuhwei Lwo suggested.

S

On 6/27/06, Kevin Williams [EMAIL PROTECTED] wrote:


I pulled the latest from the repository and the DAS test suite fails for
me too with the same exception:

java.lang.ClassCastException: The value of type 'class
org.eclipse.emf.ecore.xml.type.internal.XMLCalendar' must be of type
'class java.util.Date' 

This appears to be an SDO regression and I will open a JIRA.  I have
also commented out the broken DAS test so that the build will complete.

Thanks,

--Kevin

Simon Laws wrote:

 Hi Frank

 I checked out the java project again. The only updates I go were to do
 with
 DAS tests
  AliasTest.java
  ExceptionTest.java
  BooksConfigWithAlias.xml

 No new java code. I still get the exception. Is there one of the
provided
 tests that I should run to try and tie it down a bit?

 Regards

 Simon

 On 6/26/06, Frank Budinsky [EMAIL PROTECTED] wrote:


 Hi Simon,

 We fixed some bugs related to Date types, late last week (Thursday or
 Friday). If you don't have the very latest SDO code, please try with
the
 latest, and see if it fixes this problem. Otherwise, it looks like
there
 still may be another bug.

 Thanks,
 Frank.

 Simon Laws [EMAIL PROTECTED] wrote on 06/26/2006 05:25:43
 AM:

  I need a little help interpreting an exception I'm getting from an
SDO
 test
  I have. I'm porting some interop tests to HEAD so that I can create a
 patch
  and (having updated to use the new DAS) the relational SDO no longer
 works
  with date fields . All other types I'm testing are OK. The test
 basically
  creates a new data object by copying all the properties from an
 existing
  data object one by one.
 
  The offending line is
 
  newRow.setDate(ADATE, row.getDate(ADATE) );
 
  The exception that is thrown is below. When I comment this line out
  everything works fine. I'm not sure where to start looking as there
is
 lots
  of emf stuff here that I'm not familiar with. I took a look at the
 JIRAs
 for
  SDO and it doesn't appear that this is happening for anyone else so
 there
  may be something wrong with my setup. If this exception means
anything
 to
  anyone who knows emf let me know.
 
  java.lang.ClassCastException: The value of type 'class
  org.eclipse.emf.ecore.xml
  .type.internal.XMLCalendar' must be of type 'class java.util.Date'
  at
  org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDele
  gateSingleDataStatic.validate(EStructuralFeatureImpl.java:2046)
  at
  org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDele
  gateSingleData.dynamicSet(EStructuralFeatureImpl.java:1942)
  at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicSet
  (BasicEObjectI
  mpl.java:686)
  at
 org.apache.tuscany.sdo.impl.DynamicDataObjectImpl.eDynamicSet
  (Dynamic
  DataObjectImpl.java:147)
  at org.apache.tuscany.sdo.impl.DataObjectImpl.eSet(
  DataObjectImpl.java:1
  439)
  at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(
  BasicEObjectImpl.jav
  a:642)
  at org.apache.tuscany.sdo.impl.DataObjectImpl.set(
  DataObjectImpl.java:14
  0)
  at org.apache.tuscany.sdo.util.DataObjectUtil.setDate(
  DataObjectUtil.jav
  a:570)
  at org.apache.tuscany.sdo.impl.DataObjectImpl.setDate(
  DataObjectImpl.jav
  a:493)
  at
  org.apache.tuscany.test.interop.sdo.rdb.InteropTestReadWriteRDB.test5
  ReadAndWriteRDB(InteropTestReadWriteRDB.java:178)
  at
 org.apache.tuscany.sdo.test.xml.InteropTestCase.testReadWriteRDB
  (Inte
  ropTestCase.java:54)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke
  (NativeMethodAccessorImpl.
  java:64)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke
  (DelegatingMethodAcces
  sorImpl.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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke
  (NativeMethodAccessorImpl.
  java:64)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke
  (DelegatingMethodAcces
  sorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:615)
  at org.apache.maven.surefire.junit.JUnitTestSet.execute(
  JUnitTestSet.jav
  a:210)
  at
  org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes

[C++/SDO] can you turn off xsi:type generation?

2006-06-28 Thread Simon Laws

The C++/SDO implementation generates an xsi:type attribute on the root
element of documents written out via the XMLHelper. Is it possible to turn
this feature off?

Regards

Simon


Re: [Java/SDO] is xsi:type on root element suported?

2006-06-28 Thread Simon Laws

OK, thanks Frank, I tried that and the effect is the same regarless of
whether the xsi:type reference to an extension or not. xsi:type does work
with both extensions and base classes if it's used on an element that is not
the root element. I have opened a jira (505) and added this information.

Regards

Simon

On 6/28/06, Frank Budinsky [EMAIL PROTECTED] wrote:


Hi Simon,

I think it should work. Your example is a little strange in that the
xsi:type is the same as the actual element type. Usually the xsi:type is
used to identify a subtype, so maybe the implementation has a bug that
only turns up in this case.

Is there someone with more XML expertise then me that knows if xsi:type
equal to the actual type is valid XML?

Could you please try changing your example to include a subtype:

complexType  name=ExtendedComplexTypeRootType
complexContent
xsd:extension base=tns:ComplexTypeRootType/
/complexContent
/complexType

and then use it as the xsi:type in your instance.

I think that should definitely work.

Also, could you please open a JIRA for this issue.

Thanks,
Frank.

Simon Laws [EMAIL PROTECTED] wrote on 06/28/2006 10:04:35 AM:

 If I read the following doc:

 tns:RootElement xmlns:p=commonj.sdo
 xmlns:tns=http://www.apache.org/tuscany/interop;
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
 xsi:schemaLocation=http://www.apache.org/tuscany/interop
interop01.xsd
 
 SimpleTypeWithNameSimpleTypeWithName/SimpleTypeWithName
 /tns:RootElement

 With the following schema

 schema xmlns=http://www.w3.org/2001/XMLSchema;
 targetNamespace=http://www.apache.org/tuscany/interop;
 xmlns:tns=http://www.apache.org/tuscany/interop;

   include schemaLocation=interop10.xsd/

   !-- top level test type --
   complexType name=ComplexTypeRootType
 sequence
   !-- simple types --
   element name=SimpleTypeWithName
type=tns:SimpleTypeWithNameType/

 /sequence
   /complexType

   element name=RootElement type=tns:ComplexTypeRootType/
 /schema

 The I get a valid document (doc) with some data objects in it out of the
 following code:

 FileInputStream inFileStream = new FileInputStream (inFileName);
 XMLDocument doc = XMLHelper.INSTANCE.load(inFileStream);

 If I try in read in (note I have added and xsi:type attribute):

 tns:RootElement xmlns:p=commonj.sdo
 xsi:type=tns:ComplexTypeRootType
 xmlns:tns=http://www.apache.org/tuscany/interop;
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
 xsi:schemaLocation=http://www.apache.org/tuscany/interop
interop01.xsd
 
 SimpleTypeWithNameSimpleTypeWithName/SimpleTypeWithName
 /tns:RootElement

 The XMLHelper silently makes an empty document, i.e. the root element is
 null. Is this by design? I.e. is xsi:type unsupported?

 Regards

 Simon


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




Re: [C++] SCA usability

2006-06-29 Thread Simon Laws

The other thing that helps is turning logging on on ther server. I start the
axis server with the following script...

set TUSCANY_SCACPP_LOGGING=9
set PATH= ...
axis2_http_server.exe -l 4

So in the first instance what we need to do is work up all of these hints
and tips into a step by step service construction/debugging guide. I think
pete/andy already have words in this area so we should review and extend if
required.

Secondly we need to think, post M1, what we add to make life easier, for
example
C++2WSDL
WSDL2C++
Specific logging of the points that cause problems
Debug helpers

What else should be on this list?

On 6/27/06, Edward Slattery [EMAIL PROTECTED] wrote:


Having been working on the Windows build today, I agree with your summary.
There might even  be problems to less new users.
My saviours this afternoon hav been:
1) Running the axis http server in the debugger - loading the extra sca_ws
dll and setting breakpoints.
2) Checking very very carefully the env vars TUSCANY_SCACPP,
TUSCANY_SDOCPP,
TUSCANY_SCACPP_SYSTEM_ROOT.
3) Checking them again.
4) checking the logs in the axis logs directory - Calculator_blocking
gives
you what happens when the service is loaded. axis2.log tells you if the
service didnt load. - I just asked the asix2c people to add some details
to
the log to say which dll in which path didnt load - then I think we
have all bases covered.

On 27/06/06, Simon Laws [EMAIL PROTECTED] wrote:

 I've spent a little time playing with the C++ SCA implementation. I want
 to
 replay my understanding to see if it is correct.

 When constructing a service that will have a web service binding you
have
 to
 provide a number of things including

 myservice.h to define the class that is the service
 myservice.cpp to implement the class that is the service
 myservice.wsdl to describe the service interface

 Of course you have to provide the appropriate SCA configuration files
 also,
 e.g. sca.module, Tuscany-model.config  etc, and you have to SCAGen the
 interface to generate proxies and wrappers.

 - At this point in time there is no WSDL - C++ or C++ - WSDL tooling

 Hence at present there is a requirement that you, as the developer of
the
 service, ensure that the interface described in C++ matches the
interface
 described in WSDL.

 - At this point in time there is no C++ SDO support for static types

 Hence interfaces to services that take SDOs will always descibe the
 interface in terms of DataObjects.

 - The web services interfaces adopt the doc/literal/wrapped  pattern

 Hence the WSDL has to be constructed/used carefully in this respect to
 match
 the expectations of the runtime and the types that are used to describe
 WSDL
 message elements are not the types that find their way in and out of the
 C++
 service implementation. It is the types that are themselves wrapped that
 find themselves presented to and returned from the service
implementation.

 Is this understanding correct?

 Is there some way we can provide a helper function (or simple generator)
 that demonstrates how a service operation should handle the types it is
 presented with and produce a type for return based on the WSDL
description
 of the interface? This could be as simple as providing a mechanism to
 print
 out a template C++ operation based on the model formed from the WSDL.
 Maybe
 this could be done with good documentation and samples but I'm not sure.

 I sense that there will be mistakes made in this area by new users;-)

 Regards

 Simon






[C++/Java] Interop update

2006-06-29 Thread Simon Laws

Ok, I had some success over the last couple of days in getting C++ SCA to
talk to Java SCA. The executive summary is that we got a message from C++
client to C++ SCA service on to a Java SCA service and all the way back
again. Yippeee.

The scenario is based on the BigBank for C++ sample that Ed has been working
on. Here is what we had to do to make it work...

The sample is as follows.

C++ Client --  C++ AccountService/AccountDataService  -- Java
StockQuoteService

The intention is to add a PHP client in the future but that is not there
yet. In theory we could also add the Java BB client to the front end but the
java interface to BB was more complex that we wanted to tackle in the first
instance so that is something else that could be done if we choose.

We chose to make a new Java StockQuoteService as the interface is so simple.
We took the external WSDL and implemented that, i.e. the float getQuote
(String) interface.

The current Java Big Bank sample does provide a local Java StockQuoteService
implementation but it seems that  this has a  slightly different interface,
i.e. it implements getQuotes which takes and returns arrays. Anyhow we made
a new external service which is in itself an SCA module with a java
implementation and exposing a service with the getQuote interface. We also
made a java client to test this with. There are no patches for these yet as
we are not sure where to put them. My vote is to put them in the
java/testing/interop dir but am open to suggestions.

The C++ BB sample is expecting an external service with the getQuote
interface so we changed the sca.module file to point to the new Java SCA
StockQuoteService running in the Java M1 configured tomcat container.

There were a few problems along the way to getting a complete end to end
run.

1/ The use of doc/lit/wrapped caused confusion in the first instance and
combined with the outstanding problem that C++/SDO cannot handle root
elements with only simple types in (
http://issues.apache.org/jira/browse/TUSCANY-488) there was some debate
about what the WSDL for the account service should look like. This is an
except of what we ended up with for the type descriptions...

 xsd:complexType name=GetAccountReportType
   xsd:sequence
   xsd:element name=customerID
 xsd:complexType
   xsd:sequence
 xsd:element name=customerID type=xsd:string /
   /xsd:sequence
 /xsd:complexType
   /xsd:element
   /xsd:sequence
 /xsd:complexType

 xsd:element name=getAccountReport type=tns:GetAccountReportType/


 xsd:complexType name=AccountReport
  xsd:sequence
   xsd:element name=checking type=tns:CheckingAccount
 maxOccurs=unbounded/
   xsd:element name=savings type=tns:SavingsAccount
 maxOccurs=unbounded/
   xsd:element name=stocks type=tns:StockAccount
 maxOccurs=unbounded/
  /xsd:sequence
  /xsd:complexType


  xsd:element name=getAccountReportResponse
xsd:complexType
  xsd:sequence
xsd:element name=accountReport type=tns:AccountReport/
  /xsd:sequence
/xsd:complexType
  /xsd:element

The odd extra level of CustomerId came from the confusion around 488 but I
believe could be removed (http://issues.apache.org/jira/browse/TUSCANY-507)
but the client has been coded this way currently so we didn't try and fix
it.

2/  Another thing to note about the WSDL is the use of anonymous types. My
preference is not to do this by default but of this doesn't work at present
(http://issues.apache.org/jira/browse/TUSCANY-500 ).

3/ Changed GetQuote to getQuote in
StockQuoteService_StockQuoteExternal_Proxy.cpp and associated
StockQuoteExternal files (http://issues.apache.org/jira/browse/TUSCANY-508)

4/ Axis2Client.cpp ln 282 LOGINFO_2 causes an edna in the case  where  the
server  being called  returns an error.  I changed this to a LOGINFO, i.e.
no var args, and carried on. I didn't go back and try it with successful
responses. (http://issues.apache.org/jira/browse/TUSCANY-509)

5/ StockQuoteExternalService.h/StockQuoteServiceImpl.cpp has incorrect
return type for getQuote   const char * should be float. (
http://issues.apache.org/jira/browse/TUSCANY-510)

6/ The C++ SDO implementation produces XML with an xsi:type attribute on the
root element. The java container doesn't like this (
http://issues.apache.org/jira/browse/TUSCANY-505). We changed the C++
implementation to take these out temporarily to see if we could progress.

SDOXMLWriter.cpp ln722 ish replace

   rc = xmlTextWriterWriteAttributeNS(writer,
   SDOXMLString(xsi), SDOXMLString(type),
   NULL,
   /*SDOXMLString(
http://www.w3.org/2001/XMLSchema-instance;),*/
   SDOXMLString(dataObject-getType().getName()));
with

   if (!isRoot)
   {
   rc = xmlTextWriterWriteAttributeNS(writer,
   SDOXMLString(xsi), SDOXMLString(type),
   NULL,
   /*SDOXMLString(

Tuscany weekly IRC chat log (July-06-2006)

2006-07-17 Thread Simon Laws

Here is the discussion from today's IRC chat (sorry about the slightly wonky
format as I had to cut and paste from my client). The topics of discussion
were content updates to the Tuscany web site and the process by which the
web site is produced. In summary we are going to progress the following this
week.

   jboyneslayout and nav,
   slaws   what is SCA,
   kgoodson what is SDO
   kevinDAS
   cr22rc   help with the web site production toolkit and site content
as time allows
  dwheelerimage stuff

Of course everyone is invited to help out here so don't be shy.

Simon



kgoodsonshall we pick up where we were on improving the website with a
clickable picture before OSCon?
   kgoodsonwhat other topics?
   --|kevin (n= [EMAIL PROTECTED]) has joined
#tuscany
   slawsi'm just back on line form leave and saw mail about the
website, e.g. the nice clickable picture, but i'm confused about what the
status is and who is doing what - can you give a quick update
   rfengThe OSCON is coming, I guess we need to improve the web site
as we agreed last time, right?
   --|simonnash (n= [EMAIL PROTECTED] ) has joined #tuscany
   simonnashhi
   slawshi simon - kelivin is just kicking off a discussion on
website progress
   jboyneshi, sorry, I'm back as well
   kgoodsonhi simon, it's a little quiet, but we are just about to
take stock of where the website improvemnt is/is going -- there don't seem
tyo be any other topics at the moment -- jeremy has had to disappear
   jboyneswe have a clckable on the wiki, yes?
   kgoodsoni liked raymonds picture, with the clickable links, there
was aanother picture on the mailing list i think that I cant locate at the
moment which was a higher level modular diagram
   kgoodsonhes, clickable 
http://wiki.apache.org/ws-data/attachments/Tuscany(2f)SCADiagram/attachments/sca.htm
http://wiki.apache.org/ws-data/attachments/Tuscany%282f%29SCADiagram/attachments/sca.htm
   rfengthe other one is for tuscany architectural layers, I guess
   slawsyes - high level - was attached as a zip to a mail
   rfengcan somebody upload it to WIKI as well?
   kgoodsonyes, am i right in thinking that the one you, rfeng, have
done would be linked to from the higher level one?
   slawshigh level one was on a mail from Venkata Krishnan
   rfengthe one I prototyped is for SCA composite PM
   --|jmarino ([EMAIL PROTECTED] ) has joined #tuscany
   slawscan;t find it in the dev archive for some reason
   kgoodsonhave found it, i will attach to wiki
   slawsok - great
   jboynesI checked the toolkit from the incubator site into my
sandbox - has anyone had a chance to look at it?
   slawssorry jeremy - have been out - is this the toolkit for
building the website?
   kgoodsonwiki seems not to want to create a new page, waiting
..
   jboynesslaws: yes, the toolkit I mentioned last time which has
been picked up by a couple of projects (including the incubator)
   rfengjust point to the new URL you want to place the new page,
then you'll see the option to create the new page
   slawsjboynes: ok - ta - haven't tried it yet but can give it a
whirl
   jboynesok
   jboynesanyone else interested or does anyone have any
alternatives?
   kgoodsonyes i'm intersted but i don't really know what it buys us
   jboynesit's simpler than mvn
   slawsso, coming back to my first question, who is doing what on
the website?
   jboynesI set up the toolkit thing and was waiting for feedback
   cr22rcjust a command to run for mvn
   jboynes?
   cr22rcxdocs are a pain ... does it get us away from that ?
   rfengI'm stuck in something else this week
   jboynesyou can use xml or html
   slawsok - and rfeng made the clickable diagram and we also have a
top level diagram contributed - anything else?
   dwheelerI believe I was going to try and come up with a prettier
diagram(s) for the clickable diagram interface.
   cr22rcI need to look at the other TK too see what it buys us
   dwheelerbased on the ones we have
   kgoodsonfinally i have the architecture diag n the wiki ...
   kgoodson
http://wiki.apache.org/ws/Tuscany/ClickableImages?action=show

   cr22rcto do the site now it's mvn site ... and then mvn
site-deploy (which publishes it )
   jboynesI think the big difference is that there's less going on
than with mvn site
   jboyneseverything is in one place and not spread around different
modules
   cr22rcmost of the site is just under site
   cr22rcthe one thing we don't get with mvn I think is tabs on the
top... don't think you can do that.
   jboyneswith the toolkit you get raw html so can do anything
   jboynesbut you need to do everything ..
   kgoodsonjust to summarize, we were looking for the tabs of
http://geronimo.apache.org/ with the image navigation style of
http://incubator.apache.org/servicemix/
   

Re: Tuscany weekly IRC chat log (July-06-2006)

2006-07-17 Thread Simon Laws

That of course should read July-17-06

On 7/17/06, Simon Laws [EMAIL PROTECTED] wrote:


Here is the discussion from today's IRC chat (sorry about the slightly
wonky format as I had to cut and paste from my client). The topics of
discussion were content updates to the Tuscany web site and the process by
which the web site is produced. In summary we are going to progress the
following this week.

jboyneslayout and nav,
slaws   what is SCA,
kgoodson what is SDO
kevinDAS
cr22rc   help with the web site production toolkit and site
content as time allows
   dwheelerimage stuff

Of course everyone is invited to help out here so don't be shy.

Simon



kgoodsonshall we pick up where we were on improving the website with
a clickable picture before OSCon?
kgoodsonwhat other topics?
--|kevin (n= [EMAIL PROTECTED]) has joined
#tuscany
slawsi'm just back on line form leave and saw mail about the
website, e.g. the nice clickable picture, but i'm confused about what the
status is and who is doing what - can you give a quick update
rfengThe OSCON is coming, I guess we need to improve the web
site as we agreed last time, right?
--|simonnash (n= [EMAIL PROTECTED] ) has joined #tuscany
simonnashhi
slawshi simon - kelivin is just kicking off a discussion on
website progress
jboyneshi, sorry, I'm back as well
kgoodsonhi simon, it's a little quiet, but we are just about to
take stock of where the website improvemnt is/is going -- there don't seem
tyo be any other topics at the moment -- jeremy has had to disappear
jboyneswe have a clckable on the wiki, yes?
kgoodsoni liked raymonds picture, with the clickable links,
there was aanother picture on the mailing list i think that I cant locate at
the moment which was a higher level modular diagram
kgoodsonhes, clickable  
http://wiki.apache.org/ws-data/attachments/Tuscany(2f)SCADiagram/attachments/sca.htm

http://wiki.apache.org/ws-data/attachments/Tuscany%282f%29SCADiagram/attachments/sca.htm
rfengthe other one is for tuscany architectural layers, I guess
slawsyes - high level - was attached as a zip to a mail
rfengcan somebody upload it to WIKI as well?
kgoodsonyes, am i right in thinking that the one you, rfeng,
have done would be linked to from the higher level one?
slawshigh level one was on a mail from Venkata Krishnan
rfengthe one I prototyped is for SCA composite PM
--|jmarino (n= [EMAIL PROTECTED] ) has joined #tuscany
slawscan;t find it in the dev archive for some reason
kgoodsonhave found it, i will attach to wiki
slawsok - great
jboynesI checked the toolkit from the incubator site into my
sandbox - has anyone had a chance to look at it?
slawssorry jeremy - have been out - is this the toolkit for
building the website?
kgoodsonwiki seems not to want to create a new page, waiting
..
jboynesslaws: yes, the toolkit I mentioned last time which has
been picked up by a couple of projects (including the incubator)
rfengjust point to the new URL you want to place the new page,
then you'll see the option to create the new page
slawsjboynes: ok - ta - haven't tried it yet but can give it a
whirl
jboynesok
jboynesanyone else interested or does anyone have any
alternatives?
kgoodsonyes i'm intersted but i don't really know what it buys
us
jboynesit's simpler than mvn
slawsso, coming back to my first question, who is doing what on
the website?
jboynesI set up the toolkit thing and was waiting for feedback
cr22rcjust a command to run for mvn
jboynes?
cr22rcxdocs are a pain ... does it get us away from that ?
rfengI'm stuck in something else this week
jboynesyou can use xml or html
slawsok - and rfeng made the clickable diagram and we also have
a top level diagram contributed - anything else?
dwheelerI believe I was going to try and come up with a prettier
diagram(s) for the clickable diagram interface.
cr22rcI need to look at the other TK too see what it buys us
dwheelerbased on the ones we have
kgoodsonfinally i have the architecture diag n the wiki ...
kgoodson http://wiki.apache.org/ws/Tuscany/ClickableImages?action=show

cr22rcto do the site now it's mvn site ... and then mvn
site-deploy (which publishes it )
jboynesI think the big difference is that there's less going on
than with mvn site
jboyneseverything is in one place and not spread around
different modules
cr22rcmost of the site is just under site
cr22rcthe one thing we don't get with mvn I think is tabs on the
top... don't think you can do that.
jboyneswith the toolkit you get raw html so can do anything
jboynesbut you need to do everything ..
kgoodson

Off Topic - Subclipse observation

2006-07-19 Thread Simon Laws

I have just worked out why I have observed confusing behaviour with
subclipse. I am playing with Jeremy's new web site layout in the sandbox so
wanted to update to his latest files.

I have the tuscany project checked out in my workspace so I navigated to
sandbox/site, right clicked to team/synchronize with repository
This poped up the team synchronize view with something like the following
tree view on the left hand side

tuscany
  sandbox/site
  sandbox/site/site-author
 some files
  sandbox/site/site-deploy
 some more files

I wanted all this stuff so I clicked at the top level and selected update.

What this appears to do is update to whole of the tuscany project not just
the subset of files shown to be different in the synchronize view. This
leads to a VERY long update which invariably fails. As it fails for me so
often before it actually starts downloading anything this took me a few goes
to work out what was going on.
What I have to do is select each directory in this view and ask it to be
updated individually.

I have a slightly old version so I'm going to upgrade to see if that changes
the behaviour.


Re: Tuscany Overview Block Diagram

2006-07-20 Thread Simon Laws

Hi Venkata

I'm just making some changes to the overview diagram so that it covers more
than Java. Do you have the original source. What app did you use? Am just
making changes in a bit editor at the mo so I remember what I want but would
be good to do it properly.

S

On 7/11/06, Venkata Krishnan [EMAIL PROTECTED] wrote:


Luciano,

My sincere apologies.  I left that out since I don't know much of the DAS
landscape in Tuscany.  However, I have now included that.  Please let me
what I have stated there sounds ok.

Finally, I wish to again reiterate that the diagram that I have put in is
just to trigger some ideas to what we might ultimately host on the
web-site.  For example I want to be able to position blocks that represent
databindings, transport bindings and various containers.  Right now all of
it is bundled up.

Thanks

- Venkat



On 7/11/06, Luciano Resende [EMAIL PROTECTED] wrote:

 Hi

Looking at this, we are missing DAS component, that would be well
 represented as a parallel box (to the left) of SDO box. Could you please
 add
 that to the diagram you created ?


 On 7/10/06, Venkata Krishnan  [EMAIL PROTECTED] wrote:
 
  Hi,
 This is a vague mental map of Tuscany and not what I wish to put in
 the
  site.  This is just to trigger some perspectives to the what we can
 present
  in the site.  The level of aggregation is pretty high in this
 diagram.  I am
  sure we can explode the blocks a little further or position them
 differently
  to provide a better picture of Tuscany.
 
  If not anything I hope to atleast correct what I am imagining of
 Tuscany
  :-)
 
  Thanks.
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 


 --
 Regards

 Luciano Resende



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





Re: Tuscany Overview Block Diagram

2006-07-20 Thread Simon Laws

Actually I got a little confused here as we now have Davids top level
diagram also. I have the source for that so I'll fiddle there a bit. What I
want to do is get the diagrams in some kind of possition in the new website
layout so we can see where they fit and whether the diagrams are
appropriate. The details of the diagrams can of course still be changed
going forward.

S

On 7/20/06, Simon Laws [EMAIL PROTECTED] wrote:


Hi Venkata

I'm just making some changes to the overview diagram so that it covers
more than Java. Do you have the original source. What app did you use? Am
just making changes in a bit editor at the mo so I remember what I want but
would be good to do it properly.

S


On 7/11/06, Venkata Krishnan [EMAIL PROTECTED] wrote:

 Luciano,

 My sincere apologies.  I left that out since I don't know much of the
 DAS landscape in Tuscany.  However, I have now included that.  Please let me
 what I have stated there sounds ok.

 Finally, I wish to again reiterate that the diagram that I have put in
 is just to trigger some ideas to what we might ultimately host on the
 web-site.  For example I want to be able to position blocks that represent
 databindings, transport bindings and various containers.  Right now all of
 it is bundled up.

 Thanks

 - Venkat



 On 7/11/06, Luciano Resende  [EMAIL PROTECTED] wrote:
 
  Hi
 
 Looking at this, we are missing DAS component, that would be well
  represented as a parallel box (to the left) of SDO box. Could you
  please add
  that to the diagram you created ?
 
 
  On 7/10/06, Venkata Krishnan  [EMAIL PROTECTED] wrote:
  
   Hi,
  This is a vague mental map of Tuscany and not what I wish to put
  in the
   site.  This is just to trigger some perspectives to the what we can
  present
   in the site.  The level of aggregation is pretty high in this
  diagram.  I am
   sure we can explode the blocks a little further or position them
  differently
   to provide a better picture of Tuscany.
  
   If not anything I hope to atleast correct what I am imagining of
  Tuscany
   :-)
  
   Thanks.
  
  
  -
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
  
  
  
 
 
  --
  Regards
 
  Luciano Resende
 
 

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






New site layout

2006-07-20 Thread Simon Laws

I'm getting a bit confused about the various diagrams and updates proposed
for the new website layout so I collected them all together. Well the ones I
know about at least. Apologies for any I have missed. The author files are
attached to Kelvin's JIRA (https://issues.apache.org/jira/browse/TUSCANY-568).
These files belong in sandbox/site. If you want a quick peek the publish
files are also attached to the JIRA for information.

The issue that we have to tackle convincingly is that we are more than a
Java project. So on the one hand we want to dive into the details of
SCA/SDO. On the other we want to explore what Java and C++ implementations
provide. Difficult to do clearly through a single diagram.  I have had a go
at solving this by putting language specific links on the main page.
Thoughts?

We also have to get the content right of course so maybe people can comment
on what they think the appropriate level of content in the various sections
is now that we have some sections with something in.

Regards

Simon


Re: Diagram Drafts

2006-07-21 Thread Simon Laws

Hi Rick

I tried to put together all the diagrams I had seen and spin up a version of
the new site layout. Unfortunately my mail describing this took 7 hours to
either get out of our local systems or be reflected by the Apache mail list.
So apologies if we have overlapped. The work is attached to this JIRA (
https://issues.apache.org/jira/browse/TUSCANY-568). I think Pete was
applying it.

Regards

Simon

On 7/20/06, Rick [EMAIL PROTECTED] wrote:


Trying to get some of this stuff together. I'm moving in the DAS stuff
from Luciano but that seemed very limited and a lot missing. It also has
references to microsoft mso objects that need to go.
I put in Venkata diagram that is clickable to the technologies.  I'll
try to replace that with David's work.  Is this at a state where we are
relatively happy with this? I rather not do the image map a zillion
times if you get my drift.
kelvin goodson wrote:
 I've added some embrionic SDO stuff as a patch in Tuscany 568. Would
some
 kind committer like to put it up for me please?

 Are we all still aiming to get this replacement live before OSCon?

 If so I'll put some more focus into bringing across the fundamental
 bulk of
 SDO  material from the existing site,  and making things prettier, but
 I'm
 reluctant to spend all my time between now and travelling to OSCon on
 this
 if the likelihood is that we won't switch over in the near term.

 On 7/19/06, Luciano Resende [EMAIL PROTECTED] wrote:

 So, If i'm guessing right, the idea is to have this diagram on the main
 page, and once a user clicks on a link, let's say DAS, it would go to
 a DAS
 overview page ? So we could probably make each component that is
 listed on
 the tuscany web site outline to have an overview page and redirect
the
 user to that page when a component is clicked...As long as that page
 is not
 a text only one :)

 I have a proposal for the DAS content on the attached DAS overview.zip


 I'd need some help on updating the diagram using the same tool David is
 using, as it looks like MAC only...

 And I'll build the object diagram for DAS to be part of the DAS
Overview
 as well...

 Thanks
 - Luciano


 On 7/19/06, Jim Marino  [EMAIL PROTECTED] wrote:
 
  Cool - thanks!
 
  On Jul 19, 2006, at 12:35 PM, David Wheeler wrote:
 
   oh, ok.
   Lets try this agian zipped.
  
   -David Wheeler
  
   On 7/19/06, Jim Marino  [EMAIL PROTECTED]  wrote:I found
out
   yesterday the list strips PDFs but if you zip them it
   goes through.
  
   Jim
  
  
   On Jul 19, 2006, at 12:22 PM, David Wheeler wrote:
  
Sure thing Jim.
   
Should be attached
   
On 7/19/06, Jim Marino  [EMAIL PROTECTED] wrote: Hi
David,
   
Is there any chance you can pdf it?
   
Jim
   
On Jul 19, 2006, at 11:56 AM, David Wheeler wrote:
   
 The original format is an Omnigraffle document, but I have
   attached
 a zip that contains the graffle as well as copies in svg and
   visio.

 I modefied it to better reflect the seperation of the Core
 Runtime
 and SDO / Tools, as well as adding Spring to the list of
   extensions.


 On 7/19/06, Rick [EMAIL PROTECTED] wrote: Also what is the
 source
 
 format... anyway you can upload it ?  send email
 attachment?

 David Wheeler wrote:
  Ah,
  I was under the impression that the other images posted so
far
 were for
  brain storming more than final drafts, Intented to be
 replaced.
 
  On 7/19/06, Rick [EMAIL PROTECTED]  wrote:
 
  David,
  I just checked in an overview that made it clickable with
 another image
  that was already posted.  When you click on a section it
 takes
 you to
  one of the  links on top.  I'm not partial, I can easily
 switch
 
 out.
 
  David Wheeler wrote:
   I've come up with a couple possible diagrams for thw
 website
  navigation:
  
   Tuscany Block Diagram-
  
  http://wiki.apache.org/ws-data/attachments/Tuscany(2f)
  http://wiki.apache.org/ws-data/attachments/Tuscany%282f%29
 ClickableImages/attachments/Tuscany-Block.png
 
  
  
   SCA Diagram-
  
 
 http://wiki.apache.org/ws-data/attachments/Tuscany(2f)
http://wiki.apache.org/ws-data/attachments/Tuscany%282f%29

 ClickableImages/attachments/Tusc-SCA-Diagram.png
 
  
  
   Let me know what you guys think.
  
   -David Wheeler
  
 
 
 

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


 Tuscany-Block.zip

   
  
 -
 To unsubscribe, e-mail: [EMAIL 

Re: [C++/Java] Interop update

2006-07-21 Thread Simon Laws

I've got to that age where I've started replying to my own mails. Oh dear.

Looking back at the JIRAs raised when doing the interop testing a couple of
weeks ago I may have missed a detail. When trying to get round JIRA505,
which describes the problem with having xsi:type in the wrapper element, I
also inadvertently made a temporary change to stop C++ producing duplicate
namespace definitions. This may be a problem in its own right. I have raised
a separate JIRA (http://issues.apache.org/jira/browse/TUSCANY-570).

Also, with JIRA505 itself, comments from the SDO team indicate that SCA/Java
may be doing something slightly strange with the way it loads types in at
configuration time ready for when SOAP messages are received. How do I
reclassify this bug to associate it with Java/SCA also so that it doesn't
fall between the SCA and SDO teams? I realize that this stuff is a little in
flux at the moment due to the changes in head but we still need to make
interop work when head settles down again.

Regards

Simon

On 6/29/06, Simon Laws [EMAIL PROTECTED] wrote:


Ok, I had some success over the last couple of days in getting C++ SCA to
talk to Java SCA. The executive summary is that we got a message from C++
client to C++ SCA service on to a Java SCA service and all the way back
again. Yippeee.

The scenario is based on the BigBank for C++ sample that Ed has been
working on. Here is what we had to do to make it work...

The sample is as follows.

C++ Client --  C++ AccountService/AccountDataService  -- Java
StockQuoteService

The intention is to add a PHP client in the future but that is not there
yet. In theory we could also add the Java BB client to the front end but the
java interface to BB was more complex that we wanted to tackle in the first
instance so that is something else that could be done if we choose.

We chose to make a new Java StockQuoteService as the interface is so
simple. We took the external WSDL and implemented that, i.e. the float
getQuote (String) interface.

The current Java Big Bank sample does provide a local Java
StockQuoteService implementation but it seems that  this has a  slightly
different interface, i.e. it implements getQuotes which takes and returns
arrays. Anyhow we made a new external service which is in itself an SCA
module with a java implementation and exposing a service with the getQuote
interface. We also made a java client to test this with. There are no
patches for these yet as we are not sure where to put them. My vote is to
put them in the java/testing/interop dir but am open to suggestions.

The C++ BB sample is expecting an external service with the getQuote
interface so we changed the sca.module file to point to the new Java SCA
StockQuoteService running in the Java M1 configured tomcat container.

There were a few problems along the way to getting a complete end to end
run.

1/ The use of doc/lit/wrapped caused confusion in the first instance and
combined with the outstanding problem that C++/SDO cannot handle root
elements with only simple types in (
http://issues.apache.org/jira/browse/TUSCANY-488) there was some debate
about what the WSDL for the account service should look like. This is an
except of what we ended up with for the type descriptions...

  xsd:complexType name=GetAccountReportType
xsd:sequence
xsd:element name=customerID
  xsd:complexType
xsd:sequence
  xsd:element name=customerID type=xsd:string /
/xsd:sequence
  /xsd:complexType
/xsd:element
/xsd:sequence
  /xsd:complexType

  xsd:element name=getAccountReport type=tns:GetAccountReportType/


  xsd:complexType name=AccountReport
   xsd:sequence
xsd:element name=checking type=tns:CheckingAccount
  maxOccurs=unbounded/
xsd:element name=savings type=tns:SavingsAccount
  maxOccurs=unbounded/
xsd:element name=stocks type=tns:StockAccount
  maxOccurs=unbounded/
   /xsd:sequence
   /xsd:complexType


   xsd:element name=getAccountReportResponse
 xsd:complexType
   xsd:sequence
 xsd:element name=accountReport type=tns:AccountReport/
   /xsd:sequence
 /xsd:complexType
   /xsd:element

The odd extra level of CustomerId came from the confusion around 488 but I
believe could be removed (http://issues.apache.org/jira/browse/TUSCANY-507)
but the client has been coded this way currently so we didn't try and fix
it.

2/  Another thing to note about the WSDL is the use of anonymous types. My
preference is not to do this by default but of this doesn't work at present
( http://issues.apache.org/jira/browse/TUSCANY-500 ).

3/ Changed GetQuote to getQuote in
StockQuoteService_StockQuoteExternal_Proxy.cpp and associated
StockQuoteExternal files (
http://issues.apache.org/jira/browse/TUSCANY-508)

4/ Axis2Client.cpp ln 282 LOGINFO_2 causes an edna in the case  where  the
server  being called  returns an error.  I changed this to a LOGINFO, i.e.
no var args, and carried on. I didn't go back

Re: [C++/Java] Interop update

2006-07-21 Thread Simon Laws

Hi Frank,

Thanks for that. How did you do it. I looked at the JIRA and I could see how
you change the category like that? Is it a committer thing?

Regards

Simon

On 7/21/06, Frank Budinsky [EMAIL PROTECTED] wrote:


Simon,

I reassigned TUSCANY-505 to the SCA component for further investigation.

Frank.

Simon Laws [EMAIL PROTECTED] wrote on 07/21/2006 07:44:35 AM:

 I've got to that age where I've started replying to my own mails. Oh
dear.

 Looking back at the JIRAs raised when doing the interop testing a couple
of
 weeks ago I may have missed a detail. When trying to get round JIRA505,
 which describes the problem with having xsi:type in the wrapper element,
I
 also inadvertently made a temporary change to stop C++ producing
duplicate
 namespace definitions. This may be a problem in its own right. I have
raised
 a separate JIRA (http://issues.apache.org/jira/browse/TUSCANY-570).

 Also, with JIRA505 itself, comments from the SDO team indicate that
SCA/Java
 may be doing something slightly strange with the way it loads types in
at
 configuration time ready for when SOAP messages are received. How do I
 reclassify this bug to associate it with Java/SCA also so that it
doesn't
 fall between the SCA and SDO teams? I realize that this stuff is a
little in
 flux at the moment due to the changes in head but we still need to make
 interop work when head settles down again.

 Regards

 Simon

 On 6/29/06, Simon Laws [EMAIL PROTECTED] wrote:
 
  Ok, I had some success over the last couple of days in getting C++ SCA
to
  talk to Java SCA. The executive summary is that we got a message from
C++
  client to C++ SCA service on to a Java SCA service and all the way
back
  again. Yippeee.
 
  The scenario is based on the BigBank for C++ sample that Ed has been
  working on. Here is what we had to do to make it work...
 
  The sample is as follows.
 
  C++ Client --  C++ AccountService/AccountDataService  -- Java
  StockQuoteService
 
  The intention is to add a PHP client in the future but that is not
there
  yet. In theory we could also add the Java BB client to the front end
but the
  java interface to BB was more complex that we wanted to tackle in the
first
  instance so that is something else that could be done if we choose.
 
  We chose to make a new Java StockQuoteService as the interface is so
  simple. We took the external WSDL and implemented that, i.e. the
float
  getQuote (String) interface.
 
  The current Java Big Bank sample does provide a local Java
  StockQuoteService implementation but it seems that  this has a
slightly
  different interface, i.e. it implements getQuotes which takes and
returns
  arrays. Anyhow we made a new external service which is in itself an
SCA
  module with a java implementation and exposing a service with the
getQuote
  interface. We also made a java client to test this with. There are no
  patches for these yet as we are not sure where to put them. My vote is
to
  put them in the java/testing/interop dir but am open to suggestions.
 
  The C++ BB sample is expecting an external service with the getQuote
  interface so we changed the sca.module file to point to the new Java
SCA
  StockQuoteService running in the Java M1 configured tomcat container.
 
  There were a few problems along the way to getting a complete end to
end
  run.
 
  1/ The use of doc/lit/wrapped caused confusion in the first instance
and
  combined with the outstanding problem that C++/SDO cannot handle root
  elements with only simple types in (
  http://issues.apache.org/jira/browse/TUSCANY-488) there was some
debate
  about what the WSDL for the account service should look like. This is
an
  except of what we ended up with for the type descriptions...
 
xsd:complexType name=GetAccountReportType
  xsd:sequence
  xsd:element name=customerID
xsd:complexType
  xsd:sequence
xsd:element name=customerID type=xsd:string /
  /xsd:sequence
/xsd:complexType
  /xsd:element
  /xsd:sequence
/xsd:complexType
 
xsd:element name=getAccountReport
type=tns:GetAccountReportType/
 
 
xsd:complexType name=AccountReport
 xsd:sequence
  xsd:element name=checking type=tns:CheckingAccount
maxOccurs=unbounded/
  xsd:element name=savings type=tns:SavingsAccount
maxOccurs=unbounded/
  xsd:element name=stocks type=tns:StockAccount
maxOccurs=unbounded/
 /xsd:sequence
 /xsd:complexType
 
 
 xsd:element name=getAccountReportResponse
   xsd:complexType
 xsd:sequence
   xsd:element name=accountReport type=tns:AccountReport/
 /xsd:sequence
   /xsd:complexType
 /xsd:element
 
  The odd extra level of CustomerId came from the confusion around 488
but I
  believe could be removed
(http://issues.apache.org/jira/browse/TUSCANY-507)
  but the client has been coded this way currently so we didn't try and
fix
  it.
 
  2/  Another thing to note about

Scenarios: was Using Scenarios

2006-07-21 Thread Simon Laws

I believe there is some agreement about using scenarios so I've started a
new thread as the old was getting a little long

I got round to taking a look at the scenarios page on the wiki. Hope I'm
looking at the right place (
http://wiki.apache.org/ws/Tuscany/TuscanyJava/Scenarios#preview). This may
be a bit controversial but I'd like to have a few descriptions, scenarios,
samples (call them what you will) that take more of a business problem view
on the value of SCA. From there we can show the path to the individual
technical use cases mentioned. For example, we may expect the technical
reader to understand why JSON or Celtix are useful but we want the reader
(either inside or outside the project) to understand why there is value in
SCA in making these pluggable bindings. I.e. what role is SCA playing?

Any how I've done some very brief sketches. I'm completely happy if these
live on a separate page so they don't mess up the technical  scenarios. I'm
also happy to put some effort in to expand these thoughts if the team aren't
dead set against them.

Help and other thoughts most welcome of course.


Re: Tuscany Overview Block Diagram

2006-07-22 Thread Simon Laws

Agreed. One thing I think we need is a higher level diagram that puts the
single SCA runtime into the context of a SCA based system containing remote
references. There is something like this in the spec that shows a system
with composites and a reference to a remote web service. Maybe we can put
that at the top of the first page. I'll have a play and see how it looks.


Regards

Simon

On 7/20/06, Venkata Krishnan [EMAIL PROTECTED] wrote:


Right Simon, I guess David's picture is the one we must go forward with.
Just that we must also give some thoughts to the 'distribution' and
'integration' aspects and see how we can express this.  Chek my prev. mail
on what I mean by this.

Thanks

- Venkat



On 7/20/06, Simon Laws [EMAIL PROTECTED] wrote:

 Actually I got a little confused here as we now have Davids top level
 diagram also. I have the source for that so I'll fiddle there a bit.
What
 I
 want to do is get the diagrams in some kind of possition in the new
 website
 layout so we can see where they fit and whether the diagrams are
 appropriate. The details of the diagrams can of course still be changed
 going forward.

 S

 On 7/20/06, Simon Laws [EMAIL PROTECTED] wrote:
 
  Hi Venkata
 
  I'm just making some changes to the overview diagram so that it covers
  more than Java. Do you have the original source. What app did you use?
 Am
  just making changes in a bit editor at the mo so I remember what I
want
 but
  would be good to do it properly.
 
  S
 
 
  On 7/11/06, Venkata Krishnan [EMAIL PROTECTED] wrote:
  
   Luciano,
  
   My sincere apologies.  I left that out since I don't know much of
the
   DAS landscape in Tuscany.  However, I have now included
that.  Please
 let me
   what I have stated there sounds ok.
  
   Finally, I wish to again reiterate that the diagram that I have put
in
   is just to trigger some ideas to what we might ultimately host on
the
   web-site.  For example I want to be able to position blocks that
 represent
   databindings, transport bindings and various containers.  Right now
 all of
   it is bundled up.
  
   Thanks
  
   - Venkat
  
  
  
   On 7/11/06, Luciano Resende  [EMAIL PROTECTED] wrote:
   
Hi
   
   Looking at this, we are missing DAS component, that would be
well
represented as a parallel box (to the left) of SDO box. Could you
please add
that to the diagram you created ?
   
   
On 7/10/06, Venkata Krishnan  [EMAIL PROTECTED] wrote:

 Hi,
This is a vague mental map of Tuscany and not what I wish to
 put
in the
 site.  This is just to trigger some perspectives to the what we
 can
present
 in the site.  The level of aggregation is pretty high in this
diagram.  I am
 sure we can explode the blocks a little further or position them
differently
 to provide a better picture of Tuscany.

 If not anything I hope to atleast correct what I am imagining of
Tuscany
 :-)

 Thanks.


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



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






Re: Comparison between live tuscany website and what's being proposed as part of Tuscany-568

2006-07-26 Thread Simon Laws

Starting to look good. I still have the source for the verview/cpp/java
imagesI made tbased on David's diagram.  Problem is they are  visio
diagrams. I feel that I should attach to the JIRA for safe keeping but
haven't got rounf to try converting to another format. I will have a quick
look over the next 30 mins and give the new site a once over also.

Regards

Simon

On 7/26/06, Rick [EMAIL PROTECTED] wrote:


I may be miss interpreting or reading too much in what you stated. But I
kindly request that patches and updates be to the
tuscany\sandbox\site\site-author files. That they've been run through
the build tool ok using the tuscany\sandbox\site\build script.  It's not
needed to include in the patch/update the site-publish.

Also I'd like to get the source for the images checked in so others can
edit.  And a few lines what tools (openoffice?) was or could be used to
edit them maybe a readme in the images directory.
Thanks

kelvin goodson wrote:
 I'll try to get some more SDO content done in any spare moments while
 here
 at OSCon.  I've reformatted the SDO Java overview that's currently on
the
 WIKI so that its suitable for dropping in,  but I haven't got time to
 fix up
 all the links riight now,  so hopefully I'll put a patch up later today.

 On 26/07/06, Jim Marino [EMAIL PROTECTED] wrote:

 Rick,

 This is a major improvement over what we currently have and I really
 like how things have been cleaned up and streamlined. I'm sure I will
 have some suggestions in the furture but I agree this should be
 published ASAP assuming others agree.

 Some minor comments that we may want to consider at some point later
on:

 1. In the Java projects section, splitting things down a bit further
 among SCA, DAS and SDO. I think we should make it more apparent the
 technologies may be used as well as built independently. Within SCA,
 I think we may want to split this even further between extensions and
 core at some point.

 2. On the Java graphic, we should list more hosting platforms at some
 point (e.g. J2EE app servers, OSGi, whatever)

 Jim


 On Jul 26, 2006, at 6:35 AM, Rick wrote:

  I've added in the news, and moved reporting bugs as suggested,
  added a link to the blog and fixed several bad links.
  I didn't want the left menu to become cluttered,  so  I didn't put
  in the runtime stuff since I  was thinking that information would
  be added to the individual  Java,  C++,  DAS etc content pages.
  I'm of a different opinion, I think we should now get this sandbox
  site up live and use the opportunity that the OSCON BOF gives us to
  get first hand feedback.  What's the worse that can come of it ?
  People don't like this either?  Well should that be the case its
  best to get that information  now before we make it absolutely
  perfect.
  I'm really opposed to starting another effort of producing a hybrid
  of the two in a mad dash which is not where we wanted to go in the
  first place.
 
  Luciano Resende wrote:
  I took sometime today to evaluate what's available today on the
  live tuscany
  website and what's being proposed as part of Tuscany-568.
  Looks like couple page links on the Tuscany-568 are still not
  implemented (
  e.g page not found), but I'm assuming these issues are going to be
  fixed, so
  I concentrate on areas that are available today and missing on the
  new site
  structure.
 
  Categories:
 
  Tuscany: Looks like the new proposed site gets rid of News and
  Documentation
  sections, and adds License, ASF, Javadoc and TCK
 
  SCA Runtime for Java : Missing on the new site structure
 
  SDO for Java : Missing on the new site structure
 
  Relational Data Access Service for Java : Missing on the new site
  structure
 
  Sca Runtime for C++ : Missing on the new site structure
 
  SDO for C++: Missing on the new site structure
 
  Community: Reporting bugs moved to development (altough i think
  comunity in
  general is interested on this as well), Requirements missing,
  Commiters and
  Documentation section added
 
  Development: Java project, C++ Project and Building the site
  sections are
  missing. Added Roadmap, Source code, Code standards (link to
  wiki), Issue
  tracking (moved from Comunity) and dependencies
 
 
  As I think the main idea was to incorporate user feedback that our
  website
  had too many text and very little images, diagrams, etc I have the
  following
  suggestion to get a new and improved version on-line for OSCON
  timeframe :
 
- Maintain the current website outline navigation structure (the
  one
  available today on live tuscany website)
- Replace the main page with the one proposed on Tuscany-568
- Add an overview page for each module (e.g DAS overview with
  DAS diagram
  and high level object diagram), and the main page diagram would
  link to this
  module overview page
- On the SCA, SDO and DAS section on the left panel, remove the
  release
  link as they all point to same main download page.
 
  With this, i think we 

Re: Comparison between live tuscany website and what's being proposed as part of Tuscany-568

2006-07-26 Thread Simon Laws

I can't find an way to conver viso to open office that works. Tried most of
the suggestions I can find on the web. However the diagrams are not so
complicated that I can't redraw them by hand. If someone has already made
the conversion save me some effort and speak up now while I go and get some
food.

Simon

On 7/26/06, Simon Laws [EMAIL PROTECTED] wrote:


Starting to look good. I still have the source for the verview/cpp/java
imagesI made tbased on David's diagram.  Problem is they are  visio
diagrams. I feel that I should attach to the JIRA for safe keeping but
haven't got rounf to try converting to another format. I will have a quick
look over the next 30 mins and give the new site a once over also.

Regards

Simon


On 7/26/06, Rick [EMAIL PROTECTED] wrote:

 I may be miss interpreting or reading too much in what you stated. But I
 kindly request that patches and updates be to the
 tuscany\sandbox\site\site-author files. That they've been run through
 the build tool ok using the tuscany\sandbox\site\build script.  It's not

 needed to include in the patch/update the site-publish.

 Also I'd like to get the source for the images checked in so others can
 edit.  And a few lines what tools (openoffice?) was or could be used to
 edit them maybe a readme in the images directory.
 Thanks

 kelvin goodson wrote:
  I'll try to get some more SDO content done in any spare moments while
  here
  at OSCon.  I've reformatted the SDO Java overview that's currently on
 the
  WIKI so that its suitable for dropping in,  but I haven't got time to
  fix up
  all the links riight now,  so hopefully I'll put a patch up later
 today.
 
  On 26/07/06, Jim Marino [EMAIL PROTECTED] wrote:
 
  Rick,
 
  This is a major improvement over what we currently have and I really
  like how things have been cleaned up and streamlined. I'm sure I will
  have some suggestions in the furture but I agree this should be
  published ASAP assuming others agree.
 
  Some minor comments that we may want to consider at some point later
 on:
 
  1. In the Java projects section, splitting things down a bit further
  among SCA, DAS and SDO. I think we should make it more apparent the
  technologies may be used as well as built independently. Within SCA,
  I think we may want to split this even further between extensions and

  core at some point.
 
  2. On the Java graphic, we should list more hosting platforms at some
  point (e.g. J2EE app servers, OSGi, whatever)
 
  Jim
 
 
  On Jul 26, 2006, at 6:35 AM, Rick wrote:
 
   I've added in the news, and moved reporting bugs as suggested,
   added a link to the blog and fixed several bad links.
   I didn't want the left menu to become cluttered,  so  I didn't put
   in the runtime stuff since I  was thinking that information would
   be added to the individual  Java,  C++,  DAS etc content pages.
   I'm of a different opinion, I think we should now get this sandbox
   site up live and use the opportunity that the OSCON BOF gives us to
   get first hand feedback.  What's the worse that can come of it ?
   People don't like this either?  Well should that be the case its
   best to get that information  now before we make it absolutely
   perfect.
   I'm really opposed to starting another effort of producing a hybrid

   of the two in a mad dash which is not where we wanted to go in the
   first place.
  
   Luciano Resende wrote:
   I took sometime today to evaluate what's available today on the
   live tuscany
   website and what's being proposed as part of Tuscany-568.
   Looks like couple page links on the Tuscany-568 are still not
   implemented (
   e.g page not found), but I'm assuming these issues are going to be
   fixed, so
   I concentrate on areas that are available today and missing on the
   new site
   structure.
  
   Categories:
  
   Tuscany: Looks like the new proposed site gets rid of News and
   Documentation
   sections, and adds License, ASF, Javadoc and TCK
  
   SCA Runtime for Java : Missing on the new site structure
  
   SDO for Java : Missing on the new site structure
  
   Relational Data Access Service for Java : Missing on the new site
   structure
  
   Sca Runtime for C++ : Missing on the new site structure
  
   SDO for C++: Missing on the new site structure
  
   Community: Reporting bugs moved to development (altough i think
   comunity in
   general is interested on this as well), Requirements missing,
   Commiters and
   Documentation section added
  
   Development: Java project, C++ Project and Building the site
   sections are
   missing. Added Roadmap, Source code, Code standards (link to
   wiki), Issue
   tracking (moved from Comunity) and dependencies
  
  
   As I think the main idea was to incorporate user feedback that our
   website
   had too many text and very little images, diagrams, etc I have the

   following
   suggestion to get a new and improved version on-line for OSCON
   timeframe :
  
 - Maintain the current website outline navigation

Re: [C++ SCA] Language bindings embedding the runtime

2006-08-02 Thread Simon Laws

That's a great idea Pete. I would also like to add that we are just starting
to think about SCA in PHP and is would seem sensible to reuse the work you
have done in C++. So if we could also engineer the C++ implementation so
that it is easy to concume as the basis for another implementation, as well
as supporting different language bindings, that would be splendid.

In particular I'd probably like to be able to take parts of the
implementation because, for example, we may want the model but not all of
the binding framework. So having some clean separation of concerns inside of
the C++ implementation may be useful.

I'm not saying it isn't nicely layed out at the moment of course as I've
only just started looking at the code. On this point I've been making some
notes (attached to the wiki here
http://wiki.apache.org/ws/Tuscany/TuscanyCpp/InsideCppM1) about what I've
been finding out about how the C++ implemenation works currently. Maybe we
could extend this and then hatch a devious plan about how to refactor for
recursive composition, add new language bindings and  make it consumable.

Regards

Simon

On 8/2/06, Pete Robbins [EMAIL PROTECTED] wrote:


That sounds like an ineresting idea. I'll look into it.

Now that the release is out of the way I want to open up discussion on
here
about restructuring the C++ runtime to enable it to support multiple
language bindings (C++, PHP,...) and also to support the latest Assembly
Specification for the recursive model. I'm getting some thoughts together
to
kick this off.

Cheers,


On 02/08/06, ant elder [EMAIL PROTECTED] wrote:

 How about a C++ JavaScript extension to match the one we have in
Java/SCA?
 You can use SpiderMonkey [1] which also has E4X support and then we'd be
 able to switch SCA JavaScript components btw the Java and C++ runtimes.
 Using E4X would mean you don't have the databinding issues when using
web
 services as the data stays as XML, and you could show us how much faster
 your C++ runtime is compared to the Java one ;)

 [1] http://www.mozilla.org/js/spidermonkey/

   ...ant

 (sorry a bit late replying but I'm still catching up on mail)

 On 7/21/06, Andrew Borley [EMAIL PROTECTED] wrote:
 
  Hi,
 
  I've been loosely thinking about what it will take to provide extra
  language
  bindings to Tuscany SCA C++ and how that relates to providing the
 runtime
  as
  an extension within a language. I've put my early thoughts up on the
 wiki
  here:
 
http://wiki.apache.org/ws/Tuscany/TuscanyCpp/LanguageBindingsAndRuntimes
 
  I guess with the new spec there will be quite a lot of changes, so
this
  may
  all become redundant, but I was just thinking how I'd like to see
Python
  or
  Ruby components running alongside C++ ones (and, of course, Java ones
  too!)
  :-)
 
  Cheers
  Andy
 
 




--
Pete




Interop bug category

2006-08-03 Thread Simon Laws

Not sure who manages these things but can we have a top level bug category
for the Interop tests? I need to create a JIRA for additions to the tests.

Regards

Simon


Re: Interop bug category

2006-08-03 Thread Simon Laws

Many thanks ant.

S

On 8/3/06, ant elder [EMAIL PROTECTED] wrote:


Any committer can manage them. I've added you an 'Interop' component.

   ...ant

On 8/3/06, Simon Laws [EMAIL PROTECTED] wrote:

 Not sure who manages these things but can we have a top level bug
category
 for the Interop tests? I need to create a JIRA for additions to the
tests.

 Regards

 Simon






[Interop] Categorization of interop bugs

2006-08-07 Thread Simon Laws

Ant made an interop bug category for me so I would like to associate interop
related bugs with that (as well as with the components to which they
relate). Can a kindly committer oblige and categorize the following as
interop bugs alongside their original categorizations.


These bugs come from efforts to make C++ and Java interoperate in the
context of the BigBank sample.

Java
===
 http://issues.apache.org/jira/browse/TUSCANY-505
 http://issues.apache.org/jira/browse/TUSCANY-570

 (B.t.w - who is working on the WS binding for the new Java SCA runtime?
Would be useful to have a discussion about these two in the context of how
SDO is used. I haven't had a look in detail about how SDO was used by Java
SCA in M1 but there was something strange going on)

C++
===
 http://issues.apache.org/jira/browse/TUSCANY-511
 http://issues.apache.org/jira/browse/TUSCANY-510
 http://issues.apache.org/jira/browse/TUSCANY-509
 http://issues.apache.org/jira/browse/TUSCANY-508
 http://issues.apache.org/jira/browse/TUSCANY-507
 http://issues.apache.org/jira/browse/TUSCANY-500
 http://issues.apache.org/jira/browse/TUSCANY-491
 http://issues.apache.org/jira/browse/TUSCANY-488

The following bugs come from testing C++ SDO against the Interop test XML
schema and files.

C++
===
 http://issues.apache.org/jira/browse/TUSCANY-475
 http://issues.apache.org/jira/browse/TUSCANY-453
 http://issues.apache.org/jira/browse/TUSCANY-452
 http://issues.apache.org/jira/browse/TUSCANY-451
 http://issues.apache.org/jira/browse/TUSCANY-450
 http://issues.apache.org/jira/browse/TUSCANY-449
 http://issues.apache.org/jira/browse/TUSCANY-448
 http://issues.apache.org/jira/browse/TUSCANY-447
 http://issues.apache.org/jira/browse/TUSCANY-445
 http://issues.apache.org/jira/browse/TUSCANY-444

Thanks

Simon


Re: [C++] Debugging and printing SDO data structures

2006-08-07 Thread Simon Laws

I think that would be a splendid idea. When I was playing with big bank
(which I hope to get back to shortly) I ended up using the
SDOUtils:printDataObject() method at strategic points in the code. As you
say it's very difficult to tell what's going on in GDB.

Regards

Simon

On 8/7/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


I'm finding SDO DataObjects a little difficult to inspect with the GDB
debugger. Is there anything that could be done to help debuggers display
the contents of SDO DataObjects, properties and types?

Just an idea... but would it make sense to add to SDO DataObject a
string member containing its serialized contents, only when compiled
with the debug option maybe... Would that help?

Any thoughts?

--
Jean-Sebastien


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




Re: [C++] Debugging and printing SDO data structures

2006-08-08 Thread Simon Laws

Well you can construct expressions in gdb and have them execute but its not
as convenient as having the code do it for you. Taking both points of view
on board how about a function that you can call on the data object that
prints its contents out that is only compiled in for debug, i.e. subject of
a #define. Removes the need for the unitiated to go searching for the util
method but doesn't rely on the data object keeping a string representation
up to date on every change.

S

On 8/8/06, kelvin goodson [EMAIL PROTECTED] wrote:


For a Java/Eclipse environment there is the Expressions view in the
debug
perspective which can be used to execute a set of run-time supplied code
snippets each time the execution is paused , e.g. SDOUtil.printDataObject
(dob)
, so that pretty much gives the convenience of the embedded string
representation without the performance overhead (or for less frequent
update
you can use the Display view).  Do you have something similar in your
development environment?

On 07/08/06, Pete Robbins [EMAIL PROTECTED] wrote:

 I think the SDOUtils method is the way to go. Maintaining  a serialized
 form
 in the DO would killl performance as it would have to be re-serialized
on
 every change. I have a printDataObject and printTypes methods in SCA
which
 I
 think are better than the ones in SDOUtil ;-) Maybe we should add the
 extra
 function into SDOUtils.

 Cheers,


 On 07/08/06, Simon Laws [EMAIL PROTECTED] wrote:
 
  I think that would be a splendid idea. When I was playing with big
bank
  (which I hope to get back to shortly) I ended up using the
  SDOUtils:printDataObject() method at strategic points in the code. As
 you
  say it's very difficult to tell what's going on in GDB.
 
  Regards
 
  Simon
 
  On 8/7/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:
  
   I'm finding SDO DataObjects a little difficult to inspect with the
GDB
   debugger. Is there anything that could be done to help debuggers
 display
   the contents of SDO DataObjects, properties and types?
  
   Just an idea... but would it make sense to add to SDO DataObject a
   string member containing its serialized contents, only when compiled
   with the debug option maybe... Would that help?
  
   Any thoughts?
  
   --
   Jean-Sebastien
  
  
  
-
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
  
  
 
 


 --
 Pete




--
Best Regards
Kelvin Goodson




Re: [C++] A portable build system?

2006-08-10 Thread Simon Laws

You can use cygwin to do gcc compiles for windows. It comes with automake
(don't know what version) and can be integrated with Eclipse CDT.

S

On 8/9/06, Pete Robbins [EMAIL PROTECTED] wrote:


I believe automake can run on Windows using some linux portability layer
(I
forget what it's called). I'll need to look into it some more. We should
also see what other Apache c/C++ projects use.



On 09/08/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:

 I'm still in the process of (re)learning C++ and related GCC automake,
 configure etc. so maybe this is a dumb question.. but would there be any
 way to make our builds portable between Linux and Windows, instead of
 using completely different build systems, i.e. Automake on Linux and
 VC++ on Windows?

 --
 Jean-Sebastien


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




--
Pete




Re: [C++] A portable build system?

2006-08-10 Thread Simon Laws

You can make native windows dll's and executables. The last time I was
involved in this kind of build we actually used ant on windows and linux in
top of gcc (in cygwin for windows) to drive the build for the large number
of different systems we had to support (there were some strange HPC type
ones). IMHO though the result was rather too complicated. I don't know
automake but if you have it working well on linux it would be good to see
how well it supports a windows build before doing anything more exotic.

S

On 8/10/06, Pete Robbins [EMAIL PROTECTED] wrote:


On 10/08/06, Simon Laws [EMAIL PROTECTED] wrote:

 You can use cygwin to do gcc compiles for windows. It comes with
automake
 (don't know what version) and can be integrated with Eclipse CDT.

 S


That's the one! Does it produce dll's that run native on windows or does
the
output depend on other libraries?

--
Pete




Re: [C++] SCA Extensions

2006-08-16 Thread Simon Laws

On 8/16/06, Pete Robbins [EMAIL PROTECTED] wrote:




  This looks like a really good plan. I have two questions:
 
  1. Do we really need another XML file to describe the extension, name
  the library and associate it with an implementation type? As a first
  step at least, I think it would be great to have a very simple scheme
  where you just drop a library named implementation.python in a Tuscany
  extensions or plugins directory, or just name the library how you want
  but have in it an extern public functtion that will return the XSD
  QNames that the library understands?


 Yeah, I was thinking a drop it in a directory approach would be good,
 but
 I couldn't think how to expose the information we need - specifically
 naming
 the library/xsd file and/or having a set of known public functions is a
 good
 way to go. I will do this first - possibly an xml config file would also
 be
 useful - we should be able to support both?


Sebastien's suggestion is how I would do it. What we need is to define an
extensions spi.
We need a directory that contains the schema for the exensions. We will
load
all of these so the model loader can parse all the scdl into SDO.
We need an extensions directory where we will load any library  that is in
it. We then call the spi function which will return a list of XSD QNames
supported by the extension.
When the model loader encounters an extension it passes the SDO to a
method
in the extension library to deal with.

I'm about to hack about, I mean tidy up, the model loader code so I'd like
to take on this part of the extesnion story if that's ok with everyone?
I'll
come up with a suggested SPI.

Cheers,

--
Pete




Pete

Not sure I've got the extent of what you are suggesting.  So a couple of
queations. You are suggesting 3 directories.

1/ Model schema
2/ Extensions, i.e. libraries implementing the extension scaffolding.
3/ Components that are implemented according to the extension (or do these
just float around with the rest of the solution files)

Can we also consider that the extension might be contributing to the model
via annotations, over and above and information that is presented in XML
side files. So in my case I might have a component defined with something
like

implementation.php class=MyComponent source=MyComponent.php/

And I want the model to be completed based on the information in
MyComponent.php rather than MyComponent.componentType. So can we have
whatever the mechanism that loads componentTypes have a plug point into the
extension system so that annotation info can be loaded. I'm keen on this
because most developers in languages like Perl and PHP won't take too kindly
to having to write XML side files.

Regards

Simon


Re: [C++] SCA Extensions

2006-08-16 Thread Simon Laws

On 8/16/06, Andrew Borley [EMAIL PROTECTED] wrote:


On 8/16/06, Pete Robbins [EMAIL PROTECTED] wrote:

 
 
   This looks like a really good plan. I have two questions:
  
   1. Do we really need another XML file to describe the extension,
name
   the library and associate it with an implementation type? As a first
   step at least, I think it would be great to have a very simple
scheme
   where you just drop a library named implementation.python in a
Tuscany
   extensions or plugins directory, or just name the library how you
want
   but have in it an extern public functtion that will return the XSD
   QNames that the library understands?
 
 
  Yeah, I was thinking a drop it in a directory approach would be
good,
  but
  I couldn't think how to expose the information we need - specifically
  naming
  the library/xsd file and/or having a set of known public functions is
a
  good
  way to go. I will do this first - possibly an xml config file would
also
  be
  useful - we should be able to support both?


 Sebastien's suggestion is how I would do it. What we need is to define
an
 extensions spi.
 We need a directory that contains the schema for the exensions. We will
 load
 all of these so the model loader can parse all the scdl into SDO.
 We need an extensions directory where we will load any library  that is
in
 it. We then call the spi function which will return a list of XSD QNames
 supported by the extension.
 When the model loader encounters an extension it passes the SDO to a
 method
 in the extension library to deal with.

 I'm about to hack about, I mean tidy up, the model loader code so I'd
like
 to take on this part of the extesnion story if that's ok with everyone?
 I'll
 come up with a suggested SPI.


Sounds good - I'll work on the component language extension (
implementation.xxx) side of things:
1) An SPI to allow Tuscany to invoke a method/function in the extension.
Something like:
   void initialise(DataObjectPtr implXXXDO, mapstring, string
initParameters);
   void invoke(Operation operation);
2) An example wrapper that loads and runs a function in a Python module

Cheers
Andy




Don't you also need some way for the script engine, and particularly any
extensions that have been written to get back to the SCA context information
(i.e. the model) in the case the the script component makes subsequent calls
to downstream components?

Possibly part of the initialize although it looks like this is called on
each invocation. Is that right? Don't we need some higher level
initialization?

S


Re: [C++] SCA Extensions architecture

2006-08-18 Thread Simon Laws

On 8/17/06, Andrew Borley [EMAIL PROTECTED] wrote:


Pete,
Sounds good to me, I'll definately be interested in reviewing if you have
something to show before tomorrow (Friday) afternoon (I'm on holiday for
the
week after that). The Python stuff I've been doing will need fitting in to
the structure you've put together, so I'd be interested in seeing the
interfaces you're making for the CPP extension.
Once that's in place I guess we'll start looking at binding and interface
extensions, and then there's wiring policies, data bindings, etc, etc to
look at!

Cheers
Andy

On 8/17/06, Pete Robbins [EMAIL PROTECTED] wrote:

 I've started playing around with loading extension libraries to support
 other language extensions and so a wee bit of re-architecture has
cpp
 being an extension language. In other words I'm trying to make a core
that
 is not tied to cpp implementation. This core will roughly be a model
 loader
 in line with the assembly model spec with extensions for stuff like 
 implementation.cpp..  and a runtime for resolving wiring and locating
 services. This is nearly what we have now but without the cpp CI spec
api
 implmentation code (anything under runtime/core/src/osoa...).

 This will involve a bit of refactoring to remove the unnecessary
 dependencies from the core to the cpp specific code.

 What I expect to end up with is libraries for:
 tuscany_sca - the core assembly model and internal message structure
 tuscany_sca_cpp - the cpp language extension (extension functions for
 loading cpp model etc.)
 tuscany_sca_cpp_osoa - the client side functions defined by the C++
CI
 spec (ComponentContext etc.)

 I'm not yet sure if the latter 2 should be the same library, that will
 depend on their interdependencies.

 This is not a trivial change and it's tricky to break it down into
 sensible
 small chunks so I may start a branch/sandbox to play in for the
 moment...or
 if it suddenly all works I'll get it checked in to the trunk asap ;-)

 It's nearly there but will probably take another day or maybe 2 and it
 would
 probably be good for anyone else interested in the cpp code to review
it.
 It
 won't be near perfect but it will provide a good base for a more modular
 and
 extensible runtime.

 Cheers,


 Pete




Count me in too.  Very interested in reviewing the new layout. I'm
particularly interested in how you represent the component implementation
artifact like implementation.cpp as I want to understand how we mirror the
reference representation in an extension.

For example, in your restructuring exercise where is ServiceProxy going to
end up? I would like some core representation of the proxy (reference) so
that I can either use this natively or mirror it in user space in any
extension I write.

Anyhow I guess I need to wait to see the details of what you are proposing.
Are you going to be able to talk us through it?

Regards

Simon


Re: Sample framework

2006-08-18 Thread Simon Laws

On 8/18/06, ant elder [EMAIL PROTECTED] wrote:


There are quite a few old threads where we've discussed samples, here's
just
one of them:

http://mail-archives.apache.org/mod_mbox/ws-tuscany-dev/200604.mbox/[EMAIL 
PROTECTED]

If we're moving towards multiple Tuscany distributions targeted at
different
areas then i think its fine (and even desirable) for one of those
distributions to contain an entire host environment. One of the good
things
about the M1 release was that it really did make it easy for new users to
get started, just unzip and click on startup.

   ...ant

On 8/18/06, Jim Marino [EMAIL PROTECTED] wrote:


 On Aug 17, 2006, at 11:21 PM, ant elder wrote:

  I agree with Jervis, things just running out-of-box is much nicer
  for first
  time users than having to fiddle about editing config files.
 
  Would an alternative be to change the structure of the samples and
  move
  these technology specific samples into the extension that they use.
  For
  example, something like having a javascript folder that contained
  separate
  projects for the JavaScript container and each JavaScript sample.
  There
  would still be lots of helloworld samples, but not all in the one
  top level
  samples folder so wouldn't be quite so in your face.
 I like the idea of moving the samples into the extensions (except
 maybe the samples that use multiple extensions) and actually think it
 could correspond to Jeremy's proposal. This would allow us to
 compartmentalize things more which I think is going to be fundamental
 to scaling the project. I have several caveats for this though:

 - there is a clear distinction in the tree between the samples and
 runtime extension code. In other words, each sample project should
 not be a sibling to the project containing extension code but should
 go under a samples folder in separate projects
 - the extensions are individually built from the core projects and
 fairly autonomous per my previous email
 - samples are not built with the check-in build for extensions and
 are separately distributable

 In terms of end-user experience, I think things are going to vary
 greatly depending on the host environment. For example, in our
 standalone environment, things can be automated fairly easily:

 1. User downloads core distribution
 2. User downloads and drops in sample distribution and starts the
 standalone core
 3. Core reads the dependencies from the sample SCDL and pulls down
 the required extensions via the ArtifactFactory from a Maven
 repository. This would resolve the transitive closure of all
 extension dependencies. This would allow us to track dependencies for
 extension libraries such as Spring for free since most projects
 publish POMs to a Maven repo.
 4. If user chooses, they could avoid step 4 and just download the
 extension and plug it in

 Something similar to the above could be done for OSGi except the end
 user would just deploy a core bundle into an existing OSGi host such
 as Equinox they had installed.

 If we are deploying to a servlet container, things will likely be
 more complex but not too much:

 1. User downloads sample application and builds it using Maven, which
 retrieves the core as a dependency and bundles everything into a war.
 2 User deploys the sample war

 If we prepackaged every sample distribution so it could just be
 dropped in, I think we will wind up with a ton of packaging problems
 as core will need to be included in every one.

 I'm pretty firmly against distributions containing an entire host
 environment, such as Tomcat. I'd prefer we follow projects like
 Spring, Struts, WebWork, Hibernate (take your pick) and provide
 distributions which are simple to deploy into containers using some
 minimal configuration steps. My reason for this is partly practical.
 First, we should support deploying on a variety of host environments
 and having to rev versions would be a nightmare. Second, in most data
 centers I have come across, there is a standard image technologies
 must accommodate and they will not accept an bundle of stuff.


 Jim

 
...ant
 
  On 8/17/06, Liu, Jervis [EMAIL PROTECTED] wrote:
 
  One thing concerns me would be the out-of-box user experience. For
  a first
  time Tuscany user, don't you think it is more user friendly if
  users only
  need to follow the readme, go to a directory, run a common, then
  everything
  works out-of-box? Speaking in my experience, it does encourage me
  to explore
  a new product further if I can set up and run a typical helloworld
  sample
  successfully in 5 minutes without any coding. Well, maybe just me
  being too
  lazy... ;-)
 
  Cheers,
  Jervis
 
   -Original Message-
   From: Jeremy Boynes [mailto:[EMAIL PROTECTED]
   Sent: Thursday, August 17, 2006 6:54 AM
   To: tuscany-dev@ws.apache.org
   Subject: Sample framework
  
  
   We have had a rapid increase in the number of samples recently many
   of which do essentially the same thing. Some feedback from M1 also
   

Re: [C++] SCA Extensions architecture

2006-08-18 Thread Simon Laws

On 8/18/06, Pete Robbins [EMAIL PROTECTED] wrote:


Still very much in experimental stage but I recognize your concerns.
ServiceProxy is an interesting example. It really belongs with the
implementation.cpp but is currently in the core. Do we need this at all
for
other extensions or is there some other representation of the service?

more later...

Cheers,



On 18/08/06, Simon Laws [EMAIL PROTECTED] wrote:

 On 8/17/06, Andrew Borley [EMAIL PROTECTED] wrote:
 
  Pete,
  Sounds good to me, I'll definately be interested in reviewing if you
 have
  something to show before tomorrow (Friday) afternoon (I'm on holiday
for
  the
  week after that). The Python stuff I've been doing will need fitting
in
 to
  the structure you've put together, so I'd be interested in seeing the
  interfaces you're making for the CPP extension.
  Once that's in place I guess we'll start looking at binding and
 interface
  extensions, and then there's wiring policies, data bindings, etc, etc
to
  look at!
 
  Cheers
  Andy
 
  On 8/17/06, Pete Robbins [EMAIL PROTECTED] wrote:
  
   I've started playing around with loading extension libraries to
 support
   other language extensions and so a wee bit of re-architecture has
  cpp
   being an extension language. In other words I'm trying to make a
core
  that
   is not tied to cpp implementation. This core will roughly be a model
   loader
   in line with the assembly model spec with extensions for stuff like

   implementation.cpp..  and a runtime for resolving wiring and
locating
   services. This is nearly what we have now but without the cpp CI
spec
  api
   implmentation code (anything under runtime/core/src/osoa...).
  
   This will involve a bit of refactoring to remove the unnecessary
   dependencies from the core to the cpp specific code.
  
   What I expect to end up with is libraries for:
   tuscany_sca - the core assembly model and internal message structure
   tuscany_sca_cpp - the cpp language extension (extension functions
for
   loading cpp model etc.)
   tuscany_sca_cpp_osoa - the client side functions defined by the
C++
  CI
   spec (ComponentContext etc.)
  
   I'm not yet sure if the latter 2 should be the same library, that
will
   depend on their interdependencies.
  
   This is not a trivial change and it's tricky to break it down into
   sensible
   small chunks so I may start a branch/sandbox to play in for the
   moment...or
   if it suddenly all works I'll get it checked in to the trunk asap
;-)
  
   It's nearly there but will probably take another day or maybe 2 and
it
   would
   probably be good for anyone else interested in the cpp code to
review
  it.
   It
   won't be near perfect but it will provide a good base for a more
 modular
   and
   extensible runtime.
  
   Cheers,
  
  
   Pete



 Count me in too.  Very interested in reviewing the new layout. I'm
 particularly interested in how you represent the component
implementation
 artifact like implementation.cpp as I want to understand how we mirror
 the
 reference representation in an extension.

 For example, in your restructuring exercise where is ServiceProxy going
to
 end up? I would like some core representation of the proxy (reference)
so
 that I can either use this natively or mirror it in user space in any
 extension I write.

 Anyhow I guess I need to wait to see the details of what you are
 proposing.
 Are you going to be able to talk us through it?

 Regards

 Simon




--
Pete




Mmm, not sure. I was thinking that in the case of an extension that I would
want the C++ SCA model to reflect all of the components and associated
services and references that appear in the SCA configuration (whether that
be through SCDL or annnontations). Some (or all now you are making C++ an
extesnions) of the components are represented as extensions. Each extension
has to have some way of interacting with the bindings that C++ SCA provides
so needs to connect into the wrapper/proxy architecture provided. So I guess
what I'm saying is that I anticipated the runtime interface between
components implemented in extensions and the C++ SCA runtime, in particular
the bindings, to be via the proxy/wrapper route. I some cases the extension
may be able to use the core proxy/wrapper base system natively. In others
they may want to override it to provide language specific proxies and
wrappers. I may be talking complete twoddle here so correct me if tI'm going
off on a tangent.

As an aside I would like to have a mechanism whereby bindings can be
implemented in either an extension or in C++ SCA. In this way faciliites of
the extension environment can be used without recourse to C++ SCA if that is
more appropriate (what more appropriate means is TBD in my mind at present).
So I have anticiapted that this could be done by allowing the connection
between extension and core proxy/wrapper representations to be broken. I
have to admit that this is not a high priority for me just something that
could be useful down the line

Re: [C++] Requirements for a pluggable C++ Tuscany implementation

2006-08-22 Thread Simon Laws

On 8/22/06, Oisin Hurley [EMAIL PROTECTED] wrote:


[deletia]
js-d says:
  I've been thinking about this and wondering what the architecture
  of the runtime will be with many different plugins? Are you guys
  envisioning one big process with different (maybe incompatible?)
  libraries loaded in it? or a more distributed architecture with
  multiple processes?
  I must admit I've been toying with the idea of having multiple
  processes handling the various component implementation types and
  binding types, then it would be quite easy to bring them up/down...
  What do you think?

[deletia]
pr says:
 Not sure what the definition of incompatible is here. Is it, for
 instance,
 having two separate extension plugins that both provide a
 binding.ws? I
 think this is an interesting case and one we should try to support. Of
 course there would need to be some config outside of the Assembly
 specification to determine which one gets used. I see the jave folk
 discussing this very issue.

It's probably the case that we can't define what 'incompatible' means
upfront
except to say that bitter experience will provide :)  +1 on being
able to
resolve a choice from a number of binding providers what all can
support 'ws',
I think this is necessary right now, but I'm still a bit
uncomfortable with
binding.ws as being too general (not trying to start a new thread
here -
others are looking into this issue :)

[deletia]
  9. Plugins have versions, and dependencies on other plugins too.
 
 
  We may want to get there at some point, but I was not sure that we
  really needed this to start with... Would it make sense to stage
  this and start with a simple solution with no versions and no
  dependencies, and get into the whole versioning / dependency /
  coexistence of multiple versions etc. later?

 Simple solution, followed by dependencies, followed by versioning
 would work for me. We can learn from what OSGi does in terms of
 its management of these things and maybe emulate it to some extent.

 So: +1


 Having tried to retro-fit versioning into many software products
 over my
 many years I would say this is one to think about up front even if
 you don't
 implement it. It is very easy to make it virtually impossible to
 this later
 without majot restructure!

I'm comfortable with starting off using something like a {namespace,
name,
version} triple as a unique identifier for a plugin - or even a {name,
version} pair with the proviso that the name is structure ala java
package
names, eclipse plugin names etc.

We can start off with the basic resolution approaches of exact-match and
latest-match on the version part and then later on develop at-least-
match
and range-match if they are really necessary.

I've seen lots of +1s on this thread, which is nice, and I've just found
out that I can edit the Tuscany wiki, so I'll summarize to there -- the
page will be http://wiki.apache.org/ws/Tuscany/TuscanyCpp/
PluggableCppRuntime
it'll be later today before I get to it.

  cheers
   --oh



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




Hi guys

Had a long weekend so just picking up this thread. Looks like a really
useful discussion and I too like the requirement driven approach. I have a
few to add/comment on. It seems that a plugin resolves to a component type
or binding, i.e. what the assembly model refers to as extensions, so that is
what I have in my mind.


6. There will need to be some kind of manager thingie to keep
track of plugins and their state at runtime.


Extensions should be able to constribute information to the in memory model,
for example, via annotations. So we need an API that allows either the model
to be updated or the extension to he scanned for additional information on
load. Conversely we should be able to inject information into the extension
based on model configuration. It may be useful to instigate a model of
extensions in the C++ core/model (the manager thingie) as a place where this
system interface can be controlled.



I've been thinking about this and wondering what the architecture of the
runtime will be with many different plugins? Are you guys envisioning
one big process with different (maybe incompatible?) libraries loaded in
it? or a more distributed architecture with multiple processes?
I must admit I've been toying with the idea of having multiple processes
handling the various component implementation types and binding types,
then it would be quite easy to bring them up/down... What do you think?


I don't object to having multiple processes. It could be a real help with
extensions that assume different models of operations, for example, PHP
always assumes a one shot approach to processing requrests. Services/objects
are not maintained across calls. However having said that I'm not sure that
the infrastructure requirements differ a great deal as we switch from a
single 

Re: [SDO for C++] Opinions Requested: Adopting stdcxx as C++ library

2006-08-30 Thread Simon Laws

On 8/30/06, Pete Robbins [EMAIL PROTECTED] wrote:


On 30/08/06, Andrew Borley [EMAIL PROTECTED] wrote:

 On 8/30/06, Geoffrey Winn [EMAIL PROTECTED] wrote:
 snip. Using the Apache stdcxx library instead would provide

  us with a number of benefits


 Agreed. +1 for this.


yup!

The one difficulty is that once SDO links against the stdcxx library then
  all users of SDO must also do so. I think this gives us two options
 
  1. Just do it, and live with the consequences. In this case we will
(one
  way
  or another) pre-req stdcxx on all platforms, and all users of SDO for
 C++
  will be required to use stdcxx as their C++ standard library.
 
  2. Create a build time switch that chooses between whatever the
platform
  offers (ie the current arrangement) and stdcxx. Presumably defaulting
to
  the
  current arrangement.
 
  I prefer option 2 but obviously it somewhat complicates our build
 process
  and perhaps more seriously adds another complication to our test
cases.
 
  What does the team think?


My preference is also for option 2 as it gives our users more choice.
 However, we may find ourselves #ifdef-ing chunks of code out to get
around
 the aforementioned differences in libraries (see Pete's map problem on
 Windows yesterday..) which will make code less readable, etc. I think
 starting this with the SDO codebase is a good idea, as this is a
 relatively
 standalone set of code, and will give us a good idea what the issues are
 with this approach.


Defintiely option 2!

A side question - SDO has a couple of pre-reqs (libxml2, etc) - will these
 need to be rebuilt against stdcxx as well?


libxml2 is C rather than c++ so I don't think this is an issue. Same for
Axis2C for the sdo_axiom utility.

Cheers,

--
Pete




Generall I +1 the move to stdcxx and specifically to option 2 because...

In PHP SDO land, which of course uses Tuscany SDO, we tend to have faily
autonomous builds, i.e. we expect our users to be able to download the SDO
package and build it without having to download too much other stuff. At
least other stuff that isn't already known to the PHP build system . We
already depend on libxml2, iconv  zlib but these are generally available in
linux at stable versions. If we add a mandatory dependency on the apache
incubator version of stdxx then we have added another barrier to entry as
there is another packge to download that people may not be familiar with and
may cause clashes with other extensions that use other solutions. We won't
know until we try it. It may also cause problems for the automatic windows
build that takes place on the PECL servers outside of our control. I don't
really know the details of this though so would have to look into it.

Simon


[C++] VC7 SCA project

2006-08-31 Thread Simon Laws

Does anyone have a version of the VC7 project for SCA that matches the
reorganized code? If not I'll make one

Regards

Simon


Re: REST bindings for Tuscany SCA runtime

2006-08-31 Thread Simon Laws

On 9/1/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Simon Laws wrote:
 On 8/31/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:

 Oisin Hurley wrote:
  I am not sure I understand the issue with create/delete (except if
  PUT and DEL are disabled). Posting/putting to a URL that doesn't
  exist yet to create that resource can be troubling. Is that the
  issue? Are you looking for some kind of factory service pattern to
  create resources?
 
  Or am I completely mis-understanding the issue you're describing
  here? :)
 
  Apologies for not making the context clearer - however, you've got
the
  point:  there needs to be either a resource factory, or a generic
  resource
  holder to process create/delete of resources. I think I was
attempting
  to say that a first cut would be ok to support just the GET/POST
 (as the
  most pressing scenarios) and then the PUT/DEL and factory approach
 could
  follow as a feature improvement.
 
  I will put up a wiki summary on this thread.
 
   cheers
--oh
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 

 Yes, GET/POST first, PUT/DELETE later sounds reasonable to me.

 I've been struggling myself with the question on whether or not we need
 some kind of resource holder/factory to create resources, and I'm now
 starting to think that it really depends on how you view your
resources.

 Just a wild thought here...

 If you view your resources as objects, you'll probably say that you
need
 a factory to do customerFactory-create(http:///customer/1234;).
 Then you'll say customers-get(http:///customer/1234;) to retrieve
 your customer object.

 If on the other hand you view the Web as a giant distributed file
 system, then it's not so shocking to say:
 customers-createFile(http:///customer1234;);
 customers-getFile(http://./customer1234;);

 Thoughts?

 --
 Jean-Sebastien


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


 Hi Sebastien

 It's not clear that there is a difference between customers and
 customerFactory in your example. You are saying that there is some
 resource
 that causes the correct interpretation of PUT type requrests
 w.r.tgenerating/recording new resources that represent customers. This
 resource
 itself may, for example, represent the list of customers it has
 created in
 response to GET type requests. The relationship between Customers and
 Customer is not a wired relationship in the SCA sense but  a resource
 relationship as dictated by the URLs used to represent endpoints.

 Regards

 Simon


Simon,

I agree with what you're saying. I think that we've now closed a loop :)
and that what you're saying is in line with the proposal at the bottom
of http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg06704.html

Then we raised the question of whether or not the create verb in
particular should be handled by a separate factory.

And in this last email I was trying to say that somebody coming with an
OO view would probably want that factory separate from the actual
resources (and that I was initially in that camp some time ago), but
that now I'm seeing these resources more like a file system (with no
separate factory) where:
customers.get(http://my.customer.database.com/customers/1234;); returns
an instance of the Customer XSD complex type for customer 1234
customers.put/post(http://my.customer.database.com/customers/1234;,
customerDataObject / or a diff) creates/updates customer 1234 with a
Customer instance.
customers.get(http://my.customer.database.com/customers/;) returns a
list of URIs to the customers.

Is that consistent with your view?

--
Jean-Sebastien


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

Yes, sorry, I wasn't very clear in my post. I'm not trying to go round the

loop again:-) Your summary is consistent with my view.

Assuming HTTP here I probably expect to get different results from

GET - http://my.customer.database.com/customers/  (get me all the
customer records?)
GET - http://my.customer.database.com/customers/1234  (get me one customer
record?)

I'm also probably asking for different things when I say

PUT - http://my.customer.database.com/customers/  (Create all the
customer records?)
PUT - http://my.customer.database.com/customers/1234  (Create one customer
record?)

In normal static HTTP land the semantics are the same in both cases as I'm
just GETing or PUTing data.
In our case what actually happens depends on both the verb and the identity.


So in mapping resource orientation to service orientation we may want to
give the service developer
more help in organizing the operations.  Using Oisin's proposed annotations
we could

Re: [C++] Extension matters

2006-09-01 Thread Simon Laws

On 8/31/06, Andrew Borley [EMAIL PROTECTED] wrote:


Hi all,

I'm inches away from getting an extension working that allows Python
scripts
to be used as components in SCA C++. I should be putting that up some time
tomorrow - I'll start a thread about a few minor issues with the extension
framework that I've come across, but it hasn't been too complex to get
this
going.

At the moment the extension provides an implementation.python element to
the
.composite of the form:

implementation.python module=PythonModuleName
path=relative/path/to/module class=PythonClassName/

This allows other C++ components or C++ clients to call the service
implemented by code inside the Python module. The service interface is
currently described by a C++ header file, and uses the
interface.cppinterface binding. Currently, references from the Python
components are not
enabled (see below).

There are two further areas that are needed for full integration of Python
into SCA (or SCA into Python):

1) A programming model for SCA in Python to allow Python components or
Python clients to call SCA services. This will enable components with
Python
implementations to have references.
We could either create a Python extension that will emulate the service
lookup that we do in C++, e.g. a Python equivalent of the following C++
snippet:

// First, get the current ComponentContext
osoa::sca::ComponentContext myContext =
osoa::sca::ComponentContext::getCurrent();

// Find the required service, as referenced in
CalculatorImpl.componentType
DivideService* divideService =
(DivideService*)myContext.getService(divideService);

// Finally, invoke the service
result = divideService-divide(arg1, arg2);

Alternatively, we could look at doing some kind of annotations within the
Python component module - I'm not sure whether Python has annotation
support
(I don't believe so), or whether there is a way to 'fake' it to make
comments/documentation act as annotations.

2) An interface.python extension so that python components do not have to
have their interfaces converted to a C++ or WSDL description. Due to the
loose typing that Python allows this isn't the easiest thing to do - most
functions have signatures like: def myMethod(arg1, arg2) - and (as far as
I
can currently tell) there is no way to determine the types of the
arguments
or return values aside from at invocation time.
At the moment the SCAGEN tool generates the C++ component proxy and
wrapper
classes based on the C++ header specified in the interface.cpp element in
the .componentType file. If the .componentType file has an
interface.pythonelement instead, and specifies the Python module,
generating the correct C++
code neccessary to call the python service is hard. Alternatively, the
interface.python could specify the function signatures itself, but that
starts to stray into WSDL territory, e.g:

interface.python
  function name=myMethod
 argument name=arg1 type=string/
 argument name=arg2 type=int/
 return type=string/
   /function
/interface.python

There may well be a way to specify things a bit tighter in Python that i
don't know about - I'll keep looking into this.

What do people think about these various issues? Has anyone got any
suggestions?

Thanks!

Andy

Hi Andy


Sounds like great progress.

1) I would favour whatever hides SCA from the Python programmer the most so
I like annotations. However if annotations are hard then the first approach
would be a stake in the ground until you have a better feel for how the
extension framework operates.

2) PHP is loosly typed also but you can get at the comments in the source so
you can describe function signatures there and look at them at run time (see
http://www.osoa.org/display/Main/PHP+and+SCA+White+Paper). Can you do the
same in Python?

If you do use support in Python to get at types its likely to be a run time
operation so we would need to rely on the generic proxies/wrappers in C++
and then call up into Python doing the apporpriate transformation as
dictated by the runtime generated interface description. As this is likely
to be a runtime thing I would go with WSDL to describe the interface. You
then have the mechanism for describing the python script as a remote service
ready to go.  It would be good to have a component in C++ that is able to
generate WSDL on the fly (this would be handy for PHP also) but we would
have to agree how to describe the interface to the WSDL generator!

Maybe you could say a little bit more about what you do now to help us
envisage the development process and flow of control.
  - you write a python class/operation
  - you write your .componentType file including implementation.python
  - you hand craft a .h file to match the python class ?
  - you run SCA gen to generate the wrapper
  - you have some code that converts the wrapper call into a call into the
Python engine targetted at the appropriate operation

Is that correct?

Regards

Simon


Re: [C++] Requirements for a pluggable C++ Tuscany implementation

2006-09-01 Thread Simon Laws

On 8/29/06, Oisin Hurley [EMAIL PROTECTED] wrote:


Simon - apologies I've been away from this for the last week...

[deletia]
 ...and this is why :)  There are number of responsibilities of an
 extension - which you accurately describe - and there are a number
 of responsibilities of a plugin, related to configuration and
 lifecycle
 and I think it would be a Good Thing to keep them as separate
 development
 efforts. What do you think?

 Do you mean that a plugin may have responsibilities that are a sub-
 set or
 super-set of those of a particular extension?

Actually I see that the plugins responsibilities are a disjoint set -
meaning that the plugins are unconscious of the value of their content
and are used only as a way to bang a bunch of libraries together in
a predictable manner and correctly initialize/deinitialize them.




Ah, OK, I see. I was getting a little confused  because Pete has being
doing  work on  refactoring the C++ implementation to separate core function
from extensions from bindings. I had assumed (wrongly in the first instance)
some overlap between that activity and this conversation. What you are
advocating a more wide ranging approach review of C++ SCA deployment.


We could probably have the same conversation re. deploying
 components and
 composites into the C++ SCA infrastructure as opposed to deploying
 parts of
 the C++ SCA infrastructure.

+1

 Maybe we need to be a bit more explicit about what we anticipate
 being in a
 plugin. For examle,

 0..n Component type container implementations
 0..n Binding implementations
 0..n Host adapters
 [0..n Components
 0..n Composite(s) should these be included as well? Seems unlikely
 that you
 want to deply at the same time but you will want to deploy at some
 time.]

So there's two roads - one where one must be explicit about the content
of the plugin in terms of architectural artifacts, this is the manifest
style approach, and the other, where the plugin initialization code does
the necessary registrations of architectural artifacts. These are not
necessarily incompatible approaches either.




OK, from above, with this list I was trying elicit that you thought a plugin
was rather than necessarily manadate a plugin. Having said that, in the
context of SCA we can expect a finite set of things in plugins, assuming
that a component implementation is just classed as a component,  and the
list above still stands I think. What you are saying is that you envisage a
deployment approach where the plugin may have one or more of these types of
things as required to add some funtion or application to the runtime.


Can we use exsiting technology for some of this, for example, there
 has been
 much discussion of OSGi on the java list, is OSGi wider that just
 Java now?

AFAIK OSGi is still Java only and a Google search didn't turn up much
that
was useful. In terms of existing technology, I'm not familiar with any
technologies along this line that are open. That being said, a C++
version
of OSGi would be a beautiful thing :)



Your right, Google doesn't turn up anything. I'm sure I read some mail on a
mail list about it but there you go I must be dreaming.


My gut feeling is that plugin/extension should be decoupled, but the

only
strong point I can see for it in the current architecture is the fact
that
databindings are not explicit as an extension - there is scope for
say an
interface.mumble that has databindings of say XMLBeans or JiBX. If the
databinding can be an extension in its own right, then maybe the
simplifying
assumption of plugin == extension may be the way to go. From the
point of
view of deployment, there may be a greater need for a non-extension
plugin
to package application code to be 'deployed'. Maybe we should have that
conversation about deployment now?

  cheers
   --oh



Sebastien has used Pete's extension framewok to refactor the bindings. It's
a good question you raise though about data bindings. The only options
currently are SDO and native and assumtions are made depending on what
interfaces/bindings you choose. More though required in the future!

I can see it being useful to packagage individual extensions or groups of
extensions for the runtime to consume.  It's also to the case that we will
want to package applications. Current when I build C++ SCA I get a deploy
stucture that holds the SCA core and extensions framwork

deploy
  bin
  extensions
cpp
  bin
  include
  lib
  xsd
ws
  reference
bin
lib
  service
bin
lib
  xsd
  include
  lib
  xsd

And when I build a sample, BigBank for example, I get a separate deploy dir

deploy
  bin
  configuration
Composite Name
   top level.composite
  packages
Composite Name
   everything required for the composite

Now I should be able to zip this deploy up and move it to another runtime
instance and assuming I have $TUSCANY_SCA/SDOCPP set up it should run OK.
However this all depends on the 

[C++] windows build system

2006-09-04 Thread Simon Laws

Having just raised a patch to create a VC7 build for BigBank I'm taking a
step back and thinking that we need a better position on Windows builds as
we have too many variations. In particular I just tried to open the VC7
Calculator sample project and it's not compatible with my oldish verision of
VC7. So we are faced with even more varieties of project files. This is not
sensible. I have two proposals.

1/ For those who want to use MSVC lets agree a version that we support and
try and stick with that. Can I suggest Microsoft Visual C++ 2005 Express
Edition. I have to admit that I haven't tried this but I will move if we
agree this is the right direction to be going in. Has anyone tried it?

2/ Implement a command line build for windows so that we can automate the
build process. I am currently looking at a cygwin build based on the *nix
project automake files. I haven't got it working just yet but will report
back.

Thoughts?

Simon


Re: [C++] Cleaning up samples

2006-09-06 Thread Simon Laws

On 9/5/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Hi,

I checked in a copy of Calculator under

http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/samples/Calculator-new/
,
with a number of changes trying to simplify the sample and improve the
consistency of the names used in the sample:
- the subprojects follow the naming convention suggested in the SCA spec
and the various SCA white papers on osoa.org (sample.calculator,
sample.calculator.client etc.) helping create unique project names
- similar naming convention for the composite names
- changed Calculator subsystem to calculator solution
- the business interfaces are named Calculator and Divide instead of
CalculatorService, DivideService
- the components are named CalculatorComponent and DivideComponent
instead of CalculatorServiceComponent, DivideServiceComponent
- the services are named CalculatorService and DivideService
- and a few other minor cleanup changes, renamed readme.txt to README,
renamed the .cmd to .bat, changed the .bat to be consistent with the
.sh, and use the same executable name on Windows and Linux.

If there's no objection, I plan to replace the existing Calculator
sample with this new form, and also check in an updated version of
Bigbank following the same pattern tomorrow. This will make our
implementation of the Bigbank sample much closer to what's described in
the OSOA Recursive Assembly white paper at
http://www.osoa.org/display/Main/Recursive+Assembly+Model.

I'm not sure what we should put in the README for each sample. Right now
the contents of the README is Windows specific and probably obsolete, I
was thinking of maybe having another file besides the README called
HOWTO-DEPLOY describing how to deploy the sample to Axis2C... Comments
and thoughts welcome.

--
Jean-Sebastien


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

All sounds good to me.


The README should have a description of what the sample does, what it is
trying to demonstrate, and a summary of the
various different configurations and platforms on which it will run. I.e.
you might want to run the local or web services client on windows or *nix.
So there will necessarily be quite a number of deployment and runtime
instructions for what is actually a relatively simple demo. Your idea of
having separate DEPLOY files for the different configurations sounds like
the way to go. It might also be useful to include screen shots of the
command line showing the run commands and the expected output. Also it would
be good to have some discussion of how to turn debug on and what it shows
you. This shouldn't be done on a sample by sample basis but I find it quite
instructive. I have  come across a set of typical configuration errors when
using the samples, e.g. the one that always catches me is
http://issues.apache.org/jira/browse/TUSCANY-499. We should create a samples
FAQ I guess. There is quite a number of environement variables and paths
that need to be set before it all works. We should review the run scripts to
see if we can add more checking as they already check that appropriate
environment variables are set. If you want some help with these things let
me know.

S


[C++] First pass PHP extesion

2006-09-06 Thread Simon Laws

Earlier I created a patch for a first pass at a PHP extension for C++ SCA (
http://issues.apache.org/jira/browse/TUSCANY-698)

This follows the pattern layed down by Andy with the Python extension and
has many limitations::

  Services only. No references.
  Basic input types only. No arrays or SDOs
  Single valued return values only. No arrays or SDOs
  C++ .h interface
  Error handling is not properly tied into SCA

I used this as an exercise to understand what Pete/Andy had done. As such I
have taken the most basic approach to integrating with PHP possible. This is
not the way I recommend doing it in the long term. In the future I would
want to change at least the following.

 The embed API needs to be replaced with the PHP SAPI
 References should be supported using annotations and injection
 SDO should be supported as a databinding
 I would prefer to go to using WSDL interface descriptions

I have currently followed the pattern and gone with the following
implementation descriptions:

 When the script just has functions
implementation.phpmodule=DivideServiceImpl/

 When the script has classes and functions
implementation.phpmodule=DivideServiceImpl class=DivideClass/

I wanted to go with module=DivideServiceImpl but the code at present adds
.componentType to the end of the module name to get the component type
information. I didn;t feel that DivideServiceImpl.php.componentType was
right but I'm prepared to be convinced.

In the longer term I think it may be sensible to ditch the function only
approach as it makes the reference handling less obvious.

I haven't included the build file at present because we need to sort out the
windows build system and me adding yet another flavour of dev studio will
not help. I have though included Calculator sample files that use the
extension as per Andy's sample so you can look even if you can't run.

Lots more work to do but it's a start.

Simon


Re: [C++] Beginning of a Ruby extension available

2006-09-06 Thread Simon Laws

On 9/6/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Hi all,

I just checked in the beginning of a Ruby extension under

http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/runtime/extensions/ruby/
.

It is not complete but it allows you to declare an SCA component
implemented by a Ruby class with for example:
component
  implementation.ruby script=DivideImpl.rb class=DivideImpl/
/component

Support for references, properties and scopes is not there yet but the
basic mechanism for invoking a component implemented in Ruby is there.

A version of the Calculator sample implementing the Divide component  in
Ruby is available there:

http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/samples/RubyCalculator/
.

I have tested this on Linux, and can help test on Windows as well as
soon as we get a good build of SDO and the SCA runtime with Visual
Studio Express 2005.

--

Jean-Sebastien


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

Wow, extensions galore:-)


Re: [C++] SDO can't load an XML doc with no namespace

2006-09-07 Thread Simon Laws

On 9/7/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Well, I can load it, but it's desperately empty :)

Given the following XML:
customerfirstNameJane/firstNamelastNameDoe/lastName/customer

I have no XSD for this document, and don't want to have one or have to
define specific SDO types for it. I just want to load this XML into an
SDO DataObject.

XMLDocumentPtr doc = XMLHelper::load(xml);
gives me an XMLDocumentPtr with no root DataObject.

char* xml = XMLHelper::save(doc);
gives me this:
?xml version=1.0 encoding=UTF-8?

Is this supported by our SDO/C++ implementation? or is it a bug?

--
Jean-Sebastien


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

We don't have support for schema free loads in PHP SDO which is based

directly on C++ SDO and I have assumed to date that that was because C++ SDO
doesn't support it. I may be wrong and if C++ SDO does support it it would
be really handy for us so I'll see if I can find out.


Re: Ruby for the Java runtime? (was: Re: [C++] Beginning of a Ruby extension available)

2006-09-07 Thread Simon Laws

On 9/7/06, ant elder [EMAIL PROTECTED] wrote:


Robbie, your help would be much appreciated so please feel free to jump
in.
Do you have specific samples or interop things you'd like to look at? Want
me to suggest some things, or bounce some ideas around on IRC/mailing
list?

   ...ant

On 9/6/06, Robbie Minshall [EMAIL PROTECTED] wrote:

 Sounds great.

 When Venkat is done with his port I would be interested in
 helping.  Perhaps
 a sample demonstrating interopt between services with different language
 implementations.

 If we are using SDO for our data model how will SDO support be provided
in
 these container extensions ?

 Robbie



 On 9/6/06, Venkata Krishnan [EMAIL PROTECTED] wrote:
 
  Hi... I am interested in taking a look at this.  I hope to get a feel
of
  implementing container extensions through this.  I shall get started
 with
  this rightaway.
 
  Ant, I might need your help for this after I do some ground work.
 
  Thanks.
 
  - Venkat
 
  On 9/6/06, ant elder [EMAIL PROTECTED] wrote:
  
   Quite a while back we had a Ruby container contributed for the Java
   runtime,
   see TUSCANY-365. Is anyone interested in looking at porting that to
 the
   new
   Java runtime and getting it to match what the C++ guys are doing?
  
  ...ant
  
   On 9/6/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:
   
Hi all,
   
I just checked in the beginning of a Ruby extension under
   
   
  
 

http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/runtime/extensions/ruby/
.
   
It is not complete but it allows you to declare an SCA component
implemented by a Ruby class with for example:
component
  implementation.ruby script=DivideImpl.rb class=DivideImpl/
/component
   
Support for references, properties and scopes is not there yet but
 the
basic mechanism for invoking a component implemented in Ruby is
 there.
   
A version of the Calculator sample implementing the Divide
  component  in
Ruby is available there:
   
   
  
 

http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/samples/RubyCalculator/
.
   
I have tested this on Linux, and can help test on Windows as well
as
soon as we get a good build of SDO and the SCA runtime with Visual
Studio Express 2005.
   
--
   
Jean-Sebastien
   
   
   
 -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
   
   
  
  
 
 


 --
 * * * Charlie * * *
 Check out some pics of little Charlie at
 http://www.flickr.com/photos/[EMAIL PROTECTED]/sets/

 * * * Addresss * * *
 1914 Overland Drive
 Chapel Hill
 NC 27517

 * * * Number * * *
 919-225-1553


In PHP we have an implementation of SDO that is fully based on the C++ SDO
implementation. I'm not sure if it will be instructive in the java space but
we have pretty much just wrapped the C++ SDO interfaces and exposed them as
native PHP objects. I guess you would have to do a similar thing in Ruby or
any other extension for that matter. The solution will depend on how you
construct extensions to your scripting language. In PHP it just so happens
you have to do it in C/C++ but I would hope you can do it in Java for JVM
based environments.




S


Re: [C++] First pass PHP extesion

2006-09-08 Thread Simon Laws

On 9/8/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Simon Laws wrote:
 Earlier I created a patch for a first pass at a PHP extension for C++
 SCA (
 http://issues.apache.org/jira/browse/TUSCANY-698)

 This follows the pattern layed down by Andy with the Python extension
and
 has many limitations::

   Services only. No references.
   Basic input types only. No arrays or SDOs
   Single valued return values only. No arrays or SDOs
   C++ .h interface
   Error handling is not properly tied into SCA

 I used this as an exercise to understand what Pete/Andy had done. As
 such I
 have taken the most basic approach to integrating with PHP possible.
 This is
 not the way I recommend doing it in the long term. In the future I would
 want to change at least the following.

  The embed API needs to be replaced with the PHP SAPI
  References should be supported using annotations and injection
  SDO should be supported as a databinding
  I would prefer to go to using WSDL interface descriptions

 I have currently followed the pattern and gone with the following
 implementation descriptions:

  When the script just has functions
 implementation.phpmodule=DivideServiceImpl/

  When the script has classes and functions
 implementation.phpmodule=DivideServiceImpl class=DivideClass/

 I wanted to go with module=DivideServiceImpl but the code at present
 adds
 .componentType to the end of the module name to get the component type
 information. I didn;t feel that DivideServiceImpl.php.componentType was
 right but I'm prepared to be convinced.

 In the longer term I think it may be sensible to ditch the function only
 approach as it makes the reference handling less obvious.

 I haven't included the build file at present because we need to sort
 out the
 windows build system and me adding yet another flavour of dev studio
will
 not help. I have though included Calculator sample files that use the
 extension as per Andy's sample so you can look even if you can't run.

 Lots more work to do but it's a start.

 Simon


Simon,

I adjusted our Linux build to integrate your PHP extension, it builds OK
for me on Linux using a php-devel-5.0.4-10.5.rpm after a few changes to
Makefile.am (I also made a minor change to remove the dependency on
CPPInterface like we did in the other extensions).

The build requires the following environment variables:
PHP_INCLUDE=/usr/include/php
PHP_LIB=/usr/lib/httpd/modules

Which version of PHP did you use on Windows? I tried PHP 5.1.6-2 first
but I'm guessing that you used an older PHP level on Windows since your
code uses php_embed.h, which does not seem to exist anymore on 5.1.6.2.

I'm OK to stay on that older level if it's simpler for you on Windows
for now, or help build and test on a newer level. Let me know... Thanks.

--
Jean-Sebastien


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

Hi Sebastien


Thanks for doing the linux build and for fixing up the dependency on the C++
extension. I really need to make a README describing how to build it. The
detail is a little opaque as I haven't made a patch for the windows build
files yet. I'm having a little difficulty in getting the right version of
the Microsoft Developer Tools. Anyhow...

I'm using PHP5.1.4 on Windows but 5.1.6 should be OK. On windows you will
have to get the source to get the headers but php5embed.lib is provided.
Strange huh.

To run the calculator sample you need to do a couple of things
1/ make sure that the directory holding php5embed.lib is on the path, for
example, create a version of runclient.bat with
  ...
  set PHP_HOME= where ever PHP is installed
  set
PATH=%PHP_HOME%;%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH%
  Client.exe %*

2/ make sure that php.ini includes a reference to the directory which holds
the .php file you are going to run as a component, for example, my
php.iniis in the same directory as the
php.exe and at the end of the file I have

include_path=.;C:\simon\Projects\Eclipse3.2\cpp\sca\samples\Calculator\deploy\packages\CalculatorComposite

you can use php -i to find where php is looking for you php.ini files. 4th
or 5th line down should tell you.

Apologies again for not yet providing a README that describes all this. I'll
get to it shortly. Let me know if this doesn't help.

Regards

Simon


Re: [C++] First pass PHP extesion

2006-09-08 Thread Simon Laws

On 9/8/06, Simon Laws [EMAIL PROTECTED] wrote:




On 9/8/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:

 Simon Laws wrote:
  Earlier I created a patch for a first pass at a PHP extension for C++
  SCA (
  http://issues.apache.org/jira/browse/TUSCANY-698 )
 
  This follows the pattern layed down by Andy with the Python extension
 and
  has many limitations::
 
Services only. No references.
Basic input types only. No arrays or SDOs
Single valued return values only. No arrays or SDOs
C++ .h interface
Error handling is not properly tied into SCA
 
  I used this as an exercise to understand what Pete/Andy had done. As
  such I
  have taken the most basic approach to integrating with PHP possible.
  This is
  not the way I recommend doing it in the long term. In the future I
 would
  want to change at least the following.
 
   The embed API needs to be replaced with the PHP SAPI
   References should be supported using annotations and injection
   SDO should be supported as a databinding
   I would prefer to go to using WSDL interface descriptions
 
  I have currently followed the pattern and gone with the following
  implementation descriptions:
 
   When the script just has functions
  implementation.phpmodule=DivideServiceImpl/
 
   When the script has classes and functions
  implementation.phpmodule=DivideServiceImpl class=DivideClass/
 
  I wanted to go with module=DivideServiceImpl but the code at present

  adds
  .componentType to the end of the module name to get the component type
  information. I didn;t feel that DivideServiceImpl.php.componentTypewas
  right but I'm prepared to be convinced.
 
  In the longer term I think it may be sensible to ditch the function
 only
  approach as it makes the reference handling less obvious.
 
  I haven't included the build file at present because we need to sort
  out the
  windows build system and me adding yet another flavour of dev studio
 will
  not help. I have though included Calculator sample files that use the
  extension as per Andy's sample so you can look even if you can't run.
 
  Lots more work to do but it's a start.
 
  Simon
 

 Simon,

 I adjusted our Linux build to integrate your PHP extension, it builds OK
 for me on Linux using a php-devel-5.0.4-10.5.rpm after a few changes to
 Makefile.am (I also made a minor change to remove the dependency on
 CPPInterface like we did in the other extensions).

 The build requires the following environment variables:
 PHP_INCLUDE=/usr/include/php
 PHP_LIB=/usr/lib/httpd/modules

 Which version of PHP did you use on Windows? I tried PHP 5.1.6-2 first
 but I'm guessing that you used an older PHP level on Windows since your
 code uses php_embed.h, which does not seem to exist anymore on 5.1.6.2.

 I'm OK to stay on that older level if it's simpler for you on Windows
 for now, or help build and test on a newer level. Let me know... Thanks.


 --
 Jean-Sebastien


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

 Hi Sebastien

Thanks for doing the linux build and for fixing up the dependency on the
C++ extension. I really need to make a README describing how to build it.
The detail is a little opaque as I haven't made a patch for the windows
build files yet. I'm having a little difficulty in getting the right version
of the Microsoft Developer Tools. Anyhow...

I'm using PHP5.1.4 on Windows but 5.1.6 should be OK. On windows you will
have to get the source to get the headers but php5embed.lib is provided.
Strange huh.

To run the calculator sample you need to do a couple of things
1/ make sure that the directory holding php5embed.lib is on the path, for
example, create a version of runclient.bat with
   ...
   set PHP_HOME= where ever PHP is installed
   set
PATH=%PHP_HOME%;%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH%

   Client.exe %*

2/ make sure that php.ini includes a reference to the directory which
holds the .php file you are going to run as a component, for example, my
php.ini is in the same directory as the php.exe and at the end of the file
I have


 
include_path=.;C:\simon\Projects\Eclipse3.2\cpp\sca\samples\Calculator\deploy\packages\CalculatorComposite

you can use php -i to find where php is looking for you php.ini files. 4th
or 5th line down should tell you.

Apologies again for not yet providing a README that describes all this.
I'll get to it shortly. Let me know if this doesn't help.

Regards

Simon





I should add to the wording of step 1/ make sure that the directory

holding php5embed.lib is on the path a little more detail, i.e.  because
this is the place that you will also find php5ts.dll wich is the shared
library that php5embed.lib provides a front end to and which actually
implements the PHP engine

S


Re: Ruby for the Java runtime? (was: Re: [C++] Beginning of a Ruby extension available)

2006-09-08 Thread Simon Laws

On 9/8/06, ant elder [EMAIL PROTECTED] wrote:


Yes we should be able to do the same type of thing with Java. Is the PHP
SDO
API the same as the C++ API or is it simplified?

I think for most if not all the Java based scripting languages we can just
expose the Java SDO API to the scripting language (at one point we had a
JavaScript version of the Big Bank sample account module that did this),
but
there are probably ways to use the dynamic nature of the script languages
to
come up with a simplify SDO API.

   ...ant

On 9/7/06, Simon Laws [EMAIL PROTECTED] wrote:

  In PHP we have an implementation of SDO that is fully based on the C++
 SDO
  implementation. I'm not sure if it will be instructive in the java
space
 but
  we have pretty much just wrapped the C++ SDO interfaces and exposed
them
 as
  native PHP objects. I guess you would have to do a similar thing in
Ruby
 or
  any other extension for that matter. The solution will depend on how
you
  construct extensions to your scripting language. In PHP it just so
 happens
  you have to do it in C/C++ but I would hope you can do it in Java for
 JVM
  based environments.
 


 S



The SDO API in PHP is fairly similar to the C++ SDO but is simplified and

in particular it tries to take avantage of the features of PHP so that it is
comfortable to use for the PHP programmer. For example, a typical user of
the XML DAS might do

$xmldas-addTypes(company.xsd);
$document = $xmldas-loadFile(company.xml);
$company = $document-getRootDataObject();
$company_name = $company-name; // property access style
$company_name = $company['name'];   // associative array access style
$company_name = $company[0];// index array access style

The trick is make the experience as natural for the script developer
as possible so we have, for example,  provided all the normal PHP
object access styles.

Also our user space implementation of the relational DAS is quite
different from the current java implementation.

Regards

Simon


Re: Ruby for the Java runtime? (was: Re: [C++] Beginning of a Ruby extension available)

2006-09-08 Thread Simon Laws

On 9/8/06, Venkata Krishnan [EMAIL PROTECTED] wrote:


Hi

The current implementation of Ruby in Java works only for scripts that
have
global methods.  I am interested getting this work for methods inside
classes.. But then I am not able to figure out a way of doing this.

Can somebody help me with clues on the following... maybe even if the C++
guys are able to provide me some hints conceptually I can map it to the
JRuby stuff.  Here is what I do...

1) I load the script into the Ruby engine and get a RubyObject out of it
2) call the invoke method on the Ruby object to invoke the Ruby functions
- in this invoke method there is no way I am able to specify the
RubyClass whos method I should invoke.  All that it takes is the method
name
as a string.  I tried using ruby classname.ruby methodname for the
method argument but failed.

So how do I specify the class?

Thanks

- Venkat

On 9/8/06, Simon Laws  [EMAIL PROTECTED] wrote:

 On 9/8/06, ant elder  [EMAIL PROTECTED] wrote:
 
  Yes we should be able to do the same type of thing with Java. Is the
PHP
  SDO
  API the same as the C++ API or is it simplified?
 
  I think for most if not all the Java based scripting languages we can
 just
  expose the Java SDO API to the scripting language (at one point we had
a
  JavaScript version of the Big Bank sample account module that did
this),
  but
  there are probably ways to use the dynamic nature of the script
 languages
  to
  come up with a simplify SDO API.
 
 ...ant
 
  On 9/7/06, Simon Laws [EMAIL PROTECTED] wrote:
  
In PHP we have an implementation of SDO that is fully based on the

 C++
   SDO
implementation. I'm not sure if it will be instructive in the java
  space
   but
we have pretty much just wrapped the C++ SDO interfaces and
exposed
  them
   as
native PHP objects. I guess you would have to do a similar thing
in
  Ruby
   or
any other extension for that matter. The solution will depend on
how
  you
construct extensions to your scripting language. In PHP it just so
   happens
you have to do it in C/C++ but I would hope you can do it in Java
 for
   JVM
based environments.
   
  
  
   S
  
  
 
  The SDO API in PHP is fairly similar to the C++ SDO but is simplified
 and
 in particular it tries to take avantage of the features of PHP so that
it
 is
 comfortable to use for the PHP programmer. For example, a typical user
of
 the XML DAS might do

 $xmldas-addTypes(company.xsd );
 $document = $xmldas-loadFile(company.xml);
 $company = $document-getRootDataObject();
 $company_name = $company-name; // property access style
 $company_name = $company['name'];   // associative array access style
 $company_name = $company[0];// index array access style

 The trick is make the experience as natural for the script developer
 as possible so we have, for example,  provided all the normal PHP
 object access styles.

 Also our user space implementation of the relational DAS is quite
 different from the current java implementation.

 Regards

 Simon





Hi Venkat

I'm not sure that this helps at all but I just took a look at what Sebastien
did in C++

   string expr = impl-getClass() + .new;
   VALUE instance = rb_eval_string(expr.c_str());

   // Get the ID of the specified method
   ID method = rb_intern(operation.getName().c_str());

When it comes time to actually call the method

   // Invoke the specified method
   VALUE value;
   if (n == 0)
   {
   value = rb_funcall(instance, method, 0);
   }
   else
   {
   value = rb_funcall2(instance, method, n, args);
   }

So he seems to be able to deal with the class instance in C++. This is the
script he used to test with in the C++ Calculator sample.

class DivideImpl

 def initialize()
   print Ruby - DivideImpl.initialize\n
 end

 def divide(arg1, arg2)
   print Ruby - DivideImpl.divide\n
   arg1 / arg2
 end

end

Sebastien is the man to ask really as he build the Ruby extension. He will
be able to give you the gory details no doubt when he comes on line.

S


Re: [C++] Loading the PHP extension on Linux, was: [C++] First pass PHP extesion

2006-09-13 Thread Simon Laws

On 9/12/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Simon Laws wrote:
 On 9/8/06, Simon Laws [EMAIL PROTECTED] wrote:



 On 9/8/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:
 
  Simon Laws wrote:
   Earlier I created a patch for a first pass at a PHP extension for
 C++
   SCA (
   http://issues.apache.org/jira/browse/TUSCANY-698 )
  
   This follows the pattern layed down by Andy with the Python
 extension
  and
   has many limitations::
  
 Services only. No references.
 Basic input types only. No arrays or SDOs
 Single valued return values only. No arrays or SDOs
 C++ .h interface
 Error handling is not properly tied into SCA
  
   I used this as an exercise to understand what Pete/Andy had done.
As
   such I
   have taken the most basic approach to integrating with PHP
possible.
   This is
   not the way I recommend doing it in the long term. In the future I
  would
   want to change at least the following.
  
The embed API needs to be replaced with the PHP SAPI
References should be supported using annotations and injection
SDO should be supported as a databinding
I would prefer to go to using WSDL interface descriptions
  
   I have currently followed the pattern and gone with the following
   implementation descriptions:
  
When the script just has functions
   implementation.phpmodule=DivideServiceImpl/
  
When the script has classes and functions
   implementation.phpmodule=DivideServiceImpl class=DivideClass/
  
   I wanted to go with module=DivideServiceImpl but the code at
 present
 
   adds
   .componentType to the end of the module name to get the component
 type
   information. I didn;t feel that
 DivideServiceImpl.php.componentTypewas
   right but I'm prepared to be convinced.
  
   In the longer term I think it may be sensible to ditch the function
  only
   approach as it makes the reference handling less obvious.
  
   I haven't included the build file at present because we need to
sort
   out the
   windows build system and me adding yet another flavour of dev
studio
  will
   not help. I have though included Calculator sample files that use
 the
   extension as per Andy's sample so you can look even if you can't
 run.
  
   Lots more work to do but it's a start.
  
   Simon
  
 
  Simon,
 
  I adjusted our Linux build to integrate your PHP extension, it
 builds OK
  for me on Linux using a php-devel-5.0.4-10.5.rpm after a few
 changes to
  Makefile.am (I also made a minor change to remove the dependency on
  CPPInterface like we did in the other extensions).
 
  The build requires the following environment variables:
  PHP_INCLUDE=/usr/include/php
  PHP_LIB=/usr/lib/httpd/modules
 
  Which version of PHP did you use on Windows? I tried PHP 5.1.6-2first
  but I'm guessing that you used an older PHP level on Windows since
 your
  code uses php_embed.h, which does not seem to exist anymore on
 5.1.6.2.
 
  I'm OK to stay on that older level if it's simpler for you on Windows
  for now, or help build and test on a newer level. Let me know...
 Thanks.
 
 
  --
  Jean-Sebastien
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
  Hi Sebastien

 Thanks for doing the linux build and for fixing up the dependency on
the
 C++ extension. I really need to make a README describing how to build
 it.
 The detail is a little opaque as I haven't made a patch for the windows
 build files yet. I'm having a little difficulty in getting the right
 version
 of the Microsoft Developer Tools. Anyhow...

 I'm using PHP5.1.4 on Windows but 5.1.6 should be OK. On windows you
 will
 have to get the source to get the headers but php5embed.lib is
provided.
 Strange huh.

 To run the calculator sample you need to do a couple of things
 1/ make sure that the directory holding php5embed.lib is on the path,
 for
 example, create a version of runclient.bat with
...
set PHP_HOME= where ever PHP is installed
set

PATH=%PHP_HOME%;%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH%


Client.exe %*

 2/ make sure that php.ini includes a reference to the directory which
 holds the .php file you are going to run as a component, for example,
my
 php.ini is in the same directory as the php.exe and at the end of the
 file
 I have



  
include_path=.;C:\simon\Projects\Eclipse3.2\cpp\sca\samples\Calculator\deploy\packages\CalculatorComposite


 you can use php -i to find where php is looking for you php.ini
 files. 4th
 or 5th line down should tell you.

 Apologies again for not yet providing a README that describes all this.
 I'll get to it shortly. Let me know if this doesn't help.

 Regards

 Simon





 I should add to the wording of step 1/ make sure that the directory
 holding php5embed.lib is on the path a little more detail, i.e.
 because
 this is the place that you will also

Re: [C++] Loading the PHP extension on Linux, was: [C++] First pass PHP extesion

2006-09-13 Thread Simon Laws

On 9/13/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Simon Laws wrote:
 On 9/12/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:

 Simon Laws wrote:
  On 9/8/06, Simon Laws [EMAIL PROTECTED] wrote:
 
 
 
  On 9/8/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:
  
   Simon Laws wrote:
Earlier I created a patch for a first pass at a PHP extension
for
  C++
SCA (
http://issues.apache.org/jira/browse/TUSCANY-698 )
   
This follows the pattern layed down by Andy with the Python
  extension
   and
has many limitations::
   
  Services only. No references.
  Basic input types only. No arrays or SDOs
  Single valued return values only. No arrays or SDOs
  C++ .h interface
  Error handling is not properly tied into SCA
   
I used this as an exercise to understand what Pete/Andy had
done.
 As
such I
have taken the most basic approach to integrating with PHP
 possible.
This is
not the way I recommend doing it in the long term. In the
 future I
   would
want to change at least the following.
   
 The embed API needs to be replaced with the PHP SAPI
 References should be supported using annotations and injection
 SDO should be supported as a databinding
 I would prefer to go to using WSDL interface descriptions
   
I have currently followed the pattern and gone with the
following
implementation descriptions:
   
 When the script just has functions
implementation.phpmodule=DivideServiceImpl/
   
 When the script has classes and functions
implementation.phpmodule=DivideServiceImpl
 class=DivideClass/
   
I wanted to go with module=DivideServiceImpl but the code at
  present
  
adds
.componentType to the end of the module name to get the
component
  type
information. I didn;t feel that
  DivideServiceImpl.php.componentTypewas
right but I'm prepared to be convinced.
   
In the longer term I think it may be sensible to ditch the
 function
   only
approach as it makes the reference handling less obvious.
   
I haven't included the build file at present because we need to
 sort
out the
windows build system and me adding yet another flavour of dev
 studio
   will
not help. I have though included Calculator sample files that
use
  the
extension as per Andy's sample so you can look even if you can't
  run.
   
Lots more work to do but it's a start.
   
Simon
   
  
   Simon,
  
   I adjusted our Linux build to integrate your PHP extension, it
  builds OK
   for me on Linux using a php-devel-5.0.4-10.5.rpm after a few
  changes to
   Makefile.am (I also made a minor change to remove the dependency
on
   CPPInterface like we did in the other extensions).
  
   The build requires the following environment variables:
   PHP_INCLUDE=/usr/include/php
   PHP_LIB=/usr/lib/httpd/modules
  
   Which version of PHP did you use on Windows? I tried PHP
 5.1.6-2first
   but I'm guessing that you used an older PHP level on Windows since
  your
   code uses php_embed.h, which does not seem to exist anymore on
  5.1.6.2.
  
   I'm OK to stay on that older level if it's simpler for you on
 Windows
   for now, or help build and test on a newer level. Let me know...
  Thanks.
  
  
   --
   Jean-Sebastien
  
  
  
 -
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
  
   Hi Sebastien
 
  Thanks for doing the linux build and for fixing up the dependency on
 the
  C++ extension. I really need to make a README describing how to
build
  it.
  The detail is a little opaque as I haven't made a patch for the
 windows
  build files yet. I'm having a little difficulty in getting the right
  version
  of the Microsoft Developer Tools. Anyhow...
 
  I'm using PHP5.1.4 on Windows but 5.1.6 should be OK. On windows you
  will
  have to get the source to get the headers but php5embed.lib is
 provided.
  Strange huh.
 
  To run the calculator sample you need to do a couple of things
  1/ make sure that the directory holding php5embed.lib is on the
path,
  for
  example, create a version of runclient.bat with
 ...
 set PHP_HOME= where ever PHP is installed
 set
 

PATH=%PHP_HOME%;%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH%

 
 
 Client.exe %*
 
  2/ make sure that php.ini includes a reference to the directory
which
  holds the .php file you are going to run as a component, for
example,
 my
  php.ini is in the same directory as the php.exe and at the end of
the
  file
  I have
 
 

 

include_path=.;C:\simon\Projects\Eclipse3.2\cpp\sca\samples\Calculator\deploy\packages\CalculatorComposite

 
 
  you can use php -i to find where php is looking for you php.ini
  files. 4th
  or 5th line down should tell you.
 
  Apologies again for not yet providing a README that describes all
 this.
  I'll get

Re: [C++] Loading the PHP extension on Linux, was: [C++] First pass PHP extesion

2006-09-13 Thread Simon Laws

On 9/13/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Simon Laws wrote:
 On 9/13/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:

 Simon Laws wrote:
  On 9/12/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:
 
  Simon Laws wrote:
   On 9/8/06, Simon Laws [EMAIL PROTECTED] wrote:
  
  
  
   On 9/8/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:
   
Simon Laws wrote:
 Earlier I created a patch for a first pass at a PHP extension
 for
   C++
 SCA (
 http://issues.apache.org/jira/browse/TUSCANY-698 )

 This follows the pattern layed down by Andy with the Python
   extension
and
 has many limitations::

   Services only. No references.
   Basic input types only. No arrays or SDOs
   Single valued return values only. No arrays or SDOs
   C++ .h interface
   Error handling is not properly tied into SCA

 I used this as an exercise to understand what Pete/Andy had
 done.
  As
 such I
 have taken the most basic approach to integrating with PHP
  possible.
 This is
 not the way I recommend doing it in the long term. In the
  future I
would
 want to change at least the following.

  The embed API needs to be replaced with the PHP SAPI
  References should be supported using annotations and
 injection
  SDO should be supported as a databinding
  I would prefer to go to using WSDL interface descriptions

 I have currently followed the pattern and gone with the
 following
 implementation descriptions:

  When the script just has functions
 implementation.phpmodule=DivideServiceImpl/

  When the script has classes and functions
 implementation.phpmodule=DivideServiceImpl
  class=DivideClass/

 I wanted to go with module=DivideServiceImpl but the code
at
   present
   
 adds
 .componentType to the end of the module name to get the
 component
   type
 information. I didn;t feel that
   DivideServiceImpl.php.componentTypewas
 right but I'm prepared to be convinced.

 In the longer term I think it may be sensible to ditch the
  function
only
 approach as it makes the reference handling less obvious.

 I haven't included the build file at present because we
 need to
  sort
 out the
 windows build system and me adding yet another flavour of dev
  studio
will
 not help. I have though included Calculator sample files that
 use
   the
 extension as per Andy's sample so you can look even if you
 can't
   run.

 Lots more work to do but it's a start.

 Simon

   
Simon,
   
I adjusted our Linux build to integrate your PHP extension, it
   builds OK
for me on Linux using a php-devel-5.0.4-10.5.rpm after a few
   changes to
Makefile.am (I also made a minor change to remove the
dependency
 on
CPPInterface like we did in the other extensions).
   
The build requires the following environment variables:
PHP_INCLUDE=/usr/include/php
PHP_LIB=/usr/lib/httpd/modules
   
Which version of PHP did you use on Windows? I tried PHP
  5.1.6-2first
but I'm guessing that you used an older PHP level on Windows
 since
   your
code uses php_embed.h, which does not seem to exist anymore on
   5.1.6.2.
   
I'm OK to stay on that older level if it's simpler for you on
  Windows
for now, or help build and test on a newer level. Let me
know...
   Thanks.
   
   
--
Jean-Sebastien
   
   
   
 
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
   
Hi Sebastien
  
   Thanks for doing the linux build and for fixing up the
 dependency on
  the
   C++ extension. I really need to make a README describing how to
 build
   it.
   The detail is a little opaque as I haven't made a patch for the
  windows
   build files yet. I'm having a little difficulty in getting the
 right
   version
   of the Microsoft Developer Tools. Anyhow...
  
   I'm using PHP5.1.4 on Windows but 5.1.6 should be OK. On
 windows you
   will
   have to get the source to get the headers but php5embed.lib is
  provided.
   Strange huh.
  
   To run the calculator sample you need to do a couple of things
   1/ make sure that the directory holding php5embed.lib is on the
 path,
   for
   example, create a version of runclient.bat with
  ...
  set PHP_HOME= where ever PHP is installed
  set
  
 

PATH=%PHP_HOME%;%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH%

 
  
  
  Client.exe %*
  
   2/ make sure that php.ini includes a reference to the directory
 which
   holds the .php file you are going to run as a component, for
 example,
  my
   php.ini is in the same directory as the php.exe and at the end of
 the
   file
   I have
  
  
 
  
 

include_path=.;C:\simon\Projects\Eclipse3.2\cpp\sca\samples

[Interop] cross language interop test update

2006-09-18 Thread Simon Laws

I was talking with Andy offline about re-running the cross language interop
tests. I've recently made some updates to the schema while testing with PHP
SDO so I copied the updates back to Tuscany/Interop. There is a patch
attached to http://issues.apache.org/jira/browse/TUSCANY-730. There is also
a WSDL file in there that exposes an operation for each interop schema
taking that schema as input and returning it as output. I'm going to work
with Andy to implement a client/service in C++ so that we can test the SDO
binding for Axis. When Raymond is done with the new databindings code for M2
we could do the same for Java and between Java and C++.

What we could do with in C++ is an XML comparison utility. Anyone come
across one?

Simon


Re: [Interop] cross language interop test update

2006-09-20 Thread Simon Laws

On 9/20/06, ant elder [EMAIL PROTECTED] wrote:


Is it worth also trying to do some interop testing of script language
composites across the Java and C++ runtimes now that we have script
languages supported by both? Something like having some
Ruby/Python/JavaScript composites which can be used in either the C++ or
Java runtimes? I'd help with the  Java runtime side if others think this
would be useful.

   ...ant

On 9/18/06, Simon Laws [EMAIL PROTECTED] wrote:

 I was talking with Andy offline about re-running the cross language
 interop
 tests. I've recently made some updates to the schema while testing with
 PHP
 SDO so I copied the updates back to Tuscany/Interop. There is a patch
 attached to http://issues.apache.org/jira/browse/TUSCANY-730. There is
 also
 a WSDL file in there that exposes an operation for each interop schema
 taking that schema as input and returning it as output. I'm going to
work
 with Andy to implement a client/service in C++ so that we can test the
SDO
 binding for Axis. When Raymond is done with the new databindings code
for
 M2
 we could do the same for Java and between Java and C++.

 What we could do with in C++ is an XML comparison utility. Anyone come
 across one?

 Simon


I think this would be a good idea. The cross language test we have done to
date have been focused on the SDO support for XML so clearly that can work
in Java, C++ and PHP components where we have SDO implementations. Sorting
out tests for the other componente types that perhaps don't support SDO yet
but would benefit from 1/ testing that the same script works in both Java
and C++ runtimes 2/ testing that messages of various formats can be passed
successfully from/to the component seems like an excellent idea.



The last time I checked the Python C++ extension used a C++ interface
definition style but I haven't looked closely enough to see how it handles
complex types. I'm also assuming that this will change in the future if it
hasn't laready changed. Andy?


S


Re: [C++] SDO can't load an XML doc with no namespace

2006-09-21 Thread Simon Laws

On 9/21/06, Geoffrey Winn [EMAIL PROTECTED] wrote:


I won't be able to do anything about this until the week after next at the
earliest (ie early October) - but even then I have other commitments. I'll
try to find some time to look at it then.

Regards,

Geoff.

On 21/09/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:

 Geoffrey Winn wrote:
  I spoke to Ed about this and it seems that when there is no type
  information
  available, the XML parser makes a series of assumptions about the
  structure
  of the incoming data (for example all elements are assumed to be
  repeating).
  Of course, these assumptions are not always correct. It also means
  that, for
  example, things that you think of as single valued or simple can be
  represented as multi-valued or by a data object. The implementation
_is_
  flawed but it shouldn't be as bad as your example suggests. So yes it
  is a
  bug, although even when fixed it may not give quite what you
 want/expect.
 
  On 07/09/06, Jean-Sebastien Delfino  [EMAIL PROTECTED] wrote:
 
  Well, I can load it, but it's desperately empty :)
 
  Given the following XML:
 
 customerfirstNameJane/firstNamelastNameDoe/lastName/customer
 
  I have no XSD for this document, and don't want to have one or have
to
  define specific SDO types for it. I just want to load this XML into
an
  SDO DataObject.
 
  XMLDocumentPtr doc = XMLHelper::load(xml);
  gives me an XMLDocumentPtr with no root DataObject.
 
  char* xml = XMLHelper::save(doc);
  gives me this:
  ?xml version=1.0 encoding=UTF-8?
 
  Is this supported by our SDO/C++ implementation? or is it a bug?
 
  --
  Jean-Sebastien
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 Do you guys have any update on this one? What would it take to fix it?
 As Simon said earlier in this thread, getting open content to work would
 be really handy for script based applications where interfaces and
 operations are not always known in advance.

 Thanks,

 --
 Jean-Sebastien


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



I forgot to come back on this one. Sorry about that. What I found was

confirmed by Geoff so I cheated to get round it. For a sample I needed to do
(Implementing a simple JSON DAS) I defined a single type in the model that
had open content and then read in each element in the JSON tree in turn
giving it this type in order to create an SDO. I didn't try reading in an
XML file using this approach but it would be interesting to see if you can
make it work somehow. Of course you end up with an SDO with no useful type
information but for my purposes that was OK. I have to get on a train in a
bit so I'll give it a go

S


Re: [C++/Interop] WS-based interop test added

2006-09-26 Thread Simon Laws

On 9/26/06, Andrew Borley [EMAIL PROTECTED] wrote:


Hi all,

I've just checked some code in at

http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/test/ws.service.interop/
that does some interop testing as follows:

- An Axis2 binding.ws service  implementation component is deployed
based on the WSDL that Simon put up at

http://svn.apache.org/repos/asf/incubator/tuscany/interop/src/main/resources/interop.wsdl

- The client code reads in all the schemas and then tests each
operation defined in the WSDL by:
1) Reading in the XML file that corresponds to the operation as a
DataObject
2) Converting the DataObject to an Axiom node
3) Sending the Axiom node across to the service via SOAP
4) At the service, the binding.ws implementation converts the received
Axiom node to a DataObject  supplies it to the component
implementation.
5) The component implementation reads in the same XML file as was read
at the client in step 1 and converts it to a DataObject
6) The component implementation compares the 2 DataObjects via a new
compareDataObjects method in tuscany/sca/util/Utils.cpp. If they
match, the received DataObject is returned to the client. If they do
not match, an error message is printed at the server and NULL is
returned.
7) The binding.ws implementation converts the returned DataObject into
an Axiom node and returns it to the client via SOAP
8) At the client, the returned Axiom node is converted into a
DataObject and is compared to the original DataObject.
9) If any of the loading, conversions or comparisons fail, the test has
failed.

So, in brief, this tests:
XML - SDO - Axiom - SOAP - Axiom - SDO - Axiom - SOAP - Axiom
-SDO

Currently, the following operations/schemas had to be omitted from the
tests because they cause the loading of the WSDL  schemas at the
server or client to fail (probably due to clashes of schema
entities?):
Interop05
Interop25
Interop27
Interop39
Due to this the WSDL used at the service is slighly altered (see

http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/test/ws.service.interop/resources/interop.wsdl
)

Also, the following operations/schemas fail:
Interop04 - fails when loading XML file
Interop28 - fails on return to client - the SimpleTypeWithName
property is not set in the returned DataObject.
Interop30 - fails at the service with an SDONullPointerException
Interop33 - fails at the service - the property AttributeWithSDOName
is not set in the received DataObject
Interop40 - fails at the service - the property
ElementSubstitutionGroupBase has a single element in the received
DataObject but 2 in the loaded DataObject
Interop50 - fails at the service - the property anyType is not set in
the received DataObject

These failures seem to match up with what Simon has already seen 
documented/raised Jiras for at
http://wiki.apache.org/ws/Tuscany/Interop

The next things to do are:
- create the automake files to get this building/running on Linux
- use this client/service for Java - C++ (or vice-versa) interop testing
- create a composite with a binding.ws reference that calls the
service to enable testing of our binding.ws reference implementation.

Any thoughts or ideas on how to fix the issues?

Cheers

Andrew

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



Nice work Andy! Did you hang on to the schema loading errors you got with
05, 25 etc or should I just try and run it up and see?

S


Re: [C++] M2 Release

2006-10-02 Thread Simon Laws

On 10/2/06, Andrew Borley [EMAIL PROTECTED] wrote:


Hi All,

I think it would be good if we could get our first release candidate
cut by or during ApacheCon (which is next week!) - do people think
that is possible?

With this in mind I propose we concentrate on the higher priority
stuff, which to my mind is documentation, samples, build requirements
(licencing, build files, etc), the PHP extension and the support for a
particular spec level.

Do people agree with this? Is there some particular functionality/bug
fix that should go in?

Cheers

Andy

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

Andy, sounds like the right thing to do to me. A couple of points...


I've haven't got back to making the PHP extension as functional as the Ruby
and Python extensions yet. The PHP SCA/SDO releases got in the way. But now
PHP SCA is out we can use that as the basis for the PHP extension
programming model. In theory its not a big deal but to do it properly will
take a little thinking. So I'm not sure we can get it done this week:-( I'm
currently looking at the details of the PHP SCA implementation so I'll
report back when I know how it works.

How did the interop stuff go? I lost track of it a little. Did someone offer
to repeat your interop tests on the java side. Getting Java/C++ SCA interop
the web service level would be cool as we go into milestone 2. When we tried
with M! java  their binding implementation didn't work for us but now thats
been rewritten so would be good to feed back to java about whether it's good
this time.

S


Re: [C++] SDO can't load an XML doc with no namespace

2006-10-09 Thread Simon Laws

On 10/9/06, Pete Robbins [EMAIL PROTECTED] wrote:


You are assuming the state of the DataFactory that is passed in when
loading
the xml.

XMLHelperptr xmlH = HelperProvider::getXMLHelper(); // returns clean XML
helper with virgin DataFactory
XMLDocumentPtr xmlD = xmlH-load(mySchemaless.xml); // your fix would
make
this work BUT the DataFactory is now frozen
XMLDocumentPtr xmlD = xmlH-load(anotherSchemaless.xml); // Bang! -
can't
add a new open type as DF is frozen

I would look at always defining an open type e.g. commonj/sdo#AnyOpenType
in
a DataFactory. When loading the schemaless xml you create one of these
then
create the DO's from the xml with this as the root (pseudo-root). The
XMLDocument returned would have the first DO defined from the xml as the
rootDataObject, not the pseudo-root.

Cheers,

On 09/10/06, Geoffrey Winn [EMAIL PROTECTED] wrote:

 That is still a separate issue from the one Sebastian raised.

 Sebastian specifically stated that he did not have an xsd and didn't
want
 one. Loading an XML instance without type information in that situation
 can
 be done, via a small xsd file immediately (as a workaround), and via
small
 code change soon. The issue of frozen type systems affects other things
 besides this one. It needs to be fixed, but it's still a separate
 question.

 Geoff.

 On 09/10/06, Pete Robbins [EMAIL PROTECTED] wrote:
 
  Well it depends on which DataFactory you are using during the loading
of
  the
  xml. I would usually create an XSDHelper and load a schema. I'd then
  create
  an XMLHelper using the DataFactory from the XSDHelper. I then load my
 xml.
  If I now load a schemaless xml using that XMLHelper how do you
create
  the
  new Open Type?
 
  Cheers,
 
 
  On 09/10/06, Geoffrey Winn [EMAIL PROTECTED] wrote:
  
   That's a different question.
  
   As I understand it, Sebastian (and others) were asking about loading
 an
   XML
   instance document without a corresponding xsd (or any other type
   information) and as above there is a way to do that and I can hack
it
 to
   make it a little easier.
  
   As you say, you cannot create any type at all after the first data
  object
   is
   created. I'm looking into relaxing that too, but it is a separate
 issue
   from
   processing XML without a schema.
  
   Regards,
  
   Geoff.
  
   On 09/10/06, Pete Robbins [EMAIL PROTECTED] wrote:
   
Can you create an open type on the fly? Is the datafactory not
  locked
once
the first DO is created?
   
Cheers,
   
   
On 09/10/06, Geoffrey Winn [EMAIL PROTECTED] wrote:

 Sebastian,

 I looked into this a bit more and it may not be as bad as it
  appears.

 Currently, when the XML parser encounters an element for which
 there
   is
no
 type defined, it ignores that element and all of its content,
  resuming
the
 parse once that unknown element has ended. The exception to this
 is
   when
 the
 element is a member of a parent that is defined to have open
  content.
   In
 your example, the root element has no type definition and, of
  course,
   it
 can't have a parent with open content, so it and all of its
 contents
   are
 ignored, which explains the output that you see.

 I can see one possible workaround and one possible fix for this.

 The workaround is that you provide an xsd that defines just the
 root
 element
 giving it open content. In your case that would be something
like

 xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema;
 xsd:element name=customer type=customerType/
 xsd:complexType name=customerType
xsd:sequence
  xsd:any namespace=##other processContents=lax/
/xsd:sequence
 /xsd:complexType
 /xsd:schema

 Then the root element has a type and will be processed normally,
 and
 everything it contains will be processed as open content. I
tried
  this
and
 it seems to work.

 The fix would be for me to hack the code so that when we find
that
 a
root
 element has no corresponding type (or possibly when there are no
  user
 defined types at all) then I could automagically create an open
 type
   for
 it.
 This would give the same behaviour as the previous case but
spare
  you
the
 need to provide the .xsd

 I'm inclined to just go ahead and do that since its not
obviously
  any
 worse
 than the current behaviour but I'm open to other ideas.

 Regards,

 Geoff.

 On 07/09/06, Jean-Sebastien Delfino [EMAIL PROTECTED]
wrote:
 
  Well, I can load it, but it's desperately empty :)
 
  Given the following XML:
 
   
 
customerfirstNameJane/firstNamelastNameDoe/lastName/customer
 
  I have no XSD for this document, and don't want to have one or
  have
   to
  define specific SDO types for it. I just want to load this XML
  into
   an
  SDO DataObject.
 
  XMLDocumentPtr doc = 

[JAVA SCA] Samples status?

2006-10-09 Thread Simon Laws

Can someone do a quick update on the status of the samples?

I'm trying to run the HelloWorldWS sample from SVN.

I got the server working I believe but had to drag in the SDO Jars and the
SDO binding Jar into the webapp - they weren't in the sample jar.
Interesting thing about this was I got a NPE rather than a class not found
when SDO was missing. A little confusing.

I haven't got the client (I'm guessing HelloWorldWSClient) to work. I get a
NPE when it tries to use the current context. It's difficult to know what
jars are required for the client so I put all of the jars that appear in the
HelloWorldWS lib dir on the classpath.

Now looking at the dev list the samples are undergoing a reorg at the moment
so I expect this is all a result of that. It that's the case I'll go a way
for a bit and come back and try again when the reorg is done.

Regards

Simon


Re: PHP with the Java SCA runtime

2006-10-10 Thread Simon Laws

On 10/10/06, ant elder [EMAIL PROTECTED] wrote:


Not for M2 but posting a mail so there's some record of the code...Was
messing about in the weekend and got PHP going with the Java SCA runtime.
Experimental sandbox code but could be interesting to use to get some
interaction with the PHP SCA people and maybe from that help improve the
other script language containers supported by the Java runtime. It uses
the
early access reference impl of JSR-223 and there's a very simple
helloworld
sample demonstrating an SCA component implemented in PHP.

Ended up being quite a mission to get it working but its easy to use now.
To
run the sample you need to build container-jsr223 [1], build the
sample.php[2], download the JSR-223 RI [3], from the RI copy
php5ts.dll from jsr223-win32-i386\php5\bin to your JRE bin directory, and
when running the sample set the java.library.path system property to the
JSR-223 RI PHP install, i.e. -
Djava.library.path=C:\Java\JSR-223ea\jsr223-win32-i386\php5\bin

   ...ant

[1]
https://svn.apache.org/repos/asf/incubator/tuscany/sandbox/ant/container.jsr223/

[2]
https://svn.apache.org/repos/asf/incubator/tuscany/sandbox/ant/sample.php/
[3] http://www.jcp.org/aboutJava/communityprocess/edr/jsr223/

Hey ant, that's pretty cool. We have a similar, service only, i.e. no

references in our case,  implementation working in C++ and we need to push
on and get the other half of it working. Have been waiting for the PHP
implementation of SCA to go out which is done now. You can get it from
http://www.osoa.org/display/PHP/SCA+with+PHP. In our case a PHP class it
used to represent a service. We don't allow functions on their own to be
used to implement services and we rely on annotations currently to define
the component type, i.e. there are no side files. In the first instance we
didn't want script writers to have to write sides files.

As an integration point we will move toward side files and that is one of
the challenges of taking the next step with the C++ implementation. We want
to be able to populate the SCA model with information from the PHP
annotations. Would be good to think about what the same level of integration
in Java mena if we decide to support the PHP extension fully.

Do you know if the php5ts.dll you are using is a standard php dll or has it
been modified to work well with java?

Regards

Simon


Re: [C++] Showing PHP-SDO and PHP-SCA in our BigBank sample?

2006-10-16 Thread Simon Laws

On 10/16/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:


Andrew Borley wrote:
 In the interests of getting a release out sooner rather than later, I
 think we should leave this for after M2.

 I've now added the missing makefiles so the PHP client as it currently
 is should be in RC2.

 Cheers
 Andy

 On 10/16/06, Pete Robbins [EMAIL PROTECTED] wrote:
 I'm assuming this does not require our Tuscany PHP language extension
 that
 we agreed would NOT be in this release?

 Cheers,


 On 16/10/06, haleh mahbod [EMAIL PROTECTED] wrote:
 
  This  is  good idea. This sample could also be published on
 osoa.org where
  SCA for PHP is posted.
 
  On 10/15/06, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote:
  
   Hi,
  
   Our current C++ Bigbank sample includes a nice PHP client that
 shows how
   to use the SDO for PHP extension (built on top of our SDO C++
   implementation and available at http://pecl.php.net/package/SDO)
 and the
   PHP SOAP extensions to invoke the SCA BigBank app.
  
   There's now a new SCA for PHP extension available on www.osoa.org
 (see
   http://www.osoa.org/display/PHP/SOA+PHP+Homepage). Would it make
 sense
   to replace the call to the SOAP extensions by a call to that new
 SCA for
   PHP extension?
  
   I think it would give us a very nice integration scenario for our
M2
   release. Could this be added without destabiliziing the release?
 I just
   reviewed the RC1 and think we're almost there so I wouldn't want
 at all
   to break it by adding stuff at the last minute! On the other hand
if
   it's really easy to modify the PHP part of the Bigbank sample to
 include
   that PHP-SCA package that would be really cool...
  
   P.S: a side note, that PHP client is pretty well documented,
 listed in
   the Readme etc, and looks good, but actually missing from the RC1
 binary
   distro :) this is just a small bug in the build, I'll create a
 JIRA for
   this, independent of the question I'm asking here...
  
   Thoughts?
  
   --
   Jean-Sebastien
  
  
  
 -
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
  
  
 
 


 --
 Pete



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



OK that's fine by me. Like I said earlier in the thread, I wouldn't want
to break the release with last minute changes now that's it's stable and
almost ready for a vote. After the M2 release is published it would be
really cool if somebody in the group could post an article, Blog or add
to our Website a description of how to do this on top of our M2...

--
Jean-Sebastien


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

I'd be more than happy to create a PHP SCA client for Big Bank to either

sit alongside or replace the current PHP SDO client. Glad you don't want it
for M2 though as I'm a bit bit snowed under this week.

Regards

Simon


[C++ SDO] Can't copy SDOs with open content

2006-10-19 Thread Simon Laws

I have created a patch for this problem (
http://issues.apache.org/jira/browse/TUSCANY-873) which solves the immediate
problem I have in PHP SDO and passes the PHP SDO tests that exist at the
moment. However I'm not too comfortable with it because it is used by
numerous parts of data object API function which looks complicated enough
already.

What I have done is create a internal version of the getPropertyIndex()
method called getPropertyIndexInternal() which creates a new property in the
data object if the property doesn't already exist and the data object type
is open. I use this new method whenever is seems that getPropertyIndex was
used during the setting of properties. Can an C++ SDO expert take a look at
this and see if this looks OK. Happy to discuss alternative approaches.

Regards

Simon


Re: [C++ SDO] Can't copy SDOs with open content

2006-10-19 Thread Simon Laws

On 10/19/06, Pete Robbins [EMAIL PROTECTED] wrote:


OK... I've tested this and it works a treat. Is this an issue that you'd
like to see fixed in M2 release? We are about to re-spin so it can be
included.

Cheers.


On 19/10/06, Pete Robbins [EMAIL PROTECTED] wrote:

 forget that... I fixed up your patch

 On 19/10/06, Pete Robbins [EMAIL PROTECTED] wrote:
 
  Simon, what you have done there looks ok to me. However... the patch
has
  hard-coded paths to yor c:\... eclipe directories in. Any chance you
can
  create a friendly patch for me to apply and test?
 
  Cheers,
 
 
   On 19/10/06, Simon Laws [EMAIL PROTECTED]  wrote:
  
   I have created a patch for this problem (
   http://issues.apache.org/jira/browse/TUSCANY-873 ) which solves the
   immediate
   problem I have in PHP SDO and passes the PHP SDO tests that exist at
   the
   moment. However I'm not too comfortable with it because it is used
by
   numerous parts of data object API function which looks complicated
   enough
   already.
  
   What I have done is create a internal version of the
   getPropertyIndex()
   method called getPropertyIndexInternal() which creates a new
property
   in the
   data object if the property doesn't already exist and the data
object
   type
   is open. I use this new method whenever is seems that
getPropertyIndex
   was
   used during the setting of properties. Can an C++ SDO expert take a
   look at
   this and see if this looks OK. Happy to discuss alternative
   approaches.
  
   Regards
  
   Simon
  
  
 
 
  --
  Pete




 --
 Pete




--
Pete

Sorry about the paths in the patch. I can't see how to get rid of them

from the Eclipse SVN patch builder. I'll look in a little more detail.

I think we should leave it out of M2. I can pick up a revision from SVN with
it in as required.

Thanks

Simon


SDO - dealing with CDATA

2006-10-26 Thread Simon Laws

This is primarily a C++ question but I guess could apply to Java also. I'm
trying to read a document into C++ SDO that contains a CDATA section. The
corresponding CDATA doesn't make its way into the resulting SDO. I put the
C++ SDO implementation in the debugger and found the reason why:

sax2parser.cpp

void sdo_cdataBlock(void *ctx, const xmlChar *value, int len)
{
}

So the callback exists, gets called with the correct data during the parse,
i.e. LibXML2 is doing the right thing, but the callback is ignored. Is there
a good reason for this? I did a quick search of the C++ and Java specs and
they don't appear to discuss CDATA specifically. Can someone comment on
whether the Java implementation handles CDATA successfully?

Logically, from an SDO point of view, there is probably no need to treat
CDATA specially as the SDO model dictates precisely the difference between
data and structure. We may find that to make the XML DAS function work we
have to know that a property potentially contains markup but I'd have to
look closely at how the C++ SDO implementation of the XML DAS function
streams out SDOs to XML when requested to do so.

If CDATA hasn't been omitted for a good reason I'll come up with a proposal
for C++ SDO.

Regards

Simon


Using Tuscany samples in articles.

2006-11-01 Thread Simon Laws

Raymond, Haleh and myself are putting together an article describing SCA. We
want to submit this to the Java Developers Journal for possible publication
when it's done. Raymond has put together a loan approval sample as part of
Tuscany (
https://svn.apache.org/repos/asf/incubator/tuscany/sandbox/rfeng/samples/mortgage/)
and we want to use some of the source code and configuration files in the
article in order to describe the various features of SCA and how solutions
can be implemented using Tsucany SCA. We want to make sure that the
Tuscanyproject (and Apache) is happy for us to do this so advice from
anyone who
has crossed this bridge before is most welcome. Specifically what is the
correct way to indicate in the article that we are using ASF Licensed code?

Regards

Simon


Re: Using Tuscany samples in articles.

2006-11-03 Thread Simon Laws

On 11/3/06, ant elder [EMAIL PROTECTED] wrote:


On 11/1/06, Simon Laws [EMAIL PROTECTED] wrote:

 Raymond, Haleh and myself are putting together an article describing
SCA.
 We
 want to submit this to the Java Developers Journal for possible
 publication
 when it's done. Raymond has put together a loan approval sample as part
of
 Tuscany (


https://svn.apache.org/repos/asf/incubator/tuscany/sandbox/rfeng/samples/mortgage/
 )
 and we want to use some of the source code and configuration files in
the
 article in order to describe the various features of SCA and how
solutions
 can be implemented using Tsucany SCA. We want to make sure that the
 Tuscanyproject (and Apache) is happy for us to do this so advice from
 anyone who
 has crossed this bridge before is most welcome. Specifically what is the
 correct way to indicate in the article that we are using ASF Licensed
 code?

 Regards

 Simon


You can do what you want with the Tuscany code as long as you abide by the
Apache license, section 4 sounds relevant -
http://www.apache.org/licenses/LICENSE-2.0.
I'd guess you need to be asking the publication what their requirements
are
as they may want to license any code they publish with their own terms and
conditions, if so so it may end up being easier if you write a new sample
specifically for the article.

   ...ant

Thanks for the reply ant. Yes am wondering if it would be easier to do

specific code because it strikes me as quite ungainly to reproduce the
appropriate license text alongside the snippets of code that we enevitably
want to reproduce. Judging by the flood of responses I guess that most
people just write specific samples.

Thanks

Simon


Re: SDO - dealing with CDATA

2006-11-03 Thread Simon Laws

On 11/3/06, Frank Budinsky [EMAIL PROTECTED] wrote:


Simon,

The Sequence entry returns a special property:

if (sequence.getProperty(i) == specialCDataProperty) {
  String cDataValue = sequence.getValue(i);
}

The problem is that this special property is currently inherited from the
underlying EMF, so it's really not something we want clients to use. RIght
now, this works fine in terms of reading in CDATA and not losing it when
you reserialize, but there's really no proper way for an SDO client to
actually access it. Without using EMF apis, the only way a client can
decide that an entry is CDATA is by looking at the property name (and hope
there's no real property with that name). Longer term, I'm not sure that
even handling it this way is right. Maybe CDATA and other special XML
things should look like mixed text in the sequence (property == null), and
some XMLHelper method (or some Tuscany specific API for now) could be used
to check if it's actually something special like CDATA. Maybe you should
try to do something like that in the C++ impl, and if it looks promissing,
we'll switch the Java impl to do the same.

Frank

Simon Laws [EMAIL PROTECTED] wrote on 11/03/2006 10:18:04 AM:

 On 11/3/06, Frank Budinsky [EMAIL PROTECTED] wrote:
 
  In the Tuscany Java implementation we expose CDATA as sequence entries
  (like mixed text) with a special CDATA property (we handle comments
in a
  similar way). SDO doesn't define a special property for CDATA, so this
is
  an implementation-specific feature. I'm not sure, long term, what
should
  be the best (proper) way to do this.
 
  Frank.
 
  Simon Laws [EMAIL PROTECTED] wrote on 11/03/2006 09:41:25
AM:
 
   On 10/26/06, Simon Laws [EMAIL PROTECTED] wrote:
   
This is primarily a C++ question but I guess could apply to Java
also.
  I'm
trying to read a document into C++ SDO that contains a CDATA
section.
  The
corresponding CDATA doesn't make its way into the resulting SDO. I
put
  the
C++ SDO implementation in the debugger and found the reason why:
   
sax2parser.cpp
   
void sdo_cdataBlock(void *ctx, const xmlChar *value, int len)
{
}
   
So the callback exists, gets called with the correct data during
the
parse, i.e. LibXML2 is doing the right thing, but the callback is
  ignored.
Is there a good reason for this? I did a quick search of the C++
and
  Java
specs and they don't appear to discuss CDATA specifically. Can
someone
comment on whether the Java implementation handles CDATA
successfully?
   
Logically, from an SDO point of view, there is probably no need to
  treat
CDATA specially as the SDO model dictates precisely the difference
  between
data and structure. We may find that to make the XML DAS function
work
  we
have to know that a property potentially contains markup but I'd
have
  to
look closely at how the C++ SDO implementation of the XML DAS
function
streams out SDOs to XML when requested to do so.
   
If CDATA hasn't been omitted for a good reason I'll come up with a
proposal for C++ SDO.
   
Regards
   
Simon
  
  
  
   I didn't get any response to this. Here are my further thoughts..
  
   There are a number of options for representing CDATA in SDO, for
example
  
   1) Duplicate the CDATA string as is, including the ![CDATA[ and
]]
   markers, to the appropriate property in the data object hiearchy
   2) Duplicate the CDATA string excluding the ![CDATA[ and ]]
  markers
   and instigate a special flag to indicate that CDATA is present.
  
   CDATA is the specific concern of XML, i.e. the chracter entities
that
  CDATA
   protects an XML parser from are of no
   concern to SDO because SDO is not intended to be tied directly to
XML.
  So
   given the example options above we
   either expose the specifics of XML to the SDO core 2) or to the SDO
user
  1).
  
   Neither are particularly attractive.
  
   1) appears to be the simplest approach to implement because it
provides
  a
   mechanism for the user to read, and
   create CDATA without having to provide much special support in SDO.
2)
  is
   more involved particularly because
   CDATA can appear mixed in with other text strings and so a sequence
may
  need
   to be used to represent properties
   that have a mixture of text and CDATA marking those sequences
entries
  that
   are CDATA.
  
   1) does require changes (at least in C++ SDO) because XML parsers
tend
  to be
   too helpful in this case for
   processing CDATA. XML parsers, libxml2 in particular, recognize the
   ![CDATA[ and ]] sequence as a special
   indicator and throw it away returning just the text it includes. We
  would
   have to reintroduce it and store it in
   the parameter value in question. The C++ SDO implementation uses a
lot
  of
   XML string handling before the parameter
   value is actually stored which URL encodes parts of the CDATA
markers so
   this would have to be fixed. When writing out the CDATA strings any

Re: SDO - dealing with CDATA

2006-11-08 Thread Simon Laws

On 11/3/06, Simon Laws [EMAIL PROTECTED] wrote:




On 11/3/06, Frank Budinsky [EMAIL PROTECTED] wrote:

 Simon,

 The Sequence entry returns a special property:

 if (sequence.getProperty(i) == specialCDataProperty) {
   String cDataValue = sequence.getValue(i);
 }

 The problem is that this special property is currently inherited from
 the
 underlying EMF, so it's really not something we want clients to use.
 RIght
 now, this works fine in terms of reading in CDATA and not losing it when
 you reserialize, but there's really no proper way for an SDO client to
 actually access it. Without using EMF apis, the only way a client can
 decide that an entry is CDATA is by looking at the property name (and
 hope
 there's no real property with that name). Longer term, I'm not sure that

 even handling it this way is right. Maybe CDATA and other special XML
 things should look like mixed text in the sequence (property == null),
 and
 some XMLHelper method (or some Tuscany specific API for now) could be
 used
 to check if it's actually something special like CDATA. Maybe you should
 try to do something like that in the C++ impl, and if it looks
 promissing,
 we'll switch the Java impl to do the same.

 Frank

 Simon Laws [EMAIL PROTECTED] wrote on 11/03/2006 10:18:04
 AM:

  On 11/3/06, Frank Budinsky [EMAIL PROTECTED]  wrote:
  
   In the Tuscany Java implementation we expose CDATA as sequence
 entries
   (like mixed text) with a special CDATA property (we handle
 comments
 in a
   similar way). SDO doesn't define a special property for CDATA, so
 this
 is
   an implementation-specific feature. I'm not sure, long term, what
 should
   be the best (proper) way to do this.
  
   Frank.
  
   Simon Laws  [EMAIL PROTECTED] wrote on 11/03/2006
 09:41:25
 AM:
  
On 10/26/06, Simon Laws [EMAIL PROTECTED]  wrote:

 This is primarily a C++ question but I guess could apply to Java
 also.
   I'm
 trying to read a document into C++ SDO that contains a CDATA
 section.
   The
 corresponding CDATA doesn't make its way into the resulting SDO.
 I
 put
   the
 C++ SDO implementation in the debugger and found the reason why:


 sax2parser.cpp

 void sdo_cdataBlock(void *ctx, const xmlChar *value, int len)
 {
 }

 So the callback exists, gets called with the correct data during
 the
 parse, i.e. LibXML2 is doing the right thing, but the callback
 is
   ignored.
 Is there a good reason for this? I did a quick search of the C++
 and
   Java
 specs and they don't appear to discuss CDATA specifically. Can
 someone
 comment on whether the Java implementation handles CDATA
 successfully?

 Logically, from an SDO point of view, there is probably no need
 to
   treat
 CDATA specially as the SDO model dictates precisely the
 difference
   between
 data and structure. We may find that to make the XML DAS
 function
 work
   we
 have to know that a property potentially contains markup but I'd

 have
   to
 look closely at how the C++ SDO implementation of the XML DAS
 function
 streams out SDOs to XML when requested to do so.

 If CDATA hasn't been omitted for a good reason I'll come up with
 a
 proposal for C++ SDO.

 Regards

 Simon
   
   
   
I didn't get any response to this. Here are my further thoughts..
   
There are a number of options for representing CDATA in SDO, for
 example
   
1) Duplicate the CDATA string as is, including the ![CDATA[ and

 ]]
markers, to the appropriate property in the data object hiearchy
2) Duplicate the CDATA string excluding the ![CDATA[ and ]]
   markers
and instigate a special flag to indicate that CDATA is present.
   
CDATA is the specific concern of XML, i.e. the chracter entities
 that
   CDATA
protects an XML parser from are of no
concern to SDO because SDO is not intended to be tied directly to
 XML.
   So
given the example options above we
either expose the specifics of XML to the SDO core 2) or to the
 SDO
 user
   1).
   
Neither are particularly attractive.
   
1) appears to be the simplest approach to implement because it
 provides
   a
mechanism for the user to read, and
create CDATA without having to provide much special support in
 SDO.
 2)
   is
more involved particularly because
CDATA can appear mixed in with other text strings and so a
 sequence
 may
   need
to be used to represent properties
that have a mixture of text and CDATA marking those sequences
 entries
   that
are CDATA.
   
1) does require changes (at least in C++ SDO) because XML parsers
 tend
   to be
too helpful in this case for
processing CDATA. XML parsers, libxml2 in particular, recognize
 the
![CDATA[ and ]] sequence as a special
indicator and throw it away returning just the text it includes.
 We
   would
have to reintroduce it and store it in
the parameter value in question. The C++ SDO

Re: [C++] Where next for Tuscany C++?

2006-11-09 Thread Simon Laws

On 11/8/06, Andrew Borley [EMAIL PROTECTED] wrote:


Hi everyone,

Now M2 is finally available, we should start thinking about what we'd
like to do next in Tuscany C++. There were quite a few items that were
suggested for M2 that we ended up leaving out for time reasons and it
would be good to progress the function we have in M2.

Things I would like to do/see:
- Add initial support for SDO handling in the Python extension (as an
XML serialization)
- Remove requirement for componentType side-files for Python components
- Get the PHP extension up to the level of the Ruby/Python extensions
- perhaps by using the SCA for PHP stuff
(http://www.osoa.org/display/PHP/SCA+with+PHP )
- Improve the samples for the scripting languages (nebulous! does
anyone have any good ideas?)
- A sample showing the different languages working together.
- A standalone REST binding - we can do a limited REST via the
support in Axis2C, but I think it would be cool to have a real
binding.rest that we can host in HTTPD.

Please join in with your own thoughts/plans!

Cheers

Andy

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

Hi Andy


I like the idea of extending the PHP extension and it would be pretty
interesting to see if we can make the PHP extension use the SCA for PHP work
we have in the PECL SCA_PHP project (see the homepage at
http://www.osoa.org/display/PHP/SOA+PHP+Homepage). I do of course have a
vested interest here ;-) In PHP SCA we don't use component type files
instead we rely on annotations and we also have SDO integration. The thing
about this is that we have a set of APIs that are, to some extent, an
interpretation of SCA and SDO as we thought they should be presented in a
scripting language. Now it may very well be that our interpretation needs
adjusting so this exercise of looking at PHP, Python, Ruby extensions to C++
SCA together will be really useful.

Of particular interest is how we push down the model from the scripting
language into the C++ model. So I imagine a set of APIs that allow us to
extend/complete the SCA C++ model by adding components type, components,
services, references, wires etc. as a result of parsing the information in a
supplied script. There is an interesting crossover point when it comes to
bindings, i.e. we have the oppotunity to leverage scripted or native
bindings.


From a samples point of view, the likes of PHP and Ruby get used a lot to

implement web applications and particulary now as the service providers for
AJAX applications. In particuar we now  have JSON-RPC/SMD support in PHP SCA
(just about to be checked into PECL). So we could do something there showing
how SCA describes integration through multiple application tiers.

The big question for me is how langauge specific do the sample have to be.
It's useful to have a single sample that shows how you do SCA stuff in all
of the different extensions. Calculator? But I think it would also be useful
to show the extensions operating in some more systematic sample. I'm a
little sceptical about just using the extensions arbitrarily in samples like
big bank but would rather use them where they are appropriate. So using a
PHP or Ruby component to provide the GUI experience for Big Bank makes
perfect sense. Just implementing the account service in Ruby or PHP is less
compelling.

I don't have that much experience of Python. The one time I have come across
it we were using it for infrastructure scripting I.e. we were using it in
place of a shell script so it would be interesting to have some SCA
components that play this role. In my particular case we we were providing a
job execution service so we had a number of scripts, e.g. assess job,
provision servers, provision data, run jobs,  retrieve results etc.

We could pick any process where scritps are often use, e,g, ETL/data
processing pipelines or batch control. Perhaps we could invent some
data/document processing pipeline that has various scripted components that
can be wired in in different ways to change the end effect, for example, you
can imagine todays application developers being familir with scripting in
data integration scenarios where they have to build service which go and
pull answers from lots of web sites and data resources. A script being
required to handle the peculiarities of each web site's particluar API.
Typically a problems in the tell me all the houses for sale in my area
type of question. SCA script components would be good here because you can
use the environment most appropriate for the peculiaries of the particular
data source in question and then use SCA to stitch it together. Anyhow just
some thoughts.

In doing all this scripting stuff we need to think about how SCA is hosted.
Currently we have Axis and local hosting IIRC. We need to think about more
direct HTTPD hosting. This is not the same as, but fits alongside, the REST
binding 

Re: [SDO] Hello rfc for what could be useful

2006-11-13 Thread Simon Laws

On 11/13/06, Andrew Borley [EMAIL PROTECTED] wrote:


Hi Dan,

The C++ interop test service I added is at

http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/test/ws.service.interop/

This can be run on Linux via make check (after it's been built) or
on Windows via the ws.service.interop.client/runclient.bat file - this
uses the 50-odd SDO interop schemas copied from
http://svn.apache.org/repos/asf/incubator/tuscany/interop/ and exposes
each one as a web service operation, implemented by a C++ class. Each
class method takes a DataObject, compares it with one loaded from some
XML on the file system and returns it back to the client (where it is
also compared with the original from the file system).

See the following thread for more info:
http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg08385.html

Hope that's useful - I'm happy to help improve/expand on this

Cheers
Andy

On 11/13/06, Dan Murphy [EMAIL PROTECTED] wrote:
 Hi Simon,
 Interop testing with PHP, C++, etc was certainly one of the things I was
 thinking of...
 The way I see it is that the tests could be run in a number of different
 modes:

 serialiseSDOs - serialise SDO object to file system so they could be
loaded
 by different impl
 deserialiseSDOs - load SDO objects from serialised
 useDynamicSDOs - programatically generate SDO using APIs
 useGeneratedSDOs - generate SDOs from schema and use the generated ones
to
 run tests

 I see serialise/deserialise option used to test interop between
different
 implementations of SDO - esp interop between implimentation languages.
The
 useGeneratedSDOs only makes sense with Java implementations (as I
understand
 it Java is the only one to generate simple objects to represent SDOs).

 All the tests would need to cover the features descriped in the spec (or
 agreed subset), for the serialise/deserialise tests to work there would
need
 to be shared SDO descriptions used - eg. C++ serialises a customer and
 Java deserialises it and checks the SDO is as expected).

 I'd be happy to work on the Java side, my C++ is rather poor so together
I
 think we could make some progress together - if the interop is needed...
as
 you say, would be a poor show if (complex) C++ serialised SDOs couldn't
be
 read by the Java impl...

 Cheers,
 Dan



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

Dan


Sounds like we are singing from the same hymn sheet as they say. We have
concentrated on the serialize/deserialize SDOs for the cross language
interop work we have done to date. This is the natural mode of operation
when passing an SDO, i.e. it is serialized at one end and deserialised at
the other. From Andy's descripition you can see how SDOs are bounced back
and forth and compared with one another. What we need is a Java version of
the same service so we can have java play opposite itself and C++ as both
client and server.

We should look at dynamic SDOs too (for the sample schemas?) but we haven't
got round to that yet.

We tried to summarize the various tests that need running in the
README.txtassoicated with the interop test cases (
https://svn.apache.org/repos/asf/incubator/tuscany/interop/src/main/resources/README.txt).
This could well do with a bit of review and updating now. Might be a good
place to start.

Regards

Simon


  1   2   3   4   5   6   7   8   9   10   >