Apache Ofbiz Advanced Framework Training Video Transcription
Total Page:16
File Type:pdf, Size:1020Kb
Page 1 of 208 Apache OFBiz Advanced Framework Training Video Transcription Written and Recorded by David E. Jones Transcription and Editing by Nathan A. Jones Brought to you by Undersun Consulting Based on: The Apache Open For Business OFBiz.org Project Copyright 2006 Undersun Consulting LLC - All Rights Reserved Page 2 of 208 Copyright 2006 Undersun Consulting LLC Copyright 2006 David E. Jones Some content from The Apache Open For Business Project and is Copyright 2001-2006 Apache Software Foundation Copyright 2006 Undersun Consulting LLC - All Rights Reserved Page 3 of 208 Biz is running inside an application server, this infra- Advanced Framework structure still applies. The Containers and Compo- nents, they're just used in a slightly different way. The Overview easiest way to run OFBiz is out of the box, using the Introducing the Series OFBiz start executable jar file, which uses the con- tainer and component infrastructure to load everything Starting screen site/training/AdvancedFramework.html up, get all the tools started when the application server Hello my name is David Jones, and this is the Ad- shuts down, and to stop all of the tools and such as vanced Framework Training Video from Undersun Con- well. And also to configure each of the framework and sulting. I'll be recording and narrating this. I'm one of applications components that make up the open for the administrators of the Open for Business Project, business project. and offer various services including things like these So we'll talk about those, how they're configured, the training videos through a company that is run by myself different things to do plus some conventions for the and Andy Zeneski called Undersun Consulting. component directories and such. This video is an overview of the Advanced Framework In the next section we'll talk about the web application training. Here on the screen you can see the outline for framework, including the widget library, the various this. This outline is available through the OFBiz.org widgets; the Screen Widget, the Form Widget, the website, also the html file for this is in the website direc- Menu Widget and Tree Widget, as well as MiniLang, tory in the OFBiz source code repository. The target which is the main one here in the simple-method, is audience for this video is developers and architects, what it's called. MiniLang is sort of a category that it especially those who are senior level and who will be goes in, and we'll talk about that, how to implement helping to supervise and support those who will be do- logic, especially for validation, data mapping, those ing OFBiz based development. sorts of things, in that language. 00:01:24 screen changes to We'll also talk about other user interface level things site/training/BasicFrameworkToolsOverview.html here such as BeanShell which we use for data prepara- Some prerequisites for this, the OFBiz introduction vid- tion and scripting, FreeMarker which we use for tem- eos, which follow this basic framework and tools over- plates, for various things including user interfaces in- view outline, are very important. cluding generating XML files and such. And one spe- cific application of that is Generating PDFs. We'll use 00:01:30 screen changes to site/training/ the screen widget, and other such tools FreeMarker, AdvancedFramework BeanShell. So with the FreeMarker files they'll actually generate the XSL:FO, formatted XML file, rather than These videos cover the OFBiz framework at a high an html file, and then we use the FOP project from level, and so should be reviewed before going over Apache to turn that XSL:FO file into a PDF. these videos so you have an idea of what the big pieces are, what the major things are in the framework, We'll also briefly discuss JPublish, which is what we and how they fit together. In these videos we will be use to separate logic from the layout before we have going into more detail on each of the videos, as well as the screen widget, and also to use decoration pattern to providing more background information on Java and compose more complicated pages from different files. J2EE and some of the other infrastructure that's in the open for business project. We'll also talk briefly about the Region tool in OFBiz, which is used basically depends on these servlet API, While extensive knowledge of Java and J2EE is not and is used for JSPs, since they are not a generic tem- required, some familiarity of basic Java and some J2EE plating tool and must be executed in a servlet context. specs like the service specifications JDBC for Database In order to do composite views we have this Region Connectivity, the JNDI, the Naming Directory Interface, tool which is based on a servlet context running, with a and JTA, the Transaction API, are important. We will be request and response objects being passed throughout going over some of those in the first section, this Just these things. So we'll overview briefly the Region Enough Java and J2EE, talking about Java Classpath, Framework and the OFBiz Taglib that's used in JSP the various things about these J2EE APIs we just men- files. So Jpublish and the Region stuff you'll find some tioned. of this code still in certain parts of Ofbiz from older things that have been written that way, although if you We'll also discuss in this video the OFBiz base, espe- want to write new things you can use these tools, al- cially the Containers and Components and how they though very much the recommended tools to use for are used for getting OFBiz started when OFBiz is run- user interface things are the screen widget and the ning as the main program with application components related widgets there, but we'll talk more specifically such as the servlet Container and TransactionManager about when these various different tools are best used. and such, running inside OFBiz. As well as when OF- Copyright 2006 Undersun Consulting LLC - All Rights Reserved Page 4 of 208 In the MiniLang we have the simple-map-processor and bit about the workflow engine that's implemented in the simple-method, as two of the tools there. Simple- OFBiz, and the new workflow engine we're moving to- map-processor snippets can be imbedded in simple- wards which is a separate open source project called method files, and that's often how you'll see them, but the Shark workflow engine, which implements this simple-map-processors can also be used on their own. same specification, the WfMC and OMG specification, And we'll talk about the various operations, the seman- that then will be the target of the OFBiz Workflow En- tics, and how these things fit together. Also when these gine. are best used versus implementing services or the con- trol servlet request events, when those two things are I should note before we get into this, before we wrap typically best implemented using a simple-method ver- this up here, the Workflow Engine is based on WfMC is sus implementing them in Java or some other scripting very much of this workflow style, where we have states language. and transitions between them, as opposed to the message-flow style. This is very good for managing a In the next section we'll talk about the Entity and Serv- large volume of process that need to be both auto- ice Engines. The Entity Engine is what we use for per- mated as well as manual. sistence and we'll go into detail about the design goals and how this is configured and used, and also some of For the most part in OFBiz what you'll see though is the more advanced topics, view-entities and details this other tool, the Service ECA rules, which are the about the delegator API and related objects there, and Event-Condition-Action rules, which is kind of a rule also about a little bit about the GenericHelper interface language which is event based, or in the case of the and what the delegator is capable of handling, and the OFBiz Service Engine, business event based, and this Entity ECA rules, which are used to trigger services can be used to tie processes together, and we'll talk in based on different data level operations that are hap- more detail about that. That's what you'll see used for pening. the most part in OFBiz, because it's a very nice model for managing high level processes and is very easy to And I should mention just as a preview here, we'll cer- configure and change when customizing the service tainly go into this in more detail later, these are mainly and application that are in OFBiz. intended for data maintenance and not business proc- ess management. For business process management The DataFile tool is the last part here, and this is a tool that's best left at the logic level, with Service ECA rules, that helps with something that is often run into when which is covered in the next section about the Service you're integrating or communicating with other systems, Engine. and that is dealing with Flat Files, especially in cases where you need to do a data level integration with an We'll talk about the design goals and features of the older system. It's very common to run into a need for Service Engine, the different things you can do with it, different varieties of flat files, whether they be fixed and the various things you typically want to do in an width files, or character separated, or these different enterprise application in the logic tier that this facili- sorts of things, the data file tool can help you interact tates.