Dear CXF Developer's Mailing List, My name is Ryan Zoerner and I am a Computer Sciences Major at the University of Wisconsin Madison. I am writing to subscribe to this mailing list because I am interested in working on Integrating Apache CXF JAX-RS with EJB, and that, in conjunction with Google Summer of Code. If this is not the correct address to send this message to, I will resend it when I have been added to the list.
A bit about my experience as it relates to this project: I am interested in web services and web programming. A few summers ago, I spent time going through the Java EE 5 tutorial and learning, from their ant files, and the ant manual, how to build my own ant files and deploy servlets and web services, including using ws-import. Now I have been going through the Java EE 6 samples to refresh my memory about ant and learn more about deploying and developing web applications. I know about wsdl, soap, xml, and xml schemas; I can read WSDL and know that it only has a few different forms basically, but I am completely comfortable writing xml, and reading xml schemas, and dtd's. I have been learning, now, about Java Server Faces and have skimmed through and am now reading more thoroughly, the Java Server Faces specification (2.1) I know about MVC. I have read a book on Service Oriented Architecture, about 3 years ago, which focused on the Enterprise Service Bus and loose coupling and how these provided a means for applications to communicate with each other. SOA has it's origins in trying to make a bunch of legacy code applications work together, and potentially, across multiple business addresses. I am familiar with annotations and have as one of my next items to accomplish, to program a basic product-saleing web app which makes use of the entity manager from Java EE. My present accomplishment (which isn't much) is that I have created a web app consisting of two xhtml pages and 2 managed beans, which accepts a user login name and password, looks them up in Derby, using JDBC in java code, and redirects to the new page, via a CommandButton which, corresponds to a UICommand component in the component tree. The project packages into a correct WAR web module; compiles from src into build, assembles the archive in build and war's to build, then copies to dist. Until now, I have just written the web address for the redirect in the html form, but I am trying to find out the best way to utilize the component tree directly without doing anything with my components which is already handled by the lifecycle processes which happen around the component tree, since state management and data access, for instance, are already covered. I have had data structures (in Java), operating systems (in C), (some) algorithms, and I have had machine programming and a C++ class also. I am interested in doing this project because of the importance of its implementation to the complete and correct implementation of the overall project. I am already familiar with java beans, jsf (thus the component processing/view rendering lifecycle and the application model). I noticed pipelining in the CXF architecture guide and I have already, much earlier, been interested in Cocoon and xml parsers because of the robustness -- although, at the time, a complaint of too much processing time for parsing, existed -- of the application. Cocoon, which some or all of you might know, is for the distribution of online content in various formats and can convert the same xml document into html, pdf, wml, etc. The power of this is that you only have to change one, possibly three documents, in order to edit the content that is being distributed to so many multiple formats. So, because of that, and because of a machine programming class, I have some exposure to pipelining. I have an interest in web services because of the separation of concerns aspect and because of the unique approach of uri-based resources. Also, I have used a time-card reporting program, through the web (called Kronos) which presented a client-web-view which was done in some form of java gui, though it did not look like another swing web-app that I have used. I admire this program because it doesn't really do that much. It just keeps track of time-card information. Yet, when properly saled, it generates large amounts of income. Not only that, although it used a gui, it loaded relatively quickly, but passes back and receives the user-generated-, and office-record- information via the server. I am not sure if this is a web-service or not, but it is possible that the employee database lives at the employer office, but is connected to, via the server, at Kronos. Whatever the case, after I saw this program, I fell in love with the idea of being able to present the user with a rich user interface, while also minimizing response time by keeping as much of the application as possible back on the server. Now, with web services, I like the idea of being able to connect to a datasource via a web service because it enables the application developer to make the information contained in the database available on a web-services basis, both to the company to whom the database belongs, as well as to the rest of the world, such as might be done in a realty website application, where houses could be advertised for a property management company by setting up their database for them, while publishing it through a web-service interface, and also, accessing it from the server of the application developer, to distribute that information to potential customers. Not only that, but the property information can then be used by the property company to be advertised, through their published web service, through other realty advertisers also. I would like to, in the future, program and deploy applications which use a compact, especially gui-based view (which jsf may do, with, say, a swing RenderKit) to deliver bare-bones, templated views which inject customer specific, or time-specific data into those views, while minimizing response time by limiting what information is delivered back to the server, to things such as textual infromation, boolean values, and (x,y)-grid values. Thus, what looks like a complex application to the user does not actually require very much waiting for processing time on the server. Also, enabling the application to connect to information sources in various places means that the application developer can outsource some or much of what they eventually present as the finished product, to other service providers, and means that if the information is available on the internet as a web-service, it can be included in the finished app, which means that through web-services, the information of the world is available to be repackaged for a finished product. I am familiar with eclipse, cvs, ant, linux, C, Java, C++. I think that I have all of the basic skills necessary to complete the project. Besides this, I am interested in what Apache CXF does, from an academic standpoint and would like to learn more about Enterprise Java Beans and JAX-RS also. I look forward to learning more about Apache CXF by reading through the documentation, the architecture guide, and the api documentation, as well as going through the source code. Also, I have downloaded the JAX-RS 1.1 specification and intend to look through that. This project seems to have what I am looking for: project significance, a subject matter which has been interesting me for a number of years, a subject matter that I am somewhat familiar with (beans, xml, web services), and the opportunity to work for Apache, which will provide me with programming experience on software made for programmers, and programmed by professional software application developers. I hope that this introduction wasn't too long, but thought that I would elaborate on some of my interests, as they pertain to my interest in web applications and web-services. Thank you. Ryan A. Zoerner