JBoss Tools SVN: r3081 - in trunk/documentation/GettingStartedGuide/docs/userguide/en: modules and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2007-08-10 13:42:12 -0400 (Fri, 10 Aug 2007)
New Revision: 3081
Modified:
trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml
trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/AddBusinessProcess.xml
trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/GettingStartedWithRHDS.xml
trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/ManageJBossAS.xml
Log:
we dont support 64-bit
drools plugin is not compatible with eclipse 3.3
subscription does not exist for beta and exadel addresses are not correct anymore
typos and bad screenshots fixed/removed
Modified: trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml
===================================================================
--- trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml 2007-08-10 15:10:33 UTC (rev 3080)
+++ trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml 2007-08-10 17:42:12 UTC (rev 3081)
@@ -19,7 +19,9 @@
<year>2007</year>
<holder>Red Hat</holder>
</copyright>
- <releaseinfo>Current Guide Version: 1.0.0.beta1</releaseinfo>
+ <releaseinfo>
+<para>Version: 1.0.0.beta1</para>
+<para>Note: This document is a work in progress and hence some sections might be incomplete and screenshots not 100% accurate.</para></releaseinfo>
</bookinfo>
@@ -31,6 +33,7 @@
&GetStartSeamGen;
&GenCURDDatabaseApp;
&CURDAppWalkthrough;
-&AddBusinessProcess;
+<!-- TODO: drools used in this section is not available for eclipse .3.3 &AddBusinessProcess; -->
+
</book>
Modified: trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/AddBusinessProcess.xml
===================================================================
--- trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/AddBusinessProcess.xml 2007-08-10 15:10:33 UTC (rev 3080)
+++ trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/AddBusinessProcess.xml 2007-08-10 17:42:12 UTC (rev 3081)
@@ -1,480 +1,461 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="AddBusinessProcess" xreflabel="AddBusinessProcess">
- <?dbhtml filename="AddBusinessProcess.html"?>
- <chapterinfo>
- <keywordset>
- <keyword>Business process</keyword>
- <keyword>Seam</keyword>
- <keyword>JBoss Rules</keyword>
- <keyword>CURD-application</keyword>
- </keywordset>
- </chapterinfo>
-
- <title>Business process and rules application</title>
- <para>Rules and business processes are important components in many enterprise applications.
- They help business analysts to get involved in the design and implementation of the software
- project. Rules and business processes are also essential to complex internal states of large,
- multi-user systems. The JBoss Rules engine (formerly known as Drools) and jBPM business
- process engine are two production-ready open source products supported by Red Hat. It is
- very easy to incorporate rules and business processes into a Seam web application using the
- Red Hat Developer Studio. In this section, we further re-factor the CRUD application we
- already have and add support for an "order management" process. The user scenario is to
- simulate the following process and rules:</para>
- <itemizedlist>
- <listitem>The site administrator logs in and sees a list of outstanding orders</listitem>
- <listitem>She goes through the inventory (by hand or using another computer system) and
- determines the availability of the products in each order. She enters that information to
- each order.</listitem>
- <listitem>She starts a process for each order, which determines whether to ship the order
- or refund the order based on a business rule applied to the availability status. For
- instance, an "in stock" status triggers a "ship" action while the "back order" status
- triggers a "refund" action.</listitem>
- <listitem>When the business process reaches the "ship" or "refund" state, it will take
- appropriate actions (e.g., to submit shipping orders to Fedex or to contact the credit
- card company for refund). In this simple case, we will just print out a message on the
- console to prove that we can execute any code in those stages.</listitem>
- </itemizedlist>
- <para>While this process sounds simple, it is the basis for very complex business
- processes. In this section of the tutorial, we will show you how this is done via the
- following steps:</para>
- <itemizedlist>
- <listitem>Add a rule definition to the application</listitem>
- <listitem>Add a business process that uses that rule to the application</listitem>
- <listitem>Start the business process from a web action</listitem>
- </itemizedlist>
-<section id="ImportConfigurationFilesAndJavaCode">
-<?dbhtml filename="ImportConfigurationFilesAndJavaCode.html"?>
-<title>Import configuration files and Java code</title>
-<para>Before we start, we need to import some configuration and Java files for the demo project.
-Those files are very simple and we will review them as we go along with the tutorial. We import
-them here to reduce potential typos and other errors in the tutorial.</para>
-<orderedlist>
-<listitem>Choose the <emphasis>File > Import ...</emphasis> menu and then select <emphasis>General > Existing</emphasis> project into workspace and
-click on the Next button.</listitem>
-</orderedlist>
-<figure>
-<title>Importing Project</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/ProjectImporting.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>To make this demo a little more manageable we have already created some demo code
-that is available in the rules-bpm directory of your tutorial distribution code. It is
- located in the root directory of the distribution. Select the rules-bpm directory and check
- the "Copy projects into the workspace" directory check box.</listitem>
-</orderedlist>
-<para>You will have a different directory on your machine than the screen shot shown below.</para>
-<figure>
-<title>Selecting Directory To Import</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/ImportDirectory.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>After this step you will see a new project called "rules-bpm". If you expand that
-directory, you will see numerous files as shown below. We will look at these files in this
- section of the demo. We will first start by copying these files into our EclipseCon project.</listitem>
-</orderedlist>
-
-<figure>
-<title>Project Structure</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/ProjectStructure.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>Right click on the rules-bpm/build.xml file, and select <emphasis>Run AS ... > Ant</emphasis> Build.</listitem>
-</orderedlist>
-
-<figure>
-<title>AntBuild</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/AntBuild.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>Right click on the EclipseCon project and select Refresh from the menu to pick up
- the changes made to the demo application. The rules-bpm/build.xml script copies a bunch of files
- into your existing EclipseCon project. We will look at them soon.</listitem>
-</orderedlist>
-</section>
-<section id="CreateARuledefinition">
-<?dbhtml filename="CreateARuledefinition.html"?>
-<title>Create a rule definition</title>
-<para>In this section, we create a business rule that can be used in junction with the business
- process. When the rule is executed, it checks the status of the currently selected order. If the
- order status is "in stock", meaning that a person has check off line and verified the
- availability of the product ordered, the system changes the order status to "ship", meaning
- that someone will now ship the product as the next step in the process. If the order status
- is "back order", the rule changes the order status to "refund" automatically to trigger the
- business process of refunding.</para>
- <orderedlist>
- <listitem>Select the<emphasis> EclipseCon/resources </emphasis>directory. That is where we are going to put the
- rules definition file.</listitem>
- <listitem>Select the following menu actions: <emphasis>File > New > Other ... > JBoss Rules > New
- Rules Resource</emphasis> to bring up the JBoss Rules wizard.</listitem>
- </orderedlist>
- <figure>
-<title>New Rules File</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/NewRulesFile.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>Fill out the above window with the following values.</listitem>
-</orderedlist>
-<table>
- <title>Rule Table</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Field Name</entry>
- <entry>Field Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>File Name</entry>
- <entry>process-order.drl</entry>
- </row>
- <row>
- <entry>Type of Rule Resource</entry>
- <entry>New DRL (rule package)</entry>
- </row>
- <row>
- <entry>Rule Package Name</entry>
- <entry>process.order</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <orderedlist continuation="continues">
-<listitem>Replace the content of the process-order.drl file with the follow rule.</listitem>
-</orderedlist>
-<programlisting role="JAVA"><![CDATA[package process.order
- import com.mydomain.EclipseCon.Orders;
-
-rule "Ship order rule"
- when
- order : Orders(status == "in stock")
- then
- order.setStatus("ship");
-end
-
-rule "Refund order rule"
- when
- order : Orders(status == "back order")
- then
- order.setStatus("refund");
-end
-]]></programlisting>
-<para>Notice that the IDE automatically highlights the syntax and provides auto-completion help.
- You may wonder how Seam knows to load the process-order.drl file for the application.</para>
- <para>If you look in the <emphasis>resources/WEB-INF/components.xml</emphasis> file we copied from the imported
- rules-bpm project. It has an element pointing to the process-order.drl file.</para>
- <programlisting role="XML"><![CDATA[<drools:rule-base name="securityRules">
- <drools:rule-files>
- <value>/security.drl</value>
- </drools:rule-files>
- </drools:rule-base>
-]]></programlisting>
-</section>
-<section id="CreateABusinessProcessDefinition">
-<?dbhtml filename="CreateABusinessProcessDefinition.html"?>
-<title>Create a business process definition</title>
-<para>Next, let's create a business process that manages the order process. The business process
- essentially specifies a sequence of actions that has to happen before an order is shipped or
- refunded. Since the business analyst typically designs this process, it is very high level and
- can be drawn up in a GUI designer.</para>
- <orderedlist>
- <listitem>Select the<emphasis> EclipseCon/resources </emphasis>folder and select menu actions <emphasis>File > New > File</emphasis>.
- Add a new file called process-order.jpdl.xml as shown below:</listitem>
- </orderedlist>
- <figure>
-<title>Creating New File Resource</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/CreatingNewFileResource.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-
-<orderedlist continuation="continues">
-<listitem>Add the following content to the process-order.jpdl.xml file. It is an empty jBPM
-process definition, and allows us to use the jBPM visual designer to further edit it.</listitem>
-</orderedlist>
-<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<process-definition
- xmlns="" name="process-order">
-</process-definition>
-]]></programlisting>
-<orderedlist continuation="continues">
-<listitem>Right click on the process-order.jpdl.xml file and select <emphasis>Open with ... > jBPM
-Graphical Process Designer</emphasis>.</listitem>
-</orderedlist>
-<figure>
-<title>Opening Graphical Process Designer</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/GraphicalProcessDesigner.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>In the designer, drag and drop nodes and transition lines until you have a process
- shown in the following image. This is a high level process and aimed at business level non
- technical users.</listitem>
-</orderedlist>
-<para>To draw a node, click on the type of the node in the palette. You should be able to see
-that based on the icon on the node as shown below. Draw a rectangle on the canvas and the
- appropriate node will be rendered.</para>
- <para>To draw a transition click on the transition icon in the palette, choose the source node
- and then the destination node. This will draw a transition from the source to the destination.</para>
- <para>To change the name on the node or transition, select the object and change the name in
- the properties view or simply double click on the node or the transition line to change it.</para>
- <figure>
-<title>Diagram View</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/DiagramView.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>Save this file. You can click on the Source tab to view the generated XML file for
- the process.</listitem>
-</orderedlist>
-</section>
-<section id="AssociateProcessNodesWithJavaCode">
-<?dbhtml filename="AssociateProcessNodesWithJavaCode.html"?>
-<title>Associate process nodes with Java code</title>
-<para>With the business process in the designer, we can now associate each node with Java code.
- The Java code is executed when the node is reached in the process, and the Java code determines
- the outcome of each node – hence the next node in the process.</para>
- <para>Let's go through the exercise for the "Check Inventory" node first.</para>
- <orderedlist>
- <listitem>Right click on the "Check Inventory" node in the designer and select <emphasis>Add
- Actions > Node Enter </emphasis>from the menu as shown below.</listitem>
- </orderedlist>
- <figure>
-<title>Node Entering</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/NodeEntering.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>In the Outline view tab, open the tree view of process-order > Check Inventory >
-node enter, and you will see action1. The Outline view may be hidden or on the left side of the
- IDE.</listitem>
-</orderedlist>
-<figure>
-<title>Outline View</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/OutlineView.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<orderedlist continuation="continues">
-<listitem>Double click on action1 to bring up the wizard. Select Handler on the left and enter
- com.mydomain.EclipseCon.process. CheckInventoryAction as the class and bean as the type as shown
- below. You can can also search for the class by clicking on the <emphasis>Browse...</emphasis> button.</listitem>
-</orderedlist>
-<figure>
-<title>Action Handler</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/ActionHandler.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<para>Explanation: Now, you must wonder where this
-com.mydomain.EclipseCon.process.CheckInventoryAction class come from It comes from the
-eclipsecon-rules-bpm project we imported. The Java class has a single method that is executed
-when the "Check Inventory" node is reached in the process. The method just fires the rule we
-previously defined in process-order.drl. After the rule is executed, it updates the
-"inventoryStatus" component. Here is the method:</para>
-<programlisting role="JAVA"><![CDATA[public void execute(ExecutionContext ctx) throws Exception {
-
- //get a handle to the rules engine
- Component c = (Component) Contexts.getApplicationContext().get(
- "orderWorkingMemory.component");
- WorkingMemory wm = (WorkingMemory) ((ManagedWorkingMemory) c
- .newInstance()).getWorkingMemory();
-
- //get the ordersHome variable that was set in OrderProcessor.
- OrdersHome order = (OrdersHome) ctx.getVariable("ordersHome");
-
- //Assert Orders to working memory and fire rules
- wm.assertObject(order.getInstance());
- wm.fireAllRules();
-
-
- //persist the updated Orders object
- order.persist();
-
- //set inventory status so decision node knows what to do
- ctx.setVariable("inventoryStatus", order.getInstance().getStatus());
- System.out.println("CHECK INVENTORY - STATUS: "
- + order.getInstance().getStatus());
-}
-]]></programlisting>
-<para>The "inventoryStatus" component is then used in the "Inventory Decision" node to determine
-which node to go to next. To do that, open the process-order.jpdl.xml file in the text editor and
- change the node from this</para>
- <programlisting role="XML"><![CDATA[<decision name="Inventory Decision">
- <transition name="ship" to="Ship Order"></transition>
- <transition name="refund" to="Refund Order"></transition>
- </decision>
-]]></programlisting>
-<para>to this:</para>
-<programlisting role="XML"><![CDATA[<decision name="Inventory Decision" expression="#{inventoryStatus}">
- <transition name="ship" to="Ship Order"></transition>
- <transition name="refund" to="Refund Order"></transition>
- </decision>
-]]></programlisting>
-<para>Now, let's repeat the exercise to assign handler Java classes to the "Ship Order" and "Refund Order" nodes. </para>
-<itemizedlist>
-<listitem>Associate "Ship Order" node with the com.mydomain.EclipseCon.process.ShipOrderAction
-bean</listitem>
-<listitem>Associate "Refund Order" node with the com.mydomain.EclipseCon.process.SendRefundAction bean</listitem>
-</itemizedlist>
-<para>As we described earlier, in a real world system, those two nodes would invoke Java code
- that perform real shipping and refunding tasks. But here we just print out a message as a proof
- of concept. You can look into their Java classes if you have time.</para>
-</section>
-<section id="StartTheProcessFromAWebAction">
-<?dbhtml filename="StartTheProcessFromAWebAction.html"?>
-<title>Start the process from a web action</title>
-<para>Finally, we need a "hook" to start the entire business process. We will add a new Process
- Order button to the Orders.xhtml file.</para>
- <para>You can add the new button right next to the existing "Add orderdetails" button.
- Copy/paste the following button code in the actionButtons region:</para>
- <programlisting role="JSP"><![CDATA[<s:button id="buttonId" value="Process Order"
- action="#{orderProcessor.startProcess}"
- view="/Orders.xhtml"/>
-]]></programlisting>
-<para>Explanation: When you click on the Process Order button, Seam invokes
-the #{orderProcessor.startProcess} method, which in turn, starts the business process. The Java
-code for the #{orderProcessor} component is in the com.mydomain.EclipseCon.process.OrderProcessor
-class. Like other Java source files in the process package, the OrderProcessor.java is already
-copied to the EclipseCon project when you run the build.xml script from the imported rules-bpm
- project. Here is the content of the OrderProcessor.java file. The startProcess() method, which
- is invoked from the Process Order button, starts the process-order process we just created.</para>
-<programlisting role="JAVA"><![CDATA[@Name("orderProcessor")
-public class OrderProcessor {
-
- //Set the Orders object as a jBPM context variable
- @In(create = true)
- @Out(scope = ScopeType.BUSINESS_PROCESS)
- OrdersHome ordersHome;
-
- //Execute the jBPM process
- @CreateProcess(definition = "process-order")
- public String startProcess() {
- return "success";
- }
-}
-]]></programlisting>
-</section>
-<section id="TryItOut">
-<?dbhtml filename="TryItOut.html"?>
-<title>Try it out</title>
-<para>Now save the project and restart the server to make sure that it is properly re-deployed.
-Navigate to the OrdersList page and enter "In Process" to the status field to search for
-un-processed orders.</para>
-<para>Select one order and edit the order and change the "status" field to "in stock" and
-click "Done". Please enter the case exactly as indicated here:</para>
-<figure>
-<title>Order Edit Page</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/OrderEditPage.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<para>Click the "Process Order" button.</para>
-<figure>
-<title>Order Details</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/OrderDetails.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<para>The business process should lead to the ShipOrderAction bean, which will print out the
- "SHIP ORDER" message in the console view tab at the bottom of the IDE screen.</para>
- <figure>
-<title>Console View</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/ConsoleView.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<para>Select one order and change the "status" field to "back order" and click "Done". Please
-enter the case exactly as indicated here:</para>
-<figure>
-<title>Changing Status Field</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/ChangingStatusField.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<para>Click the "Process Order" button.</para>
-<figure>
-<title>Invoking Process Order</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/InvokingProcessOrder.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<para>The business process should invoke the SendRefundAction bean, which will print out the
-"SEND REFUND" message in the console view tab at the bottom of the IDE screen.</para>
-<figure>
-<title>Console Panel</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/ConsolePanel.png"/>
- </imageobject>
-</mediaobject>
-</figure>
-<para>This example shows a simple example of the powerful jBPM and JBoss Rules runtimes
-integrated in a Seam application. We have also see how easy it is build these kinds of
-applications using the Red Hat Developer Studio.</para>
-</section>
-<section id="TroubleshootingOnLinux">
-<?dbhtml filename="TroubleshootingOnLinux.html"?>
-<title>Troubleshooting on Linux</title>
-<para>Linux users may need to do the following to get the Eclipse distribution to work correctly
-on their machines.</para>
-<orderedlist>
-<listitem>On Red Hat based Linux distributions install the xpLib.i386 package</listitem>
-<listitem>ln -s libstdc++.so.5.0.7 libstdc++.so.5</listitem>
-<listitem>Open the RHDS perspective. If you see the Help view open, close it and restart RHDS</listitem>
-<listitem>If none of these work, do the following
-<itemizedlist>
-<listitem>Clear the Eclipse log file, <workspace>\.metadata\.log</listitem>
-<listitem>Start Eclipse with the -debug option:
-<para>eclipse -debug</para></listitem>
-<listitem>Post the Eclipse log file (<workspace>\.metadata\.log) on the forums.</listitem>
-</itemizedlist>
-</listitem>
-</orderedlist>
-</section>
- </chapter>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="AddBusinessProcess" xreflabel="AddBusinessProcess">
+ <?dbhtml filename="AddBusinessProcess.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>Business process</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBoss Rules</keyword>
+ <keyword>CURD-application</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Business process and rules application</title>
+ <para>Rules and business processes are important components in many enterprise applications.
+ They help business analysts to get involved in the design and implementation of the software
+ project. Rules and business processes are also essential to complex internal states of large,
+ multi-user systems. The JBoss Rules engine (formerly known as Drools) and jBPM business
+ process engine are two production-ready open source products supported by Red Hat. It is
+ very easy to incorporate rules and business processes into a Seam web application using the
+ Red Hat Developer Studio. In this section, we further re-factor the CRUD application we
+ already have and add support for an "order management" process. The user scenario is to
+ simulate the following process and rules:</para>
+ <itemizedlist>
+ <listitem>The site administrator logs in and sees a list of outstanding orders</listitem>
+ <listitem>She goes through the inventory (by hand or using another computer system) and
+ determines the availability of the products in each order. She enters that information to
+ each order.</listitem>
+ <listitem>She starts a process for each order, which determines whether to ship the order
+ or refund the order based on a business rule applied to the availability status. For
+ instance, an "in stock" status triggers a "ship" action while the "back order" status
+ triggers a "refund" action.</listitem>
+ <listitem>When the business process reaches the "ship" or "refund" state, it will take
+ appropriate actions (e.g., to submit shipping orders to Fedex or to contact the credit
+ card company for refund). In this simple case, we will just print out a message on the
+ console to prove that we can execute any code in those stages.</listitem>
+ </itemizedlist>
+ <para>While this process sounds simple, it is the basis for very complex business
+ processes. In this section of the tutorial, we will show you how this is done via the
+ following steps:</para>
+ <itemizedlist>
+ <listitem>Add a rule definition to the application</listitem>
+ <listitem>Add a business process that uses that rule to the application</listitem>
+ <listitem>Start the business process from a web action</listitem>
+ </itemizedlist>
+<section id="ImportConfigurationFilesAndJavaCode">
+<?dbhtml filename="ImportConfigurationFilesAndJavaCode.html"?>
+<title>Import configuration files and Java code</title>
+<para>Before we start, we need to import some configuration and Java files for the demo project.
+Those files are very simple and we will review them as we go along with the tutorial. We import
+them here to reduce potential typos and other errors in the tutorial.</para>
+<orderedlist>
+<listitem>Choose the <emphasis>File > Import ...</emphasis> menu and then select <emphasis>General > Existing</emphasis> project into workspace and
+click on the Next button.</listitem>
+</orderedlist>
+<figure>
+<title>Importing Project</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ProjectImporting.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>To make this demo a little more manageable we have already created some demo code
+that is available in the rules-bpm directory of your tutorial distribution code. It is
+ located in the root directory of the distribution. Select the rules-bpm directory and check
+ the "Copy projects into the workspace" directory check box.</listitem>
+</orderedlist>
+<para>You will have a different directory on your machine than the screen shot shown below.</para>
+<figure>
+<title>Selecting Directory To Import</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ImportDirectory.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>After this step you will see a new project called "rules-bpm". If you expand that
+directory, you will see numerous files as shown below. We will look at these files in this
+ section of the demo. We will first start by copying these files into our EclipseCon project.</listitem>
+</orderedlist>
+
+<figure>
+<title>Project Structure</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ProjectStructure.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>Right click on the rules-bpm/build.xml file, and select <emphasis>Run AS ... > Ant</emphasis> Build.</listitem>
+</orderedlist>
+
+<figure>
+<title>AntBuild</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/AntBuild.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>Right click on the EclipseCon project and select Refresh from the menu to pick up
+ the changes made to the demo application. The rules-bpm/build.xml script copies a bunch of files
+ into your existing EclipseCon project. We will look at them soon.</listitem>
+</orderedlist>
+</section>
+<section id="CreateARuledefinition">
+<?dbhtml filename="CreateARuledefinition.html"?>
+<title>Create a rule definition</title>
+<para>In this section, we create a business rule that can be used in junction with the business
+ process. When the rule is executed, it checks the status of the currently selected order. If the
+ order status is "in stock", meaning that a person has check off line and verified the
+ availability of the product ordered, the system changes the order status to "ship", meaning
+ that someone will now ship the product as the next step in the process. If the order status
+ is "back order", the rule changes the order status to "refund" automatically to trigger the
+ business process of refunding.</para>
+ <orderedlist>
+ <listitem>Select the<emphasis> EclipseCon/resources </emphasis>directory. That is where we are going to put the
+ rules definition file.</listitem>
+ <listitem>Select the following menu actions: <emphasis>File > New > Other ... > JBoss Rules > New
+ Rules Resource</emphasis> to bring up the JBoss Rules wizard.</listitem>
+ </orderedlist>
+ <figure>
+<title>New Rules File</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/NewRulesFile.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>Fill out the above window with the following values.</listitem>
+</orderedlist>
+<table>
+ <title>Rule Table</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Field Name</entry>
+ <entry>Field Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>File Name</entry>
+ <entry>process-order.drl</entry>
+ </row>
+ <row>
+ <entry>Type of Rule Resource</entry>
+ <entry>New DRL (rule package)</entry>
+ </row>
+ <row>
+ <entry>Rule Package Name</entry>
+ <entry>process.order</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <orderedlist continuation="continues">
+<listitem>Replace the content of the process-order.drl file with the follow rule.</listitem>
+</orderedlist>
+<programlisting role="JAVA"><![CDATA[package process.order
+ import com.mydomain.EclipseCon.Orders;
+
+rule "Ship order rule"
+ when
+ order : Orders(status == "in stock")
+ then
+ order.setStatus("ship");
+end
+
+rule "Refund order rule"
+ when
+ order : Orders(status == "back order")
+ then
+ order.setStatus("refund");
+end
+]]></programlisting>
+<para>Notice that the IDE automatically highlights the syntax and provides auto-completion help.
+ You may wonder how Seam knows to load the process-order.drl file for the application.</para>
+ <para>If you look in the <emphasis>resources/WEB-INF/components.xml</emphasis> file we copied from the imported
+ rules-bpm project. It has an element pointing to the process-order.drl file.</para>
+ <programlisting role="XML"><![CDATA[<drools:rule-base name="securityRules">
+ <drools:rule-files>
+ <value>/security.drl</value>
+ </drools:rule-files>
+ </drools:rule-base>
+]]></programlisting>
+</section>
+<section id="CreateABusinessProcessDefinition">
+<?dbhtml filename="CreateABusinessProcessDefinition.html"?>
+<title>Create a business process definition</title>
+<para>Next, let's create a business process that manages the order process. The business process
+ essentially specifies a sequence of actions that has to happen before an order is shipped or
+ refunded. Since the business analyst typically designs this process, it is very high level and
+ can be drawn up in a GUI designer.</para>
+ <orderedlist>
+ <listitem>Select the<emphasis> EclipseCon/resources </emphasis>folder and select menu actions <emphasis>File > New > File</emphasis>.
+ Add a new file called process-order.jpdl.xml as shown below:</listitem>
+ </orderedlist>
+ <figure>
+<title>Creating New File Resource</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/CreatingNewFileResource.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+
+<orderedlist continuation="continues">
+<listitem>Add the following content to the process-order.jpdl.xml file. It is an empty jBPM
+process definition, and allows us to use the jBPM visual designer to further edit it.</listitem>
+</orderedlist>
+<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<process-definition
+ xmlns="" name="process-order">
+</process-definition>
+]]></programlisting>
+<orderedlist continuation="continues">
+<listitem>Right click on the process-order.jpdl.xml file and select <emphasis>Open with ... > jBPM
+Graphical Process Designer</emphasis>.</listitem>
+</orderedlist>
+<figure>
+<title>Opening Graphical Process Designer</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/GraphicalProcessDesigner.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>In the designer, drag and drop nodes and transition lines until you have a process
+ shown in the following image. This is a high level process and aimed at business level non
+ technical users.</listitem>
+</orderedlist>
+<para>To draw a node, click on the type of the node in the palette. You should be able to see
+that based on the icon on the node as shown below. Draw a rectangle on the canvas and the
+ appropriate node will be rendered.</para>
+ <para>To draw a transition click on the transition icon in the palette, choose the source node
+ and then the destination node. This will draw a transition from the source to the destination.</para>
+ <para>To change the name on the node or transition, select the object and change the name in
+ the properties view or simply double click on the node or the transition line to change it.</para>
+ <figure>
+<title>Diagram View</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/DiagramView.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>Save this file. You can click on the Source tab to view the generated XML file for
+ the process.</listitem>
+</orderedlist>
+</section>
+<section id="AssociateProcessNodesWithJavaCode">
+<?dbhtml filename="AssociateProcessNodesWithJavaCode.html"?>
+<title>Associate process nodes with Java code</title>
+<para>With the business process in the designer, we can now associate each node with Java code.
+ The Java code is executed when the node is reached in the process, and the Java code determines
+ the outcome of each node – hence the next node in the process.</para>
+ <para>Let's go through the exercise for the "Check Inventory" node first.</para>
+ <orderedlist>
+ <listitem>Right click on the "Check Inventory" node in the designer and select <emphasis>Add
+ Actions > Node Enter </emphasis>from the menu as shown below.</listitem>
+ </orderedlist>
+ <figure>
+<title>Node Entering</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/NodeEntering.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>In the Outline view tab, open the tree view of process-order > Check Inventory >
+node enter, and you will see action1. The Outline view may be hidden or on the left side of the
+ IDE.</listitem>
+</orderedlist>
+<figure>
+<title>Outline View</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/OutlineView.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<orderedlist continuation="continues">
+<listitem>Double click on action1 to bring up the wizard. Select Handler on the left and enter
+ com.mydomain.EclipseCon.process. CheckInventoryAction as the class and bean as the type as shown
+ below. You can can also search for the class by clicking on the <emphasis>Browse...</emphasis> button.</listitem>
+</orderedlist>
+<figure>
+<title>Action Handler</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ActionHandler.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Explanation: Now, you must wonder where this
+com.mydomain.EclipseCon.process.CheckInventoryAction class come from It comes from the
+eclipsecon-rules-bpm project we imported. The Java class has a single method that is executed
+when the "Check Inventory" node is reached in the process. The method just fires the rule we
+previously defined in process-order.drl. After the rule is executed, it updates the
+"inventoryStatus" component. Here is the method:</para>
+<programlisting role="JAVA"><![CDATA[public void execute(ExecutionContext ctx) throws Exception {
+
+ //get a handle to the rules engine
+ Component c = (Component) Contexts.getApplicationContext().get(
+ "orderWorkingMemory.component");
+ WorkingMemory wm = (WorkingMemory) ((ManagedWorkingMemory) c
+ .newInstance()).getWorkingMemory();
+
+ //get the ordersHome variable that was set in OrderProcessor.
+ OrdersHome order = (OrdersHome) ctx.getVariable("ordersHome");
+
+ //Assert Orders to working memory and fire rules
+ wm.assertObject(order.getInstance());
+ wm.fireAllRules();
+
+
+ //persist the updated Orders object
+ order.persist();
+
+ //set inventory status so decision node knows what to do
+ ctx.setVariable("inventoryStatus", order.getInstance().getStatus());
+ System.out.println("CHECK INVENTORY - STATUS: "
+ + order.getInstance().getStatus());
+}
+]]></programlisting>
+<para>The "inventoryStatus" component is then used in the "Inventory Decision" node to determine
+which node to go to next. To do that, open the process-order.jpdl.xml file in the text editor and
+ change the node from this</para>
+ <programlisting role="XML"><![CDATA[<decision name="Inventory Decision">
+ <transition name="ship" to="Ship Order"></transition>
+ <transition name="refund" to="Refund Order"></transition>
+ </decision>
+]]></programlisting>
+<para>to this:</para>
+<programlisting role="XML"><![CDATA[<decision name="Inventory Decision" expression="#{inventoryStatus}">
+ <transition name="ship" to="Ship Order"></transition>
+ <transition name="refund" to="Refund Order"></transition>
+ </decision>
+]]></programlisting>
+<para>Now, let's repeat the exercise to assign handler Java classes to the "Ship Order" and "Refund Order" nodes. </para>
+<itemizedlist>
+<listitem>Associate "Ship Order" node with the com.mydomain.EclipseCon.process.ShipOrderAction
+bean</listitem>
+<listitem>Associate "Refund Order" node with the com.mydomain.EclipseCon.process.SendRefundAction bean</listitem>
+</itemizedlist>
+<para>As we described earlier, in a real world system, those two nodes would invoke Java code
+ that perform real shipping and refunding tasks. But here we just print out a message as a proof
+ of concept. You can look into their Java classes if you have time.</para>
+</section>
+<section id="StartTheProcessFromAWebAction">
+<?dbhtml filename="StartTheProcessFromAWebAction.html"?>
+<title>Start the process from a web action</title>
+<para>Finally, we need a "hook" to start the entire business process. We will add a new Process
+ Order button to the Orders.xhtml file.</para>
+ <para>You can add the new button right next to the existing "Add orderdetails" button.
+ Copy/paste the following button code in the actionButtons region:</para>
+ <programlisting role="JSP"><![CDATA[<s:button id="buttonId" value="Process Order"
+ action="#{orderProcessor.startProcess}"
+ view="/Orders.xhtml"/>
+]]></programlisting>
+<para>Explanation: When you click on the Process Order button, Seam invokes
+the #{orderProcessor.startProcess} method, which in turn, starts the business process. The Java
+code for the #{orderProcessor} component is in the com.mydomain.EclipseCon.process.OrderProcessor
+class. Like other Java source files in the process package, the OrderProcessor.java is already
+copied to the EclipseCon project when you run the build.xml script from the imported rules-bpm
+ project. Here is the content of the OrderProcessor.java file. The startProcess() method, which
+ is invoked from the Process Order button, starts the process-order process we just created.</para>
+<programlisting role="JAVA"><![CDATA[@Name("orderProcessor")
+public class OrderProcessor {
+
+ //Set the Orders object as a jBPM context variable
+ @In(create = true)
+ @Out(scope = ScopeType.BUSINESS_PROCESS)
+ OrdersHome ordersHome;
+
+ //Execute the jBPM process
+ @CreateProcess(definition = "process-order")
+ public String startProcess() {
+ return "success";
+ }
+}
+]]></programlisting>
+</section>
+<section id="TryItOut">
+<?dbhtml filename="TryItOut.html"?>
+<title>Try it out</title>
+<para>Now save the project and restart the server to make sure that it is properly re-deployed.
+Navigate to the OrdersList page and enter "In Process" to the status field to search for
+un-processed orders.</para>
+<para>Select one order and edit the order and change the "status" field to "in stock" and
+click "Done". Please enter the case exactly as indicated here:</para>
+<figure>
+<title>Order Edit Page</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/OrderEditPage.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Click the "Process Order" button.</para>
+<figure>
+<title>Order Details</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/OrderDetails.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>The business process should lead to the ShipOrderAction bean, which will print out the
+ "SHIP ORDER" message in the console view tab at the bottom of the IDE screen.</para>
+ <figure>
+<title>Console View</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ConsoleView.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Select one order and change the "status" field to "back order" and click "Done". Please
+enter the case exactly as indicated here:</para>
+<figure>
+<title>Changing Status Field</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ChangingStatusField.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Click the "Process Order" button.</para>
+<figure>
+<title>Invoking Process Order</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/InvokingProcessOrder.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>The business process should invoke the SendRefundAction bean, which will print out the
+"SEND REFUND" message in the console view tab at the bottom of the IDE screen.</para>
+<figure>
+<title>Console Panel</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ConsolePanel.png"/>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>This example shows a simple example of the powerful jBPM and JBoss Rules runtimes
+integrated in a Seam application. We have also see how easy it is build these kinds of
+applications using the Red Hat Developer Studio.</para>
+</section>
+ </chapter>
Modified: trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/GettingStartedWithRHDS.xml
===================================================================
--- trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/GettingStartedWithRHDS.xml 2007-08-10 15:10:33 UTC (rev 3080)
+++ trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/GettingStartedWithRHDS.xml 2007-08-10 17:42:12 UTC (rev 3081)
@@ -13,16 +13,12 @@
<section id="ConfigJavaEnvironment">
<?dbhtml filename="ConfigJavaEnvironment.html"?>
<title>Configuring Your Java Environment</title>
- <para>You must have a working installation of JDK 1.5 before you install JBoss Enterprise Application Platform. You can install the 32-bit or 64-bit JVM as per your
- requirements. In this guide we will show you how to install a 32-bit Sun JDK 5.0 on a Linux Platform and Microsoft Windows Platform. But before we do that let's take
- a look at some of the benefits of using a 64-bit JVM.</para>
- <emphasis role="bold">Benefits of 64-bit JVM on 64-bit OS and Hardware:</emphasis>
- <itemizedlist>
- <listitem><para>Wider datapath: The pipe between RAM and CPU is doubled, which improves the performance of memory-bound applications.</para></listitem>
- <listitem><para>64-bit memory addressing gives virtually unlimited (1 exabyte) heap allocation. However large heaps affect garbage collection.</para></listitem>
- <listitem><para>Applications that run with more than 1.5GB of RAM (including free space for garbage collection optimization) should utilize the 64-bit JVM.</para></listitem>
- <listitem><para>Applications that run on 32-bit JVM and do not require more than minimal heap sizes will gain nothing from a 64-bit JVM. Barring memory issues, 64-bit hardware with the same relative clock speed and architecture is not likely to run Java applications faster than their 32-bit cousin.</para></listitem>
- </itemizedlist>
+ <para>You must have a working installation of JDK 1.5 before you
+ install Red Hat Developer Studio. Currently it will only fully work
+ with a 32-bit JVM, not a 64-bit JVM. On a 64-bit JVM the visual
+ editor will fail to launch. Thus in this guide we will show you how
+ to install a 32-bit Sun JDK 5.0 on a Linux Platform and Microsoft
+ Windows Platform.</para>
<section id="InstallJDK50onLinux">
<title>Installing and Configuring 32-bit Sun JDK 5.0 on Linux</title>
<itemizedlist>
@@ -118,7 +114,7 @@
<title>Installing from the downloaded version</title>
<itemizedlist>
<listitem>
- <para>Download the appropriate installation file for your platform from www.exadel.com/web/portal/download</para>
+ <para>Download the appropriate installation file for your platform from http://www.redhat.com/developers/rhds/</para>
</listitem>
<listitem>
<para>Run install.jar and follow the instructions presented by the installation wizard</para>
@@ -156,11 +152,12 @@
</note>
</section>
- <section id="InstallingthroughTheUpdateSite">
+<!-- <section id="InstallingthroughTheUpdateSite">
<?dbhtml filename="InstallingthroughTheUpdateSite.html"?>
<title>Installing via update Site</title>
TBD
</section>
+-->
</section>
<section id="Upgrading">
@@ -176,40 +173,24 @@
<listitem>Uninstall your current version of Red Hat Developer Studio by running uninstaller</listitem>
</itemizedlist>
</section>
- <section id="Subscription">
- <?dbhtml filename="Subscription.html"?>
- <title>Subscription</title>
- <para>Enjoy the peace of mind that comes with knowing that you are just an email away from having the advice of our development team at your fingertips to solve the problems that crop up during application development. Get the advice you need to ensure the success of your projects on time and on budget. Whether you are using JSF, RichFaces, Ajax4jsf, Hibernate or Seam, the JBoss team is always available to help. Just subcribe to our subcription program:</para>
- <para>What You Get:</para>
- <itemizedlist>
- <listitem>Email access to the JBoss customer support team (responses within 48 hours)</listitem>
- <listitem>Application development consultation</listitem>
- <listitem>Sample code</listitem>
- <listitem>Code review</listitem>
- <listitem>General architectural review</listitem>
- <listitem>User interface design tips</listitem>
- <listitem>Overviews of JSF or AJAX technologies</listitem>
- </itemizedlist>
- </section>
<section id="Support">
<?dbhtml filename="Support.html"?>
<title>Support</title>
- <para>If you have comments or questions, you can send them to
- <ulink url="mailto:support@exadel.com">support(a)exadel.com</ulink> or
+ <para>If you have comments or questions, you can discuss them at our
<ulink url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=258">Red Hat Developer Studio Forum</ulink>.</para>
- <para>When writing to support, please include the following information:</para>
+ <para>When writing to the forum for questions, please include the following information:</para>
<orderedlist>
<listitem><para>Red Hat Developer Studio version</para></listitem>
<listitem><para>Exact error message</para></listitem>
- <listitem><para>Exact steps you take to get the error</para></listitem>
+ <listitem><para>Steps to reproduce the issue</para></listitem>
</orderedlist>
</section>
<section id="FAQ">
<?dbhtml filename="FAQ.html"?>
<title>FAQ</title>
<para>For easy reference to Red Hat Developer Studio related questions, our FAQ provides answers to our most "popular" questions.
- The sections of questions are organized by type. For further support, please contact <ulink url="mailto:support@exadel.com">support(a)exadel.com</ulink>.</para>
- <section id="Before_Installing">
+ The sections of questions are organized by type. </para>
+<!-- <section id="Before_Installing">
<title>Before Installing, Tutorials, Examples, Readme Files</title>
<para><emphasis role="bold">I'm looking for examples, do you have any?</emphasis></para>
<para>Yes, simply go to our <ulink url="http://exadel.com/web/portal/products/Tutorials">tutorials page</ulink></para>
@@ -219,21 +200,39 @@
<para>Try these resources: <ulink url="http://www.exadel.com/exadelstudio/help/">User Guide</ulink></para>
<para><emphasis role="bold">What version of Eclipse does Red Hat Developer Studio support?</emphasis></para>
<para>Red Hat Developer Studio works with Eclipse 3.3</para>
- </section>
+ </section> -->
<section id="Downloading">
<title>Downloading</title>
<para><emphasis role="bold">Where can I download a copy of Red Hat Developer Studio?</emphasis></para>
- <para>Go to <ulink url="http://www.exadel.com/web/portal/download/esp35">Download Page</ulink></para>
+ <para>Go to <ulink url="http://redhat.com/developers/rhds">Download Page</ulink></para>
</section>
<section id="Installation_Issues">
<title>Installation Issues</title>
+ <para><emphasis role="bold">Visual Editor does not start under Linux</emphasis></para>
+ <para>Linux users may need to do the following to get the visual editor to work correctly
+on their machines.</para>
+
+<orderedlist>
+<listitem>On Red Hat based Linux distributions install the xpLib.i386 package</listitem>
+<listitem>ln -s libstdc++.so.5.0.7 libstdc++.so.5</listitem>
+<listitem>and/or use yum install libXp</listitem>
+<listitem>Open the RHDS perspective. If you see the Help view open, close it and restart RHDS</listitem>
+<listitem>If none of these work, do the following
+<itemizedlist>
+<listitem>Clear the Eclipse log file, <workspace>\.metadata\.log</listitem>
+<listitem>Start Eclipse with the -debug option:
+<para>eclipse -debug</para></listitem>
+<listitem>Post the Eclipse log file (<workspace>\.metadata\.log) on the forums.</listitem>
+</itemizedlist>
+</listitem>
+</orderedlist>
+
+
<para><emphasis role="bold">Do I need to have JBoss server installed to run Red Hat Developer Studio?</emphasis></para>
<para>No. Red Hat Developer Studio already comes bundled with JBoss server. We bundle it together so that you don't need to download any
additional software and can test your application in a Web browser right away.</para>
<para>If you want to use a different JBoss server installation, after Red Hat Developer Studio is installed open Servers View (select Window > Show View > Others > Server > Servers), then right click on this view > New > Server and follow the wizards steps to point to another Jboss server installation.</para>
<para>Red Hat Developer Studio works with any servlet container, not just JBoss. For more information on deployment, please see the Deploying Your Application section.</para>
- <para><emphasis role="bold"> What third-party plug-ins are installed with RHDS?</emphasis></para>
- <para>Read the <link linkend="Installing">Installation</link> section.</para>
</section>
<section id="Importing_Projects">
<title>Importing Projects</title>
@@ -245,8 +244,10 @@
<section id="Troubleshooting">
<title>Troubleshooting, Problems, Configuration, Error Messages</title>
<para><emphasis role="bold">Is it possible to increase the performance of Eclipse after installing your product? My Eclipse now crawls.</emphasis></para>
- <para>By default, Eclipse allocates only 128 Mb of memory whatever physical memory you actually have installed. You can significantly increase performance if you allocate more memory. For example:</para>
+ <para>Red Hat Developer Studio preconfigures eclipse via the eclipse.ini file to allocate extra memory, but if you for some reason are using your own version of Eclipse then
+ by default, Eclipse allocates only 128 Mb of memory whatever physical memory you actually have installed. You can significantly increase performance if you allocate more memory. For example:</para>
<para>-vmargs -Xms128m -Xmx512m -XX:MaxPermSize=128m</para>
+
<para><emphasis role="bold">How can I add my own tag library to the Red Hat Palette?</emphasis></para>
<para>See <ulink url="http://labs.jboss.com/jbossjsftools/docs">Adding Tag Libraries</ulink> in JBossJSFTools Guide.</para>
<para><emphasis role="bold">I see the Oracle ADF Faces component library tags in the Red Hat Palette, but I can't seem to find the libraries for ADF. How do I use this component library with RHDS?</emphasis></para>
Modified: trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/ManageJBossAS.xml
===================================================================
--- trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/ManageJBossAS.xml 2007-08-10 15:10:33 UTC (rev 3080)
+++ trunk/documentation/GettingStartedGuide/docs/userguide/en/modules/ManageJBossAS.xml 2007-08-10 17:42:12 UTC (rev 3081)
@@ -42,6 +42,7 @@
</figure>
<para>While launching Server output will be written to the Console view:</para>
+<!-- TODO: make a screenshot that doesn't show an exception!
<figure>
<title>Console output</title>
<mediaobject>
@@ -49,7 +50,7 @@
<imagedata fileref="images/consoleoutput.png"/>
</imageobject>
</mediaobject>
-</figure>
+</figure>-->
<para>When server has started you should see "Started" right to its name in JBoss Server view (column "Status").</para>
<figure>
<title>Server is started</title>
@@ -72,7 +73,7 @@
<section id="StoppingJBoss">
<?dbhtml filename="StoppingJBoss.html"?>
<title>Stopping JBoss server</title>
- <para>To stop the server select the Stop sign in JBoss Server View or right click the server name and press Stop.</para>
+ <para>To stop the server click the Stop icon in JBoss Server View or right click the server name and press Stop.</para>
<figure>
<title>Stopping server</title>
<mediaobject>
@@ -231,4 +232,4 @@
</section>
- </chapter>
\ No newline at end of file
+ </chapter>
18 years, 4 months
JBoss Tools SVN: r3080 - in trunk/seam/tests/org.jboss.tools.seam.core.test: projects/TestScanner/WebContent/WEB-INF and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2007-08-10 11:10:33 -0400 (Fri, 10 Aug 2007)
New Revision: 3080
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/JavaSource/demo/User.java
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/WebContent/WEB-INF/components.xml
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/ScannerTest.java
Log:
EXIN-336 more tests added
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/JavaSource/demo/User.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/JavaSource/demo/User.java 2007-08-10 15:09:32 UTC (rev 3079)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/JavaSource/demo/User.java 2007-08-10 15:10:33 UTC (rev 3080)
@@ -63,5 +63,10 @@
@Create @Destroy
public void createAndDestroyMethod() {
}
+
+ @Factory(value="myFactory", scope=ScopeType.SESSION)
+ public void testFactory() {
+
+ }
}
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/WebContent/WEB-INF/components.xml
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/WebContent/WEB-INF/components.xml 2007-08-10 15:09:32 UTC (rev 3079)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/WebContent/WEB-INF/components.xml 2007-08-10 15:10:33 UTC (rev 3080)
@@ -29,4 +29,6 @@
conversation-timeout="3"
/>
+ <factory name="factory1" scope="conversation"/>
+
</components>
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/ScannerTest.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/ScannerTest.java 2007-08-10 15:09:32 UTC (rev 3079)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/ScannerTest.java 2007-08-10 15:10:33 UTC (rev 3080)
@@ -25,6 +25,7 @@
import org.jboss.tools.seam.core.BeanType;
import org.jboss.tools.seam.core.BijectedAttributeType;
import org.jboss.tools.seam.core.IBijectedAttribute;
+import org.jboss.tools.seam.core.ISeamAnnotatedFactory;
import org.jboss.tools.seam.core.ISeamComponent;
import org.jboss.tools.seam.core.ISeamComponentDeclaration;
import org.jboss.tools.seam.core.ISeamComponentMethod;
@@ -113,9 +114,12 @@
assertTrue("Scanner cannot recognise components.xml", scanner.isRelevant(f));
assertTrue("Scanner cannot recognise components.xml content", scanner.isLikelyComponentSource(f));
ISeamComponentDeclaration[] cs = null;
+ ISeamFactory[] fs = null;
try {
- cs = scanner.parse(f).getComponents().toArray(new ISeamComponentDeclaration[0]);
+ LoadedDeclarations ds = scanner.parse(f);
+ cs = ds.getComponents().toArray(new ISeamComponentDeclaration[0]);
+ fs = ds.getFactories().toArray(new ISeamFactory[0]);
} catch (Exception e) {
fail("Error in xml scanner:" + e.getMessage());
}
@@ -179,7 +183,15 @@
assertTrue("Property bundleNames misses value 'bundleA'.", "bundleA".equals(oList.getValues().get(0).getValue().getValue()));
assertTrue("Property bundleNames misses value 'bundleB'.", "bundleB".equals(oList.getValues().get(1).getValue().getValue()));
- //TODO check factory
+ //3. components.xml has entry
+ //<factory name="factory1" scope="conversation"/>
+ // check that
+ // a) declaration 'factory1' exists,
+ // b) it has scope 'conversation'.
+ ISeamFactory factory = find(fs, "factory1");
+ assertTrue("Declared factory 'factory1' is not found in components.xml", factory != null);
+ ISeamXmlFactory af = (ISeamXmlFactory)factory;
+ assertTrue("Scope of 'factory1' must be 'conversation'", af.getScope() == ScopeType.CONVERSATION);
}
private ISeamComponentDeclaration findDeclaration(ISeamComponentDeclaration[] declarations, String name) {
@@ -199,9 +211,12 @@
assertTrue("Scanner cannot recognise User.java", scanner.isRelevant(f));
assertTrue("Scanner cannot recognise User.java content", scanner.isLikelyComponentSource(f));
ISeamComponentDeclaration[] cs = null;
+ ISeamFactory[] fs = null;
try {
- cs = scanner.parse(f).getComponents().toArray(new ISeamComponentDeclaration[0]);
+ LoadedDeclarations ds = scanner.parse(f);
+ cs = ds.getComponents().toArray(new ISeamComponentDeclaration[0]);
+ fs = ds.getFactories().toArray(new ISeamFactory[0]);
} catch (Exception e) {
fail("Error in java scanner:" + e.getMessage());
}
@@ -239,8 +254,23 @@
IBijectedAttribute a2 = findBijectedAttribute(bijected, "payment");
assertTrue("Attribute 'payment' is not found in bijected attributes", a2 != null);
assertTrue("Attribute 'payment' is @In annotated", a2.isOfType(BijectedAttributeType.IN));
-
- //To be continued
+
+ // e) @Create @Destroy @Unwrap
+ Set<ISeamComponentMethod> methods = myUser.getMethods();
+ ISeamComponentMethod m = find(methods, "unwrapMethod");
+ assertTrue("Declared method 'unwrapMethod' is not found in 'myUser'", m != null);
+ assertTrue("Method 'unwrapMethod' in 'myUser' must be create method", m.isOfType(SeamComponentMethodType.UNWRAP));
+ m = find(methods, "createAndDestroyMethod");
+ assertTrue("Declared method 'createAndDestroyMethod' is not found in 'myUser'", m != null);
+ assertTrue("Method 'createAndDestroyMethod' in 'myUser' must be create method", m.isOfType(SeamComponentMethodType.CREATE));
+ assertTrue("Method 'createAndDestroyMethod' in 'myUser' must be destroy method", m.isOfType(SeamComponentMethodType.DESTROY));
+
+ // f) @Factory
+ ISeamFactory myFactory = find(fs, "myFactory");
+ assertTrue("Declared factory 'myFactory' is not found in 'myUser'", myFactory != null);
+ ISeamAnnotatedFactory af = (ISeamAnnotatedFactory)myFactory;
+ assertTrue("Scope of 'myFactory' must be 'session'", af.getScope() == ScopeType.SESSION);
+
}
private IBijectedAttribute findBijectedAttribute(Set<IBijectedAttribute> bijected, String name) {
@@ -337,7 +367,7 @@
private ISeamFactory find(ISeamFactory[] factories, String name) {
for (int i = 0; i < factories.length; i++) {
- if("actor".equals(factories[i].getName())) return factories[i];
+ if(name.equals(factories[i].getName())) return factories[i];
}
return null;
}
18 years, 4 months
JBoss Tools SVN: r3079 - trunk/documentation/GettingStartedGuide/docs/userguide/en.
by jbosstools-commits@lists.jboss.org
Author: afedosik
Date: 2007-08-10 11:09:32 -0400 (Fri, 10 Aug 2007)
New Revision: 3079
Modified:
trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml
Log:
Modified: trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml
===================================================================
--- trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml 2007-08-10 13:35:42 UTC (rev 3078)
+++ trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml 2007-08-10 15:09:32 UTC (rev 3079)
@@ -19,7 +19,7 @@
<year>2007</year>
<holder>Red Hat</holder>
</copyright>
- <releaseinfo>Current Guide Version: beta 1.0</releaseinfo>
+ <releaseinfo>Current Guide Version: 1.0.0.beta1</releaseinfo>
</bookinfo>
18 years, 4 months
JBoss Tools SVN: r3078 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2007-08-10 09:35:42 -0400 (Fri, 10 Aug 2007)
New Revision: 3078
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractContextVariable.java
Log:
Fixed setting of scope by scanners
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractContextVariable.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractContextVariable.java 2007-08-10 13:24:58 UTC (rev 3077)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractContextVariable.java 2007-08-10 13:35:42 UTC (rev 3078)
@@ -36,9 +36,10 @@
}
public void setScopeAsString(String scope) {
- if(scope != null && scope.indexOf('.') > 0) {
- scope = scope.substring(scope.lastIndexOf('.'));
+ if(scope != null && scope.indexOf('.') >= 0) {
+ scope = scope.substring(scope.lastIndexOf('.') + 1);
}
+ this.scope = scope;
try {
this.scopeType = scope == null || scope.length() == 0 ? ScopeType.UNSPECIFIED : ScopeType.valueOf(scope.toUpperCase());
} catch (IllegalArgumentException e) {
18 years, 4 months
JBoss Tools SVN: r3077 - trunk/documentation/GettingStartedGuide/docs/resources/support/docbook-xsl/html.
by jbosstools-commits@lists.jboss.org
Author: smukhina
Date: 2007-08-10 09:24:58 -0400 (Fri, 10 Aug 2007)
New Revision: 3077
Modified:
trunk/documentation/GettingStartedGuide/docs/resources/support/docbook-xsl/html/chunk-common.xsl
Log:
http://jira.jboss.com/jira/browse/EXIN-440
double title
Modified: trunk/documentation/GettingStartedGuide/docs/resources/support/docbook-xsl/html/chunk-common.xsl
===================================================================
--- trunk/documentation/GettingStartedGuide/docs/resources/support/docbook-xsl/html/chunk-common.xsl 2007-08-10 12:52:34 UTC (rev 3076)
+++ trunk/documentation/GettingStartedGuide/docs/resources/support/docbook-xsl/html/chunk-common.xsl 2007-08-10 13:24:58 UTC (rev 3077)
@@ -696,10 +696,12 @@
<xsl:param name="next" select="/foo"/>
<xsl:param name="nav.context"/>
+ <xsl:variable name="show.title" select="not(self::book)"/>
+
<xsl:variable name="home" select="/*[1]"/>
<xsl:variable name="up" select="parent::*"/>
- <xsl:variable name="row1" select="$navig.showtitles != 0"/>
+ <xsl:variable name="row1" select="$navig.showtitles != 0 and $show.title"/>
<xsl:variable name="row2" select="count($prev) > 0
or (count($up) > 0
and generate-id($up) != generate-id($home)
18 years, 4 months
JBoss Tools SVN: r3076 - trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2007-08-10 08:52:34 -0400 (Fri, 10 Aug 2007)
New Revision: 3076
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelImageVisitor.java
Log:
http://jira.jboss.com/jira/browse/EXIN-427
Modified: trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelImageVisitor.java
===================================================================
--- trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelImageVisitor.java 2007-08-10 12:15:07 UTC (rev 3075)
+++ trunk/hibernatetools/plugins/org.jboss.tools.hibernate.ui.view/src/org/jboss/tools/hibernate/ui/view/views/OrmModelImageVisitor.java 2007-08-10 12:52:34 UTC (rev 3076)
@@ -61,11 +61,9 @@
if(field.getPersistentClass().getIdentifierProperty() == field){
return ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.PersistentFieldSimple_id")); //$NON-NLS-1$
}
- try {
- if (field.getType().isCollectionType()) {
- return ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.PersistentFieldCollection")); //$NON-NLS-1$
- }
- } catch (Exception e) {}
+ if (field.getType().isCollectionType()) {
+ return ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.Collection_bag"));
+ }
}
return ViewPlugin.getImageDescriptor(BUNDLE.getString("OrmModelImageVisitor.PersistentFieldSimple")); //$NON-NLS-1$
}
18 years, 4 months
JBoss Tools SVN: r3075 - branches/jbosstools_xulrunner/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces.
by jbosstools-commits@lists.jboss.org
Author: ezheleznyakov
Date: 2007-08-10 08:15:07 -0400 (Fri, 10 Aug 2007)
New Revision: 3075
Modified:
branches/jbosstools_xulrunner/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/ComponentUtil.java
Log:
http://jira.jboss.com/jira/browse/EXIN-435
add method setImg(nsIDOMElement img, String fileImageName);
Modified: branches/jbosstools_xulrunner/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/ComponentUtil.java
===================================================================
--- branches/jbosstools_xulrunner/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/ComponentUtil.java 2007-08-10 11:13:56 UTC (rev 3074)
+++ branches/jbosstools_xulrunner/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/src/org/jboss/tools/jsf/vpe/richfaces/ComponentUtil.java 2007-08-10 12:15:07 UTC (rev 3075)
@@ -21,6 +21,7 @@
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.editors.text.ILocationProvider;
import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.mozilla.interfaces.nsIDOMElement;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -144,6 +145,7 @@
}
}
+ // TDOD: Evgeny Zheleznyakov delete after work all components
/**
* Adds image as attribute to IMG tag
*
@@ -153,6 +155,17 @@
public static void setImg(Element img, String fileImageName) {
img.setAttribute("src", "file://" + getAbsoluteResourcePath(fileImageName));
}
+
+ // TDOD: Evgeny Zheleznyakov Do not delete
+ /**
+ * Adds image as attribute to IMG tag
+ *
+ * @param img
+ * @param fileImageName
+ */
+ public static void setImg(nsIDOMElement img, String fileImageName) {
+ img.setAttribute("src", "file://" + getAbsoluteResourcePath(fileImageName));
+ }
/**
* Returns all child source elements of component but facets.
18 years, 4 months
JBoss Tools SVN: r3074 - trunk/documentation/GettingStartedGuide/docs/userguide/en.
by jbosstools-commits@lists.jboss.org
Author: afedosik
Date: 2007-08-10 07:13:56 -0400 (Fri, 10 Aug 2007)
New Revision: 3074
Modified:
trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml
Log:
http://jira.jboss.com/jira/browse/EXIN-439 Version added
Modified: trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml
===================================================================
--- trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml 2007-08-10 10:58:25 UTC (rev 3073)
+++ trunk/documentation/GettingStartedGuide/docs/userguide/en/master.xml 2007-08-10 11:13:56 UTC (rev 3074)
@@ -15,12 +15,11 @@
<bookinfo>
<title>Getting Started with Red Hat Developer Studio</title>
-
- <copyright>
+ <copyright>
<year>2007</year>
- <holder>Red Hat</holder>
- </copyright>
-
+ <holder>Red Hat</holder>
+ </copyright>
+ <releaseinfo>Current Guide Version: beta 1.0</releaseinfo>
</bookinfo>
18 years, 4 months
JBoss Tools SVN: r3073 - tags/hibernatetools-jbosstools-2.0.0.beta3.
by jbosstools-commits@lists.jboss.org
Author: mculpepper(a)jboss.com
Date: 2007-08-10 06:58:25 -0400 (Fri, 10 Aug 2007)
New Revision: 3073
Added:
tags/hibernatetools-jbosstools-2.0.0.beta3/hibernatetools/
Log:
Copied: tags/hibernatetools-jbosstools-2.0.0.beta3/hibernatetools (from rev 3072, trunk/hibernatetools)
18 years, 4 months
JBoss Tools SVN: r3072 - tags.
by jbosstools-commits@lists.jboss.org
Author: mculpepper(a)jboss.com
Date: 2007-08-10 06:58:01 -0400 (Fri, 10 Aug 2007)
New Revision: 3072
Added:
tags/hibernatetools-jbosstools-2.0.0.beta3/
Log:
x
18 years, 4 months