---
title: WWDC2003 Session 605
framework: wwdc
role: article
path: wwdc/wwdc2003-605
---

# WWDC2003 Session 605

## Transcript

Kind: captions Language: en coming all the way from Christina this afternoon to entertain you please welcome the dream team the finalization hanging on hello and welcome to session 6 of 5 web objects' and j2ee I think there's two main types of developers in the audience today number one the traditional web object developer who is anxious to see what's going on with j2ee how does it affect web object and the second type hopefully the pure the Puget we developer we want to see what support we have in my quest and server for for j2ee what we should what what it looks like good so I hope you're going to answer all of these questions and which is few slides to our load map so I'm going to go over all of the new features VA in in the necklace and server support for j2ee or the new features in in web object then i'm going to introduce the j2ee components to that part of holiday tree strategy I'm going to go over the development tools especially the web objects development tools for j2ee and finally I'm going to introduce on the specific web objects features for our jtree integration story ok so this is the feature set that we that we that we have been working on so far we have one time so for one time support for j2ee 13 namely the jboss container that was announced in the necklace and tensor of a technical overview we have a graphical j2ee deployment tool that helps configuring enterprise applications ejb modules and blood modules we have a monitoring and configuration tool that helps you see and watch the load watch the resources in your container and also help optimize your container set up for speed and maintain the maintainability we have written an admin plugin for the for the server admin applications in my class and server that makes it very easy to control the life cycle of the application server with watchdog integration and so on in addition to that we have an templates prepared for pure j2ee development namely for the gb gb module the web module and also the enterprise application in addition to the pure compilation of j2ee project we have added extracted support that helps you maintain most of the deployment descriptors all of the artifact classes in the ejb specification as for example local interfaces remote interfaces home interfaces and so on we have taken these entered and end projects and mitigated them with Xcode so we have both projects that we can use in in Xcode and we have templates for additional sites such as jsps servlets message-driven beans and so on and that's what at least we have improved the web objects core container to to play very well in a j2ee environment and to be completely configurable inside edge we container with jquery development tools so that was quick let's go on and I'm going to explain our story or a j2ee sorry so first of all the question especially for the web objects people will be why wide web objects and wide web objects with j2ee so if you have been at the Java one conference basically the message was Java is everywhere and the second part of the message is j2ee is almost everywhere so in fact we had a lot of customer requests coming in who wanted to have j2ee once we support on the necklace 10 server platform and this is this is one of the reasons why we included it the second reason again it's more for all our web objects folks who have been facing challenges getting there with objects applications deploy in in cuffs in the customer environments in companies who basically only have a j2ee based middleware and this is where our integration support comes in and basically our new support helps you sell your web objects application and deploy your web objects education even on a j2ee environment so I think that's enough of the why it now comes to how the j2ee container that we ship is called jboss it is it is really the open-source container the open-source jtree container out there and it has it has the largest community both in terms of developer and in terms of of active users when you go to the website jboss Authority will see that they have a future over 2 million downloads for the last year they have one 1 dot 5 million downloads this year alone and you can also have a look at the major companies that are out there that are deploying their applications there j2ee software on on jboss it's a very interesting side so we have to say that although jboss is an implementation of the j2ee once we splitted specification display no means satisfied by the Sun program so we have not only taken the CVS the CVS sauce base compile it and put it on to all the necklace and server release but we've added a tremendous value our think and for that we have joined the the jboss community developer community and we are on the active committee list for the CVS project for example we have we have done extensive QA on on the container and you wanted to find out how many how many threads and how many concurrent connections it can it can handle so we've taken the easy to have tests we have run it under a really high stress for for a week we fix a few problems in NJ both contributed the fix us back we fix a few stability problems with the vm we fixed a few current problems with the macaronis and now the the test lungs with over 1500 threats concurrent requests being at one hundred percent CDU for over two weeks so this is the one of the Aztecs are very wary we think add to the project and then lastly so important is that jboss and all of the applications that we vote for tables are coming bundled with the necklace and server CD and also with as the sneak in the sneak preview section of our development tools so here's another few points for our customization we have identified the three most important use cases for for jboss namely development the deployment on a standalone machine and also deployment in a classical environment so for the developed environment we have a very quick turnaround time so as you might know Jay both features features something called auto deploy where the container scans the directory for updates for removal of packages and so on and this is one of the values that we changed pick up it picks up changes immediately we have advanced we have the the logging levels adjusted for you to really have a look at what's going on behind the scenes and to identify possible problems very very early in the deployment process the deploy the to deploy configurations be personal and a podcaster of course are optimized for performance and scalability so we have we have set for example they even the number of of concurrent connections very high we have made that the Tomcat logging like logging levels are low in order to to reduce I 0 and so on the third configuration the deployed Chester configuration enables you to take a bunch of machines maybe an ex of cluster or something and deploy your website on those two on those many machines that you have that means you have high availability you have load balancing and you also have HTTP session capturing turn on by default in general we have we have taken care of optimizing the table salt base and also optimizing the the configuration settings for spec compliance many of the of the parameters that you can set indeed in the job of configuration files allow you to trade that compliance for speed but we have made sure that spec compliance is the most important setting in all of the three configurations lastly we have made sure that the table itself has optimal jdk one for support there are many features that are optional or that you have to explicitly and enable on a jdk one for environment and we have taken care of that because our standard environment is jdk 14 and especially for jdbc 3 for generating primary keys on the fly by the database this is a very important feature and now let's talk about the integration of flavors with necklace and server so for one thing for people who already know our Tomcat bundling we have we have made sure that the the jboss bundling is done in an hour / library to actually we pull out all of the log files and the log files will be written into library logs to that location on mac OS x server we have pulled our temporary directories and so on so it's it's very tight end into the traditional system layout file system layout in necklace and you will find whatever you want whatever you're looking for in the standard places important also is you might have seen the tool in the technical overview of micro sim server that allows you to configure male and apache and so on and we have written a plug-in that also allows you to to help configure and manage the life cycle of the container you can start the service you can stop it you can choose the configuration you can have a look at the dot files and so on we'll have a quick screenshot of this tool later on also it very important is to ensure constant availability of the of the service is if it should fail for any reason the watchdog process will immediately be notified and restart the container so that you have basically almost no downtime only the 20 seconds it takes to restart the container in terms of security integration we have made sure that we have integration with the open directory which is our single sign on server and what you can do is you can you can use the open directory user and password set and authenticate again ticket for example web clients with it you can you can make sure that you basically have only one security real you don't have any additional setup you just use the open directory to verify UNIX unix password username and password combinations similar with apache apache comes bundled with macros and server as well and we have made sure that you can serve for example this all of the static content of your side off of apache which is really fast and apache can just be configured to modify and to to forward all of the requests that are that reference to dynamic content back to our tomcat engine which is embedded in our jboss container mysql you've probably seen that mysql for shipping on necklace and server so we have completed the configuration and it's enabled by default you don't have to look at port number i mean anything again it just it just works and you can just access the database and finally we have add up support for the observer that that's integrated and it's it's it's extremely easy to set it up it's just not a few letters of properties to set it up and again you can browse the whole hierarchy of dl observer and make use of the information which is thought inside okay using J Lo's now that you know where to get it we have two ways of of starting the container again the the server admin plugin is one way the other way which is probably more geared towards the developer is learning it from the command line from the base directory which is library jboss 32 and you find the hole you can see it in the in the screenshots below you can see the whole traditional structure of the day both installation down there you can see in the left in the left column you can see two two directories 32 and applications you'll find our management application and our deployment configuration in the applications directory good so far for the five system layout now let's have a look at the server admin plugin you can see on the left-hand side we have all of the traditional services dnf FB page firewall apache and so on and our application server support is just one more bullet item on the left and again you can see the logs you can restart the service and so on I should say that all of the tools that I explained herein very in a very brief way will be explained in much more detail later in section 6 energy flow of deploying enterprise applications so the deployment tool what's the purpose I've heard people complain that they don't really like migrating or writing XML files with just the ddd as a guideline so what we do is we facilitate this approach we take away all of the pain of launching your XML editors and configuring jboss using raw XML while using using your text editor the tool the tool actually does most of the most of the set up most of the of the relationships between the different files automatically the main purpose of this tool is forever to migrate binary components from other application servers for example from weblogic or whatever server you happen to learn on can just pull out the application the deployment will help you to to figure out what of the table specific elements in the configuration is missing and helps you figure out what resources are present in your container for example databases jca connectors and so on and it will help you match the requested resources that you find in the deployment descriptors with the actual container container resources and we have provided much guideline much support to help you figure out what you need to configure for this container for example we have a verification engine that that marks all of the entity beans that need to be configured or where configuration is missing as read I will show you that in a in a screenshot later on we have assisted cmp CMP mapping which means the department will ask the container which databases we have configured what other table names with other column names and in this CLP mapping in the CMP mapping section of the tool you will just match field names with drop-down menus for example for the columns and for the tables so it's very easy you don't have to invest much time into reading the XML files reading the DVDs reading the documentation we have two types of configuration again full flow configuration which enables you to really leverage the full capabilities of the container mainly for performance tuning for very advanced setup or you can use the Express configuration which moves down to a very limited set of the configuration files of the configuration options and only those that really need to be present in order to ensure a successful deployment and that's the of course you want to deploy at last either you write the file into the directory that we recommend or somewhere else or you can remote deploy the enterprise archive as well you come to screenshot and you can see it sort of object space application using direct to web and on the left hand side on the left hand side you see the pet store the petal your application which has an embedded set of egb modules and you also see that some of the beings for example the sign on session bean there comes up in a different color than the rest this means that the sign on session bean is fully configured you don't have to click on it again and you have to focus on the other ones that are marked as read and as soon as the update for example on when you when you click on one beam you you see a pop-up on the right hand side this is the configuration that you need to fill out once everything is complete it will show up as a blue or a fully configured on the left hand side as well again more details in session 612 so the next tool is the container management tool this is very important because for one thing you need to know what's going on when you're deploying a full side you have to know which application is causing the most traffic which is the most important one to optimize this is where the JSF 77 monitoring the support comes in here is our 77 monitoring support or a jsf 77 as a specification is geared toward introspection of a running jb container you can find out for example which kinds of applications are deployed on the on the server you'll find out which resources are you are deployed in which services on top of that jsr 77 also weeks why's that the container keeps statistics about resource cute usages for example the transaction manager or the connection for example to find out the waiting time the average waiting time on a connection which is very important data to do fine tuning later on and all container support container management tool does support just that the second feature of the of the container tool is container configuration again all of the configuration is photos XML files and they are very hard to read and very hard to understand so we have created a graphical interface that helps you select the most vital options and concentrate on those and you can in your configuration settings can also make you can also apply all of the knowledge you've gained during during the monitoring and then find you in the container based on the knowledge you gained for the for the traffic for your particular site again boron insertion six on a 12 on it on this tool but let me just quickly explain how it looks like on the left hand side you see three different tabs applications resources and services for the resources currently have selected the transaction manager and on the right hand side you can see the statistics that the transaction manager keeps for us in this case we have three different three different counts we have committed transaction we have the number of rollback transaction and we have the number of currently active transactions orifices important data to figure out how much resource usage your container actually has okay this concludes the introduction of the j2ee components this is mostly the stuff that we have in Mac OS and serve and that we will leverage with webobjects I will switch on to the next topic j2ee development with web objects tools and micro sim server tools and for that i would like to welcome hunting augmentation thank you say five hi there my name is Han Lingam I'm an engineer in the j2ee web objects team I know you have been listening for more than 25 minutes there with me for 15 more i will show you a demo okay development tools here is a summary of for development tools that we have in order to help you with your j2ee development I'll just go through quickly each one of them and then jump into more details for each Xcode that's the new Java new apples ide that we have and now it's integrated with the j2ee project types project templates and follow Wizards to Xcode and an integration and it's the java-based do to land x auklet is the metadata processor that generates fouls and coats for you I'll talk about this too in detail in subsequent slides your modeler that's the for the web of Jack's crowd that's the your modeling tool that we have and you'll be an assistant we ship your business in assistant which is the entity beam generator a more level Jack's 5.2 but now it's been upgraded to support ejd 2.0 specification different will drop into the details for these two tools okay an integration with Xcode now xcode is the ide that Apple encourages use you to use to develop projects on my quest n and n is the de facto tool that no java developers use to develop java projects on every other platform let's have a show of hands how many of you have used envy for it's pretty overwhelming response so both Apple and you have you know emphasize that these two tools should work together so that you have a relevant a development platform and Mac os10 for j2ee too so let me let me say a caveat first the developer CD that you have you need to go into the snake tix folder and install the this to any integration tool in order to play with it and we would love that you play with it so that you can give us feedback and we can improve further okay let's dive in now and talk about the detail we are using and 153 to do the to build j2ee projects we hope to pick up the latest version whenever you have it current version is one by three and two if you've done xje JV development before get me development before especially JV you know that you have to deal with three four five you know Java files that are essentially boilerplate files and although the deployment descriptors as well that's a fun alluded to we are leveraging another great open source project known as X chocolate to help you manage this complexity and i'll talk more about that as well 3.the in order to jumpstart your j2ee development on a quest and xcode now comes with three project templates to help to help you clear your web module your ejd module and your enterprise application it also comes with two services to help you build your ejd and your sublet and 4 during during a development process it's really essential for you to have a quick test deploy of your module into jboss so they can test drive it so what happens we optimize it so that the build product of your war your jar or a year who goes into the auto deploy directory that's pretty fun mentioned earlier on and say your computer is RAM challenged and your jai vault is installed on another machine you can always use the ftp task although this is encouraged only during development because of the security risks associated with clean ftp all right a couple more quick details to complete the picture in the Developer Preview CD when you install it the files that support your and annexed Auklet integration work will be installed in developer java j2ee now you want to notice because you might need to surgically upgrade and extract let for feed or teacher feature reason we try to share with example to demonstrate the power of X chocolate an end actually we should with one now but you know we will provide more as we go along okay you guys know about em so we have more things to talk about so I'll skip this slide and talk about it more interesting things alright so I'm going to talk about the N scripts that comes comes with the project templates that we have first of all of you see do XML and build up properties these are the pretty much the two files that you see in every other Java projects another platform web geoducks web builder XML is they build script that's provided i buy us to build your web module and ej d dot XML helps to build your in JV module and an enterprise application which is the third kind of project template would contain copies of one of each because they usually contain a web module and in JV module it has to be emphasized that this for build scripts are customizable just like any good and build scripts customizable to your heart's content if you don't like a southern-style you're encouraged to change it alright laughs last show of hands who have used xbox before pretty cool so essentially it is a to simplify it is a code generation tool and it helps you generate extra java files those pesky deployment descriptors based on extra information that you put into your original java file in the correct java j2ee lingo this extra information unknown as a meta data and to specify those meta data use Java dot X we have defined by X soxhlet to generate the bowels and the deployment descriptors you have to run it through to enter web doclet and ejb chocolate now as the names imply the WebSocket poto web module the usually doctor filter usually module the web's oculus that we have in your developer preview CD is a special built compelled from the CVS saw open sauce because of the developer CD went to print they have not released a beta build so its 1.3 1 point 2 beta 3 i'm mentioning this because in case you need to upgrade in a way to download and where to put them i mentioned it before and if you like you know x outlet be sure to thank them in order for the effort as well when you visit the website of stuff right here is a little diagram that summarizes the process on your left which is the original java file here we choose ejv because it's pretty illustrative and we would put java dog tags that's defined by exported i wouldn't go into the details of each attack because Stefan and you know we'll go into them and you can find them on the Xbox the website as well so suffice to say if you put in proper and correct xbox latex and run that through the ejb doclet task in this case the egb chocolate ass you'll spit out for you in this case five fouls all right this five powers a boilerplate fault that you probably shouldn't worry about in your normal development and then if you want to we will generate deployment descriptors as well those xml files the good thing about extrapolated is if you don't like using them you don't have to use them say your code netiquette and you decide that you said that juggling five java files are essentially boilerplate it's a healthy obsession ignore the xbox a test and go straight to the end has we reach you good luck though alright i'm going to switch gear a little bit and talk about the project template we assume that you have experience with xcode what is the reincarnation of project builder serena and using n and we assume that you would like to learn about x talk ilat so i'm going to enumerate the major steps so that you have a clear overall idea first off what you do is to go to Xcode and missed initiate the web module project you will give you three bill scripts the other XML the other property and web build.xml you can always customize them then or you can always come back later to customize them and then you create your sublet using the foul wizard you will ask you a few questions and then generate the file for you based on your answers as opposed to ejbs actually sometimes you create your servlet from scratch no big deal if you do that I'll make sure you observe the naming convention because at the time that we have in the build scripts recognizes this files that end with this kind of this fall kind of ending so the Java peg Java action Java filter Java it takes me a long time to remember this for so and then you add your static resources for web module usually you have quite a lot because you have your gf's each of your images your tag libraries you're just a party jaws so if you need that make sure you put it into the static resources the demo will we're going to show will illustrate this and then you hit the compile button on xcode what happens is you will choose the default target in end which we chose to be installed because it is the shortest path to testify or your war file it will not only run through that web doclet past January deployment deployment descriptor compile your classes create a war and drop it into the deploy auto deploy directory just if I mentioned if Jeb also were running it gets picked up almost immediately and you can test-drive it by firing your web browser because it is a web module let's move on to a JD module again you create it from Xcode instantiate it and then for your build scripts instead of having web built you have your in JV build now you go and create your injuries but we really encourage you to to try to use the Wizards because it's slightly more complicated to create from scratch so the Wizards that we have will help you create stateless safe old-fashioned beings your entity being the simple TM BMP and cmp and eventually your message truth and be the version that you get on a developer city but might not be that powerful but give us feedback and eventually we'll have message to them being as well if you do create the injuries from a scratch make sure you observe the naming convention as well we have to end with injuries or Java vindo java or m VV dot java in order for the ejb chocolate has to work and then you add your static resources for each ad module usually you don't have a lot that you might want to add your customized deployment descriptor your EG deidre or your jboss dot XML similar story you hit the compile button you will also deploy it to jboss and supposed to web module you wouldn't have a web interface to test it so usually what you do is you create a test web interface beforehand to test drive it oh you can look at a JBoss law this is the last light for me so for enterprise application this is usually the most complicated to explain that because we have built our foundation knowledge on the previous two slides so we can apply that knowledge to here and that j2ee and the price application will usually contains contain a copy of one or more copies of web module one or more copies of HIV modules flowing with study resources your third party just etc and eventually the end product is something conventionally conventionally known as a year our enterprise application template will have one will start with one ejv module and one web module so will contain a web builder XML any in GD build.xml makes you go through the similar steps of creating servlets and dvds like what i mentioned earlier on and then you add your static resources to the to the organized subfolders that you'll see later study resources for web module go to the subfolder support for web module and similarly for the ejb module in JD enterprise application that had its own special requirement for static resources the departed Josh that your modules are dependent on for example log4j j unit blah blah blah you have to make sure as for the Esper j2ee j2ee specification you have to make sure that the many fastballs of those modules that you're going to make use of the English female bed but the modules that it's going to be dependent on a third party jars make sure you amend the manifest file for those to recycle dependencies oil tea would work and then eventually if you compile in your auto deploy and because usually has a web module five your favorite favorite browser which is Safari now and test drive it all right let's go on to a demo demo to machine so Stefan is going to do the screen manipulation I'm just going to do the narration so before this this project here I went through the steps of jump-starting it by following a how to file I added a whole file to this project which is known as X pet store which is a rehash of some iconic textile project so Java jboss now should be started in a background in terminal and this is the project that you find actually in your developer CD different i selected the for build scripts that i've mentioned all the time and then i'm just going to take a look at the surface the organization in the sauce folder so you can see in JD module on your web module let's throw down the EGD module because it's slightly more interesting you will see an X doclet much sir that's a contact in X doclet for merging points what you have here essentially is a list of deployment descriptor XML elements that can be merged into the eventual XML file more details on xbox a website up the expert store soft directories here is organized in the same hierarchy as your java package hierarchy let's throw down all the way to a domain catalogue ejd I just want you to want you to take a look at this file called category in Java right thanks to mr. BAE Japan oh this is the experts or that he built so you can see a lot of extra text there the name the type cmp stay fun we'll talk about more as well in this demo and I just want you to remember this file and see what are the files that are generated later on okay that's closest let's look at the organization of the static resources as well so again it's organized in a way that reflects why what you where you should put stuff let's look at web module because it's usually more interesting here you see a lot of JSP and the majors and what have you that's usually in the web end you will find your tag libraries that your depend on us dependent on as well all right let's closest and I want you to take a look at the X doclet generated deployment descriptors let's look at the one for each ad module now they are in red because we have not built a tool yet therefore they are in red when we build it they will be complex and you can look at them so let's do it now he will build up the browser window now the phone is kind of small apologize for that because Xcode being in beta of Developer Preview doesn't allow us to change it but I'll try to narrow it off so let's do it and see if I'm brought up the terminal because this he wanted to illustrate the total deploy functionality of cables so what's going on is this machine is fast ejb doclets files run through all the image java files and then created all those extra java files the deployment of scriptures compile them and now the web doclet takes over now it is in this order because usually your web module is dependent on your in JV module oops I have to speak faster so jboss picks it up and now is deploying it let's ignore this view now physically play okay and I want to take a look at the generated files all right so let's hide everything and bring up Xcode go to window okay so let's stop look look at the files that are generated for EGD module right now you have a CX to a directory called X doclet generated drill down to it and remember the category ejb file now he has generated two interfaces for you category local category local home if you don't you text oculus you have to create maintain and we sink this file that's closest i would go into details of that and now i want to take a look at the deployment descriptor that's generated by X pocket so this is a perfectly normal well formed valuable xml file as opposed to you firing a VDI did you know and leading out the flash for example let's search for category so all this information that you see here they are the right they derive from your original java file that i showed you earlier on the name the EGD class the injury class you don't have even have to put it ND cuz you know it's a java classic enjoy introspection and gets it from there okay i'm going to close it and i'm going to show you the first page of the expat store because this is all fresh Air's piece I like webobjects you know when you when you first hit it it takes time to compile some of them to run through all the demo this works okay it's working and foremost of some of you who have done j2ee development this is the Queen's that quintessential demo that we have to demonstrate okay that just about ends my part of the presentation thank you for kind attention Stefan will continue the rest thank so we continue explaining the web objects tools that can help you getting your j2ee applications written and tested and deployed so the next tool that we have is what we geared for the web objects develop are not really perceive as a j2ee tool it's your modular well your mother for the people who don't know web objects is a database modeling tool it helps you build a representation which is semantically semantically richer than the database content what you can do is you can reverse ngu existing databases you can forward engineer a database and then finally have the tool create the schema in the database but its main purpose is to map between the world of database contents which means tables and columns to the world of Java meaning classes and fields finally when you're in development mode you can also browse the database connect to the database and look us look what's going on so this tool builds the foundation for our energy beam generation that we have which we implement in another tool called EU beam assistant you're being assistant is that video new tool if you have web bob Jex 52 you have it installed already but in 5q it only was geared towards cmp 11 or ejb 11 development now that we ship with a j2ee what we compatible container which means ejb 20 as as the technology is included we can do far more than we used to do and also thanks to our end templates we can we can make it very easy for you to have maintainable code generated by this to automatically so as I said we have a very good integration with and basically the tool will just ride out based on a near model and some more information that you can that you can enter in a graphical environment it will create the the source files on the fly write them in the end template directory that use that you selected it has extracted integration which means we don't create EG abuja ejb xml files anymore all of them are ex doclets generated so that it is very easy for you to maintain your code and if you do changes if you just keep keep up synchronizing changes in the in the Xcode section it is really easy so again we create extra support for a bit for the deployment descriptors which are the regular deployment descriptors mandated by sun but also for the jboss deployment descriptors so the output is an ejb jar or an enterprise module that is portable to any container specifically it can be deployed out of the box on to jboss we have also a command-line tool a command-line backend system for this tool that you can use in in an automatic build and we're going to show you this tool in an upcoming demo now what what we suggest for for j2ee development on our platform is that you use even modalities to model the database to borrow your persistence layer your model like as I said is a very good tool that also has a lot of performance or can give both the EOS back as our entity generation tool a lot of hints on performance for example read-only caching attributes and so on once you have the the model generated you should go ahead and use you being assistant to create the entity beans drop them right there into our project support builder with Xcode you can enrich the designer budgets entity beans with session bean facades for example with message driven beans and so on our templates applause will help you finally what's missing in most cases is a web here and you can either use web objects to access the the entity bean layer you can use jsps and entered it and then finally of course jboss is the container to deploy on later whatever said everything is generated totally compatible with every with every other j2ee container so you can just pause your applications to almost any container okay now we come to the to the demo what we're going to show is basically the recipe that I showed in the previous slide applied to a project in our case i have already created an EO model and you can see that we have three entity three entities we have the entity complex types which is our main demo element which is a very which has a very complicated mapping of the interpreter of the of the database section into the Java world so we map you can see we have many parameters here many attributes and we met to basically all of the primitive all offered primitive Java types that you can see in the uppermost section in the lower section you can see the relationships that that our entity has with two with the two other entities so we have a 2 1 relationship with the one entity and we have the to many relationship with the menu entity and this will show you how not only the CMP attributes are met very easily but also the theme are attributes even even for a more complex case on maps and generate automatically with scene p 2 o ok let's move on and launch the beam builder UI and we load the model and go on we can select mapping only partial subset of the attributes or off of the entities in your in your model and we go on and are just going to show you one screen we have prepared a mapping already the mappings are sold in XML files and can be easily manipulated so what you can see here is you can you can edit the package name you can edit the class names of all of the files that will be generated you can either generate cmp beams or BMP beams and you have a variety of options to generate to the two different types of beings again we recommend using cmp 20 now because with the with the relationship mapping it is it is so easy good let's quit here and we're just going to show you the command line version it will run to the ear model and create to create the the 35 that we are looking for but the first of all obviously we have to create a new project we create an ejb module to show you how the two technologies are integrated okay so now that we have a new module unfortunately we have to get Xcode up and running with the new phones and then we can switch to the terminal and show you the command line version of our tool so the only thing that we going to do is we launch the tool take give it our hav specification as an XML file you see this file yo B dot XML and we're just going to discard a bunch of not really useful messages as you can see as you can see the the tool is implemented as well objects application so we leverage the double component layer to make sure that to make sure that our our templates are very easily maintainable and in fact you can go ahead and edit our templates as well so now we have equator three different files we again we have a mapping of one entity in the database to one file on disk to one entity bean okay let's have a look how this looks like in the end template with Xcode we have mapped we have put all of the beans into the demo package and our main main of mainly important bean is the complex types beam so again Xbox it makes it very easy for you to to write maintainable code and to avoid having to specify to placate information in two places in this case we have you would have to get information of the class names of the local and remote interfaces and so on in the extra java files but also in the deployment descriptors and also in the jboss specific container descriptors which is very annoying so you can see the ejb tags for X doclet those are the taxable or this is the information that will end up in the ejb jar XML and when we scroll down a little you can see that we also have cable specific attributes that will end up in the jboss specific file so even if you don't want to deploy on our jboss application server you can still leverage all of the all of the attributes you can just insert the attributes that you need for weblogic or whatever application server you happen to use okay as you can see we have mostly possible optimistic locking their the extracted engine is not really very ready yet for some of the more advanced setup but it will finally get better hopefully before we ship so let's go on down a little and have a look at the attribute to or database attribute to field mapping to cmp mapping as you can see here we automatically include every single attribute we found in the entity as the getter and setter method in the beam this is this is a spec requirement you can get around except for the case we have a read only attribute so we generate all of the necessary information to generate the deployment descriptors and also it is performance in for the tables for the jboss container then let's go down a little since see mpit boots are really boring we go down and have a get to see a Matthews the theme obvious are the way how relationships are mapped in cmp 20 so instead of instead of having an integer for example a long second foreign key that points to the wheel to the wheel entity they are mapped again as local interfaces and you can see that the relationship setup is a little bit more advanced and have quite some more code necessary in 44 CMR feels both in terms of reading and writing so this this code that we generate automatically it's really a big help ok so what we do now I think we are through with it let's just compile it let's bring the terminal window up and see what Jay BOS does and then we compile it and you see it is ready for deployment you don't have to change anything anymore especially you don't have to use the deployment tool to manually go over and figure everything out and this is because the EO model which is the the backend store has enough information for us to generate all of all of the required information and again it picks it automatically generates the tables as necessary you can also tune it to have a generate initiatives and so on ok let's move on the demos ended we go to the next slide and [Music] good and then we go on to the section that most of the that objects faults are for the most anxious to to know about the web objects j2ee integration so what we have done is the following our integration story is this our Soviet adapter which is not really knew that we have it we have been shipping it since well objects 51 is the central point of the Jet Li integration strategy the Senate adapter is basically a framework that you pull in into any web objects application and it enables Soviet support it has custom build scripts that create all of the hierarchy which is necessary for a almost wore deployment and it pulls everything it basically pulls everything together for a j2ee container to deploy it now the one thing that was missing in the previous releases was the ability to have a pure jar representation of the web operates application and that we have added in the form of job on this a job on it is more or less a framework inside edge are many many people have been asking that for a long time and now we have it and this enables us to vend well objects application at the traditional god war file or as a enterprise application also we have enhanced the NS log interface with an NS logger implementation that is capable of using an existing in a slugger and it's not forge a lot for j logger as the back end so this is especially important for the jboss container which uses log4j as its native logging MacKenna's men so that all of the logging is is integrated you find the logging of the of the applications in the same place as warnings or information messages of the container and also you can use the administration tool to look it up and so on the other important part the other important gap that we bridge now with the upcoming 42 relief is our configuration story for properties and for your models the problem is that in the past we used to have the properties based on the system properties which is especially bad if you have multiple applications launching at the same time with conflicting settings this has been remedied in with our Jane the upper body configuration similarly we have if we used to have a problem where if you have an EU model and you have you have a database configuration set up especially for the broadmoor deployment this is extremely annoying because you would have to unpack the jar and then launch and edit or and type in the real database for the deployment scenario and it's extremely annoying so this is a thing of the past as well I also want to highlight the additional features that you get by deploying a traditional web objects application on the j2ee container and for one thing the background is it can you can use all of the all of the capabilities all of the features of the traditional service specification which means you can use filters filters the traditional use for authentification or compression or whatever else you can use EG bees that you maybe get from third-party vendors that you develop in-house you can you can use JDBC you can use jca for enterprise information system that you can use JMS for example for a synchronous messaging or to access message queues and so on and also the transaction manager is always always available in a service which means you can have multiple multiple resources in the same transaction and either go back all of the changes automatically or commit them all at once the the other set of of options that are very appealing i think is integration of security which means you just write your application without a login scheme required and it meg of the make use of the container security and again we have included modules so that you can access and verify user password combinations with our open directory server also it's it's very easy to just have one if you have only one middleware one infrastructure you have one place we're logging occurs you have only one place or one container one process to watch so it's it's basically a it makes maintenance and running running a j2ee store way easier so those are the additional advantages you get out of the box when you deploy your web object applications on a traditional j2ee container so this is this is an example of using j2ee resource inanimate objects application I'm not going to talk about this in much more detail because this is this is traditional direct reprogramming it's nothing special nothing special full of objects you can use it out of the box there is no call overhead so there is no extra network access because everything is in process so the way to get access to a any gb or you can get access to the transactions action manager or getting access to jca or whatever is you could initiate a new initialcontext you look up a certain string where you know the results is located you narrow it down to the right type and then you're done you can use it let's have a look at the jane di property configuration that i talked about previously so the server adapter creates a template a template for a web dot XML descriptor for the photos of it and there we we use the the environment entry XML factions to specify our property definitions so all of the documented properties that that exists in the web objects application container are documented there and have this then that value there which means it it's very easy for example using our deployment tool or using the deployment tool of let's say weblogic to change the configuration right there and again since Jane di is it's capable of having a threadlocal definition of the whole environment there is no problem if you have multiple applications multiple web objects applications starting up and using different properties the deployment is easy because you can see in the description elements you have a description of what this property does you have the name you have the value and with the type information deployers can easily figure out what the correct values are and what the possible values are very similarly for formatting data sources and for making sure that your real model or that us can find data sources that that you configured in your ear model we have a similar setup so in addition to the environment entry that we have to define to to do the actual mapping we have a mapping of a resource reference this is an indication to the container that we are referencing a database a database in our server environment and we are declaring this is reference and we are saying okay we will be using this another name jdbc default data source and in the second layer we have an environment entry which the eof spec will use to actually do the mapping you can see we have an element called movie movie vb and this movie DB will be we assumed in the connection URL section of the EO model and this key make sure that we can map the loogies TB to the environment entry you can see jdbc default data source to the lowest vidoes entry down there and method to the definition in the uppermost entry so we have persevered two steps mapping weekend Desmond for for accessing data sources and this is the final step basically in making sure that objects application can be fully configured using a great week using a j2ee deployment tool okay and that was it so what was important for one thing I think one of the very important part is that j2ee can very much benefit existing web objects application and that j2ee really is not your enemy anymore it's your friend because you cannot deploy on for example dotnet systems but you can deploy on j2ee systems and also i think what objects can benefit j2ee you have seen that our tools that can greatly help you develop your j2ee applications on web objects on mac OS x server and then finally i think with all the integration work after many pieces that i introduced today we have a very good story and that i think my class and server is the best place to develop and deploy tables applications thank you very much there was the presentation I know that's going to go over the the road map and the end-tidal very important it's the session section at 12 enterprise application deployment where we go over all of the tools in much more detail and explain many more things that we just have at the time for today with objects reusable components for the web tier very important with objects UF advanced topics web objects creating web services very important if you need to interoperate with the.net systems for example and then who to contact and rear center of course Bob Fraser and Kathleen Bank are our main address our main contact person for the web objects product and we finally have April epic era enterprise services if you need more help getting applications out and these are for the for the DVD that we don't type them up they're all in the URL section that we will publish on the website and the DVD an important i think is the jboss website there's actually two addresses for the jboss website one is jboss spot org which is the commercial the commercial arm basically of the Davis project and the other one is more geared towards developers it's on the source watch side tomcat and and x profit have their own websites exported website is really very important because there are so many extra attacks and you just can't remember all of them
