Dear Wiki user, You have subscribed to a wiki page or wiki category on "Ws Wiki" for change notification.
The following page has been changed by GeoffWinn: http://wiki.apache.org/ws/Tuscany/TuscanyCpp/DesignNotes ------------------------------------------------------------------------------ - = Community Building = + = Logging = - In the IRC chat of 18-Sep-2006 we discussed the prospects for M.Sc students to work on Tuscany related projects as part of their studies. This is certainly possible at Oxford and probably elsewhere. To make this work, we will need a description of each project that is sufficient to both persuade a student to choose this particular topic and also convince their supervisor that this is an appropriate part of their studies. + Logging is not mentioned in the V2.01 specification, however, a rudimentary logging capability is provided in the current implementation, using three classes. - The following subjects were suggested on IRC. + * Log``Writer - * JSON databinding + This defines an abstract class with a single '''log''' method. - * XSLT integration + * Default``Log``Writer - * BPEL integration + Instantiates '''Log``Writer''' implementng a '''log''' method that writes to '''cout''' - * OpenJPA integration + * Logger - * JMS stuff + A class with a static pointer to a '''Log``writer''' object. When the class is loaded the pointer is initialized to a reference to an instance of '''Default``Log``Writer'''. '''Logger''' provides its own '''log''' and '''logArgs''' methods that use the '''log''' method of '''Default``Log``Writer''' - * Atom binding + In the current implementation, logging is seldom used. - * C++ DAS + = Conversion from C style strings to C++ style strings = - * XML DAS + = Debugging the XML parser = - * DAS with non-SDO data types + SDO uses the SAX parser provided by libxml2 to parse XML documents (and therefore XSD documents also). The SAX parser uses a callback mechanism to report XML events to its caller. These callback routines are supplied to the parser using a struct of type xmlSAXHandler, called SDOSAX2``Handler that is defined in SAX2``Parser.cpp - * Hessian binding + To watch the parsing of a file as it unfolds it is usually easiest to place breakpoints on the routines named in that struct. - * DAS implementation type + = Modifying the SDO Build to use the Apache stdcxx Standard C++ library = - We need to decide which of these are our highest priorities and find volunteers to define the content. + stdcxx is an implementation of the C++ Standard Library provided by Apache. The website is at http://incubator.apache.org/stdcxx/. - Some background information that may help follows. + To build SDO using stdcxx rather than the native C++ library on Windows, the following modifications to the Microsoft Visual Studio .NET 2003 build environment are necessary. We assume that a source extract of stdcxx is already available in a directory called C:\Tuscany\stdcxx-4.1.3 (based on the version number of the current release at the time of writing). We also assume that debug and release versions of this library have been built in directories called C:\Tuscany\stdcxx-4.1.3\Debug and C:\Tuscany\stdcxx-4.1.3\Release. The process for building these is described later. - == Example Synopsis == + 1. Define an environment variable, STDCXX_HOME to identify the root of the source extract tree ie C:\Tuscany\stdcxx-4.1.3 - At Oxford, students are required to submit a 1 or 2 page summary of their project topic. Some of the content is specific to the particular student but a large part is a description of the project contents. + This is not strictly necessary but is convenient given how often we will refer to that location. - The guidelines for students say the following. + 2. Add the stdcxx include directories to the appropriate search path. These directories are - "Students may choose any topic that will allow them to demonstrate understanding of software engineering through the medium of a dissertation. The best way of doing this is usually to choose a topic related to one or more of the subjects taught on the Programme. Many students choose topics that are related to their current employment, allowing them to see how the ideas taught in the Programme may be applied alongside current practice. + $(STDCXX_HOME)\include - There are three broad categories: + $(STDCXX_HOME)\include\ansi - 1. Product-based + and either - -involving the application of software engineering techniques to the specification, analysis, design, development, or testing of a particular product. This product could be entirely fictitious, it could exist only as a part of another system, it could be hardware or software, but it must afford an opportunity to apply software engineering techniques. + $(STDCXX_HOME)\Debug\include\15d - for a debug build - Any technique or combination of techniques could be applied toâor aroundâthis product. There might be a study of requirements, one or more specifications, some design work, some analysis, some programming, or some testing. + or - Examples include: an object-oriented design and implementation, with some accompanying analysis; the formal specification of a software component; a case study in requirements engineering. + $(STDCXX_HOME)\Release\include\12d - for a release build + For MSVC 7.1 these should be appended to the list found in Configuration Properties -> C/C++ -> General -> Additional Include Directories - 2. Theory-based - 3. Process-based - (Both omitted because they aren't relevant to us.) - Most projects fall into the first category." + 3. Add environment variable definitions. These variables are - For the proposal document itslef it goe son to say. + _RWSTD_USE_CONFIG - "The work starts with a project proposal: about two pages of text including: + _RWSHARED + and _RWSTDDEBUG for a debug build - 1. a description of the subject matter: product, theory, application area, or problem domain; - 2. a brief account of the original contribution that the project work might be expected to make; - 3. a plan, or outline, of the dissertation, explaining how it will demonstrate the student's understanding; - 4. a list of resources that will be required; and - 5. a suggested schedule of tasks and delivery dates." - In my opinion we need to generate something that would cover point 1 at least, as well as recognising that under point 5 we have about 4-6 weeks of effort available and while we can't answer point 2 we should at least give the student something to work with. + 4. Add the stdcxx library directory to the appropriate search path. This directory is + $(STDCXX_HOME)\Debug\lib - for a debug build + + and + + $(STDCXX_HOME)\Release\lib - for a release build + + For MSVC 7.1 these should be appended to the list found in Configuration Properties -> Linker -> General -> Additional Library Directories + + 5. Add the stdcxx library name as a dependency. The library name is + + stdlib15d.lib - for a debug build + + and + + stdlib12d.lib - for a release build + + For MSVC 7.1 these should be appended to the list found in Configuration Properties -> Linker -> Input -> Additional Dependencies + --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]