Re: Simple way to run Tuscany from source distribution?
Luciano Resende wrote: Hey Scott Currently, our ant script and guides are based on having a distribution available, and you will have to use maven if you want to build/run from trunk source or a source distribution. On Thu, Jun 12, 2008 at 8:44 AM, Scott Kurz [EMAIL PROTECTED] wrote: What's a simple way to run simple apps like the samples from the source distribution? I noticed on the Getting Started: http://incubator.apache.org/tuscany/getting-started-with-tuscany-using-the-command-line.html it assumes you're running from the binary? I'm looking for something either command-line or Ant-based and trying to avoid Maven. Thanks, Scott There are two other ways: - write the Ant scripts to build Tuscany - use them to build the source distro - contribute them to Tuscany or - write the Ivy scripts to build Tuscany - use them to build the source distro - contribute them to Tuscany Who knows, Tuscany may even adopt them :) -- Jean-Sebastien
Re: Can't generate a Java interface from a WSDL portType
Simon Nash wrote: Jean-Sebastien Delfino wrote: Scott Kurz wrote: Sebastien, I'm surprised the package names would be different. What is the namespace you're using that isn't mapping to the same package in each tool? Just curious... My app is an order processing app with the following: WSDL service namespace: http://sample/Order/Binding WSDL Order portType namespace: http://sample/Order The CXF tool generates interface sample.order.Order The JAXWS RI tool generates interface sample.order.binding.Order I gave the same WSDL file (containing the WSDL service) to both tools. One could argue that both are correct vs the JAX-WS spec as they generate a correct package name from the namespace of 'the' WSDL definition, but the funny thing is that they do not pick the same WSDL definition... JAXWS-RI picks the input definition given to the tool and CXF the definition that actually contains the portType... and the JAXWS spec doesn't seem to state which one should be picked (at least I couldn't find it). IMHO the CXF behavior is better, but I've not read all 150 pages of the JAX-WS spec so I may be missing something :) From section 2.2 of the JAX-WS spec: A wsdl:portType element is mapped to a Java interface in the package mapped from the wsdl:definitions element (see section 2.1 for a description of wsdl:definitions mapping). Section 2.1 says: A wsdl:definitions element and its associated targetNamespace attribute is mapped to a Java package. JAXB[10] (see appendix D) defines a standard mapping from a namespace URI to a Java package name. By default, this algorithm is used to map the value of a wsdl:definitions element’s targetNamespace attribute to a Java package name. } Conformance (Definitions mapping): In the absence of customizations, the Java package name is mapped from the value of a wsdl:definitions element’s targetNamespace attribute using the algorithm defined by JAXB[10]. Yeah I read that too. Again, both implementations comply with that text but pick different definitions. That's all. So IMO the Java package name that's used to map the portType should be derived from the targetNamespace of the wsdl:definitions element. What was this targetNamespace? See above: http://sample/Order Simon -- Jean-Sebastien
Re: Can't generate a Java interface from a WSDL portType
Raymond Feng wrote: Hi, I got the CXF code-gen plugin 2.1 working after debugging the plugin source code :-(. Here is the pom.xml snippt I figured out. Please note I had to override wsdlRoot/testWsdlRoot to be a non-existing file to avoid NPE (I assume it's CXF bug if the wsdl files are in src/test/resources/wsdl). ... That worked for me too. The generated output is slightly different from the JAXWS RI wsimport (different package name for the generated interface for example) but it looks OK. Thanks! -- Jean-Sebastien
Re: STP SCA Component - STP SCA Tools sub project
Stéphane Drapeau wrote: Hi, I created an entry [0] in the Eclipse bugzilla with the proposal. Your comments are welcome. Best regards Stéphane Drapeau Obeo [0]: https://bugs.eclipse.org/bugs/show_bug.cgi?id=225956 The proposal looks pretty good to me. I have a few comments/questions: - Are you going to have tools to create SCA contributions, imports/exports, contribution dependencies etc? - You mention validation rules in the EMF model. Will the tool create problems, warnings, tasks etc in the Eclipse problem view? - Do you have any plans to provide hooks to Run/Debug SCA components from the tool? - Are you going to cover any of the SCA domain and deployment aspects, like deploying SCA contributions and composites to an SCA domain shared by a team for example? +1 from me to have Tuscany listed as an interested party. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SCA 2.0, was Re: Next SCA release
haleh mahbod wrote: 1 - [] Put V2 doc changes in V1 pages and mark them as such 2 - [] Create SCA Java 1.x/ SCA Java 2.x documentation pages on our current site wiki 3 - [] Create separate SCA Java 1.x/ SCA Java 2.x wiki spaces Option 2 seems reasonable. Option 3 can be considered in the future if there is a need. It would be good to get user's perspective on all this. +0.5 for options [1], [2] and maybe [3] later :) I'm just saying 0.5 as looking at our current docs as I'm not sure about how people are planning to change them in 2.0. It's a little difficult to discuss a process to manage changes without knowing the extent and nature of the changes :) -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: ask help for implemetation.widget
Fengxiang wrote: Thanks!.Luciano Resende Yesterday evening, I got an successful configuration of ict.composite. It seems almost work well .All pages I want was sucessfully integerated into index, and show right output, but there is still a little problem,that is the there is always a script error which tell me : Exception throw and not caught . This happend on loading callwidget.html in a frame in index.html. I guset there will be some un property involk of : function a(){ var CallService = new Reference(callService); CallService.call(,,CallService_getResponse); } - ict.composite- ?xml version=1.0 encoding=UTF-8? composite xmlns=http://www.osoa.org/xmlns/sca/1.0; xmlns:t=http://tuscany.apache.org/xmlns/sca/1.0; name=ICTComposite targetNamespace=http://ICTComposite; component name=ContactServiceComponent implementation.java class= com.asb.services.contact.ContactServiceImpl / service name=ContactService interface.java interface= com.asb.services.contact.ContactService/interface.java t:binding.jsonrpc/t:binding.jsonrpc /service /component component name=CallServiceComponent implementation.java class=com.asb.services.call.CallServiceImpl / service name=CallService interface.java interface=com.asb.services.call.CallService /interface.java t:binding.jsonrpc/t:binding.jsonrpc /service /component component name=callwidget t:implementation.widget location=webtop/callwidget.html/t: implementation.widget service name=Widget t:binding.http / /service reference name=callService target=CallServiceComponent t:binding.jsonrpc/t:binding.jsonrpc /reference /component component name=contactwidget t:implementation.widget location=webtop/contactwidget.html/t: implementation.widget service name=Widget t:binding.http / /service reference name=contactService target=ContactServiceComponent t:binding.jsonrpc/t:binding.jsonrpc /reference /component component name=icthome t:implementation.widget location=webtop/index.html/t: implementation.widget service name=Widget t:binding.http / /service /component /composite - callwidget.html html head titlecall/TITLE script type=text/javascript src=/SCADomain/scaDomain.js/script script type=text/javascript src=callwidget.js/script script language=JavaScript //@Reference var ContactService = new Reference(callService ); function CallService_getResponse(items) { document.getElementById('callComponent').innerHTML=items; } function a(){ var CallService = new Reference(callService); CallService.call(,,CallService_getResponse); } /script /head body onload=a() h1callwidget/h1 form name=callComponentForm div id=callComponent/div br /form br /body /html CallServiceImpl--- /** * */ package com.asb.services.call; import org.osoa.sca.annotations.Service; /** * @author meflyup * */ @Service(CallService.class) public class CallServiceImpl implements CallService { public String call(String caller,String callee){ return call successful; } } BTW,I can receive the msg of call successful in my index.html page. Another question : According the ict.composite file , the index file should be visit with http://localhost:8080/icthome/index.html. and callwidget.html shoulde be visit with http://localhost:8080/callwidget/callwidget.html. and contactwidget.html should be visit with with http://localhost:8080/contactwidget/contactwidget.html.. Any other link will cause HTTP ERROR: 404. Is that right, but now I can visit the index.html with http://fengxiang:8080/contactwidget/index.html and http://fengxiang:8080/callwidget/index.html. but i can't visit the http://fengxiang:8080/icthome/contactwidget.html,and http://fengxiang:8080/icthome/callwidget.html. How could these happen, It seems disorder. isn't it? BR. Thanks. Hi Fengxiang, Could you create a JIRA issue and attach your files to it in a Zip? I can take a look but it'll be easier to debug that way, as this may be a problem with the layout of the files in your directory structure for example. Thanks -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: web services and 2 way ssl
[EMAIL PROTECTED] wrote: ... What is the best way to handle the 2 way ssl? ... I don't know 2 way SSL enough to answer this one, hoping that somebody else on the list can address it... ... Also in regards to the Atom feed: Can I somehow create a feed that appends a dynamic query parameter to the url? That one is easier, see that earlier post: http://marc.info/?l=tuscany-userm=120622009406177 Hope this helps, let us know if you have more questions on the dynamic query parameter support. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Passing URL parameters to a feed component?
Skip Schuler wrote: So the thing is that I need to implement the Servlet interface, is that right? No you don't need to implement the Servlet interface. The workspace admin app does more than producing feeds and that's why it implements the Servlet interface in addition to the Collection interface used to produce feeds. The following options are available for what you want to do: A. Implement o.a.t.sca.implementation.data.api.Collection This is a high level interface allowing you to produce feeds out of collections of data items, without having to deal with the details of ATOM or RSS in your code. It has a query method, which will be invoked when the service is invoked with query parameters. The Tuscany tutorial's ShoppingCart [1] shows an example, I just added code to it showing how to implement that query() method. B. Implement o.a.t.sca.binding.atom.collection.Collection That interface allows you to work with the ATOM feed directly if you need to, represented as an o.a.abdera.model.Feed model object. It also has a query method. The feed-aggregator sample [2] shows how to implement that query method, and http://localhost:8083/atomAggregator?title=whatever now returns a feed of articles with titles containing 'whatever'. C. Implement o.a.t.sca.binding.rss.collection.Collection to produce RSS feeds and in your code work with the RSS feed directly, represented as com.sun.syndication.feed.synd.SyndFeed model objects. This is similar to (B) but for RSS feeds, with a query method as well. Options (B) and (C) are available starting with Tuscany 1.2 release, which we are in the middle of releasing. I'd suggest to try 1.2 release candidate 1 as soon as it's available (probably today watch for any announcement from Luciano). You'll see notable changes in 1.2 as it now uses Apache Abdera instead of ROME to provide better support for ATOM. [1] http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/tutorial/assets/services/ShoppingCartImpl.java [2] http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/feed-aggregator/src/main/java/feed/AggregatorImpl.java -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: WS outside of control
Raymond Feng wrote: Hi, Welcome to Tuscany! Let me first make sure that I understand your scenario correctly. 1) You have an external web service MathService developed with Axis2 and the endpoint address is http://localhost:8080/zong/services/MathService. 2) In the Calculator composite, you want to wire to the MathService to provide the add function 3) There is an interface AddService with add operation Since the MathService has different operations than AddService, the Calculator component needs to wire to the MathService using an interface compatible with MathService, for example, you can define an interface for the MathService as: @Remotable public interface RemoteMatchService { public double addiere(double a,double b); public int aufrunden(double a); } And change the Calculator impl to be: private RemoteMatchService addService; @Reference public void setAddService(RemoteMathService addService) { ... } public double add(double n1, double n2) { return addService.addiere(n1, n2); } Hmmm, that will work but requires changes to CalculatorServiceImpl.java. The neat thing with SCA is that you can also support your scenario without a code change (but a little more assembly), as follows: 1. Create a 'mediation' component that mediates between the AddService and the MathService interfaces. class AddMediationImpl implements AddService { private MathService mathService; @Reference public setMathService(MathService service) { this.mathService = service; } public double add(double a, double b) { return mathService.addiere(a, b); } } 2. Put that mediation component on the path to your remote math service in your .composite. composite ... component name=CalculatorServiceComponent implementation.java class=calculator.CalculatorServiceImpl/ reference name=addService target=MediationServiceComponent/ ... /component component name=MediationServiceComponent implementation.java class=calculator.AddMediationImpl/ reference name=mathService binding.ws uri=http://localhost:8080/zong/services/MathService; / /reference /component ... /composite Mediation components like that allow you to compose an application out of services that were not initially designed to fit together, by adapting their interfaces and/or behavior. They are usually simple to write by hand, or if you have many interface mappings like that one, you can just write a simple tool that generates them for you. Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Adding support for Properties in Implementation widget, was Re: SCA in Web 2.0 applications...
Luciano Resende wrote: For now String. this might change when I get isMany working. OK. I think that string is fine, and 'isMany' properties can map to an array of strings. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: What should be in Tuscany SCA Java release 1.2?
Luciano Resende wrote: Time flies and is already March. I'd like to restart discussion on this thread and start building a list of things we want to do for SCA 1.2 and I'd also like to volunteer for Release Manager for SCA 1.2 release. On Thu, Feb 14, 2008 at 8:52 AM, Simon Laws [EMAIL PROTECTED] wrote: Hi It's probably about time we started talking about what's going to be in Tuscany SCA Java release 1.2. From the past timeline I would expect us to be trying for a release mid to late March which is not very far away. Some of the things I'd like to see are; More progress on our domain level composite and generally the processing that has to go there There have been a lot of policy changes going on and it would be good to get them in. Also linked to the item above we should look at how policy affects domain level processing. Don't know if it's achievable but some elements of the runtime story we have been talking about on the mail list for a while now Feel free to add topics on this thread. I've also opened up the Java-SCA-1.2category in JIRA so start associating JIRA with it, for example, if 1 - you've already marked a JIRA as fixed and its sitting at Java-SCA-Next 2 - you are working or are going to work on the JIRA for 1.2 3 - you would like to see the JIRA fixed for 1.2 Of course everyone is invited to contribute and submit patches for JIRA whether they be for bugs or new features. Inevitably not all wish list features will get done so you improve your chances of getting you favorite feature in by submitting a patch for it. Regards Simon +1 from me for Luciano as RM for 1.2! I'll do a pass through JIRAs as suggested by Simon earlier in this thread and will also try to post tomorrow about the items I'd like to see in 1.2. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SCA C++ implementation - bindings?
ant elder wrote: On Thu, Feb 21, 2008 at 8:25 AM, Prashanth Rao [EMAIL PROTECTED] wrote: What are the approaches needed to integrate C++ component with say Java component. Is webservice binding the only way i can wire them together? Thanks Prashanth I think thats right, WS is the best way to do this today. binding.sca should work as well as both the Java and C++ runtimes use Web Services (using Axis2/Java and Axis2C) for it. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem with javabean data binding (empty arraylist)
Pedro David Lopez wrote: Hi, I'm a new Apache Tuscany user and I have a problem Im using ws binding and return from the web services very simple javabeans. This beans have some strings, integers and arraylists atributtes. In other case is a simple java ArrayList. When I try web services the javabean received has only the strings and integer values but empty arraylist. (Always empty arraylist). My beans implements Serializable and i dont have exceptions. (no errors from data transformers but empty arraylist). ¿Some help? THANK YOU Pedro Lopez,Push The Button, S.L. Hi, I don't think that ArrayList is supported. List may be supported (but I'm not sure, maybe Raymond can jump in and shed some light here). Arrays are supported, I'm using arrays in some of my sample apps and have not seen any issues with them. Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: store example as a servlet?
Matthew Peters wrote: Thanks for the encouragement, all. I'll let you know how I get on. This probably off topic for this list, but the choice between implementation.web and implementation.servlet is an interesting one. The page Jean-Sebastien refers to says that implementation.web is the current thinking, but implementation.servlet has its virtues too. It rather depends on whether you want the detail of the individual servlets exposed for configuration - would you want per servlet aspects like the servlet init parameters exposed as SCA properties for example? If you did, you might like something like implementation.servlet name=warfilename#servletname property name=currencyEURO/property /implementation.servlet In this case you could present currency to the servlet as a servlet init parameter. This properly a topic for the place in OSOA where the SCA-JEE integration is discussed, of course, and I raised it as an issue there recently, though it has not been discussed yet. Matthew Peters Makes a lot of sense to me. Both implementation.web and implementation.servlet are interesting: - implementation.web models the contracts around a webapp and helps assemble a webapp with others in a bigger SCA assembly. - implementation.servlet can model the assembly of the webapp itself. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Axis2 configuration
wrote: Hello , Does anybody know how to change the default configuration settings for binding.ws ? To be specific , I am looking for the number of connections that Axis can open in the same time to a remote server. The default behaviour seems to allow only 2 connections opened and this is a bottleneck in a high volume application. Some information is available in the Axis2 documentation [1], confirming the limitation and giving an API to change the default of 2. I'll investigate to see how to improve the current behavior: - see if we can configure it externally - or see if we need to change the scope of the HttpClient instances (I think we are using one instance of HttpClient per reference at the moment). Would you mind creating a JIRA for this issue? it'll help track it. Thanks. [1] http://ws.apache.org/axis2/1_3/http-transport.html -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Eclipse RCP apps and Tuscany
Rajini Sivaram wrote: [snip] I dont know the code well enough to understand how these contributions are used/loaded/resolved etc. But yes, it will be good to stop manipulating URLs to locate contributions. +1, if I understand correctly, the scenario discussed here is like this: Bob, application developer, writes Java code to bootstrap Tuscany and load some SCA contributions into it, before starting his composites. With the current API, Bob's code needs to do something like: TuscanySomething.addContribution(location of the contribution) Bob can't seriously hardcode the location of the contribution: - C:\Bob's Dir\aContribution.jar is only going to work on Bob's machine. - At development time the location is also different, something like C:\Bob's IDE workspace\aProject\bin. - When Bob builds with Maven the location is probably different again C:\Bob's build Dir\target\classes. Bob didn't want to have to write 3 different classes for these 3 cases, so he put his SCA contribution on his classpath and wrote (almost) portable code to locate it (by looking for a known resource on the classpath and getting the location of the contribution from the resource's URL). This is a hack around an inconvenient Tuscany bootstrap API which requires the app developer to give the location of his contributions. How about trying to attack the real problems IMO: - Bob shouldn't have to specify a location in the first place, he should be able to identify his contributions by contribution logical URI. - or even better, Bob should not have to write any code to bootstrap the runtime and list contributions in the first place. - and Bob shouldn't have to put his SCA contributions on his VM's classpath either (see the Store tutorial for an example, where the store contribution references the assets contribution without a classpath dependency on it). Thoughts? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: sample crud implementation
Luciano Resende wrote: The one in the host-embedded is used for unit testing, and to make sure extensions are working ok. The one in samples, is basically a copy, and it's used as an example of how to build a new implementation type. As you said in the first e-mail, the two are basically the same, and I'd recommend you to stick with one of them (the sample version that is more well documented) Yes. Stick to the sample and ignore the test case, I'm going to change the test case to avoid confusion in the future. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: sample crud implementation
Jean-Sebastien Delfino wrote: Luciano Resende wrote: The one in the host-embedded is used for unit testing, and to make sure extensions are working ok. The one in samples, is basically a copy, and it's used as an example of how to build a new implementation type. As you said in the first e-mail, the two are basically the same, and I'd recommend you to stick with one of them (the sample version that is more well documented) Yes. Stick to the sample and ignore the test case, I'm going to change the test case to avoid confusion in the future. Done. I have refactored the test case and also cleaned up the CRUD sample and added more relevant comments to it. Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Service Discovery for SCA
Novak, Miroslav wrote: Hi, Thanks for your reply. I'm glad that you like the idea of Service Discovery for SCA. Actually, I think that the best (and probably simplest) interface for the discovery would be REST. I'm nor SCA neither Tuscany expert so maybe that my view is too simplistic but I would like to use e.g. this URI space: /domain/{an SCA domain}/composites/{a composite}/services /references /composites/{a composite}/components/{a component}/services /references /query/services[binding,name,qname,...] Each of the collections should allow searching by key attributes like name, binding type, ... Repositories (and regular users) interested in SCA composites, components, services, ... could check regularly RSS feeds of appropriate collections. That sounds very interesting. We could make the collection of composites in a domain as an Atom collection or RSS feed. It should be relatively easy to implement using the feed binding that we have or some REST binding derived from it or the HTTP binding that we have. Once you've made the SCA metadata available on the Web, then it becomes really easy to reference it, feed it into a search engine, feed readers etc. --- Recently, I've been thinking about turning the idea Service Discovery for SCA up-side-down - instead of discovering what is inside SCA, SCA runtime could discover what is outside SCA. Imagine that Tuscany can read service definitions from a Repository or Registry (e.g. standard UDDI Registry). Then you can use any services (Web Services) registered in a Repository or Registry from your SCA application (component) without knowing anything about their deployment or implementation - that's *real SOA* :-). When creating a new service in Tuscany, you could say: I want to use this service -uddi:banking:accounts:AccountService(service is determined by its UDDI key - UUID) OR http://banking.com/accounts#wsdl.service(AccountService). reference name=accountService tuscany:binding.uddi uddiKey=uddi:banking:accounts:AccountService/ /reference OR reference name=accountService binding.ws wsdlElement= http://banking.com/accounts#wsdl.service(AccountService)/ /reference So, this way: * I only need to know interface of a service (its QName from its WSDL) in order to use the service (I don't care where the service is deployed and where the WSDL is located - this information in maintained by a Repository or Registry) * Tuscany can use whatever mechanism to resolve my reference using e.g. a UDDI Registry. In the ideal world: !-- Tuscany could look through all service by QName-capable repositories for a service that I want to use -- reference name=accountService binding.ws wsdlElement= http://banking.com/accounts#wsdl.service(AccountService)/ /reference Regards, Mirek Or - picking on your search idea - you could just do a search for the service descriptions published as REST resources in the domain that provide the interface you want :) -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: What is Tuscany?
Joshua Jackson wrote: On 12/8/07, Raymond Feng [EMAIL PROTECTED] wrote: Hi, Joshua. Thank you for your interests in Tuscany. Let me try to dump some information to you :-). Tuscany provides open-source software for distribution at no charge to the public, that simplifies the development, deployment and management of distributed applications built as compositions of service components, where the components may be written using any of a wide range of programming languages and where the components can be connected using any of a wide range of communication technologies. This software will implement relevant open standards including, but not limited to, the SCA and SDO standards defined by the OASIS OpenCSA member section. There are a few articles/slides: http://webservices.sys-con.com/read/325183.htm http://java.sys-con.com/read/458183.htm http://cwiki.apache.org/confluence/download/attachments/70211/Tuscany-SOAWorld.ppt?version=1 http://apache-tuscany.blogspot.com/ Thanks for the article. I kind of get idea now. This is what I get from it: SCA is a kind of glue code for glueing pool of apps to be used by another apps. So our new apps will connect to SCA and SCA will connect to these pool of apps. CMIIW. You can find more information at: http://incubator.apache.org/tuscany/. Tuscany is not an ESB offering. My understanding is that it's closer to the business application developers by providing a service assembly model and programming model. The ESB will provide the flexible IT infrastructure that composite applications can be deployed. I don't quite understand. People out there compares SCA with JBI, which is an ESB. :( And that's an insight that I get from those articles you gave me too. This may help: http://www.osoa.org/display/Main/Relationship+of+SCA+and+JBI -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SDO: some question while using sdo with EJB
[snip] kelvin goodson wrote: Hello again, thanks for your questions. With regards to your first question, I think it's basically the same answer as I posted earlier today, that you can create an ObjectInputStream associated with an arbitrary HelperContext. However, as an aside, I realised in my earlier response that I perhaps slightly misrepresented the SDO API's capability, saying that it has no way to deal with your issue. That's a slight inaccuracy, since we are using SDO's API to read the object, but just providing a customised ObjectInputStream, so I should have said that the SDO API has no explicit means of solving the issue, but currenlty relies on implementations to do the kind of thing we have done by providing a specialised ObjectInputStream. Coincidentaly I'm starting to work on an SCA application that is going to call an EJB running on Geronimo from an SCA composition and I want to be able to send SDOs to the EJB at some point. It looks like my use case is similar to Eg's use case. My EJB container is not SDO-aware and therefore is not going to use a customized SDO-aware ObjectInputStream... So is there any other way to get the SDO deserialized with the default JDK non-SDO-aware ObjectInputStream? The other related question is. In such a server environment what are the possible scopes for SDO metadata? thread? classloader? can I define new scopes? Thanks. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SCA WS Binding Wrapper Style
Simon Laws wrote: [snip] The assumption I'm making from the info you gave is that you want to have two SCA components communicate with the same domain but be able to specify the WSDL that the web services binding uses. I guess what you would need to be able to do is specify a binding something like component name=MyClientComponent implementation.java class=org.apache.tuscany.SomeImpl/ reference name=myService target=MyServiceComponent/MyService binding.ws wsdlElement= http://tuscany.apache.org#wsdl.binding(MyServiceSOAP11Binding)/ /reference etc.. Where you are referencing a WSDL binding but not providing a service location with a view to having the domain sort this out for you. A similar thing would appear on the service end also. This all sounds plausible but I just took a look at the SCA WebServices binding specification and it says that when the #wsdl.binding form is used the endpoint address URI must be provided via the URI attribute on the binding which makes it a little difficult for the domain logic to help you out. There is a possibility that this is a fault in the spec in this case but let me try a few experiments and think about it a little before we call it out. If others know the answer now feel free to jump in. My understanding is that wiring is not limited to the SCA binding. It's probably a bug in the WS binding spec, which should allow the WS endpoint address to be determined through wiring in the domain. In other words the above XML snippet should be made to work. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Cannot obtain composite service directly
Adrian Mos wrote: Hi Luciano, Thanks for your help! Indeed, if I use component_name/$promoted$.service_name it actually works (in my case InnerWeatherComponent/$promoted$.InnerWeatherService). However as you mention in your older post, we should definitely be able to just look up the service_name directly. The current workaround means that the client must know the actual component promoting the service and if the composite writer decides to wire the service differently (to another component exposing the same interface), the client must know about it. Therefore, in the current situation, the composites do not hide their internal structure properly and in my view this is not completely aligned with the SCA philosophy. It's a bug, getService(interface, InnerWeatherService) should work if InnerWeatherService is declared in a top-level composite (i.e. a composite added to the domain level composite). Could you please open a JIRA issue for this? Thanks. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
At ApacheCon this week
Anyone going to ApacheCon? I'm there at the Hackathon today and will be there all week. Drop me an email if you're going to be there and want to meet! -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Generating Ant Re: Please nominate the bug fixes for Tuscany SCA Java 1.0.1 release
Raymond Feng wrote: Hi, The plugin is a great relief. Thanks! For the binary distro, we used to have all the jars (including tuscany and 3rd party) under lib folder. Are you proposing to have tuscany jars under modules and 3rd party jars under lib now? It seems that the generated ant scripts follow that pattern. Raymond The Tuscany module JARs are already under modules in 1.0. The generated ant scripts just follow the existing pattern like: http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-webapp/build.xml -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SCA WCF Integration
Jean-Sebastien Delfino wrote: Anderson, Jeff T (CA - Toronto) wrote: Our client is also very interested in this topic, be very interested in seeing how it performed tighter integration, such as being able to declare an intent on a wcf service method and use the Tuscany or other SCA policy framework to satisfy the intent at runtime. Just one of many examples, I don't know a lot about W.CF but it does seem that the approach is very similar to SCA, so in theory, a binding shouldn't necessarily be Uber difficult. Is anybody else interested in tighter integration up there? Regards Jeff From: Simon Nash [mailto:[EMAIL PROTECTED] Sent: Mon 2007-10-22 10:33 To: tuscany-user@ws.apache.org Subject: Re: SCA WCF Integration You are correct that in Tuscany currently we don't have any way to make a WCF Web service part of the SCA domain. I think there are (at least) two options for how you could do this. 1. Use binding.ws on a SCDL reference to connect from the SCA domain to the WCF Web service. The reference is part of the SCA domain but the WCF Web service that it invokes is not part of the SCA domain. 2. Create an SCA service that encapsulates the WCF service, and wire to this SCA service in the usual way. The encapsulating SCA service is part of the SCA domain. It would be possible to create a new component implementation type implementation.wcf to specify this encapsulation and perform the necessary WCF invocations. This is a great topic to discuss and I'm sure others will have other alternatives and opinions on the pros and cons of various approaches. Simon James, Steven wrote: I have a question regarding WCF and SCA integration which I am hoping someone in this list can give clarity to. As far as I see it currently a WCF Web service is not part of the SCADomain. If a composed component had a dependency on a WCF component could an explicit reference be set to that WCF web service in the SCDL file? Or is this an internal matter and how we connect and invoke the WCF component should be encapsulated in our SCA component? Regards, Steve A few more thoughts, using the WCF Getting Started Calculator example at http://msdn2.microsoft.com/en-us/library/ms751519.aspx to illustrate what could be done... - Step 1: Model the WCF service as an SCA reference with a WS binding, would look like this: composite xmlns=http://www.osoa.org/xmlns/sca/1.0; targetNamespace=http://sample; xmlns:sample=http://sample; name=Calculator !-- A Java Calculator service component, delegating the add operation to the WCF Calculator service -- component name=CalculatorServiceComponent implementation.java class=calculator.CalculatorServiceImpl/ !-- the addService reference bound to the WCF Calculator service -- reference name=addService binding.ws port=...the WCF Calculator WSDL.../ /reference /component /composite Here the SCA domain only contains a reference to the external WCF service and its WSDL configuration. - Step 2: Model the WCF Calculator as an SCA component implementation, like that: composite xmlns=http://www.osoa.org/xmlns/sca/1.0; targetNamespace=http://sample; xmlns:sample=http://sample; name=Calculator !-- A Java Calculator service component delegating the add operation to the WCF Calculator service component -- component name=CalculatorServiceComponent implementation.java class=calculator.CalculatorServiceImpl/ !-- the addService reference wired to the WCF Calculator service component -- reference name=addService target=WCFCalculatorServiceComponent/ /component !-- A service component representing the WCF Calculator example -- component name=WCFCalculatorServiceComponent !-- Web.config defines the app's services and references -- implementation.net config=C:\WCF-Samples\TechnologySamples\Basic\GettingStarted\CS\service\Web.config/ /component /composite Here we would represent the WCF app as a component implementation, introspect its WCF Web.config or App.config file to determine the services it offers, its references and configuration. Once you've represented the WCF app as an SCA implementation + component you can start using SCA wiring in your SCA domain as usual. To get Step 1 going will only require some configuration and Axis2 / WCF interop testing. Step 2 will take a little bit of coding to support implementation.net and introspect WCF configs but it should be pretty easy to do... Thoughts? A few more code snippets to help illustrate Step 2: This Web.config could be represented as an SCA component providing a service: configuration system.serviceModel services service name=Microsoft.ServiceModel.Samples.CalculatorService behaviorConfiguration=CalculatorServiceBehavior
Re: Why there is no tuscany-binding-jms-1.0-incubating.jar in release apache-tuscany-sca-1.0-incubating.zip
Luciano Resende wrote: The following JIRA [1] has some more info on the JMS Binding and it's current status. [1] https://issues.apache.org/jira/browse/TUSCANY-1789 On 10/19/07, JunJie Nan [EMAIL PROTECTED] wrote: $ ls modules/*-binding-* modules/tuscany-binding-dwr-1.0-incubating.jar modules/tuscany-binding-ejb-1.0-incubating.jar modules/tuscany-binding-feed-1.0-incubating.jar modules/tuscany-binding-http-1.0-incubating.jar modules/tuscany-binding-jsonrpc-1.0-incubating.jar modules/tuscany-binding-notification-1.0-incubating.jar modules/tuscany-binding-rmi-1.0-incubating.jar modules/tuscany-binding-sca-1.0-incubating.jar modules/tuscany-binding-sca-axis2-1.0-incubating.jar modules/tuscany-binding-sca-xml-1.0-incubating.jar modules/tuscany-binding-ws-1.0-incubating.jar modules/tuscany-binding-ws-axis2-1.0-incubating.jar modules/tuscany-binding-ws-xml-1.0-incubating.jar I can not find it on maven2 repository too. Any story? Thanks! -- Cheers Jun Jie Nan ∧ ∧�� ミ^ō^ミ灬)~ If you want to use the JMS binding now (with its current limitations), you should be able to build it from the Subversion trunk: http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/binding-jms/ It should also be in the nightly build at: http://incubator.apache.org/tuscany/tuscany-downloads-documentations.html Are you interesting in getting the JMS binding in a release soon? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Please nominate the bug fixes for Tuscany SCA Java 1.0.1 release
Raymond Feng wrote: Hi, As it was originally proposed, we'll do a SCA Java 1.0.1 release using the 1.0 branch as the base line. The 1.0.1 is intended to be a bug fix release and it should contain only non-disruptive changes. The approach we take is to pull post-1.0 commits of incremental bug fixes from the trunk and merge them into the 1.0.1 branch. Please start to nominate what fixes should be pulled into this release as soon as you can. I created a wiki page at http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Desired+bug+fixes+for+SCA+Java+1.0.1+release. I would appreciate if you can fill in your desired items there. We probably need to coordinate the merges once we have the list built by the community. Thanks, Raymond - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Replying to tuscany-user only to avoid cross posting. In past releases some of our samples Ant build.xml files had incorrect dependencies. I had proposed a Maven plugin [1] to help fix and generate them automatically. I started to work on that plugin yesterday, hoping that it will help verify (if not generate) our build.xml files this time. If there's no objections I'll put the plugin under modules/maven-ant-generator. [1] http://marc.info/?l=tuscany-devm=119064381620712 -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: throws Exception problem
Hi Nishant, I just realized that nobody has responded to your email yet. I have a few questions about the issue you're seeing. Nishant Joshi wrote: About jira 1562 , I have one user defined exception class in same directory as my impl. and service, now i have generated wsdl on the fly. but there is a problem with namespace for this exception class What's the exception class name and what's the generated namespace? and it was creating problem when i was creating client in Eclipse. Are you taking the WSDL generated by Tuscany and using some Eclipse tool to generate a (non-Tuscany) Web Services proxy? I'm guessing here so feel free to correct me if I guessed wrong :) Which Eclipse tool? Eclipse WTP or another Web Services tool? I am using eclipse's facility to create client for me. problem was in eclipse MyException.java is resides in abc.xyz.xsd package while other classes(stub,proxy etc...) which was generated by eclipse is accessing like abc.xyz.MyException and it was giving me error sign at same place. actually MyException was at abc.xyz.xsd, So why other classes has wrong package name? Why two packaging structure for one class? is it make sense? Are you generating the other classes that reference abc.xyz.MyException with the same Eclipse tool? or did you write these classes by hand? Could you list the steps that you're going through, and indicate what tool you use when? it'll help us understand your scenario and help you... Thanks. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [DISCUSS] Tuscany SCA Roadmap and next releases
Simon Laws wrote: On 10/17/07, Raymond Feng [EMAIL PROTECTED] wrote: I collected all the input we have so far at the following WIKI page: http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Roadmap+Discussion Thanks for doing that! Coincidentally there's a recent news article related to the worthwhileness of these types of lists over on INFOQ: http://www.infoq.com/news/2007/10/product-backlogs-wasteful We did try having the wishlist jira version but it never really ended up being used very much. ...ant [snip] Thanks for the ref ant. Very interesting. In our case the list we have generated is very much a list of features desired but not yet implemented.I wasn't suggesting we take the next step and analyse them all in detail though, just that we don't loose these thoughts in case someone decides that they would like to do the analysis in the future. I think this thread is equating the act of creating a Roadmap with identifying the ideas that the currently active community agree will add real value to Tuscany SCA and it's users. I'm keen though that we don't create an immutable plan/roadmap and that we have plenty of ideas hanging around that may encourage those not currently contributing to do so. I see the danger of a stated roadmap is that it gives the impression that that is what is going to happen, that all the items are being worked on and encourages people to sit back and wait for features to arrive. Re. the wish JIRA type. maybe now is the time. The wiki page is a long list already. Wish list items don't require much management, they may hang around for a long time but they provide inspiration to newcomers and to the active community when we inevitably repeat this exercise. Regards Simon How about trying to understand the use cases for that Wiki page and/or JIRA list? Here are a few: A) I just found out about SCA and Tuscany. I want to know what it does now and what it'll do in the future. B) I'm using Tuscany. I want to know what features will be provided, short, middle and long term. C) I'd like to contribute to Tuscany. Who's working on what and are there any interesting areas that I could jump into? more thoughts? Here are some roadmaps that I found worthwhile and useful as a lurker, user, and potential contributor. There are some good organization + format ideas in these roadmaps: [1] http://harmony.apache.org/roadmap.html [2] http://cwiki.apache.org/GMOxDEV/roadmap-for-21.html [3] http://cwiki.apache.org/GMOxPMGT/geronimo-what-folks-are-working-on.html [4] http://wiki.apache.org/ws/FrontPage/Axis2/post-1%2e3-plans [5] http://ode.apache.org/roadmap.html [6] http://subversion.tigris.org/roadmap.html Going back to the use cases: IMO a roadmap like [3] answers question (C), and questions (A) and (B) too... as seeing people names and the releases that they target shows that the listed features are not just wishes or vaporware. Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tuscany service with bea WebLogic
[snip] Venkata Krishnan wrote: ..or how about just supporting introspection of one level of jars within wars if jars are nested inside jars we don't look at them... will this bring down the complexity a bit.. or would it actually not matter that much ... I think that the combinations that make sense are: - now, .jars in .war!WEB-INF/lib - then later, .wars in .ears +1 on not trying jars nested inside jars, I've never seen that pattern, and was even not thinking about it. - Venkat On 10/16/07, ant elder [EMAIL PROTECTED] wrote: On 10/12/07, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote: snip I think this goes back to what I describing earlier in this thread, if we want to support WARs as a first class SCA contribution type we have to consider artifacts stored in JARs under WEB-INF/lib as integral part of the Web Archive like other artifacts in the WAR. We'll need to open these JARs and process them like the rest of the artifacts in the WAR. Doing this will help Nishant and all others running Tuscany on WebLogic. Ok but from what was said earlier (we would have to consider this carefully as allowing for nested archives may cause all kinds of complications) it doesn't sound like it will be a really quick thing to fix. It looks like WebLogic always creates a jar from the classes folder with a fixed name - _wl_cls_gen.jar - so how about just have some special case code to deal with that one specific jar for now just to get Tuscany running on WebLogic? ...ant I'm not sure that one JAR _wl_cls_gen.jar or all JARs under WEB-INF/lib will make a difference in terms of complexity. Maybe we can fallback to the special case hack if a clean solution really does not work, but I'd try suggest to try the clean solution first. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: strange dependency change
Radim Kolarik wrote: Hi Sebastien, I don't understand your question. What do you mean by level of Tuscany? We used the same build and same version - 1.0-incubating, if that is the question... Yes that was the question :) I just wanted to know which Tuscany version you were using and make sure that you were using the same version in both cases. One more question, which Maven version are you using? We used exactly the same build scripts, same version, but suddenly the jar started to appear in the built WAR. I would bet that the JAR is now appearing in calculator example as well, meaning it won't run. About two weeks ago, the JAR was not there... I'll try the Tuscany 1.0 release later today, but can already confirm that I am able to reproduce the problem with the Tuscany trunk with Maven 2.0.7. I'll investigate the Maven dependency analysis report to see where this new dependency on servlet-api is coming from... -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: strange dependency change
Jean-Sebastien Delfino wrote: Radim Kolarik wrote: Hi Sebastien, I don't understand your question. What do you mean by level of Tuscany? We used the same build and same version - 1.0-incubating, if that is the question... Yes that was the question :) I just wanted to know which Tuscany version you were using and make sure that you were using the same version in both cases. One more question, which Maven version are you using? We used exactly the same build scripts, same version, but suddenly the jar started to appear in the built WAR. I would bet that the JAR is now appearing in calculator example as well, meaning it won't run. About two weeks ago, the JAR was not there... I'll try the Tuscany 1.0 release later today, but can already confirm that I am able to reproduce the problem with the Tuscany trunk with Maven 2.0.7. I'll investigate the Maven dependency analysis report to see where this new dependency on servlet-api is coming from... Here's what I found after digging into the Maven POM files and the SVN change history, an unfortunate sequence of events. The dependency on servlet-api-2.3 is coming from an Apache Rampart module. See rampart-project-1.3.pom [1]. In Tuscany revision r576569 [2] (between Tuscany 1.0 RC1 and RC2) we made a change to remove the dependency on rampart-project-1.3 as it was a snapshot at the time (and we did not want any snapshots in the release). However we left a dependency on rampart-core-1.3.jar, which was published on ibiblio.org but did not have a Maven POM published with it (from what I see in an archive of my Maven repository from that time, only the JAR file and an MD5 signature seemed to have been published). On Oct 4th, a Maven POM for rampart-core.1.3.jar was published on ibiblio.org [3]. That POM declared a dependency on the rampart-project-1.3, bringing back rampart-project-1.3.pom and the dependency on servlet-api-2.3.jar. To summarize: - nothing changed in the published Tuscany 1.0 artifacts - nothing changed in the Rampart 1.3 artifacts published on ibiblio.org - the publication of rampart-core-1.3.pom at [3] on Oct 4th suddenly caused that new dependency on servlet-2.3.api.jar. So here's the trap we fell into: A dependency on a JAR published on the ibiblio.org Maven repository not accompanied by a Maven POM can break us later if somebody publishes a POM that adds transitive some dependencies for example... That's tricky. I'm going to fix the Tuscany trunk to exclude servlet-api-2.3.jar. Our next release should include that fix (BTW we've committed a number of fixes on top of 1.0 recently and I'm starting to think that we should have another release soon). Are you OK with the exclusion workaround you have found for now until the next release? [1] http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/rampart/rampart-project/1.3/rampart-project-1.3.pom [2] http://mail-archives.apache.org/mod_mbox/ws-tuscany-commits/200709.mbox/[EMAIL PROTECTED] [3] http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/rampart/rampart-core/1.3/ -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: strange dependency change
[snip] Radim Kolarik wrote: Hi, our web service build using SCA is implemented as a WAR application. Our WAR pom.xml (Maven) file has the following dependencies: dependency groupIdorg.apache.tuscany.sca/groupId artifactIdtuscany-host-webapp/artifactId version1.0-incubating/version /dependency dependency groupIdorg.apache.tuscany.sca/groupId artifactIdtuscany-binding-ws-axis2/artifactId version1.0-incubating/version /dependency dependency groupIdorg.apache.tuscany.sca/groupId artifactIdtuscany-implementation-java-runtime/artifactId version1.0-incubating/version /dependency Some time ago (at the end of last month), this generated a WAR file without servlet-api JAR in it's WEB-INF\lib folder. Now, for some reason, it generates a war file with servlet-api in it, resulting in the war file not working on Websphere or Weblogic. Which levels of Tuscany were you using before? and now? Do you know what happened and is there any way of excluding the jar from war automatically at tuscany side? We solved the problem by adding an exclusion to the following dependency: It'll depend on your answer to the above question :) -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tuscany and Websphere
Matthew Peters wrote: I am trying to understand how a contribution that contains a mix of artifacts, including JEE artifacts, should be handled by Tuscany and the runtime into which it is being deployed. SCA-enabling of a JEE runtime and the scenarios that this will address are introduced in a whitepaper at: http://www.osoa.org/pages/viewpage.action?pageId=3980 Tuscany currently supports what's described in this whitepaper as Single Module Assembly: A Web module is used as an SCA contribution containing component implementations. Components are assembled inside the Web module using SCA composites. The whitepaper mentions a single META-INF/web.composite, right now in Tuscany we allow you to name your composite however you want. I'd like to tacke the main other scenarios described in the whitepaper in the next releases, as mentioned in the Tuscany Roadmap discussion at: http://marc.info/?l=tuscany-userm=119203494411767w=2 Some of this work has already started in the context of the Tuscany - Geronimo plugin at http://svn.apache.org/repos/asf/geronimo/plugins/tuscany/trunk. Here's a scenario just to make it concrete. Imagine I have a contribution that includes some JEE UI components like some servlets or JSPs, some Java SCA components, and just to make it tricky an EJB that is also an SCA component (if that's not possible yet then I am guessing it will be in the future). If I understand correctly, this will probably translate to something like follows (using the terminology from the whitepaper): composite component name=MyUI implementation.web module=ui.war/ reference name=myBackendService target=MyBackend/MyService/ /component component name=MyBackend implementation.ejb ejb=backend.jar/ /component /component /composite As a first step, I think we could just represent Web modules and EJB modules as component implementations and not necessary try to boil the ocean right away with individual EJBs as component implementations, maybe later... And suppose, to be specific, that I want to deploy this onto Websphere Application Server (WAS). In this scenario I really want to understand things like what should happen during deployment and runtime, and how Tuscany and WAS should cooperate during class loading and instantiation and do any dependency injection. I can think of two different approaches. The first is to put Tuscany firmly in charge [snip] The other approach is to leave WAS in charge as far as possible. [snip] Tuscany is not trying to reinvent a JEE container. It seems that the JEE container should be running the JEE artifacts and Tuscany would just inspect the JEE artifacts and derive their SCA ComponentType from it would find in them. [snip] Essentially it seems to me that Tuscany and WAS are both meaty runtimes that are used to being in charge by themselves, especially WRT class loading and instantiation. Has anyone thought this all through and can tell me how it ought to work? We only started to discuss the JEE integration in the roadmap this week... so it's a little too early to say how it ought to work :). I don't think that Tuscany should impose its own classloading and instantiation mechanism. I think that Classloading is a function of the hosting environment. Tuscany needs to use the ClassLoader provided by your particular J2SE / OSGi / Tomcat / Geronimo / WebSphere / WebLogic / JBoss / Glassfish / etc hosting environment. If it doesn't, then it's a bug which ought to be fixed. It looks like there's active discussions on our dev list and people working on it to help Tuscany play well with OSGi as we speak :). IMO instantiation of an implementation is a function of the particular implementation type container: - An implementation.java is instantiated by the Tuscany implementation-java container, according to the rules in the SCA Java CI spec. - An implementation.bpel is instantiated by Apache ODE (the BPEL engine integrated with Tuscany). - An implementation.web is instantiated by the Web container in which it is deployed. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [DISCUSS] Tuscany SCA Roadmap and next releases
Matthew Peters wrote: As you'll guess from the post on Websphere and Tuscany that I put up a couple of days ago, My response: http://marc.info/?l=tuscany-userm=119223827124704 I would like to see where you want to go in the area of - Webapp and EJB module integration I'd like to track the OASIS work on this and implement it in parallel in Tuscany. Many users have existing J2EE EJB and EAR modules that they'll need to integrate in bigger SCA compositions. Also Webapp developers will need a non-intrusive way to wire a Webapp with other SCA components in an SCA domain. For example when you wire a webapp to an SCA component, how is the SCA domain found, I think that an SCA-enabled runtime (a JEE runtime or any other form of SCA enabled runtime) needs to be configured with a domain URI that it will belong to. At the moment in Tuscany we just pass that URI when we bootstrap the runtime. If you're up for a long read, see the SCA Domain discussion thread on the tuscany-dev list, here's a pointer to the last email in that thread: http://marc.info/?l=tuscany-devm=119196408721454w=2 and who starts and stops it? The domain administrator :) independent of what JEE or other apps are deployed to it. How and when did the components get deployed into it? I can think of three main scenarios: - An SCA domain administrator goes to his domain management application and uploads a contribution, then adds some composites from the contribution to the domain level composite. At that point the SCA domain management app finds the appropriate runtime node for the contribution, distributes the contribution to the node. - An administrator goes to a node belonging to an SCA domain, uploads a contribution, then adds some composites from the contribution to the domain level composite. - A contribution and composites have already been installed on a node by some mechanisms unknown to Tuscany, the SCA domain administrator goes to the domain management application to register the presence of these composites in the domain. ... and all kinds of variations of the above, but these scenarios are not really specific to JEE integration, it's just how I view an SCA domain being used. And wre we ever going to have webapps which *are* SCA components so that we want to do dependency injection directly into a servlet for example? I guess this is the idea of being able to declare a JEE Web module as an SCA component implementation. You can declare SCA references on the Web module, wire them to SCA services, and invoke them from code running in the Webapp. I'm not very fond of mixing programming models, as it makes tech people happy but usually gets in the way of the business application developer who's trying to achieve something without having to learn 4 programming languages, 12 APIs, and 37 different ways to bind XML to Java. So I hope we can do this in a non-intrusive way without introducing too many SCA programming model artifacts in the JEE Webapp. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tuscany service with bea WebLogic
Nishant Joshi wrote: I have found one work around for this problem but i would like to ask one question that if in my WAR file if i put all WEB-INF\classes files in a jar and put it under WEB-INF\lib directory and clean my classes directory than I can't accesss services. is it bug in tuscany or i can't access like this way. This is the problem with weblogic, I have tested this scenario with Tomcat where it was working fine but result was as expected i can't access service from lib directory. Hi Nishant, I created a WAR similar to what you're describing (moved the classes to a JAR placed in the lib directory) and I think am able to reproduce the problem you're seeing, on Tomcat as well. Here's the exception I'm seeing. Could you please confirm that this is the exception you're seeing? Thanks. HTTP Status 500 - *type* Exception report *message* *description* _The server encountered an internal error () that prevented it from fulfilling this request._ *exception* org.apache.jasper.JasperException: An exception occurred processing JSP page /calc.jsp at line 37 34: thExpression/ththResult/th 35: /tr 36: tr 37: td2 + 3/tdtd%= calculatorService.add(2, 3) %/td 38: /tr 39: tr 40: td3 - 2/tdtd%= calculatorService.subtract(3, 2) %/td Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:93) *root cause* org.osoa.sca.ServiceUnavailableException: No service invoker is available for reference default (bindingURI=CalculatorServiceComponent operation=add). org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvider.createInvoker(RuntimeSCAReferenceBindingProvider.java:192) org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addBindingInterceptor(RuntimeWireImpl.java:214) org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChains(RuntimeWireImpl.java:156) org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChains(RuntimeWireImpl.java:97) org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.getInvocationChain(JDKInvocationHandler.java:190) org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:124) $Proxy31.add(Unknown Source) org.apache.jsp.calc_jsp._jspService(calc_jsp.java:76) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter(TuscanyServletFilter.java:93) *note* _The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs._ -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tuscany service with bea WebLogic
Simon Laws wrote: On 10/11/07, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote: Nishant Joshi wrote: I have found one work around for this problem but i would like to ask one question that if in my WAR file if i put all WEB-INF\classes files in a jar and put it under WEB-INF\lib directory and clean my classes directory than I can't accesss services. is it bug in tuscany or i can't access like this way. This is the problem with weblogic, I have tested this scenario with Tomcat where it was working fine but result was as expected i can't access service from lib directory. Hi Nishant, I created a WAR similar to what you're describing (moved the classes to a JAR placed in the lib directory) and I think am able to reproduce the problem you're seeing, on Tomcat as well. Here's the exception I'm seeing. Could you please confirm that this is the exception you're seeing? Thanks. HTTP Status 500 - *type* Exception report *message* *description* _The server encountered an internal error () that prevented it from fulfilling this request._ *exception* org.apache.jasper.JasperException: An exception occurred processing JSP page /calc.jsp at line 37 34: thExpression/ththResult/th 35: /tr 36: tr 37: td2 + 3/tdtd%= calculatorService.add(2, 3) %/td 38: /tr 39: tr 40: td3 - 2/tdtd%= calculatorService.subtract(3, 2) %/td Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException( JspServletWrapper.java:524) org.apache.jasper.servlet.JspServletWrapper.service( JspServletWrapper.java:435) org.apache.jasper.servlet.JspServlet.serviceJspFile( JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter( TuscanyServletFilter.java:93) *root cause* org.osoa.sca.ServiceUnavailableException: No service invoker is available for reference default (bindingURI=CalculatorServiceComponent operation=add). org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvider.createInvoker (RuntimeSCAReferenceBindingProvider.java:192) org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addBindingInterceptor (RuntimeWireImpl.java:214) org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChains( RuntimeWireImpl.java:156) org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChains( RuntimeWireImpl.java:97) org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.getInvocationChain (JDKInvocationHandler.java:190) org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke (JDKInvocationHandler.java:124) $Proxy31.add(Unknown Source) org.apache.jsp.calc_jsp._jspService(calc_jsp.java:76) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service( JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFile( JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.doFilter( TuscanyServletFilter.java:93) *note* _The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs._ -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This error from the default SCA binding is basically saying that the wire to the target service is not configured correctly (or at all). In particular in this case the reference has the name default which is the name set when the proxy is created for a target component that can't be found in the local runtime. As you might expect there can be several reasons for this. Are you seeing any warnings reported when the contributions is processed? What I'm thinking about in particular is elements that can't be parsed because the appropriate extension isn't loaded. Regards Simon I investigated a little more and the issue is pretty simple: Tuscany does not scan for .composite files in JARs placed under WEB-INF/lib. I think that it's by design - although we can discuss changing the design :). We currently support the following SCA contribution packaging schemes: - A folder, SCA artifacts (.composite, .componentType files etc.) are placed under the folder or sub-folders. - A JAR, SCA artifacts are placed directly in the JAR. - A WAR, SCA artifacts are placed directly in the WAR. We do not support nesting JARs inside JARs or JARs inside
[DISCUSS] Tuscany SCA Roadmap and next releases
Hi all, We've released v1.0 of Tuscany SCA 2 weeks ago... So it's probably the right time now to ask what people want to do next and try to build a roadmap for the next few releases. Here are a few random thoughts to initiate the discussion. I've just listed the things that came to my mind this morning, but I'm sure that there's much much more to add :) - Support for transaction and reliability policies Several users have asked for it, and there's now a public draft of the transaction policy spec - Webapp and EJB module integration I'd like to track the OASIS work on this and implement it in parallel in Tuscany. Many users have existing J2EE EJB and EAR modules that they'll need to integrate in bigger SCA compositions. Also Webapp developers will need a non-intrusive way to wire a Webapp with other SCA components in an SCA domain. - Conversational and non blocking + callback programming model over Web2.0 bindings Seems like a good fit with JSON for example... in particular Ajax interactions fit really well with the SCA non blocking + callback programming model. - Ability to model client side JavaScript components Looking at the Store sample for example, I'd like to be able to model the client Javascript as a component with SCA references to the ShoppingCart and Catalog services, instead of manually creating JSON and Atom client proxies in the client Javascript code. - Support for Atom using Apache Abdera Abdera just released their 0.3.0, I've started to look at it and it looks pretty good. I think we should try to port our Atom/RSS binding to it and see how it compares with the Rome library which we are currently using. - More modular distributions, in addition to our current all-in-one distribution, distribute smaller packages that people can choose to install or not? - Some clean up of the core runtime invocation and injection mechanism, we can probably simplify and actually remove code in a number of places :) Could people please jump in and say what they want to see in the next few releases? What they need for their Tuscany based projects? What is missing? What needs to be improved or fixed? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Reg: Big-Bank Demo
Hi, some answers inline. Ashwin Jeksani wrote: Hi, Can someone please clear my doubts? 1. In the bigbank-account demo the Account Component is refering to AccountData Component in the same Composite then why do we have two composite files(BigBank.composite AccountData.composite) can some one explain me? AccountData could have been just declared in BigBank.composite, the idea with this demo was to illustrate that you can nest composites, and then once you've done that you can make changes to AccountData, grow it from one small component to a bigger assembly of components without having to change BigBank.composite. That's all :) 2. If we are referring to a local component and sending the input as a String and the response is an Object then do we have to serialize the object? No serialization should be needed to call a local component (the interface is not marked as @Remote, the component runs in the same node and no binding is used to call it). Thanks Regards, Ashwini Kumar -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tuscany service with bea WebLogic
Nishant Joshi wrote: Hi All, I am trying to access Tuscany service from bea weblogic. I have deployed it on weblogic successfully but i can't generate wsdl on the fly. has anybody tried to deploy and access tuscany service from weblogic? I am using latest tuscany sca build. I am using weblogic 9.2 MP2 Hi, I have not tried Tuscany on WebLogic. Maybe some other users have tried it? Is the Web Service actually working and it's only the WSDL generation that doesn't work? Just to be sure, is the exact same WAR working on Tomcat? Are you seeing any exception? What are you getting when you open the serviceURL?wsdl? Thanks -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Online Store example - JSONRpcClientException
Steve Jones wrote: On Tuesday 02 October 2007 18:38, Jean-Sebastien Delfino wrote: Steve Jones wrote: Hi, I'm having problems with the online store example: http://incubator.apache.org/tuscany/sca-java-10-incubating-release-su mmary.data/getting-started-1.0.pdf The example builds and starts up OK and the console list the correct servlet mapping. When I point my browser at: http://localhost:8080/ufs/store.html The store page is displayed OK but the Apple,Orange,Pear rows and check boxes are missing. The firefox error console shows: Error: uncaught exception: JSONRpcClientException: Not Found By inserting a few alerts in store.js the offending js line is: //Reference catalog = (new JSONRpcClient(../Catalog)).Catalog; This is on jdk1.5.0_11 using the Tuscany 0.99 distribution. Any suggestions on what may be wrone or how to resolve this would be much appreciated. Thanks, Steve. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] If I remember correctly, with Tuscany 0.99 we needed to write: catalog = (new JSONRpcClient(../Catalog/)).Catalog; instead of: catalog = (new JSONRpcClient(../Catalog)).Catalog; If you're still using 0.99 could you please try to change ../Catalog to ../Catalog/? Let me know if it helps. Thanks. Adding a slash to the end ../Catalog and ../ShoppingCart in store.js fixes the problem - thanks. Good :) I used the Tuscany 0.99 as that is the one shown in the example. The screen caps in getting-started-1.0.pdf are a little outdated, we need to refresh them to show 1.0 instead of 0.99 and Tomcat instead of Jetty. If I switch libraries and use the Tuscany 1.0 distribution the example starts an instance of Tomcat 6.0.10 and not Jetty. Yes the default changed from Jetty to Tomcat, but externally it should work the same way. I get an error due to a missing style.css. I can fix this by creating a dummy css in ufservices/ The missing CSS file is now in the Tuscany trunk, but if you just ignore the message about the missing CSS, the sample should just work. Or are you seeing more errors? If I then start the example again I get the following: Starting ... 03-Oct-2007 10:27:01 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.10 03-Oct-2007 10:27:02 org.apache.catalina.startup.ContextConfig defaultWebConfig INFO: No default web.xml 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xsd 03-Oct-2007 10:27:03 org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 03-Oct-2007 10:27:03 org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 03-Oct-2007 10:27:03 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping INFO: Added Servlet mapping: http://localhost:8080/ufs/* 03-Oct-2007 10:27:03 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping INFO: Added Servlet mapping: http://localhost:8080/Catalog 03-Oct-2007 10:27:03 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping INFO: Added Servlet mapping: http://localhost:8080/SCADomain/scaDomain.js 03-Oct-2007 10:27:03 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping INFO: Added Servlet mapping: http://localhost:8080/ShoppingCart/* store.composite ready for big business !!! Pointing firefox at: http://localhost:8080/ufs/store.html I get the js error: uncaught exception: JSONRpcClientException:/Catalog/ The trailing slash makes no difference. Should this example work with 1.0? Yes, but without the trailing /. To summarize: - on 0.99, add a trailing /, as described in the 0.99 doc [1]. - on 1.0, no trailing / as shown in the 1.0 doc [2]. You will see a message about the missing CSS and can ignore it as it doesn't seem to break the sample logic. Hope this helps. [1] http://incubator.apache.org/tuscany/sca-java-099-incubating-release-summary.data/getting_started_Rest_099_07.pdf [2] http://incubator.apache.org/tuscany/sca-java-10-incubating-release-summary.data/getting-started-1.0.pdf -- Jean-Sebastien
Re: Online Store example - JSONRpcClientException
Steve Jones wrote: On Wednesday 03 October 2007 19:18, Jean-Sebastien Delfino wrote: Steve Jones wrote: On Tuesday 02 October 2007 18:38, Jean-Sebastien Delfino wrote: Steve Jones wrote: Hi, I'm having problems with the online store example: http://incubator.apache.org/tuscany/sca-java-10-incubating-release- su mmary.data/getting-started-1.0.pdf The example builds and starts up OK and the console list the correct servlet mapping. When I point my browser at: http://localhost:8080/ufs/store.html The store page is displayed OK but the Apple,Orange,Pear rows and check boxes are missing. The firefox error console shows: Error: uncaught exception: JSONRpcClientException: Not Found By inserting a few alerts in store.js the offending js line is: //Reference catalog = (new JSONRpcClient(../Catalog)).Catalog; This is on jdk1.5.0_11 using the Tuscany 0.99 distribution. Any suggestions on what may be wrone or how to resolve this would be much appreciated. Thanks, Steve. --- -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] If I remember correctly, with Tuscany 0.99 we needed to write: catalog = (new JSONRpcClient(../Catalog/)).Catalog; instead of: catalog = (new JSONRpcClient(../Catalog)).Catalog; If you're still using 0.99 could you please try to change ../Catalog to ../Catalog/? Let me know if it helps. Thanks. Adding a slash to the end ../Catalog and ../ShoppingCart in store.js fixes the problem - thanks. Good :) I used the Tuscany 0.99 as that is the one shown in the example. The screen caps in getting-started-1.0.pdf are a little outdated, we need to refresh them to show 1.0 instead of 0.99 and Tomcat instead of Jetty. If I switch libraries and use the Tuscany 1.0 distribution the example starts an instance of Tomcat 6.0.10 and not Jetty. Yes the default changed from Jetty to Tomcat, but externally it should work the same way. I get an error due to a missing style.css. I can fix this by creating a dummy css in ufservices/ The missing CSS file is now in the Tuscany trunk, but if you just ignore the message about the missing CSS, the sample should just work. Or are you seeing more errors? If I then start the example again I get the following: Starting ... 03-Oct-2007 10:27:01 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.10 03-Oct-2007 10:27:02 org.apache.catalina.startup.ContextConfig defaultWebConfig INFO: No default web.xml 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd 03-Oct-2007 10:27:02 org.apache.catalina.startup.DigesterFactory register WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xsd 03-Oct-2007 10:27:03 org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 03-Oct-2007 10:27:03 org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 03-Oct-2007 10:27:03 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping INFO: Added Servlet mapping: http://localhost:8080/ufs/* 03-Oct-2007 10:27:03 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping INFO: Added Servlet mapping: http://localhost:8080/Catalog 03-Oct-2007 10:27:03 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping INFO: Added Servlet mapping: http://localhost:8080/SCADomain/scaDomain.js 03-Oct-2007 10:27:03 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping INFO: Added Servlet mapping: http://localhost:8080/ShoppingCart/* store.composite ready for big business !!! Pointing firefox at: http://localhost:8080/ufs/store.html I get the js error: uncaught exception: JSONRpcClientException:/Catalog/ The trailing slash makes no difference. Should this example work with 1.0? Yes, but without the trailing /. To summarize: - on 0.99, add a trailing /, as described in the 0.99 doc [1]. - on 1.0, no trailing / as shown in the 1.0 doc [2]. You will see a message about the missing CSS and can ignore it as it doesn't seem to break the sample logic. Hope this helps. [1] http://incubator.apache.org/tuscany/sca-java-099-incubating-release-sum mary.data/getting_started_Rest_099_07.pdf [2] http
Re: validation of composite file
[snip] Florian Rosenberg wrote: Jean-Sebastien Delfino wrote: Mike Edwards wrote: Florian, I'd point out that the recommended way of doing things is to add things in your own namespace. Adding stuff to the OSOA XSDs is not encouraged. If using your own namespace does not work, then we have some work to do to fix that... Mike, +1, the other question is whether or not Florian's extension should be in the Tuscany namespace. we plan to contribute our stuff to Tuscany, as soon as we get permission , so I would rather stick to the Tuscany namespace. Sounds good :) My proposed rule of thumb for this: - if an extension is included in the Tuscany distribution, it can be in the Tuscany namespace, or a different namespace - if an extension is not included in the Tuscany distribution, it should be in a different namespace Nevertheless, I'll try to use my own namespace and see if it works. The following should work: - package your XSD defining its own namespace in your extension, as described in [1]. - change tuscany-sca.xsd to include your XSD if it belongs to the Tuscany namespace I have not tested if what I did in [1] will also allow you to contribute an XSD belonging to the Tuscany namespace without having to change tuscany-sca.xsd, but it may work as well :) [1] http://marc.info/?l=tuscany-userm=119130076117107 -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: validation of composite file
Mike Edwards wrote: Florian, I'd point out that the recommended way of doing things is to add things in your own namespace. Adding stuff to the OSOA XSDs is not encouraged. If using your own namespace does not work, then we have some work to do to fix that... Mike, +1, the other question is whether or not Florian's extension should be in the Tuscany namespace. My proposed rule of thumb for this: - if an extension is included in the Tuscany distribution, it can be in the Tuscany namespace, or a different namespace - if an extension is not included in the Tuscany distribution, it should be in a different namespace Yours, Mike. Jean-Sebastien Delfino wrote: Florian Rosenberg wrote: hi, I have my compoent type implementation and provided an XSD to use XML validation. Are there any specific steps I have to do. I'm currently using the version 1.0 binaries and I don't really where to put my XSD file. I checked the code and found the tuscany-assembly-xsd project, where I added my XSD to the tuscany-sca.xsd to check if it is working. All the validation errors on the console go away, nevertheless it does not really report an error if for example a mandatory attribute is missing in my XML tags. Could someone give us a brief description how the resolving works and how to enable it if I work with the Tuscany binary distribution and do not want to rebuild the tuscany-assembly-xsd to get it to work. Thanks, -Florian - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] The runtime currently loads: tuscany-assembly-xsd/src/main/resources/tuscany-sca-include.xsd - defining the SCA namespace http://www.osoa.org/xmlns/sca/1.0 tuscany-assembly-xsd/src/main/resources/tuscany-sca.xsd - defining the Tuscany namespace http://tuscany.apache.org/xmlns/sca/1.0 If you want to add your extension schema to the http://tuscany.apache.org/xmlns/sca/1.0 namespace you need to include it in tuscany-sca.xsd, and rebuild that module. This is not dynamic, but it's intentional as we need to provide application developers with a single central XSD file completely defining that namespace anyway... as this is what most XML schema validation tools and editors out there expect. If you want to define your extension schema in a different namespace, you can either: - Try to add the following to your composite element: composite ... xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=yourNamespace locationOfyourXSDFile ... not great but it should work. - Or just package the XSD file defining that namespace in your extension JAR and I'll add a few lines of code to look for and automatically load extension XSDs in extension JARs. I will post again here when it's ready for you to try. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: validation of composite file
Florian Rosenberg wrote: hi jean sebastien, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote on 09/27/2007 10:39:21 PM: Florian Rosenberg wrote: hi, I have my compoent type implementation and provided an XSD to use XML validation. Are there any specific steps I have to do. I'm currently using the version 1.0 binaries and I don't really where to put my XSD file. I checked the code and found the tuscany-assembly-xsd project, where I added my XSD to the tuscany-sca.xsd to check if it is working. All the validation errors on the console go away, nevertheless it does not really report an error if for example a mandatory attribute is missing in my XML tags. Could someone give us a brief description how the resolving works and how to enable it if I work with the Tuscany binary distribution and do not want to rebuild the tuscany-assembly-xsd to get it to work. Thanks, -Florian The runtime currently loads: tuscany-assembly-xsd/src/main/resources/tuscany-sca-include.xsd - defining the SCA namespace http://www.osoa.org/xmlns/sca/1.0 tuscany-assembly-xsd/src/main/resources/tuscany-sca.xsd - defining the Tuscany namespace http://tuscany.apache.org/xmlns/sca/1.0 If you want to add your extension schema to the http://tuscany.apache.org/xmlns/sca/1.0 namespace you need to include it in tuscany-sca.xsd, and rebuild that module. This is not dynamic, but it's intentional as we need to provide application developers with a single central XSD file completely defining that namespace anyway... as this is what most XML schema validation tools and editors out there expect. That is exactly what I did but for my case it does not seem to work, there is no XML validation, at least I don't get any error even if I omit required attributes etc. have to investigate what could be the reason. Even though, the validation does not seem to work for me, e.g.: service name=AddPostSpliceService promote=AddPostSpliceComponent interface.java interfaceERROR=com.ibm.sca.implementation.splice.SpliceService / /service component name=AddPostSpliceComponent tuscany:implementation.splice flow=tns:AddPost contentType=application/x-www-form-urlencoded / /component The interface attribute is wrong here but Tuscany throw the following error instead of giving me a validation error: org.osoa.sca.ServiceRuntimeException: org.osoa.sca.ServiceRuntimeException: org.apache.tuscany.sca.core.assembly.ActivationException: java.lang.NullPointerException at org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance (SCADomain.java:264) at org.apache.tuscany.sca.host.embedded.SCADomain.newInstance (SCADomain.java:69) at com.ibm.sca.implementation.splice.SpliceImplementationTest.setUp (SpliceImplementationTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod (BeforeAndAfterRunner.java:74) at org.junit.internal.runners.BeforeAndAfterRunner.runBefores (BeforeAndAfterRunner.java:50) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected (BeforeAndAfterRunner.java:33) at org.junit.internal.runners.TestMethodRunner.runMethod (TestMethodRunner.java:75) at org.junit.internal.runners.TestMethodRunner.run (TestMethodRunner.java:45) at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod (TestClassMethodsRunner.java:66) at org.junit.internal.runners.TestClassMethodsRunner.run (TestClassMethodsRunner.java:35) at org.junit.internal.runners.TestClassRunner$1.runUnprotected (TestClassRunner.java:42)) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected (BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestClassRunner.run (TestClassRunner.java:52) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:38) at org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:460)) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:673)) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:386): at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:196) Caused by: org.osoa.sca.ServiceRuntimeException: org.apache.tuscany.sca.core.assembly.ActivationException: java.lang.NullPointerException at org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init (DefaultSCADomain.java:180
Re: validation of composite file
[snip] Florian Rosenberg wrote: That is exactly what I did but for my case it does not seem to work, there is no XML validation, at least I don't get any error even if I omit required attributes etc. have to investigate what could be the reason. Even though, the validation does not seem to work for me, e.g.: service name=AddPostSpliceService promote=AddPostSpliceComponent interface.java interfaceERROR=com.ibm.sca.implementation.splice.SpliceService / /service component name=AddPostSpliceComponent tuscany:implementation.splice flow=tns:AddPost contentType=application/x-www-form-urlencoded / /component The interface attribute is wrong here but Tuscany throw the following error instead of giving me a validation error: Are you seeing this problem only after adding your schema to tuscany-sca.xsd? or already with the unchanged tuscany-sca.xsd? If you're seeing the problem with the unchanged tuscany-sca.xsd, which revision of the trunk or 1.0 branch are you using? I just tried to add the following to the sample-calculator Calculator.composite: service name=CalculatorService promote=CalculatorServiceComponent interface.java interfaceERROR=calculator.CalculatorService/ /service and when I run it I see: WARNING: XMLSchema validation problem in: file:/home/delfinoj/Tuscany/apache-repos/java/sca/samples/calculator/target/classes/Calculator.composite, line: 26, column: 3 cvc-complex-type.4: Attribute 'interface' must appear on element 'interface.java'. The XMLschema validator will not complain about the interfaceERROR attribute as the schema allows for anyAttribute. However it seems to correctly report the missing interface attribute. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: What happened to mustSupply?
Matthew Peters wrote: p. 26 of the 1.00 Assembly Spec describes a mustSupply attribute on a property inside a composite, used to mean that there is no default value and a value must be supplied by the component that uses the implementation. I don't see this attribute in the sca-core.xsd from the 1.0 Tuscany or any discussion of it on the mailing lists. Has the attribute gone for good, and has the concept gone as well? I am assuming that the noDefault attribute (used to be required) is for use just within a component type but perhaps that's wrong. Matthew Peters The mustSupply attribute described in the assembly spec is implemented by the Tuscany assembly model, XML readers and writers. The SCA XSD says: attribute name=noDefault type=boolean default=false use=optional/ instead of attribute name=mustSupply type=boolean default=false use=optional/ IMO this is a bug in the XSD, I'll report the issue to the OASIS assembly TC. In the meantime, you can try to specify that mustSupply attribute anyway. It should work in Tuscany and XMLSchema validation shouldn't complain about it as the XSD for property allows for anyAttribute namespace=##any processContents=lax/. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: websphere web service deployment problem
Radim Kolarik wrote: Hi, just wanted you to know that I have managed to solve the problem now. It was all about other files, which were on our classpath and which were not supposed to be there (our product jars). That caused classloader to load classes where they were not supposed to be loaded. The problem doesn't appear anymore. Thanks, Radim That's good news, as I was not able to reproduce the issue in my environment... I had tweaked a test case to do a new InitialContext() similar to what I saw in your stack trace, and it was working for me :) Thanks -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: websphere web service deployment problem
Radim Kolarik wrote: Hi, We are experiencing a problem on Websphere 6.1.0.11 with Tuscany 1.0. When we set all classloader properties, as mentioned before, I'm assuming that you mean: change classloader properties of your Webapp to parent-last / single, correct? we are getting the following exception when we try to call Websphere's AdminService.getAttribute: Stack Dump = java.lang.ClassCastException: org.apache.xerces.jaxp.SAXParserFactoryImpl incompatible with javax.xml.parsers.SAXParserFactory at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source) at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.makeParser(XMLLoadImpl.java:299) at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:140) at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:179) at org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResourceImpl.basicDoLoad(CompatibilityXMIResourceImpl.java:180) at org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResourceImpl.doLoad(CompatibilityXMIResourceImpl.java:173) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1094) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:900) at org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResourceImpl.load(CompatibilityXMIResourceImpl.java:259) at com.ibm.websphere.resource.WASResourceImpl.load(WASResourceImpl.java:61) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:249) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:264) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:390) at com.ibm.websphere.resource.WASResourceSetImpl.getResource(WASResourceSetImpl.java:158) at com.ibm.websphere.resource.WASResourceSetImpl.getResource(WASResourceSetImpl.java:143) at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:325) at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:298) at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:274) at com.ibm.ws.runtime.component.EndPointMgrImpl.getNodeHostName(EndPointMgrImpl.java:488) at com.ibm.ws.management.AdminHelperImpl.getNodeHostName(AdminHelperImpl.java:116) at com.ibm.ws.management.component.JVMMBean.getJVMNode(JVMMBean.java:167) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:265) at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1089) at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:971) at javax.management.modelmbean.RequiredModelMBean.getAttribute(RequiredModelMBean.java:1373) at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.getAttribute(DynamicMetaDataImpl.java:114) at com.sun.jmx.mbeanserver.MetaDataImpl.getAttribute(MetaDataImpl.java:199) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:656) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:677) at com.ibm.ws.management.AdminServiceImpl.getAttribute(AdminServiceImpl.java:687) at com.company.websphere.WebSphereServerHelper.initialise(Unknown Source) . It is really strange, because org.apache.xerces.jaxp.SAXParserFactoryImpl is derived from SAXParserFactory as far as I know. Can you give me a little more context? Are you calling AdminService.getAttribute() from your Webapp or are you running into this issue when starting the server, independent of the Webapp? Can you show me the complete stack trace from the log or the FFDC created when you get the exception... usually the answer to all stack traces lies in the part :) Does anybody have an idea what could be causing the problem? Probably but it'll depend on your answer to my above questions :) Thanks, Radim -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED]
Re: adding rubygem as dependency in ruby file
Susanta Datta wrote: Hi, my composite has a ruby implementation. In my Ruby file I require rubygems and some other ruby files. How do I set those folder and files in my sca java project ? I tried with calculator script in eclipse IDE. I works fine but if I add new a require rubygems in the .rb file I get an error unknown:19: no such file to load -- rubygems (LoadError). Any idea where and how do I configure Ruby dependencies in the java sca project under eclipse? thanks a lot Susanta I am looking into this. To test what happens with require statements I changed one of our scripting samples: http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-script/src/main/resources/calculator/SubtractServiceImpl.rb and added a require as follows: require 'rexml/document' include REXML def subtract(n1, n2) doc = Document.new -eof Hello xmlns=http://test; nameFoo/name /Hello eof print doc return n1 - n2 end and it works, I'm getting: Hello xmlns='http://test' nameFoo/name /Hello 3 - 2=1.0 REXML is part of the jruby distribution. Next, I'm going to try to require another .rb file in the same project and will let u know what I find. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: adding rubygem as dependency in ruby file
Jean-Sebastien Delfino wrote: Susanta Datta wrote: Hi, my composite has a ruby implementation. In my Ruby file I require rubygems and some other ruby files. How do I set those folder and files in my sca java project ? I tried with calculator script in eclipse IDE. I works fine but if I add new a require rubygems in the .rb file I get an error unknown:19: no such file to load -- rubygems (LoadError). Any idea where and how do I configure Ruby dependencies in the java sca project under eclipse? thanks a lot Susanta I am looking into this. To test what happens with require statements I changed one of our scripting samples: http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-script/src/main/resources/calculator/SubtractServiceImpl.rb and added a require as follows: require 'rexml/document' include REXML def subtract(n1, n2) doc = Document.new -eof Hello xmlns=http://test; nameFoo/name /Hello eof print doc return n1 - n2 end and it works, I'm getting: Hello xmlns='http://test' nameFoo/name /Hello 3 - 2=1.0 REXML is part of the jruby distribution. Next, I'm going to try to require another .rb file in the same project and will let u know what I find. I made a small change to our JRuby integration code to add the path to the rubygems hiding inside jruby-complete-1.0.jar to the Jruby loadpath. I also made a small change to improve the Exception reporting, you should now see the JRuby exception messages. The changes are available in SVN revision r580145 of the Tuscany trunk, see: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/engines/TuscanyJRubyScriptEngine.java?view=diffr1=580144r2=580145pathrev=580145 This should allow you to require 'rubygems'. You may also have to configure your environment as described in the JRuby Gotchas section there: http://www.headius.com/jrubywiki/index.php/Java_Integration#Embedding_with_Bean_Scripting_Framework Why gems are you using? Any Rails by any chance? I think it would be really cool to show Rails working with SCA... Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: adding rubygem as dependency in ruby file
Susanta Datta wrote: Jean, Thanks a lot. I'm writing a meshup sample using SCA. Here I'm using one composite written in Ruby which requires rubygem. regards Susanta Cool! I did a little more testing, as I really wanted to see a Ruby gem in action before declaring victory. Here's what I did: I installed JRuby 1.0.1. From the command line, ran jirb gem install progressbar, the progressbar Gem got installed under jruby-install/lib/ruby/gems I copied jruby-install/lib/ruby/gems to $HOME/.jruby/lib/ruby/gems. I'm running Linux, on Windows the .jruby home directory is probably somewhere under Documents And Settings. I changed SubtractServiceImpl.rb in the Tuscany calculator-script sample as follows: require 'rubygems' require 'progressbar' def subtract(n1, n2) bar = ProgressBar.new(Example progress, 50) total = 0 until total = 50 sleep(rand(2)/2.0) increment = (rand(6) + 3) bar.inc(increment) total += increment end print \n return n1 - n2 end Ran the calculator sample and saw: Example progr: 14% |o | ETA: 00:00:00 Example progr: 20% || ETA: 00:00:02 Example progr: 36% |oo | ETA: 00:00:01 Example progr: 48% |ooo | ETA: 00:00:01 Example progr: 64% |o | ETA: 00:00:00 Example progr: 80% || ETA: 00:00:00 Example progr: 96% |oo | ETA: 00:00:00 Example progr: 100% || ETA: 00:00:00 3 - 2=1.0 So I can confirm that Ruby Gems should work if you follow similar steps. Let me know how it goes... Thanks. - Original Message - From: Jean-Sebastien Delfino [EMAIL PROTECTED] To: tuscany-user@ws.apache.org Sent: Thursday, September 27, 2007 4:44 PM Subject: Re: adding rubygem as dependency in ruby file Jean-Sebastien Delfino wrote: Susanta Datta wrote: Hi, my composite has a ruby implementation. In my Ruby file I require rubygems and some other ruby files. How do I set those folder and files in my sca java project ? I tried with calculator script in eclipse IDE. I works fine but if I add new a require rubygems in the .rb file I get an error unknown:19: no such file to load -- rubygems (LoadError). Any idea where and how do I configure Ruby dependencies in the java sca project under eclipse? thanks a lot Susanta I am looking into this. To test what happens with require statements I changed one of our scripting samples: http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-script/src/main/resources/calculator/SubtractServiceImpl.rb and added a require as follows: require 'rexml/document' include REXML def subtract(n1, n2) doc = Document.new -eof Hello xmlns=http://test; nameFoo/name /Hello eof print doc return n1 - n2 end and it works, I'm getting: Hello xmlns='http://test' nameFoo/name /Hello 3 - 2=1.0 REXML is part of the jruby distribution. Next, I'm going to try to require another .rb file in the same project and will let u know what I find. I made a small change to our JRuby integration code to add the path to the rubygems hiding inside jruby-complete-1.0.jar to the Jruby loadpath. I also made a small change to improve the Exception reporting, you should now see the JRuby exception messages. The changes are available in SVN revision r580145 of the Tuscany trunk, see: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/engines/TuscanyJRubyScriptEngine.java?view=diffr1=580144r2=580145pathrev=580145 This should allow you to require 'rubygems'. You may also have to configure your environment as described in the JRuby Gotchas section there: http://www.headius.com/jrubywiki/index.php/Java_Integration#Embedding_with_Bean_Scripting_Framework Why gems are you using? Any Rails by any chance? I think it would be really cool to show Rails working with SCA... Hope this helps. -- Jean-Sebastien - 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] -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: validation of composite file
Florian Rosenberg wrote: hi, I have my compoent type implementation and provided an XSD to use XML validation. Are there any specific steps I have to do. I'm currently using the version 1.0 binaries and I don't really where to put my XSD file. I checked the code and found the tuscany-assembly-xsd project, where I added my XSD to the tuscany-sca.xsd to check if it is working. All the validation errors on the console go away, nevertheless it does not really report an error if for example a mandatory attribute is missing in my XML tags. Could someone give us a brief description how the resolving works and how to enable it if I work with the Tuscany binary distribution and do not want to rebuild the tuscany-assembly-xsd to get it to work. Thanks, -Florian - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] The runtime currently loads: tuscany-assembly-xsd/src/main/resources/tuscany-sca-include.xsd - defining the SCA namespace http://www.osoa.org/xmlns/sca/1.0 tuscany-assembly-xsd/src/main/resources/tuscany-sca.xsd - defining the Tuscany namespace http://tuscany.apache.org/xmlns/sca/1.0 If you want to add your extension schema to the http://tuscany.apache.org/xmlns/sca/1.0 namespace you need to include it in tuscany-sca.xsd, and rebuild that module. This is not dynamic, but it's intentional as we need to provide application developers with a single central XSD file completely defining that namespace anyway... as this is what most XML schema validation tools and editors out there expect. If you want to define your extension schema in a different namespace, you can either: - Try to add the following to your composite element: composite ... xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=yourNamespace locationOfyourXSDFile ... not great but it should work. - Or just package the XSD file defining that namespace in your extension JAR and I'll add a few lines of code to look for and automatically load extension XSDs in extension JARs. I will post again here when it's ready for you to try. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Splice component declaration and componentType, was: retrieve name of component in artifact processor
Florian Rosenberg wrote: hi raymond, On Sun, September 23, 2007 2:31 pm, Raymond Feng wrote: Hi, Florian. Can you elaborate a bit on why you need the component name during the read/resolve phase for your implementation.splice? If such information is needed for the runtime behavior, then org.apache.tuscany.sca.provider.ImplementationProviderFactory.createImplementationProvider(...) will pass in the component and implementation objects. the reason I've asked was my missinterpretation of componentType, I thought it describes a whole component instance (as Mike said implementation info is the better name IMHO) no only the implementation. I wanted to name the component type file exactly as specified in the name attribute of the component tag in the composite file. That was basically the origin of my question. I'll go along with the suggestions that Mike provided for now. In the end I want to resolve the componentType automatically from the Splice flow anyway but I want a constistent way to do it for now. I checked some existing examples in Tuscany and could not figure out a way to name them consistently, some componentType names are the same as the composite file name, some have the name of the component type. The spec says the name of the componentType file and the composite file should match (if I remember correctly)/ Thanks, -Florian - Original Message - From: Florian Rosenberg [EMAIL PROTECTED] To: tuscany-user@ws.apache.org Sent: Saturday, September 22, 2007 9:23 PM Subject: retrieve name of component in artifact processor folks, I'm writing a component impl type and in my artifact processor I would need the name attribute from a component defined in the composite file to be able to use a constistant resolving mechanism for my componentType files that describe the component. Example: component name=FooComponent tuscany:implementation.splice baseDir:=src/test/resources/flowdir/ path=echo url=echo contentType=text/plain / reference name=... / /component Is there a way to get that name (FooComponent) in the read() or resolve() method of the StAXArtifactProcessor implementation reading the implementation.splice attribute? The FooComponent.componentType is then used to describe the component, its references, etc. I could not figure out a way to retrieve it, probably I missed something. Thanks, -Florian A few thoughts, hoping they'll help the discussion... As an SCA app developer, I'll need a simple way to point to my component implementation artifact, because it's what I'm going to reuse in many components. Having a single or main file for the implementation works best because people can move it, copy it, edit it by double-clicking on it. Once I have clearly identified that implementation file, defining the .componentType is easy... same path as the implementation artifact with a .componentType extension. The .componentType does not describe a component, it describes an implementation, in other words a class of components. In the splice case, how about saying: - The implementation artifact is myFlowdir/echo.splice for example. - The SCA artifact that describes my implementation (if needed) is myFlowdir/echo.componentType. - I'm guessing that echo.splice is an XML file, with a targetNamespace and name, usually to keep things simple I'll want the XML name to match the file name: splice targetNamespace=http://myns; name=echo .. splice stuff /splice - To create a component implemented by myFlowdir/echo.splice I could write: (a) component name=MyEchoComponent implementation.splice flow=myFlowDir/echo.splice/ /component or (b) composite ... xmlns:myns=http://myns; ... component name=MyEchoComponent implementation.splice flow=myns:echo/ /component In the rest of SCA assembly we've adopted (b) the more XML oriented syntax, as pointing to locations tends to be fragile when you move things around, and also fits well with the SCA contribution packaging model and the ability to import XML namespaces from other contributions. Thoughts? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to get more detailed exception information from a Spring implementation?
Sun Yang wrote: Hi, Raymond: Thanks for your confirmation. I will do that when I back to work tomorrow. Regards, Yang Sun If you want you can also submit a small patch in the JIRA, looks like it's just a matter of changing the SpringInvocationException(String msg) constructor to SpringInvocationException(Exception cause) and use that new constructor in a few places in SpringInvoker :) If you try that and it works for you it'll be easy to get that fix in. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: websphere web service deployment problem
Radim Kolarik wrote: Hi Sebastien, I can confirm that you are right, that was the problem. I would swear I saw many examples that had the implementation element as last one in the composite file ;-). Thanks again, Radim Yeah I had to fix them all for the 1.0 release :) I guess it shows that this automatic validation is useful. I'm going to put together a small Eclipse plugin that will register the same XMLSchemas in the Eclipse WTP XML catalog. It'll help people edit correct .composite and .componentType files using the Eclipse XML editor and validate them in their IDE. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: websphere web service deployment problem
Radim Kolarik wrote: Hi Simon, unfortunatelly I am seeing the same problem on WAS 6.1.0.9. Sebastien, do you still have the WAS environment? Could you try to deploy RC3 based example web service on it? Thanks a lot, Radim It works for me. I need more precise information to be able to help. - which web service based sample? helloworld? calculator? built yourself? using mvn or ant? - the steps you are following to install and run the sample and the exact output you are getting when you run it - whether or not you have configured the WAR classloader parent last and single classloader - whether or not you have configured the custom Web container property as described in the WebSphere fixpack at [1] - the time of the error - your SystemOut.log and SystemError.log files - the FFDC files created in yout logs directory at the time of the error Could you please put that information in a JIRA. I'm watching the JIRA notifications so I'll get notified when you do so, and will investigate quickly. Thanks. [1] http://www-1.ibm.com/support/docview.wss?uid=swg24014758 Thanks. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: websphere web service deployment problem
Jean-Sebastien Delfino wrote: Radim Kolarik wrote: Hi Sebastian, I received the latest code from ant and I can confirm that the service generates the WSDL file now. The binding.ws/ element doesn't even need uri attribute, it works without any attributes! However, there is still some problem, the generated WSDL contains Error 404: SRVE0190E: File not found: /ComponentName at it's end, right after the /wsdl:definitions. I have created a JIRA for this: https://issues.apache.org/jira/browse/TUSCANY-1702. Are you seeing the same problem? Best regards, Radim I just checked and am seeing this issue too (I had just not noticed that additional line at the end of the WSDL). However, the Web Service binding actually works for me on both references and services so if you manage to workaround that additional line at the end of the generated WSDL it should work for you too. I think it's another of these small behavior differences. On WebSphere we probably need to force a close of the response outputStream before returning from the servlet filter. I'm experimenting with that right now and will give an update soon... Radim, after a fun debugging session and some digging around here's an update: - The issue you're seeing is the same as [1]. - This is a WebSphere 6.1 bug, a fix is available at [2]. I'm going to try some of the workarounds suggested in [1] and see if they work for Tuscany. It would be good if you could also try the WebSphere fix [2] as well if possible. [1] https://issues.apache.org/struts/browse/WW-1839 [2] http://www-1.ibm.com/support/docview.wss?uid=swg24014758 Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Tuscany 1.0 RC1 / WebSphere 6.1.0.9, was: websphere web service deployment problem
Jean-Sebastien Delfino wrote: Jean-Sebastien Delfino wrote: Jean-Sebastien Delfino wrote: Radim Kolarik wrote: Hi Sebastian, I received the latest code from ant and I can confirm that the service generates the WSDL file now. The binding.ws/ element doesn't even need uri attribute, it works without any attributes! However, there is still some problem, the generated WSDL contains Error 404: SRVE0190E: File not found: /ComponentName at it's end, right after the /wsdl:definitions. I have created a JIRA for this: https://issues.apache.org/jira/browse/TUSCANY-1702. Are you seeing the same problem? Best regards, Radim I just checked and am seeing this issue too (I had just not noticed that additional line at the end of the WSDL). However, the Web Service binding actually works for me on both references and services so if you manage to workaround that additional line at the end of the generated WSDL it should work for you too. I think it's another of these small behavior differences. On WebSphere we probably need to force a close of the response outputStream before returning from the servlet filter. I'm experimenting with that right now and will give an update soon... Radim, after a fun debugging session and some digging around here's an update: - The issue you're seeing is the same as [1]. - This is a WebSphere 6.1 bug, a fix is available at [2]. I'm going to try some of the workarounds suggested in [1] and see if they work for Tuscany. It would be good if you could also try the WebSphere fix [2] as well if possible. [1] https://issues.apache.org/struts/browse/WW-1839 [2] http://www-1.ibm.com/support/docview.wss?uid=swg24014758 Hope this helps. Radim, It doesn't look like I can workaround this WebSphere bug in the Tuscany code. Your best bet is to install the fix at [2]. Could you please let us know the results after you do that? Thanks. You can also try WebSphere 6.1 Fixpack 9 [3] and add a com.ibm.ws.webcontainer.invokefilterscompatibility=true Web Container customer property as described in [2]. Tuscany 1.0 RC1 seems to work fine in that configuration. [3] http://www-1.ibm.com/support/docview.wss?rs=180uid=swg24015777 -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Resolving an calling the target of a reference
Florian Rosenberg wrote: hi, we have created a component implementation for a small RESTful composition language which does not support references to other components, now we want to add support for that. The component implementation is similar to BPEL, but without all the WSDL and partnerlink stuff. Just support for REST and custom activities to extend the language. An example of using it in the composite file is: component name=FeedsAggregatorComponent implementation.splice baseDir=src/main/resources/flowdir/ path=feeds url=getFeeds contentType=text/xml / reference name=aggregate target=AggregateServiceComponent / /component !-- other stuff goes here -- I need to tell our Splice engine where the references are and how it can resolve it. The problem is that from the Reference instance, I cannot retrieve an invoker instance to invoke my target as specified in the reference / tag. AFAIK, i need a binding and an operation instance to get an Invoker instance. The binidng is not a problem is can be retrieved from the reference instance. Furthermore, I need an operation instance; the name of the operation corresponds to some value in the process definition that I know. To get the operations i need the interface and thus its interface contract first. When I do a InterfaceContract contract = _reference.getTargets().get (0).getInterfaceContract(); getTargets().get(0).getInterfaceContract() returns the interface on the service that the reference is wired to. From the component you pasted above I'm guessing that it must be a service on the AggregateServiceComponent, and I'm also guessing that it's the only service on that component since you didn't specify a service name in the reference target attribute. Can you post the XML describing AggregateServiceComponent? Another comment is that you shouldn't rely on the interface of the target service (as there may be no target service if your reference is configured to talk to an external endpoint with a binding instead of being wired with a target attribute) to determine the interface that should be used on the reference. More below on this subject, and how you can type your reference with an interface contract. it is always null, so I cannot get the interface and iterate over its operations to find a matching one. If I would have the operation I could establish a binding. Invoker invoker = _reference.getInvoker(bindings.get(0), referencedOp); Message request = _messageFactory.createMessage(); // here the Splice engine can call the reference I do the whole stuff in the implementation provider class (where I also configure the engine). Any help and pointers are highly appreciated. I'm stuck with that for a couple of times now. By the way, this message occurs in the logs, but I'm not really sure if it is the source of my problem: WARNING: [WARNING] Reference not found for component reference: FeedsAggregatorComponent/aggregate null You're seeing this because you declared a ComponentReference declaration named aggregate on your Component and we couldn't find a Reference definition named aggregate on the ComponentType describing your Component. We'll have to make that error message more clear :) Here's more background on the relationship between a ComponentReference and a Reference and a Component and a ComponentType: - A Component (component) is an instance of a ComponentType (componentType). Basically you can have multiple components of the same type, configured differently, with different wiring, bindings or property configuration for example. - A ComponentType is typically reflected from an Implementation. For example we can introspect a Java implementation class, or a BPEL process implementation and derive a ComponentType from it, describing the characteristics of the implementation. In the Tuscany SCA assembly model, Implementation extends ComponentType. - If you don't want to derive the ComponentType from the Implementation, you can also just write by hand an XML file, .componentType, describing it. - In both cases, the ComponentType lists the Properties supported by the type, the Services and References supported by the type and their InterfaceContracts (Interface and callback Interface). - A component element declares a Component. The Component will have an ComponentReference for each Reference on its ComponentType, a ComponentService for each Service on the ComponentType, a ComponentProperty for each Property on the ComponentType. An analogy with Java may help describe these: Component == an Object with field declarations and the ability to set values in the fields. Implementation == a concrete Class that can be instantiated into Objects. ComponentType == an abstract Class defining the field and its type and default value. So, to summarize: - The message you're getting complains that you're trying to configure ComponentReference
Re: SCA Specifications starting up in OASIS
Mike Edwards wrote: Folks, The SCA specifications which are implemented by Tuscany have just started out a new phase - they are moving to OASIS for formal standardization. This is being done as a series of OASIS technical committees, each dealing with one or more of the SCA specifications. The OASIS activities are carried out in public and it is possible to either observe activities in the various technical committees, or you are welcome to join one or more of the committees. You can find the 6 SCA technical committees here: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-assembly http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-policy http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-bindings http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-j http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-c-cpp http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-bpel Meeting minutes, documents, issues and so on are linked from the main page. Mailing list archives can be found here: http://www.oasis-open.org/archives/sca-assembly/ http://www.oasis-open.org/archives/sca-policy/ http://www.oasis-open.org/archives/sca-bindings/ http://www.oasis-open.org/archives/sca-j/ http://www.oasis-open.org/archives/sca-c-cpp/ http://www.oasis-open.org/archives/sca-bpel/ Please note that there is an SCA Plenary session taking place on Tuesday 18th September in Palo Alto, CA. This session is an education session about SCA and the work that will take place within OASIS over the next year or so. This session is free and open to anyone who registers for the session. For more details, please look here: http://www.oasis-opencsa.org/2007-09-18-program Yours, Mike Edwards. Co-Chair, OASIS SCA Assembly TC. Great! Thanks Mike. What do people think about adding these links to a page on the Tuscany web site, linked from our Getting Involved page? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Policy samples? (showcasing the killer feature of separation of concerns)
Two comments inline. Venkata Krishnan wrote: Hi, The policy framework implementation is underway. We have some basic things in place which allows the inclusion of policy intents and policysets into an assembly model. There is simply sample policy that we have put in place along with the echo-binding-extension sample to test this basic framework. This is a part of the recent 0.99 release. We shall be very soon adding support for some security policies with our ws bindings. So you must soon be able to see the basic authentication support coming out thro the ws bindings. Other than this, adding audit logging could be something we can try out for implementation policies support. I have created the following JIRA for this work: http://issues.apache.org/jira/browse/TUSCANY-1651 It should help people interested in the security policy track progress, add comments, or if people are interested in helping out with this work, attach tests or implementation code :) I have targeted the JIRA for the Tuscany SCA-1.0 release, which I'd like to get out in a few weeks. Thanks. - Venkat On 8/30/07, Skip Schuler [EMAIL PROTECTED] wrote: Hi, I'm currently evaluating SCA and Tuscany. I really like much of what I've seen so far, especially when experimenting with the assembly model and different bindings. What I'd like to know more about is the policy framework. I think the clear separation of concern that SCA promotes is a killer, however I don't see any good resources or samples. I've checked the documentation link on the Tuscany site, and I've tested with Tuscany Java version 0.91.. So my questions are: (1) Are there policies available for me and my services (to leverage and test)? If so, which and how (guidelines)? (2) A particular use case I have is to (a) reference a web service protected by basic authentication, and (b) add audit logging to certain services (invocations). I was thinking these were candidates for policies, however I'm not sure how to approach this... Thoughts? Thanks. An initial implementation of the Policy framework is available now, so you should be able to develop your own logging/auditing policy extension and plug it in the framework. The APIs to do that are still a little rough I think but trying them will help everybody get what they want in terms of policy, if you're interested. To see how a policy is implemented see the Encryption sample policy classes in java/sca/samples/binding-echo. IMO a logging policy would make another good sample for an implementation policy (i.e. a policy that you attach to a component implementation). -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Client requested features Was: Policy samples? (showcasing the killer feature of separation of concerns)
Hi Jeff, Thanks for some very good and useful input! I added some comments inline. [snip] Anderson, Jeff T (CA - Toronto) wrote: This is great news, that ties into an e-mail that I was just formulating this morning concerning additional features that have been requested for our client the list isn't quite complete, by thought I would share it with you as most of it concerns the policy framework implementation at least in my opinion. An FYI to everyone on the list... I'm currently working with a major Canadian FSI client to develop a SOA platform based largely on Tuscany 9.1. Services are currently being developed and tested for the platform, with plans to go into production by the end of this year. Great! It's very encouraging to start seeing projects like yours using Tuscany! I've just finished holding a architecture workshop where we discussed the benefits of our platform (largely based on Tuscany) to various technical stakeholders across the greater organization. Representative stakeholders were given the chance to prioritize what they consider to be the most important features that they would want to see in the platform. I have decided to share this with this list, as I believe that the majority of most of these requirements could be handled through a future version of Tuscany. Currently the biggest feature requested is a service lifecycle mechanism that is capable of supporting both POJO/local method invocation as well as remote WSI basic interoperable mechanisms. Key to this feature would be the ability to transparently switch from a local/POJO to a remote/WSI interoperable model without impacting business service code. Specifically we are looking for Tuscany to allow us to support the following 1) security-would like to be able to specify participation in existing security context much like the mechanisms provided by WS security, WS-secconv, and related specifications. However, current implementations of Web services stacks makes it difficult to evolve a local component to a true web service and back again without having to follow a completely different security model. We believe Tuscany to be a excellent location to access a policy driven framework that allow us to specify security requirements of the service either using annotations, SCDL configuration, or some other method. Soap headers, or local security context could interact with the security policy dependent on each of the SCA binding used to wire together the various services. Some examples could be the use of a @Fedactive annotation to declare that a services capable of issuing messages containing security tokens such as those described by WS-security and WS-trust. Within a local binding, the annotation could still declare a need for the service to issue explicit security tokens, although the token may be passed using a different mechanism. It would be ideal to have this model follow a more framework approach, with the explicitly defined plug-in architecture allowing third-party vendors to integrate Tuscany to their own vendor suite. We now have an early implementation of the policy model, XML and annotation processors and APIs to populate the model, and ways for the runtime to determine which policies should apply where. So now is a good time to come up with the specific policies you need. I'm happy to see concrete use cases for this area, hoping that they'll help shape our Policy framework... and at the same time will give you what you need :) Could you send an example of what the @Fedactive annotation would look like? what attributes and what they mean, and what you'll expect the particular policy implementation to do? how will it compare or relate to the security policies described in the SCA spec? Speaking of the SCA spec, I have created JIRA http://issues.apache.org/jira/browse/TUSCANY-1651 to track the work on the security policies described in the SCA Policy Framework spec, hoping to get an initial implementation of these policies in our 1.0 release. I'm not sure yet if @Fedactive / a WS-FedActive policy will need its own JIRA or not, but JIRA-1651 could be used to help document and frame that work as well. We can always create new linked JIRAs as this work develops. 2) transaction/compensation-I realize that the SCA specification is little more vague/not finalized concerning this, however this is one of the most important features requested from our client. Again I envision using the policy framework to define a transaction setting such as @NotRequired,@Supported etc. For local bindings this would simply allow the typical distributed transaction mechanisms to reverse any resources held within a transaction lock. For a more traditional remote Web services environment where resource control is the exception rather than the rule, an additional annotation of @compensator would allow service developer to declare the compensation transaction required
Re: [DAS] Transaction support - a bigger picture question
[snip] Luciano Resende wrote: I guess your suggestion for starting simple is fine, and I guess implementation.das could get integrated with SCA Policy and DAS would have the necessary support, unless we find some bugs on the DAS side. I'll see if I can get to this in the coming weeks... BTW, what transaction manager are we going to use in Tuscany ? Do we have any today ? Two suggestions: - in a standalone environment, use JOTM [1] - in Geronimo, get the TM from Geronimo, as done in the Tuscany/Geronimo plugin at [2] [1] http://jotm.objectweb.org/ [2] http://svn.apache.org/repos/asf/geronimo/plugins/tuscany -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem configuring and reaching RSS, Atom bindings
Skip Schuler wrote: Hi, I've successfully deployed and tested the WAR on my Tomcat installation. Thanks! The links from the index.html page works fine, and I'm able to reach e.g. http://localhost:8080/sample-feed-aggregator-webapp/atomAggregator Cool :) A tiny detail: in your FeedAggregator.composite I see that you specify an uri on the atom and rss bindings. I guess they are not used? (at least not reachable?). E.g. tuscany:binding.atom uri= http://localhost:8083/atomAggregator/ from http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/feed-aggregator-webapp/src/main/resources/FeedAggregator.composite Thanks again. Good point, when we package an SCA composite in a Webapp we can't control the host and port since they are fixed by the Tomcat Web container, so we have ignore them and only consider the path part of the URI (/atomAggregator) and make this path available inside the context of the Webapp. BTW this shows that the current Webapp integration approach is not leveraging the full power of SCA... In an ideal SCA world you would expect the following: - people would configure services in their SCA domain with URIs like http://myhost:8083/atomAggregator; and http://myotherhost:8087/rssAggregator; - a deployment tool would take the SCA domain configuration and generate the configuration of Tomcat servers on myhost and myotherhost with the right ports and services deployed on them This would really leverage SCA as a way to describe the configuration of a service oriented network, including multiple machines, servers and their configuration. It's what we're starting to do with SCA nodes being able to embed Tomcat or Jetty servers configured from the SCA metadata. If on the other hand you start with existing - already configured - Tomcat servers and deploy pieces of your SCA domain to them in Webapps, then some of the network configuration aspects of SCA can't apply anymore. It's what you're seeing here, localhost:8083 must be ignored as the host and port are already fixed by your existing Tomcat server. For now, I'll adjust the sample to just say binding uri=atomAggregator/ :) -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: SCA support in STP
[snip] Luciano Resende wrote: A related question, regarding SCA support in STP. Any plans to move to the latest releases of Tuscany SCA ? We are targeting a 1.0 release sometime soon, and would be great to have the Eclipse Tooling support based on that release. On 8/28/07, Chandrashekhar Jain [EMAIL PROTECTED] wrote: H all, I am working on a defect related to Tuscany in Eclipse STP project. This is relate to Tuscany SCA Java M2 build. I am following the instructions in http://wiki.apache.org/ws/Tuscany/TuscanyJava/SCA_Java/GettingStarted ( Tuscany M2). I am following the readme for the calculatorRMIService example ( after downloading the examples). The intention of doing this is to understand how a rmi service example will run with Tuscany as of M2 build. This would help me understand the use case in eclipse. I am following the instructions in the section Setting up Tuscany Standalone Runtime for the calculatorRMIService example. When i run mvn dependency:unpack, i get the following error : [ERROR] BUILD ERROR If you're still using Tuscany M2, it's from Nov 2006... a little too old :) . The SCDL syntax has changed quite a bit since last year. If the STP tools are generating SCA 1.0 artifacts now, M2 from Nov 2006 is not going to be able to consume them. I'd recommend to use our 0.91 release (July 2007) available at http://incubator.apache.org/tuscany/sca-java-releases.html, or even better, the latest release candidate which is currently being voted on, available at http://people.apache.org/~antelder/tuscany/0.99-RC2. Both support the SCA 1.0 SCDL syntax. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem configuring and reaching RSS, Atom bindings
Skip Schuler wrote: Hi, I'm trying to leverage the atom and rss bindings to expose some feeds using java sca build 0.91. More specifically I'm trying to deploy a war on my Tomcat instance. I have a class that implements org.apache.tuscany.sca.binding.feed.Feed, however I'm not having any success in reaching the atom or rss endpoints (which may be due to my understanding). Anyway, here's my configuration; .composite: service name=RSSSampleFeed promote=AtomFeeder binding.rss/ /service service name=AtomSampleFeed promote=AtomFeeder binding.atom/ /service component name=AtomFeeder implementation.java class=com.schuler.feed.FeederImpl / /component web.xml: servlet-mapping servlet-nameTuscanyServlet/servlet-name url-pattern/SCA/*/url-pattern /servlet-mapping The URL http://localhost:8080/feed-atomrss/SCA/AtomSampleFeed fails with a status code 500 (see below). How can I reach the rss and atom endpoints? What will the URL be, and what are correct binding configurations in the .composite? I've also tried to deploy the demo alert-aggregator. It gives me the same error at the suggested URL http://localhost:8080/demo-alert-aggregator/services/AlertsFeedServiceRSS: HTTP Status 500 - -- *type* Exception report *message* *description* *The server encountered an internal error () that prevented it from fulfilling this request.* *exception* java.lang.IllegalStateException: No servlet registered for path: /AlertsFeedServiceRSS org.apache.tuscany.sca.webapp.TuscanyServlet.service(TuscanyServlet.java:57) *note* *The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.* -- Apache Tomcat/5.5.20 Am I missing something here? Thanks! Hi, I'm taking a look at this now and have a few questions: - When you start Tomcat, do you see messages indicating like this: Aug 28, 2007 10:44:12 AM org.apache.tuscany.sca.host.webapp.WebAppServletHost addServletMapping INFO: addServletMapping: /rssAggregator Aug 28, 2007 10:44:12 AM org.apache.tuscany.sca.host.webapp.WebAppServletHost addServletMapping INFO: addServletMapping: /atomAggregator/* - Do you have an src/main/webapp/META-INF/sca-contribution.xml file listing the composites that need to be activated in the webapp, like this: contribution xmlns=http://www.osoa.org/xmlns/sca/1.0; targetNamespace=http://aggregator; xmlns:a=http://aggregator; deployable composite=a:FeedAggregator/ /contribution - Do you have anything else than the SCA components in your WAR, like other JSPs or servlets implementing some Web UI? or are you just interested in packaging the SCA components in a WAR because it's more convenient to deploy to Tomcat this way? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem configuring and reaching RSS, Atom bindings
Skip Schuler wrote: Hi, I only have one index.html file in my WAR in addition to the SCA components, i.e. no JSPs or servlets. My wish is to have everything in Tomcat (and perhaps in a WAR), i.e. adding new server processes are not an option for my application architecture (would mean more to monitor, maintain etc). My META-INF/sca-contribution.xml looks like this: ?xml version=1.0 encoding=UTF-8? contribution xmlns=http://www.osoa.org/xmlns/sca/1.0; targetNamespace=http://sample; xmlns:sample=http://sample; deployable composite=sample:SimpleFeeder/ /contribution ...while my simplefeeder.composite contains: ?xml version=1.0 encoding=UTF-8? composite xmlns=http://www.osoa.org/xmlns/sca/1.0; targetNamespace=http://sample; xmlns:sample=http://sample; name=SimpleFeeder [...then the services and component listed above...] /composite I cannot see the output you mention from Tomcat, the only output from Tomcat is: Aug 28, 2007 3:16:24 PM org.apache.catalina.startup.HostConfig deployWAR INFO: Deploying web application archive feed-atomrss.war Thanks again. Hi, I did some investigation and found a few bugs in our Webapp integration :) 1) TuscanyServlet does not pass the correct servletPath and pathInfo when it dispatches an HTTP request to the Tuscany binding servlet (like the feed binding or jsonrpc binding for example). 2) TuscanyServlet cannot be mapped to /* as it would block access to /index.html page. As a workaround most people have mapped TuscanyServlet to /SCA/* or /services/* for example but that breaks the convention for default SCA service URIs and will confuse bindings like the feed binding which return documents containing URIs to related resources. 3) I also ran into a bug with WebAppServletHost not handling URIs ending with / correctly, which will break the feed binding as well. Good news is that I was able to fix (1), (2) and (3) in SVN revision r570619 of the Tuscany trunk :) I converted the TuscanyServlet servlet to a servlet filter as a less intrusive way to dispatch HTTP requests which can be mapped to /* without breaking support for other Web content in the Webapp. Web.xml files should now look like this (simpler than before): web-app display-nameApache Tuscany Feed Aggregator Sample/display-name filter filter-nametuscany/filter-name filter-classorg.apache.tuscany.sca.host.webapp.TuscanyServletFilter/filter-class /filter filter-mapping filter-nametuscany/filter-name url-pattern/*/url-pattern /filter-mapping /web-app I committed a new sample showing the feed-aggregator packaged in a Webapp (and with an index.html page, similar to what you described) there: http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/feed-aggregator-webapp/ and posted the WAR I built with revision r570619 there: http://people.apache.org/~jsdelfino/test/ Could you please give it a try and let me know? Thanks. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: throws Exception clause of service method create problem
Radim Kolarik wrote: Hi ant, when is the move to Axis 1.3 planned? Will it make it to the upcoming release? Thanks, Radim Hi Radim, The 0.99 release (which we are currently voting on) uses Axis 1.2. We're just starting to talk on tuscany-dev about cutting the 1.0 release branch around mid-September. I'd like it to use Axis 1.3 if others on the tuscany-dev list are OK with it. In the meantime, you can try to build Tuscany with Axis 1.3. Somebody else already tried and it seems to work, see [1]. [1] http://www.mail-archive.com/[EMAIL PROTECTED]/msg22310.html -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Load-balancing between service instances
Simon Laws wrote: On 8/9/07, Maciek Chociej [EMAIL PROTECTED] wrote: Hello, Recently I've been investigating the same thing. I'm trying to rebuild our in-house SOA platform with the use of Tuscany. What I am lacking is clustering, dynamic lookup and load balancing of service providers. I don't think I need that for local wiring, so I just focused on providing those over the ws binding. From what I see right now it is possible to do that rather gracefully in a number of ways. For example on the remote side, you can use your web container's clustering scheme. For example Tomcat clusters might balance request to the axis servlets responsible for the ws.binded services, the downside of this is that the balancing gets out of Tuscany's control. On the other hand, on the local side (which I find much nicer) I've tampered a little with the ws axis binding and it should be easily possible to inject a UDDI or similar ws lookup into the ReferenceBindingProvider or to build a 'lookup' version extending the axis one. I'm rather new to Tuscany so any comments appreciated. Cheers Maciek Olivier Collard wrote: Hi, I'm wondering how I could implement load-balancing with Tuscany. Basically, I would need the ability to configure component X to talk to multiple instances of another component Y. Ideally, this would be like 'wiring' a reference to multiple instances of component Y, running either locally or remotely. Would I need to write some kind of extension for this? Thanks, O. Luggage? GPS? Comic books? Check out fitting gifts for grads at Yahoo! Search http://search.yahoo.com/search?fr=oni_on_mailp=graduation+giftscs=bz - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Hi This is an interesting thread. The easy answer is that you are both right that we haven't addressed load balancing or clustering directly just yet. We are working on a first step at the moment which might make some of this easier. That is the ability to have an SCA domain run across multiple nodes (JVMs). We have had a very simple version of this for a while and we are bringing it up again now on top of the new wiring mechanism and new SCA binding. The basic idea here is that you have parts of the domain, i.e. component services, running on separate nodes and Tuscany is able to locate which node is running which service. So this could be considered load balancing in that it allows you to distribute your application across a number of nodes but it's not load balancing in the sense that Olivier mentioned. I.e. spreading the load on a single component/service. I think Maciek is on the right track though. I like the ideas about having a new binding that is able to provide this feature within a Tuscany domain with reference to some registry of services. It would certainly be interesting to do this with a binding based on the web services binding with, as suggested, suitable logic to look up target services and pick one from the list of returned endpoints. Running inside a clustered container should also be a possibility. A you say we would expect the clustering to be outside Tuscany's control in this case and we would have to engineer for the registry of service endpoints to have the address of the head node rather than the individual servers where Tuscany is running components in the cluster. We would also need to look out for session replication issues. Either of you interested in doing some work on this? Regards Simon So I guess there's at least two options: [a] leverage the Tomcat clustering / load-balancing capabilities (make sure that Tuscany works OK in that environment) [b] write a binding extension, or tamper with an existing one :) to add load-balancing in Tuscany If any of you are interested in doing some work on this, here are a few pointers: - a simple distributed sample, which could be used as a starting point to demonstrate some load-balancing http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-distributed/ - the Tuscany SCA default binding, which uses a simple registry shared on the network to record endpoints of services as they start, and to resolve these endpoints later the binding extension http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/binding-sca-axis2/ the distributed registry http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/distributed http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/distributed-impl/ We're just at the beginning of implementing this so it's the right time to jump in if you want to add some load-balancing :) -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL
Re: [DAS] Transaction support - a bigger picture question
Comments inline. [snip] Amita Vadhavkar wrote: I have not worked on the latest DAS-SCA integration so far, and am quite sure Lucinao will have good pointers in this area. But looking at the current tuscany-implementation-das, can see the following possible. Yes, I guess the idea is to: - access Data inside an SCA component declared with implementation-das - let the application developer annotate the component implementation and services with transaction policy intents to indicate what he wants in terms of transaction So take this as my attempt to understand intents/policySets and DAS-SCA integration :) DASImplementation implements org.apache.tuscany.sca.assembly.Implementationand contains org.apache.tuscany.sca.assembly.Service dasService. Using dasService, requiredIntents on the Service can be found. There are two categories of policy intents in SCA: - implementation policy intents - used to indicate requirements of the component implementation (authorization for example, i.e. you must be authorized to execute my implementation) - interaction policy intents - used to configure how a component will interact with others (confidentiality for example, i.e. messages exchanged with my component must be encrypted) I think that the same will have to apply to transactions as well, the DAS implementation will probably have to deal with intents specified on both services and the implementation itself. org.apache.tuscany.das.rdb.DAS interface can be enhanced to accept these intents. DAS internally can configure DASConfig reflecting the intents specified , so that DAS instance construction happens with correct attributes. Based on these attributes DAS transaction control will occur (if intent is TransactionControl). Intent TransactionControl can be qualified as say, 1) Container Transaction Control, 2) DAS Transaction Control. Can you describe this a bit more to help me understand what you mean by Container transaction control vs DAS transaction control? Advantage of having intent attached to a service will be, using different intents for different services of same component. Yes, different services - different interaction policies Questions: What will be the policySets here? Say, if policySet/intent Container Transaction Control mandates that the implementation should expose getConnection() so that container Runtime can use it, how this mandate can be achieved? Not sure at all yet. A PolicySet translates an Intent to the corresponding configuration of the underlying runtime, so it really depends on what the DAS + SCA runtime will expect. [snip] On 8/20/07, Mike Edwards [EMAIL PROTECTED] wrote: Folks, Sorry to cut across the discussion about Transaction support in DAS, but are folks aware of the proposal for Transaction support in SCA? which leads to the entertaining question of how the DAS transaction support relates to the SCA transaction support. The problem at the moment is that the SCA spec group only has an unpublished draft of the Transaction support spec. The intention is to publish an updated draft in the near future. However, I can say that the SCA spec mechanism is based on the use of Intents to apply transactional characteristics to SCA components. I've seen several exchanges on the list already from people interested in some support for transactions... So since the spec is not ready yet, how about starting now with something really simple like an implementation policy intent that would just say: - transaction - i.e. my implementation must run as part of a transaction - noTransaction - i.e. I don't want to run as part of a transaction It may look simplistic, but will help us understand the end to end story, work on the necessary plumbing and integration with a transaction manager etc. and we can always add more later and adjust the details of the intents and policySets when the spec is ready. Thoughts? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: XQuery implementation scenarios
Hi, interesting topic :) so I've copied the tuscany-user list as well in case some of our users are interested too. Vasil Vasilev wrote: Hi all, I would like to start a discussion about how we see the usage and the future of XQuery within the boundaries of SCA. What inspired me when I started my work on the XQuery implementation type for SCA was the capabilities it provides in the area of data integration. You can take a look for example on the BEA AquaLogic platform. You can see how they create the data integration layer of a SOA application on the basis of XQuery. Currently the SCA specification supports integration with EJB and Spring, but I think XQuery provides many capabilities for working directly with XML data sources - like Web Services and DataBases. It should be noted that the main database vendors support XQuery. Yes, I agree with you that it's missing from SCA right now, and people who use XML based programming models, XML schema for their data, WSDL for their interfaces, or BPEL for their processes, and want to work directly with the XML data will want to use XQuery to transform, filter, mediate their XML messages, and query data from all kinds of XML-enabled backends. I think that with your code contribution we have a good starting point that we can now further develop and refine, use to develop scenarios, samples, demos that illustrate its usage. I'm hoping that this work and the discussions here will help put together a proposal to bring to the spec group. With respect to database access, a number of folks in Tuscany are working on DAS (Data Access Service) and I believe they have started to look at XQuery as well, so I'm not sure if or how these two subjects are related, but I'd be curious to hear from the DAS people on the XQuery subject as well. Another interesting question may be: If the XQuery program talks to a database, will we want to configure the database information on the XQuery component itself? or is the XQuery component going to be more independent of the database itself and we'll represent the accessed database as a separate service? So having in mind what was said above one step for enhancing the XQuery implementation type is to decouple it from Saxon. The user should be able to plug-in his preferred XQuery processor. For example if he uses Oracle, he could delegate the execution of the XQuery script to the Oracle parser. Or he could prefer to use DataDirect's implementation, which is very optimized for accessing databases. In order to do it we could think of some kind of extension points, which define what is needed by the implementation, i.e. to introspect the XQuery file, to call a single function in it, to set external parameters and functions and etc. That sounds good to me. Is there a standard XQuery processor API that we could use here? or should we define that extensibility mechanism ourselves as a specific Tuscany API? How about using SCA policy intents to configure which XQuery processor is going to be used. Have you looked at SCA policies at all? I'm just brainstorming here, but maybe we could define a few policy intents that the application developer could put on a component to say I want an XQuery processor that works well with this XML databinding or I want the XQuery processor that works well with my database... Another direction where the XQuery implementation type seems useful is in the area of mapping one service interface to another and in this way adapt both interfaces. He could even do it with a mapping tool, which generates XQuery code out of it. This could be very useful for BPEL implementation type services for example. Of course here also XSLT could be used, but I selected XQuery, because it is more similar to a programming language and it could easier fit in the concept of interfaces and operations of the services. In this area JBI inherently provide a solution (you can see Open ESB for example), while in SCA this concept is somehow missing. That's why I thing an XQuery implementation type would be a good step forward. Right! XQuery can definitely be very useful to implement mediation components. I can see two different patterns here: - Data mediation - I have data type X and need to transform it to Y, I could write a XQuery component named TransformX2Y for example and then reuse it in various places in my SCA composite application, from Java components that don't want to write this transformation in Java, from BPEL components between BPEL assigns, etc. This kind of component could have a fixed operation like any transform(any) for example, or a more specific operation signature indicating its input/output types. We could have one transform per component or choose to bundle a bunch of related transforms in the same component... There's a lot to explore here I think :) - Interface mediation - I have two WSDL interfaces that don't exactly match, the operation
Re: Feed binding (atom, rss) breaks when feed URL has parameters
Skip Schuler wrote: Hi, I'm not sure it this is a known issue or not, but here's the problem I'm having with the feeding (atom, rss) binding; I use the FeedAggregator sample that is shipped with tuscany-sca-0.91-incubating. It runs fine out-of-the-box. However if I change the feed reference to point to a feed that is at a endpoint that has URL parameters, it fails (see stacktrace below). To reproduce: change the feed2 reference to something like this (which is the feed from a confluence site): binding.atom uri= http://mywiki/spaces/createrssfeed.action?types=pagetypes=blogposttypes=commentspaces=sort=modifiedtitle=Dashboard+RSS+FeedmaxResults=15publicFeed=falseos_authType=basicrssType=atom/ Stacktrace: run: [java] Exception in thread main org.osoa.sca.ServiceRuntimeException: org.osoa.sca.ServiceRuntimeException: org.apache .tuscany.sca.contribution.service.ContributionReadException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected charact er '=' (code 61); expected a semi-colon after the reference for entity 'types' [java] at [row,col {unknown-source}]: [53,91] [java] at org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance( SCADomain.java:263) [java] at org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java :68) [java] at feed.SampleServer.main(SampleServer.java:28) [java] Caused by: org.osoa.sca.ServiceRuntimeException: org.apache.tuscany.sca.contribution.service.ContributionReadExce ption: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '=' (code 61); expected a semi-colon after the refe rence for entity 'types' [java] at [row,col {unknown-source}]: [53,91] [java] at org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init( DefaultSCADomain.java:106) [java] at org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance( SCADomain.java:229) [java] ... 2 more [java] Caused by: org.apache.tuscany.sca.contribution.service.ContributionReadException: com.ctc.wstx.exc.WstxUnexpected CharException: Unexpected character '=' (code 61); expected a semi-colon after the reference for entity 'types' [java] at [row,col {unknown-source}]: [53,91] [java] at org.apache.tuscany.sca.assembly.xml.CompositeProcessor.read( CompositeProcessor.java:308) [java] at org.apache.tuscany.sca.assembly.xml.CompositeProcessor.read( CompositeProcessor.java:65) [java] at org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.read (ExtensibleStAXArtifactP rocessor.java:73) [java] at org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.read( CompositeDocumentProcessor.java:63) [java] at org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.read( CompositeDocumentProcessor.java:43) [java] at org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor.read (ExtensibleURLArtifactPro cessor.java:63) [java] at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.processReadPhase (ContributionServ iceImpl.java:301) [java] at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.addContribution (ContributionServi ceImpl.java:251) [java] at org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.contribute (ContributionServiceImp l.java:119) [java] at org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init( DefaultSCADomain.java:104) [java] ... 3 more [java] Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '=' (code 61); expected a semi-colo n after the reference for entity 'types' [java] at [row,col {unknown-source}]: [53,91] [java] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar( StreamScanner.java:623) [java] at com.ctc.wstx.sr.StreamScanner.parseEntityName( StreamScanner.java:1969) [java] at com.ctc.wstx.sr.StreamScanner.fullyResolveEntity( StreamScanner.java:1471) [java] at com.ctc.wstx.sr.BasicStreamReader.parseNormalizedAttrValue( BasicStreamReader.java:1943) [java] at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs( BasicStreamReader.java:3035) [java] at com.ctc.wstx.sr.BasicStreamReader.handleStartElem( BasicStreamReader.java:2934) [java] at com.ctc.wstx.sr.BasicStreamReader.nextFromTree( BasicStreamReader.java:2846) [java] at com.ctc.wstx.sr.BasicStreamReader.next( BasicStreamReader.java:1019) [java] at org.apache.tuscany.sca.assembly.xml.CompositeProcessor.read( CompositeProcessor.java:302) [java] ... 12 more [java] Java Result: 1 BUILD SUCCESSFUL Total time: 1 second Thanks! Good catch! It looks like it's not an issue with the Feed binding, but a more general issue with a URL containing in an XML attribute. Could you try to escape the as amp;? like this:
Re: SCA distribution is really big now
Anderson, Jeff T (CA - Toronto) wrote: I like having the samples, in the absence of extensive documentation these are key to understanding Tuscany... I like the idea of packaging the samples as simple SCA contribution jar's. I think keeping the footprint as little as possible is important, both in terms of optics and managing the complexity and understanding. Just my humble opinion... Jeff +1 to keep the samples as simple SCA contribution JARs. The current webapp packaging is not quite right anyway as it's introducing a half baked mix of J2EE and SCA programming model inside the webapp. I'd suggest the following: - Package SCA sample components as simple SCA contribution JARs, stay away from webapps. - To allow JSP and servlets to invoke SCA service component, support implementation.web Web components as described in [1]. [1] http://www.osoa.org/pages/viewpage.action?pageId=3980 From: haleh mahbod [mailto:[EMAIL PROTECTED] Sent: Mon 2007-08-13 14:55 To: [EMAIL PROTECTED]; [EMAIL PROTECTED]; Tuscany Users Subject: Re: SCA distribution is really big now It would be good to get user 's view on this as well. I am re-posting to tuscany-user list since I am not sure if everyone monitors both lists. On 8/11/07, ant elder [EMAIL PROTECTED] wrote: Our SCA binary distribution is over 100Meg now and there's still extensions and dependencies I've not added yet. This seems a little big considering we're trying to sell Tuscany as all svelte and light weight. So what to do? The reason its so big is that every webapp sample and demo we have ends up including a copy of most of the runtime and dependencies. One solution could be to just ship fewer prebuilt webapp samples and demos. Another could be to change the way we do those samples so that each sample/demo is just a simple SCA contribution jar and you have to deploy that to some Tuscany runtime. We've already the webapp runtime that would work for that, and the Geronimo Tuscany support, and we could create another standalone runtime if you don't want to use Tomcat or Geronimo. What do people think, does the size matter, are there some other things we could do? ...ant -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Monitoring, logging and exceptions (again)
Simon Laws wrote: On 8/8/07, ant elder [EMAIL PROTECTED] wrote: On 8/7/07, Simon Laws [EMAIL PROTECTED] wrote: We talked about this before ( http://www.mail-archive.com/[EMAIL PROTECTED]/msg16784.html) but didn't come to any conclusions. So, 1/ What is the requirement? 2/ What is the technical solution? 3/ When should we try and get it done? To get things going again here are some thoughts drawn from what was said in the referenced thread. 1/ An API in line with accepted logging/management practices to support arbitrary debugging and runtime info, warning and error logging A common approach to exception/error handling specifically around the detail recorded in the error messages Internationalization/localization Execution Tracing 2/ Keeping it simple was a popular sentiment A number of java logging solutions have been proposed Log4J, SLF4J etc. I believe DAS is using Log4J. We have dependencies that also use logging tools. We can take a look at how others approach this, e.g, quick glance at the last CxF release shows they include SLF4J jars Aspects were investigated to show how they can be used for tracing, seems like an interesting optional facility but adds extra complexity/dependencies There was also a suggestion that we could implement some higher level tracing, e.g. runtime starts, stops, application loading, component instance creation etc. We need to move error message out of the code and into resource files 3/ I think we can reasonably expect to agree what approach we are going to take fairly quickly and provide some examples, i.e. before the next release? People suggested before that we take time out to go through the code based and bring it into line. This will take a lot of time but can we get it into 1.0? Please add your thoughts to the list and we can then draw them together, try some of it out and come to some conclusions. Simon +1 for going with SLF4J. If we can decide on this soon then we can all just start adding it in to the code we're working on and debugging, and then maybe have a focused sweep before 1.0 to make sure its in everywhere useful. ...ant Cross posting to the user list also as I expect this is close to everyone heart. Can everyone reply to both lists. Thanks Simon We had a similar discussion in April [1]. Here's what I suggest for logging: - Separate the trace calls from the runtime code. Insert them automatically at build time or run time using Aspectj. Raymond on SCA and Kelvin on SDO already showed how to do it. - Use SLF4J in these generated trace calls. [1] http://mail-archives.apache.org/mod_mbox/ws-tuscany-dev/200704.mbox/[EMAIL PROTECTED] Thoughts? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
OSCON 2007 Tuscany BOF
I was at a Tuscany BOF yesterday at OSCON 2007 (http://conferences.oreillynet.com/cs/os2007/view/e_sess/14724). I presented an overview of SCA, SDO, Tuscany, what's in our latest releases and some of the work in progress. I have uploaded the presentation there: http://cwiki.apache.org/confluence/display/TUSCANYWIKI/OSCON+2007+Tuscany+BOF I also showed the BigBank demo, available in our SVN repository there: http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/demos/ -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Injecting servlet context into component
[snip] Robert Young wrote: On a slightly different tack, if I implement my own servlet which loads the servlet from WebAppServletHost would I be able to inject the servlet context into the service via the generated servlet? On 7/13/07, Robert Young [EMAIL PROTECTED] wrote: Strangely I don't need anything from it, I just need it. The service is for interacting with Nutch, which requires the servlet context to load the configuration instance.The NutchConfiguration class grabs all it's parameters from the servlet context but I don't really want to have to do that myself. On 7/13/07, ant elder [EMAIL PROTECTED] wrote: I think there isn't any way with the current code as-is. We could look at providing something, I'm not sure we should what support injecting the entire ServletContext into a component though, what is it exactly that you need from it in the service impl? ...ant On 7/12/07, Robert Young [EMAIL PROTECTED] wrote: I am running Tuscany with Tomcat and I need the servlet context to be available to one of my service implementations (used to load a particular configuration). I understand I can inject properties with default values but I can't seem to figure out how I can inject the servlet context. Thanks Rob There is no facility to inject a ServletContext into an SCA component at the moment but we should be able to work something out if we understand your scenario. Who invokes your SCA component? a JSP or a Servlet? or is the component accessed through an SCA binding (WS, JSONRPC or Ajax for example)? Thanks -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Getting service manually through servlet
ant elder wrote: I think right now you have to use a META-INF/sca-contribution.xml file to point to your .composite files, you can see an example in one of the Tuscany samples, eg: https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-webapp/src/main/webapp/META-INF/. An alternative may be to place your .composite files in a META-INF/deployables folder, but I've had problems getting that to work. I think it would could be useful if when neither of those two things were done then any .composite files found got deployed, any one know why we can't do that? ...ant Ant, could you describe the problems you ran into when you placed .composite files in a META-INF/deployables folder? We wanted to get this to work as it's significantly simpler than writing an sca-contribution.xml file. Thanks. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Web Service binding deployed into Tomcat
Jean-Marc Taillant wrote: Hi, I downloaded the last versioon apache-tuscany-sca-0.90. I played with several composite sample and all looks ok. But what I need to do now is to use tuscany into tomcat ( deployed in a war file). This application will expose the ws binding. What I can't see is how to invoke the Web Service, I mean what is the service endpoint to test it? I tryed the following URL: http://localhost:8080/myapp/services/MyService http://localhost:8080/myapp/services/MyService?wsdl But with no success. I also having the following exception: GRAVE: Servlet.service() pour la servlet TuscanyServlet a généré une exception java.lang.IllegalStateException: No servlet registered for path: null at org.apache.tuscany.sca.webapp.TuscanyServlet.service(TuscanyServlet.java:57) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:595) When I try ot invoke the above URLs. Your help will be appreciate. Thanks in advance, Jean-Marc Hi The URL should be http://localhost:8080/web app name/path used to register the Tuscany servlet in web.xml/uri specified in your binding.ws element. If this does not work, could you please provide us with your .composite, web.xml and .wsdl files? and we'll take a look. Just paste the files in the body of the email (attachments are filtered out) or attach them to a JIRA issue (http://issues.apache.org/jira/browse/TUSCANY). Thanks. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Accessing c++ service from java
Asha AmbikaVijayakumaran wrote: Dear team, I am having a c++ service component eg:Account Service from your examples, the service is exposed via ws binding, and now i need this service to be accessed from java using apache tuscany, I have written a composite and i have attached it here. I am getting following exceptions Composite assembly problem: Reference not found for component reference: HelloWorldServiceComponent/accountService Composite assembly problem: No type specified on component property: HelloWorldServiceComponent/accountService Composite assembly problem: Component reference target not found: AccountService Can anyone help me to find out a solution how c++ service can be used in java. I am toubling to find a solution. Please help Thanks/Regards Asha Hi, you probably just need a minor fix to your composite file and maybe a small change to your Java class as well. A component/reference does not need a target attribute if it's promoted by a composite/reference. If present, a component/reference target should reference another component/service. You don't need an accountService component/reference element anyway if the reference is already declared with an @Reference annotation in your HelloWorldServiceComponent class. But from the No type specified on component property: HelloWorldServiceComponent/accountService message I'm guessing that maybe it's not annotated or annotated with an @Property instead? So I'd suggest the following. 1. Change your composite as follows: composite xmlns=http://www.osoa.org/xmlns/sca/1.0; targetNamespace=http://helloworld; xmlns:hw=http://helloworld; name=helloworldwsclient component name=HelloWorldServiceComponent implementation.java class=helloworld.HelloWorldServiceComponent/ /component reference name=HelloWorldService promote=HelloWorldServiceComponent/helloWorldService interface.java interface=helloworld.HelloWorldService / binding.ws wsdlElement=http://helloworld#wsdl.port(HelloWorldService/HelloWorldSoapPort)/ /reference reference name=AccountService promote=HelloWorldServiceComponent/accountService interface.wsdl interface=http://www.bigbank.com/AccountService#wsdl.interface(AccountService)/ binding.ws wsdlElement=http://www.bigbank.com/AccountService#wsdl.port(AccountService/AccountServiceSOAP)/ /reference /composite 2. Make sure that your HelloWorldServiceComponent annotates the accountService field or setter method with an @Reference annotation. Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: A question about SCA descriptor file structure and meaning.
legolas wood wrote: Hi Thank you for reading my post Can you please explain following snippet for me? reference name=StockQuoteReference1 interface.wsdl interface=http://www.stockquote.org/StockQuoteService#wsdl.interface(StockQuote)/ binding.ws wsdlElement=http://www.stockquote.org/StockQuoteService#wsdl.service(StockQuoteService) wsdli:wsdlLocation=http://www.stockquote.org/StockQuoteService http://www.stockquote.org/StockQuoteService.wsdl; / /reference Imagine that i have a java class named Calculate, it has one method which takes two numbers and return an integer as result. something like : @WebService() public class Calculate { /** * Web service operation */ @WebMethod public int addThem(@WebParam(name = a) int a, @WebParam(name = b) int b) { // TODO write your implementation code here: return a+b; } } URL to wsdl of this web service is like: http://localhost:8080/sample/CalculateService?wsdl Now how the above code snippet which is an SCA code snippet should change to use my web service and its addThem method? Thanks Hi, If I understand correctly you're trying to use an SCA reference with an SCA Web Service binding to talk to a CalculateService Web service, for which you already have a WSDL? If this is your scenario then it's pretty simple. You simply need to change the SCA reference to name the WSDL portType and service (or port) representing the CalculateService in the WSDL returned at http://localhost:8080/sample/CalculateService?wsdl. It's probably best to have a local copy of the CalculateService WSDL instead of relying on http://localhost:8080/sample/CalculateService?wsdl to be online all the time, so I'd recommend to save it to CalculateService.wsdl, store that WSDL locally with your other SCA artifacts, then change your SCA reference like this: composite ... component name=SampleComponent reference name=CalculateReference interface.wsdl interface=http://calculate-namespace#wsdl.interface(Calculate)/ binding.ws wsdlElement=http://calculate-namespace#wsdl.service(CalculateService)/ /reference ... other configuration of your component /component /composite A few comments: - An SCA reference usually lives inside a component (representing the code that's going to talk to the reference), inside an SCA composite. I just added them here to put the reference/ in context. - I have to guess what's in your WSDL, so in my example http://calculate-namespace would be the namespace of your WSDL definition - Calculate would be the name of your WSDL portType/ - CalculateService would be the name of your WSDL service/ - I recommend to avoid using wsdlLocation in general as I doubt that your application will always run on localhost:8080 :) and when you install it somewhere else you probably don't want to go back to your SCA reference and change that location. What we usually do instead is we place a local copy of the WSDL file in the client application, and the Tuscany runtime will automatically find it for you. Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Next Tuscany SCA release, was: 0.91 release?
Hi all, The Tuscany SCA Java release 0.90 will be available next week and now a discussion has started to figure out what can be in the next release. It would be great to get user feedback on what your wish list is and if there are areas that need attention. I am forwarding this email to the user list to help figure out what is important to you. Jean-Sebastien Delfino wrote: ant elder wrote: With the 0.90 release almost out how about starting on 0.91? Its been almost 3 weeks since the code chill for 0.90, be good if we could start doing releases much more regularly and 4 - 6 weeks for a small point release seems good to me, so how about aiming for cutting an 0.91 branch in a week or 2? The main things I'd like to get out are the improvements to the scripting scripting support with optional .componentType sidefiles and dynamic interfaces, and the ajax binding and jsonrpc binding simplification and unification. With those, the new feed binding and the port of the aggregator sample that would give 0.91 a sort of web20/scripting focus, and doing it quick like this should make it relatively easy to get done by using the trunk stability from 0.90. ...ant In addition to what you listed here, I looked at your next release work items list at [1] and there are a few other items from that list + some that were not in your list that I'd like to get into the next release: [1] http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg18127.html Web Service binding - work without pre-existing wsdl doc - async - Fix open jira's about ?wsdl and endpoint url - get the Axis2 REST support to work, I tried today and I think that our TuscanyServlet blocks it WebApp - ability to serve HTML files when we embed Jetty or Tomcat Binding-JMS - get going again, I think it's starting to work again as Simon is using it for his SCA domain experiments Spring container - get it going again, Mike Edwards seems to have made good progress at getting it working again, from what I can see in his recent commit SCA Assembly and Domain - include some what Simon Laws has started to allow components to be in multiple runtimes - a number of detail fixes and improvements, support for multiple bindings on references for example - support for import/export in SCA contributions Distributions - don't want to always distribute *everything* - maybe distributions targeting each runtime and you can ± extensions when you build the distro? Java SCA APIs - add missing APIs like RequestContext - would be good to get a first cut of some conversational support Most of this can be done relatively quickly, so having the next release in 4/6 weeks sounds good to me. I agree with you that we should have much more frequent releases from now on, as our SPIs and core are now stable and we're starting to see good progress with extensions. So, we could cut a new branch soon (I'd suggest in 2 or 2.5 weeks rather than 1 week), and having the release branch in place will allow us to decide for each feature or bug fix if we keep it in trunk only (because it's likely to not be ready for that release) or trunk + the branch. Thoughts? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Simple use case problem
Patrick Vanhuyse wrote: Hi Simon, I removed sca-contibutions.xml from provider. I copied Provider.composite to consumer/src/main/resource. I add ProviderComposite to the consumer sca-contribution.xml. And it works. I have had a look at the code in SCADomain.newInstance(). It loads only one sca-contribution.xml, the first found by the class loader, I think. To solve this, it should look at all the sca-contribution.xml (conflict : they are all in the same folder) from the various jars on the classpath in place of using only one (depends on the ClassLoader). I don't know if it's possible (the class loading mechanism is a mystery to me !). Furthermore, there is the SCA loading mechanism used which is yet a greater mystery. I will go on with my other tests. Afterwards, if I dare, I will throw myself into all this loading stuff. Thanks for your help. Patrick -Message d'origine- De : Simon Laws [mailto:[EMAIL PROTECTED] Envoyé : mercredi 30 mai 2007 18:11 À : tuscany-user@ws.apache.org Objet : Re: Simple use case problem Hi Patrick What is going on here is that the consumer module is not loading the provider composite. I can make this work by doing the following... 1 - Make the provider composite available to the consumer runtime copy the Provider.composite to consumer/src/main/resource 2 - Make the ProviderComposite deployable add the ProviderComposite to the consumer sca-contributions.xmlfile Now I kind of expected to have to do 2 so that the runtime knows that the composite exists and should be deployed. However I don't know how to get round 1. I would like to be able to specify a jar to load alongside the consumer composite that is loaded. However I took a look at the code and there seems to be more work to do in making the runtime and contribution service flexible in this way. All help is gratefully received if you feel like getting your hands dirty ;-) Regards Simon - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Hi, DefaultSCADomain is a minimal domain bootstrap utility initially designed to work with a single SCA contribution (one JAR or folder). If you want to try, you should be able to add multiple contributions to a domain using EmbeddedSCADomain instead of DefaultSCADomain. EmbeddedSCADomain is a more flexible domain bootstrap class that allows you to add/remove contributions, add/remove composites to the domain, and start/stop components contained in these composites. The EmbeddedSCADomainTestCase [1] test case shows how to use EmbeddedSCADomain, to create a domain, populate it and use it. [1] http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java Line 62: Contribution contribution = contributionService.contribute(http://test/contribution;, new URL(url), myResolver, false); adds a contribution, the URL can point to a contribution folder or JAR. Maybe you can try to add multiple contributions this way? let me know how it goes... Thanks. Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Use of a factory pattern with SCA
Nicholas Williams wrote: Hi all, Section 1.4.1 of the SCA Java Common Annotations and APIs specification states the following: Using reference injection is the recommended way to access a service, since it results in code with minimal use of middleware APIs. The ComponentContext API should be used in cases where reference injection is not possible. Injection is not appropriate where a client component does not know how many service components its will need to create until runtime. Conferencing is a good example of this, how many participant instances should be created? In order to dynamically create the objects we need, we have devised the following pattern: * The factory will be stateless. * The factory will be injected into the client component. * The factory will create a specific type of component. * The factory will use the ComponentContext to create the required component. * The created component must obey the specified implementation scope, stateless or conversational. * The factory will use the RequestContext to connect up any callbacks between the component and the client. * The connected callback must also obey the specified implementation scope, stateless or conversational. Does anyone have any thoughts as to whether this: * Is perhaps trying to bring an OO style of programming to what is really a SOA environment? * Whether the callback aspect is realistic? * In short, is this a good pattern or an anti-pattern? Any thoughts would be much appreciated Thank you I am trying to understand the use case that you're after and have a few questions: Taking your conferencing example, would you want to create a new component (with a different component name, configuration, wires etc.) to represent a conference participant? In other words are you looking for Java APIs to define or augment an assembly dynamically, as an alternative to a fixed XML document? Or do you have a fixed set of components already defined and configured in your assembly, and need to create a new instance of a defined component to represent a conference participant? I guess this would look like some kind of scoping mechanism, introducing a different scope than Composite, Request, or Conversation. Actually, I don't know enough about your use case yet, but if somebody joins a conference this may nicely map to a form of Conversation establishment... Where would a newly created component run? the current composite and active component? somewhere else in the SCA domain? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Any SCA for SDO M3?
Dennis, Some comments inline. Dennis Virt wrote: Dear Simon and Luciano, Thank you for your detailed replies and comments. I also got an impression that trunk is maintained healthy and buildable. We have made changes to the trunk recently to make it easier to build. Could you try the following? cd tuscany/java mvn This should build the SDO, DAS and SCA runtimes. I just tried with revision r531619 and they all built OK. You can imagine how much frustration has brought to me my attempt to build the web service WAR, since I did not know that war plugin was not operational :-) We're going to try to make it more clear that modules under java/sca/contrib (including the WAR plugin) are old and not operational. I started a discussion on that earlier today on tuscany-dev. Pure M3 war plugin did not work because of contribution dependency on 2.0alpha tag. I tried to mix M3 SDO/DAS and 2.0alpha-incubating branch from TSSS demo, M2 SCA and M3 SDO/DAS and finally came back to all M2 code. The latter yielded the same results as M2 SCA and M3 SDO/DAS (at the very end of this message). Mixing M3 and M2 will be tricky, I don't recommend that path. M3 SDO is very close to a release, and we've started to put an SCA release together, targeting a release in a few weeks, so I suggest that you try the SCA code in trunk instead of SCA M2. I want to bundle as WAR just enough SCA runtime needed to 1) feed data to an AJAX client over a web service Are you planning to use SOAP or JSON-RPC? Our SOAP binding is operational now, the JSON-RPC binding is not up and running as of today but I expect to see it running again later this week. 2) and resolve change summaries from the client to the database. Ideally I wanted this WAR to be deployable to Tomcat, JBoss, IBM WebSphere 6.1 and Bea WebLogic. I was aware that WebSphere and WebLogic would've needed much more attention in preparing descriptors and crafting dependencies. If I succeeded with proof of concept, I'd be able to assign further packaging to specialists capable of WebSphere and WebLogic parts. Do you need a WAR or would you be OK to start with an embedded Tomcat? With the embedded Tomcat configuration, we embed a minimal Tomcat instance and boot it from inside Tuscany, instead of having the Tuscany runtime installed on top of an existing Tomcat, with the SCA application running in a WAR. If you want to see how our embedded configuration works, you can take a look at the test cases under java/sca/modules/binding-ws-axis2. They use Jetty instead of Tomcat but I'm going to add a Web Service sample to java/sca/samples later today which will show how to provide a Web Service uing Tomcat. I'll post an update to this thread with a link to the sample when it's ready. Running an SCA application in a WAR should also be supported again soon, probably sometime next week, as several Tuscany developers have already indicated on our dev list that they were interested in getting this to work for our upcoming release. I'm expecting our new Webapp packaging story to be much simpler than before and not require a special Tuscany WAR plugin anymore to create WARs. I will try now with M3 code and SCA embedded in Jetty or Tomcat. A few words about problem that stopped my advance with WAR packaging of web service. Below are the pom.xml, WSDL, default.scdl, DAS configuration and service implementation if anybody cares to glance through and maybe point out any obvious mistakes. I stripped down some comments. M2 SCA/SDO/DAS, just as M2 SCA and M3 SDO/DAS packaged as WAR and deployed to Tomcat 5.5.23 give me the following message when I try to invoke loadProcessFolderContent: The error below is probably caused by a problem selecting the Databinding to use in your application. I'm not too familiar with how Databindings worked in M2 - maybe other Tuscany developers can help here? - but I've seen the SDO databinding consistently work with Web Services recently with the latest code in trunk. java.lang.IllegalArgumentException: Complex type is not supported for simple jav a databinding. at org.apache.tuscany.spi.databinding.extension.SimpleTypeMapperExtensio n.toJavaObject(SimpleTypeMapperExtension.java:275) at org.apache.tuscany.spi.databinding.extension.SimpleType2JavaTransform er.transform(SimpleType2JavaTransformer.java:51) at org.apache.tuscany.core.databinding.impl.MediatorImpl.mediate(Mediato rImpl.java:95) at org.apache.tuscany.core.databinding.impl.Input2InputTransformer.trans form(Input2InputTransformer.java:197) at org.apache.tuscany.core.databinding.impl.Input2InputTransformer.trans form(Input2InputTransformer.java:47) at org.apache.tuscany.core.databinding.impl.MediatorImpl.mediate(Mediato rImpl.java:95) at org.apache.tuscany.core.databinding.impl.DataBindingInteceptor.transf orm(DataBindingInteceptor.java:105) at org.apache.tuscany.core.databinding.impl.DataBindingInteceptor.invoke
Re: Any SCA for SDO M3?
[snip] Jean-Sebastien Delfino wrote: Dennis, Some comments inline. Dennis Virt wrote: Dear Simon and Luciano, Thank you for your detailed replies and comments. I also got an impression that trunk is maintained healthy and buildable. We have made changes to the trunk recently to make it easier to build. Could you try the following? cd tuscany/java mvn This should build the SDO, DAS and SCA runtimes. I just tried with revision r531619 and they all built OK. You can imagine how much frustration has brought to me my attempt to build the web service WAR, since I did not know that war plugin was not operational :-) We're going to try to make it more clear that modules under java/sca/contrib (including the WAR plugin) are old and not operational. I started a discussion on that earlier today on tuscany-dev. Pure M3 war plugin did not work because of contribution dependency on 2.0alpha tag. I tried to mix M3 SDO/DAS and 2.0alpha-incubating branch from TSSS demo, M2 SCA and M3 SDO/DAS and finally came back to all M2 code. The latter yielded the same results as M2 SCA and M3 SDO/DAS (at the very end of this message). Mixing M3 and M2 will be tricky, I don't recommend that path. M3 SDO is very close to a release, and we've started to put an SCA release together, targeting a release in a few weeks, so I suggest that you try the SCA code in trunk instead of SCA M2. I want to bundle as WAR just enough SCA runtime needed to 1) feed data to an AJAX client over a web service Are you planning to use SOAP or JSON-RPC? Our SOAP binding is operational now, the JSON-RPC binding is not up and running as of today but I expect to see it running again later this week. 2) and resolve change summaries from the client to the database. Ideally I wanted this WAR to be deployable to Tomcat, JBoss, IBM WebSphere 6.1 and Bea WebLogic. I was aware that WebSphere and WebLogic would've needed much more attention in preparing descriptors and crafting dependencies. If I succeeded with proof of concept, I'd be able to assign further packaging to specialists capable of WebSphere and WebLogic parts. Do you need a WAR or would you be OK to start with an embedded Tomcat? With the embedded Tomcat configuration, we embed a minimal Tomcat instance and boot it from inside Tuscany, instead of having the Tuscany runtime installed on top of an existing Tomcat, with the SCA application running in a WAR. If you want to see how our embedded configuration works, you can take a look at the test cases under java/sca/modules/binding-ws-axis2. They use Jetty instead of Tomcat but I'm going to add a Web Service sample to java/sca/samples later today which will show how to provide a Web Service uing Tomcat. I'll post an update to this thread with a link to the sample when it's ready. Running an SCA application in a WAR should also be supported again soon, probably sometime next week, as several Tuscany developers have already indicated on our dev list that they were interested in getting this to work for our upcoming release. I'm expecting our new Webapp packaging story to be much simpler than before and not require a special Tuscany WAR plugin anymore to create WARs. Dennis, I have committed two new modules under java/sca/samples: - helloworld-ws - A sample showing how to provide a HelloWorld service with a Web Service binding. The helloworld.HelloWorldServer program starts Tuscany with an embedded Tomcat server to host the Web service. - helloworld-wsclient - A sample client. The helloworld.HelloWorldClient program shows how to start an SCA client and invoke the HelloWorld Web Service. The samples work with SVN revision r531727 of the Tuscany trunk. Hope this helps. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: BigBank trouble
Snehit Prabhu wrote: Hi, I'm new to Tuscany. A little help with the Bigbank example would be appreciated. Im using the SCA samples that I downloaded from here : http://incubator.apache.org/tuscany/sca_downloads.html http://incubator.apache.org/tuscany/sca_downloads.html. I downloaded the source zip files from windows and built the same. My understanding of the BigBank example is - copy the .war files into the webapps directory of Tomcat (Im running Tomcat 5.5.20), and you should be ready to go. The two WARs in question are : $sca_samples\applications\bigbank\account\target\sample- bigbank-account.war and $sca_samples\applications\bigbank\webclient\target\sample-bigbank-webclient.war. Everything works fine till here; I open the Tomcat Manager WebInterface - the two newly added WARs (sample-bigbank-account.war and sample-bigbank-webclient.war) are reflected in the list of applications. Now, when I try to start sample-bigbank-account application, Tomcat throws the following error : FAIL - Application at context path /sample-bigbank-account could not be started. I stopped and restarted Tomcat to get a fresh error trace. Here is the error log (stdout) of Tomcat as it initializes : [WARNING] Unable to get resource from repository http___repo1.maven.org_maven2 ( http://repo1.maven.org/maven2) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-incubating-repository (http://people.apache.org/repo/m2-incubating-repository http://people.apache.org/repo/m2-incubating-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven (http://repo1.maven.org/maven) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-snapshot-repository ( http://people.apache.org/repo/m2-snapshot-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven2 ( http://repo1.maven.org/maven2) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-incubating-repository (http://people.apache.org/repo/m2-incubating-repository http://people.apache.org/repo/m2-incubating-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven (http://repo1.maven.org/maven) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-snapshot-repository ( http://people.apache.org/repo/m2-snapshot-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven2 ( http://repo1.maven.org/maven2) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-incubating-repository (http://people.apache.org/repo/m2-incubating-repository http://people.apache.org/repo/m2-incubating-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven (http://repo1.maven.org/maven) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-snapshot-repository ( http://people.apache.org/repo/m2-snapshot-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven2 ( http://repo1.maven.org/maven2) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-incubating-repository (http://people.apache.org/repo/m2-incubating-repository http://people.apache.org/repo/m2-incubating-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven (http://repo1.maven.org/maven) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-snapshot-repository ( http://people.apache.org/repo/m2-snapshot-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven2 ( http://repo1.maven.org/maven2) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-incubating-repository (http://people.apache.org/repo/m2-incubating-repository http://people.apache.org/repo/m2-incubating-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven (http://repo1.maven.org/maven) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-snapshot-repository ( http://people.apache.org/repo/m2-snapshot-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven2 ( http://repo1.maven.org/maven2) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-incubating-repository (http://people.apache.org/repo/m2-incubating-repository http://people.apache.org/repo/m2-incubating-repository) [WARNING] Unable to get resource from repository http___repo1.maven.org_maven (http://repo1.maven.org/maven) [WARNING] Unable to get resource from repository http___people.apache.org_repo_m2-snapshot-repository ( http://people.apache.org/repo/m2-snapshot-repository) [WARNING] Unable to get resource from repository apache.incubator ( http://people.apache.org/repo/m2-incubating-repository/)
[Native] Threading issues with Ruby on Windows, was: Alert Aggregator Sample - was: Web 2.0 sample
[snip] Andrew Borley wrote: Further things that could be done: Demonstrate use of more than one language/SCA runtime. Currently all components are implemented in Python. There is a Ruby version of the POPChecker, but I hit threading issues when I tried to use this under HTTPD so I had to replace it with a Python version. The Ruby 1.8.5 interpreter is not thread safe. To work around this limitation on Windows (where HTTPD runs multithreaded) we can use CGI (or FastCGI like many Ruby on Rails users do). Note that this is not really a problem on Linux where most people run multiple HTTPD processes instead of threads. I have started a CGI variation of the server side REST binding support. This can be an interim solution on Windows until the Ruby interpreter becomes thread safe, as well as a super easy way to test REST based applications outside of the server, just from the command line... BTW your Web 2.0 sample app is really cool!! -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Tuscany development status
Francesco Furfari wrote: Hello, I'm trying to push for the adoption of SCA model (Tuscany) in a project whose development activities will start on the second quarter of the next year. Next week there will be a meeting in which I would like to summarize the status of Tuscany project. In particular, I would like to report on the current conformity of Tuscany to the SCA specification, the companion UI tools that can ease the development (not only those that may be under the Apache effort, but also e.g. Eclipse), when a final SCA specification is expected, and if other IT providers are developing/providing more implementations. I could gather such information from the web (of course I'm doing), but I would appreciate whether you give me some hints on the practical difficulties that we could have when approaching Tuscany. Thanks in advance francesco - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Francesco, I'm not sure if anybody else has already sent you any pointers, as most of us were on vacation the last 2 weeks, but most of the SCA information is on our Web site http://incubator.apache.org/tuscany, the OSOA spec collaboration site http://www.osoa.org and the PHP SOA package at http://pecl.php.net/package/SCA_SDO Here are a few more specific pointers: The latest level of the SCA spec is 0.96 and the OSOA collbatoration is working towards a 1.0 spec. You can find a list of early implementations of SCA and SDO (including Apache Tuscany of course) at http://www.osoa.org/display/Main/Early+Implementation+Examples+and+Tools. The Eclipse SOA tools platform project at http://www.eclipse.org/stp/ is building Eclipse tools for SCA. Finally the Tuscany SCA Milestone 2 announcement emails give you a list of the SCA features and spec levels supported in both the C++ and Java Tuscany runtimes. C++ M2: http://mail-archives.apache.org/mod_mbox/ws-tuscany-user/200611.mbox/[EMAIL PROTECTED] Java M2: http://mail-archives.apache.org/mod_mbox/ws-tuscany-dev/200612.mbox/[EMAIL PROTECTED] Community discussions on the next steps for Tuscany just started before the holidays and they're probably going to resume soon on the tuscany-dev@ws.apache.org mailing list. Feel free to post here or on tuscany-dev if you have more specific questions. I'll be able to help more with Tuscany C++ related questions but it looks like most of the people working on Tuscany Java are back from vacation this week as well. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [C++] Where next for Tuscany C++?
Simon Nash wrote: [snip] I'd like to see closer integration between the Tuscany Java and C++ runtimes, with seamless cross-runtime wiring, deployment, and composition. The application developer would write SCDL containing components with different implementation types, and the application would be deployed to a combination of both runtimes according to the hosting needs of the components. Users would see a single federated Tuscany runtime environment hosting multiple implementation languages and component types, rather than being aware of two Tuscany runtimes written in Java and C++ as they are at present. Simon Right, I could imagine an application made of Java, C++, BPEL and PHP components, using Web and JMS services for example: - The Java components would run in a Java component runtime. - The C++ components would run in a C++ component runtime. - The BPEL components would run in a runtime equipped with a BPEL engine. - The PHP components would run in a PHP runtime environment. - The Web services and JMS services would be deployed to Web service and JMS enabled runtimes. Small specialized runtimes would host the various pieces of my application and communicate over a service network. As an application developer, I wouldn't care or want to know the particular language - Java, C++ - used to implement a particular runtime. I would be more interested in its capabilities and the component programming model it supports. I'd be willing to help anybody interested in working on any scenarios demonstrating this approach. Maybe we could use the WS-I supply chain scenario that we had started at http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/samples/SupplyChain/ for example, or any other scenario that people would be interested in working on... -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[HELP wanted] Review M2 docs showing how to use SCA in Python and Ruby
The M2 release of the Tuscany/C++ SCA project introduces the ability to write SCA components in Python and Ruby. I have reviewed the documents describing that feature in the M2 Release Candidate 1 distribution posted by Andy, but I'm sure there's a good number of Python and Ruby developers subscribed to the list, and we could use your help and feedback to improve these docs. So if anybody is interested, you can just download the M2 RC1 binary distribution at http://people.apache.org/~ajborley/cpp-1.0-incubator-M2-RC1, tuscany_sca_cpp-1.0-incubator-M2-bin.zip (size = 1.2 Mb) on Windows, or tuscany_sca_cpp-1.0-incubator-M2-bin.tar.gz (size = 2.1 Mb) on Linux, unpack it, read doc/PythonExtension.html and doc/RubyExtension.html, and let us know how we can improve these docs! This is a new feature and we could also use any feedback on how to improve our integration with these languages. Any ideas to make this look more Pythonic or Rubyesque is welcome. Thanks! Andrew Borley wrote: Hi everyone, I have posted candidates for the C++ SCA and SDO M2 release here: http://people.apache.org/~ajborley/cpp-1.0-incubator-M2-RC1 Please take a look, read the docs, build run the libraries and samples let us know how you find it so that we can either re-spin the release or vote on it asap. The website documentation is currently based on the M1 release and will be re-written to sync with what is in the release. About Tuscany SCA C++ === Tuscany SCA C++ provides a runtime implementation for the for the Service Component Architecture 0.96 Assembly specification and the 0.95 C++ Client Implementation Model specification, written in C++ and will currently support C++, Python and Ruby component implementation types. The specifications can be found at http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications It is possible to interoperate with Tuscany SCA Java via the Web Service bindings for services and references but restrictions apply. This is not yet a complete implementation and known restrictions are described below. Supported SCA Assembly Model features * All features are supported unless listed under the known restrictions below. See SCA Assembly Model specification. Supported language bindings * Component implementations written in C++. See the SCA C++ Client and Implementation Model specification. * Component implementations written in Python. See the doc/PythonExtension.html documentation. * Component implementations written in Python. See the doc/RubyExtension.html documentation. * Component interfaces described by C++ classes. See SCA Client and Implementation Model specification. Supported service and reference bindings * The web service binding is supported. This implementation will support web services which using document literal SOAP bindings conforming to the WS-I basic profile (rpc/encoded is not yet supported). Known restrictions * Local service interfaces cannot use overloaded operations (the SCA specification limits remote service interfaces to not using overloaded operations). * Each WSDL definition for a web service binding must be in a single WSDL document. * No load time validation of the deployed SCA application (run time validation only). * No metadata API. About Tuscany SDO for C++ = Tuscany SDO is an implementation of the Service Data Objects 2.01 specification for C++ developers found at http://www.osoa.org/display/Main/Service+Data+Objects+Specifications - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]