[jboss-cvs] JBossAS SVN: r83772 - in projects/ejb3/trunk/docs/tutorial/guide/en: modules and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Feb 2 05:47:55 EST 2009
Author: jaikiran
Date: 2009-02-02 05:47:55 -0500 (Mon, 02 Feb 2009)
New Revision: 83772
Added:
projects/ejb3/trunk/docs/tutorial/guide/en/modules/consumer.xml
projects/ejb3/trunk/docs/tutorial/guide/en/modules/partial_deployment_descriptor.xml
Modified:
projects/ejb3/trunk/docs/tutorial/guide/en/master.xml
projects/ejb3/trunk/docs/tutorial/guide/en/modules/ssl.xml
Log:
Guide updated with more tutorials
Modified: projects/ejb3/trunk/docs/tutorial/guide/en/master.xml
===================================================================
--- projects/ejb3/trunk/docs/tutorial/guide/en/master.xml 2009-02-02 10:46:50 UTC (rev 83771)
+++ projects/ejb3/trunk/docs/tutorial/guide/en/master.xml 2009-02-02 10:47:55 UTC (rev 83772)
@@ -37,6 +37,8 @@
<!ENTITY hibernate SYSTEM "modules/hibernate.xml">
<!ENTITY asynch SYSTEM "modules/asynch.xml">
<!ENTITY ssl SYSTEM "modules/ssl.xml">
+<!ENTITY partial_deployment_descriptor SYSTEM "modules/partial_deployment_descriptor.xml">
+<!ENTITY consumer SYSTEM "modules/consumer.xml">
<!ENTITY todo SYSTEM "modules/todo.xml">
]>
<book lang="en">
@@ -53,6 +55,9 @@
</preface>
&installing;&stateless;&stateful;&blob;&cachedentity;&callbacks;&composite;&dependency;&ejb21_client_adaptors;&embeddable;&enterprise_app_ejb_injection;&entity;&extended_pc;&injection;&interceptor;&jboss_deployment_descriptor;&jca_inflow_quartz;&jndibinding;&joininheritance;&mdb;&mdb_deployment_descriptor;&merge;&reference21_30;&relationships;&resource_ref;&secondary;&security;&service;&service_deployment_descriptor;&singleinheritance;
&stateful_deployment_descriptor;&stateless_deployment_descriptor;&tableperinheritance;&timer;
-&hibernate;&asynch;&todo;
+&hibernate;&asynch;
+&partial_deployment_descriptor;
+&consumer;
+&todo;
</book>
Added: projects/ejb3/trunk/docs/tutorial/guide/en/modules/consumer.xml
===================================================================
--- projects/ejb3/trunk/docs/tutorial/guide/en/modules/consumer.xml (rev 0)
+++ projects/ejb3/trunk/docs/tutorial/guide/en/modules/consumer.xml 2009-02-02 10:47:55 UTC (rev 83772)
@@ -0,0 +1,248 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<chapter id="Consumer_and_Producer">
+ <title>Message Driven POJOs (JBoss specific)</title>
+ <para>
+ The idea of Message Driven POJOs is to give a message consumer (an MDB), a typed interface
+ that message producers can send messages through. Both the publisher and subscriber would be typed interfaces.
+ This further facilitates the removal of all the lookups and bootstrap code you have to do to obtain
+ and send a message and receive and dispatch a JMS message. With regular JMS you have to :
+ <itemizedlist>
+ <listitem>Get a connectionfactory</listitem>
+ <listitem>Get a connection</listitem>
+ <listitem>Get a destination</listitem>
+ <listitem>... and so on</listitem>
+ </itemizedlist>
+ For the Message Driven POJOs, you just do:
+ <itemizedlist>
+ <listitem>Get a producer</listitem>
+ <listitem>Invoke on producer</listitem>
+ </itemizedlist>
+ </para>
+
+ <sect5>
+ Model :
+ <para>
+ Message Driven POJOs will have the same model as Stateless/Stateful beans. There is a bean class tagged as
+ <literal>@org.jboss.ejb3.annotation.Consumer</literal> that must implement one or more <literal>@org.jboss.ejb3.annotation.Producer</literal> interfaces. Just
+ as a stateless bean is tagged as <literal>@Stateless</literal> and implements one or more
+ <literal>@Remote</literal> or <literal>@Local</literal> interfaces. Take a look at <literal>org.jboss.tutorial.consumer.bean.ExampleConsumerBean</literal>
+
+ <programlisting>
+ <![CDATA[
+ at Consumer(activationConfig =
+{@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
+ @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/tutorial/example")})
+ at Depends ("jboss.messaging.destination:service=Queue,name=tutorial")
+public class ExampleConsumerBean implements ExampleProducerRemote, ExampleProducerLocal, ExampleProducerXA
+{
+...
+ public void method1(String msg, int val)
+ {
+ System.out.println("method1(" + msg + ", " + val + ")");
+ }
+
+ public void method2(String msg, Map<String, String> map)
+ {
+ System.out.println("method2: " + msg);
+ for (String key : map.keySet())
+ {
+ System.out.println("method2 key/val: " + key + ":" + map.get(key));
+ }
+ }
+ ]]>
+ </programlisting>
+ Here's one of the @Producer interfaces :
+ <programlisting>
+ <![CDATA[
+ at Producer
+public interface ExampleProducerRemote extends ExampleProducer
+{
+...
+ ]]>
+ </programlisting>
+ You can see in this example that the <literal>ExampleConsumerBean</literal> implements the @Producer interfaces and defines
+ the methods which can receive JMS messages. These interfaces will be used by clients(JMS Publishers) to send messages to the
+ consumer via JMS.
+ <note>
+ <para>
+ For each <literal>@Producer</literal> interface the <literal>@Consumer</literal> implements, there
+ will be a proxy that implements that <literal>@Producer</literal> registered in JNDI under the fully qualified name of
+ that <literal>@Producer</literal> interface.
+ </para>
+ </note>
+ Let's now look at the client <literal>org.jboss.tutorial.consumer.client.Client</literal>
+ <programlisting>
+ <![CDATA[
+public static void main(String[] args) throws Exception
+ {
+ InitialContext ctx = new InitialContext();
+ ExampleProducerRemote remote = (ExampleProducerRemote) ctx.lookup(ExampleProducerRemote.class.getName());
+
+ // you can typecast the returned proxy to obtain a ProducerManager interface that allows you to manage
+ // interaction with JMS.
+ ProducerManager manager = ((ProducerObject) remote).getProducerManager();
+
+
+ // connect - internally creates a JMS connection
+ manager.connect();
+
+ try
+ {
+ // Call method1
+ remote.method1("Remote method1 called", 1);
+ System.out.println("Remote method1 called");
+
+ // Call method2
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("hello", "world");
+ map.put("great", "ejb3");
+
+ remote.method2("Remote method2 called", map);
+ System.out.println("Remote method2 called");
+ }
+ finally
+ {
+ // instead of typecasting, you can use a helper class that does everything for you.
+ ProducerConfig.close(remote);
+ }
+ ]]>
+ </programlisting>
+ When the <literal>@Consumer</literal> is deployed by the EJB3 container, it looks for all of its <literal>@Producer</literal> interfaces
+ and registers each one of them in JNDI under their fully qualified class name.
+ The client looks up the <literal>ExampleProducerRemote</literal> from the JNDI and uses the returned proxy to send the message.
+ The returned proxy can be cast to <literal>org.jboss.ejb3.mdb.ProducerObject</literal>. It then gets a <literal>org.jboss.ejb3.mdb.ProducerManager</literal>,
+ that manages the JMS connection for this proxy. To start being able to send messages to the Queue, the client calls <literal>connect</literal> on the
+ <literal>ProducerManager</literal>. When the client calls <literal>method1()</literal> on the proxy, this method call is converted
+ into a JMS message and published to the Queue of the Consumer. The consumer will receive the message and invoke its <literal>method1</literal> method.
+ </para>
+ </sect5>
+
+ <sect5>
+ Producer default values :
+ <para>
+ The proxy registered in JNDI will know how to contact the JMS Queue/Topic to publish messages. You can specify explicitly through
+ the <literal>connectionFactory</literal> attribute of the <literal>@Producer</literal>annotation what the JMS ConnectionFactory
+ JNDI name is, or you can rely on defaults.
+
+ <note>
+ <para>
+ The default value for the ConnectionFactory JNDI name is "ConnectionFactory". If you additionally tag the producer as @ProducerLocal instead of @Producer,
+ then "java:/ConnectionFactory" will be used.
+ </para>
+ </note>
+ </para>
+ </sect5>
+
+ <sect5>
+ @ProducerLocal :
+ <para>
+ If you tag a producer as @ProducerLocal, the proxy will lookup the connection factory via the default InitialContext
+ when connect() is called. Otherwise, the ConnectFactory reference will be embedded directly within the proxy.
+
+ </para>
+ </sect5>
+
+ <sect5>
+ @MessageProperties :
+ <para>
+ The methods defined in a Producer are turned into JMS messages. The default message properties are a Time To Live of 0, a
+ Priority of 4, and a delivery mode of PERSISTENT. You can override these default values in a couple of ways.
+ <itemizedlist>
+ <listitem>
+ You can use the @MessageProperties anntotation and tag the Producer class directly to override the values:
+ <programlisting>
+ <![CDATA[
+ at Producer
+ at MessageProperties(delivery=DeliveryMode.NON_PERSISTENT, timeToLive=1000, priority=1)
+public interface ExampleProducer
+{
+...
+ ]]>
+ </programlisting>
+ In this configuration, all method calls on ExampleProducer will use the JMS message properties defined with the
+ <literal>@MessageProperties</literal> annotation on the interface.
+
+ </listitem>
+
+ <listitem>
+ You can specify @MessageProperties on a per method basis :
+ <programlisting>
+ <![CDATA[
+public interface ExampleProducer
+{
+ void method1(String msg, int val);
+
+ @MessageProperties(delivery = DeliveryMode.NON_PERSISTENT)
+ void method2(String msg, Map<String, String> map);
+}
+ ]]>
+ </programlisting>
+ So, in the above example, <literal>method1()</literal> uses the default message properties, and
+ <literal>method2()</literal> overrides the defaults via the <literal>@MessageProperties</literal> annotation attached to it.
+
+ </listitem>
+
+ </itemizedlist>
+
+ </para>
+ </sect5>
+
+ <sect5>
+ Obtaining the current message :
+ <para>
+ Sometimes you may need to access the real JMS message. Maybe you need to obtain the replyTo destination or set an
+ acknowledgement or something. You can obtain it by using the <literal>@org.jboss.ejb3.annotation.CurrentMessage</literal> annotation.
+ <programlisting>
+ <![CDATA[
+ at CurrentMessage
+private Message currentMessage;
+
+
+ ]]>
+ </programlisting>
+ This annotation will inject the current JMS message into your Consumer bean before your target method is invoked.
+ </para>
+ </sect5>
+
+ <sect5>
+
+Building and Running
+ <para>
+ <note>
+ <para>
+ To build and run the example, make sure you have installed JBoss 5.x.
+ See the <xref linkend="JBossAS5">installation section</xref> for details.
+ </para>
+ </note>
+ From the command prompt, move to the "consumer" folder under the <xref linkend="EJB3_TUTORIAL_HOME">EJB3_TUTORIAL_HOME</xref>
+ <sect5>
+ Ant Users:
+ </sect5>
+ <para>
+ Make sure your JBossAS-5.x is running
+ </para>
+ <programlisting>
+ <![CDATA[
+$ ant
+$ ant run
+
+run:
+ [java] Remote method1 called
+ [java] Remote method2 called
+
+ ]]>
+ </programlisting>
+
+ <sect5>
+ Maven Users: <xref linkend="Maven_Users_TODO">TODO</xref>
+ </sect5>
+
+ <programlisting>
+$ mvn clean install
+ </programlisting>
+
+ </para>
+ </sect5>
+
+
+</chapter>
Added: projects/ejb3/trunk/docs/tutorial/guide/en/modules/partial_deployment_descriptor.xml
===================================================================
--- projects/ejb3/trunk/docs/tutorial/guide/en/modules/partial_deployment_descriptor.xml (rev 0)
+++ projects/ejb3/trunk/docs/tutorial/guide/en/modules/partial_deployment_descriptor.xml 2009-02-02 10:47:55 UTC (rev 83772)
@@ -0,0 +1,322 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<chapter id="Partial_deployment_descriptor">
+
+ <title>Partial Deployment Descriptors</title>
+
+ <para>
+ EJB 3.0 allows for partial deployment descriptors to augment or override the behavior of source code annotations. This tutorial describes
+ the use of partial deployment descriptors.
+ </para>
+ <sect5>
+ Overview :
+ <para>
+ Beans in EJB 3.0 can be specified via source code annotations and/or a deployment descriptor. The deployment descriptor is used to
+ augment or override the source code annotations. There are some limitations on which annotations may be overridden, however.
+ The annotations that specify the bean itself (e.g. <literal>@Stateless</literal>, <literal>@Stateful</literal>,
+ <literal>@MessageDriven</literal>, <literal>@Service</literal>, <literal>@Consumer</literal>) cannot be overridden.
+ The EJB 3.0 <literal>ejb-jar.xml</literal> deployment descriptor xsd specifies the majority of tags as optional in order to
+ support annotation augmentation and overrides. The deployment descriptor does not need to specify all of the required information,
+ just that additional information to override or augment the source code annotations.
+ </para>
+ </sect5>
+ <sect5>
+ Example :
+ <para>
+ This section contains examples of complete and partial deployment descriptors for completely specifying or overriding
+ specific behaviors of EJBs.
+ </para>
+ <sect5>
+ Complete deployment descriptor :
+ <para>
+ Take a look at the <literal>META-INF/ejb-jar.xml</literal>. The ejb-jar.xml in this tutorial configures the <literal>CompleteXMLDD</literal>
+ bean only through the deployment descriptor. The <literal>PartialXMLDD</literal> bean is configured through the deployment descriptor
+ as well as through annotations.
+ <programlisting>
+ <![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+ http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+ version="3.0">
+ <description>Partial deployment descriptors for EJB in JBoss</description>
+ <display-name>Partial deployment descriptors</display-name>
+ <enterprise-beans>
+ <session>
+ <ejb-name>CompleteXMLDD</ejb-name>
+ <business-remote>org.jboss.tutorial.partial_deployment_descriptor.bean.CompleteXMLDD</business-remote>
+ <ejb-class>org.jboss.tutorial.partial_deployment_descriptor.bean.CompleteXMLDDBean</ejb-class>
+ <session-type>Stateless</session-type>
+ <transaction-type>Container</transaction-type>
+ <ejb-ref>
+ <ejb-ref-name>ejb/PartialXMLDD</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <mapped-name>PartialXMLDD/remote</mapped-name>
+ <injection-target>
+ <injection-target-class>org.jboss.tutorial.partial_deployment_descriptor.bean.CompleteXMLDDBean</injection-target-class>
+ <injection-target-name>partialXMLDDBean</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <resource-ref>
+ <res-ref-name>TimerService</res-ref-name>
+ <res-type>javax.ejb.TimerService</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <injection-target>
+ <injection-target-class>org.jboss.tutorial.partial_deployment_descriptor.bean.CompleteXMLDDBean</injection-target-class>
+ <injection-target-name>timerService</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <post-construct>
+ <lifecycle-callback-class>org.jboss.tutorial.partial_deployment_descriptor.bean.ExternalCallbackListener</lifecycle-callback-class>
+ <lifecycle-callback-method>postConstruct</lifecycle-callback-method>
+ </post-construct>
+
+ <security-identity>
+ <run-as>
+ <role-name>admin</role-name>
+ </run-as>
+ </security-identity>
+ </session>
+ <session>
+ <ejb-name>PartialXMLDD</ejb-name>
+ <business-remote>org.jboss.tutorial.partial_deployment_descriptor.bean.PartialXMLDD</business-remote>
+ <ejb-class>org.jboss.tutorial.partial_deployment_descriptor.bean.PartialXMLDDBean</ejb-class>
+ <session-type>Stateful</session-type>
+ <init-method>
+ <create-method>
+ <method-name>create</method-name>
+ </create-method>
+ <bean-method>
+ <method-name>init</method-name>
+ </bean-method>
+ </init-method>
+ <remove-method>
+ <bean-method>
+ <method-name>remove</method-name>
+ </bean-method>
+ </remove-method>
+ <transaction-type>Container</transaction-type>
+
+ <env-entry>
+ <env-entry-name>id</env-entry-name>
+ <env-entry-type>java.lang.String</env-entry-type>
+ <env-entry-value>5678</env-entry-value>
+ </env-entry>
+ <resource-ref>
+ <res-ref-name>DefaultDS</res-ref-name>
+ <res-type>javax.sql.DataSource</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <injection-target>
+ <injection-target-class>org.jboss.tutorial.partial_deployment_descriptor.bean.PartialXMLDDBean</injection-target-class>
+ <injection-target-name>ds</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ </session>
+ </enterprise-beans>
+ <interceptors>
+ <interceptor>
+ <interceptor-class>org.jboss.tutorial.partial_deployment_descriptor.bean.FirstInterceptor</interceptor-class>
+ <around-invoke>
+ <method-name>interceptorMethod</method-name>
+ </around-invoke>
+ </interceptor>
+ <interceptor>
+ <interceptor-class>org.jboss.tutorial.partial_deployment_descriptor.bean.SecondInterceptor</interceptor-class>
+ </interceptor>
+ </interceptors>
+ <assembly-descriptor>
+ <security-role>
+ <role-name>admin</role-name>
+ </security-role>
+ <security-role>
+ <role-name>normal</role-name>
+ </security-role>
+ <method-permission>
+ <role-name>normal</role-name>
+ <method>
+ <ejb-name>CompleteXMLDD</ejb-name>
+ <method-name>sayHello</method-name>
+ </method>
+ </method-permission>
+ <method-permission>
+ <unchecked/>
+ <method>
+ <ejb-name>CompleteXMLDD</ejb-name>
+ <method-name>sayBye</method-name>
+ </method>
+ </method-permission>
+ <method-permission>
+ <role-name>admin</role-name>
+ <method>
+ <ejb-name>PartialXMLDD</ejb-name>
+ <method-name>echoMessage</method-name>
+ </method>
+ <method>
+ <ejb-name>PartialXMLDD</ejb-name>
+ <method-name>changeMessage</method-name>
+ </method>
+ </method-permission>
+ <container-transaction>
+ <method>
+ <ejb-name>CompleteXMLDD</ejb-name>
+ <method-name>greetWithNotSupportedTransaction</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction>
+ <method>
+ <ejb-name>CompleteXMLDD</ejb-name>
+ <method-name>greetWithRequiredTransaction</method-name>
+ <method-params>
+ <method-param>java.lang.String</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <interceptor-binding>
+ <ejb-name>CompleteXMLDD</ejb-name>
+ <interceptor-class>org.jboss.tutorial.partial_deployment_descriptor.bean.FirstInterceptor</interceptor-class>
+ <interceptor-class>org.jboss.tutorial.partial_deployment_descriptor.bean.SecondInterceptor</interceptor-class>
+ </interceptor-binding>
+ <exclude-list>
+ <method>
+ <ejb-name>CompleteXMLDD</ejb-name>
+ <method-name>uncallableMethod</method-name>
+ </method>
+ </exclude-list>
+
+ </assembly-descriptor>
+
+</ejb-jar>
+
+ ]]>
+ </programlisting>
+ </para>
+ </sect5>
+ <sect5>
+ Transactions :
+ <para>
+ The following <literal>ejb-jar.xml</literal> file overrides any <literal>@TransactionAttribute</literal> annotations for the
+ <literal>greetWithNotSupportedTransaction</literal> method of the <literal>CompleteXMLDD</literal> bean and adds a
+ <literal>@TransactionAttribute</literal> annotation for <literal>NOT SUPPORTED</literal>.
+ <programlisting>
+ <![CDATA[
+ at TransactionAttribute (TransactionAttributeType.REQUIRES_NEW)
+public String greetWithNotSupportedTransaction(String name)
+{
+
+...
+<container-transaction>
+ <method>
+ <ejb-name>CompleteXMLDD</ejb-name>
+ <method-name>greetWithNotSupportedTransaction</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+</container-transaction>
+...
+ ]]></programlisting>
+ </para>
+ </sect5>
+ <sect5>
+ References :
+ <para>
+ The following <literal>ejb-jar.xml</literal> file creates a EJB reference and injects the EJB to the injection
+ target of the <literal>partialXMLDDBean</literal> member variable.
+ <programlisting><![CDATA[
+<ejb-name>CompleteXMLDD</ejb-name>
+...
+<ejb-ref>
+ <ejb-ref-name>ejb/PartialXMLDD</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <mapped-name>PartialXMLDD/remote</mapped-name>
+ <injection-target>
+ <injection-target-class>org.jboss.tutorial.partial_deployment_descriptor.bean.CompleteXMLDDBean</injection-target-class>
+ <injection-target-name>partialXMLDDBean</injection-target-name>
+ </injection-target>
+</ejb-ref>
+...
+ ]]></programlisting>
+ </para>
+ </sect5>
+ <sect5>
+ Callbacks :
+ <para>
+ The following <literal>ejb-jar.xml</literal> file adds a <literal>@PostConstruct</literal> annotation to the
+ <literal>postConstruct</literal> method of the <literal>CompleteXMLDD</literal> bean.
+ <programlisting>
+ <![CDATA[
+<ejb-name>CompleteXMLDD</ejb-name>
+...
+<post-construct>
+ <lifecycle-callback-class>org.jboss.tutorial.partial_deployment_descriptor.bean.ExternalCallbackListener</lifecycle-callback-class>
+ <lifecycle-callback-method>postConstruct</lifecycle-callback-method>
+</post-construct>
+...
+ ]]>
+ </programlisting>
+ </para>
+ </sect5>
+ </sect5>
+
+ <sect5>
+
+Building and Running
+ <para>
+ <note>
+ <para>
+ To build and run the example, make sure you have installed JBoss 5.x.
+ See the <xref linkend="JBossAS5">installation section</xref> for details.
+ </para>
+ </note>
+ From the command prompt, move to the "partial_deployment_descriptor" folder under the <xref linkend="EJB3_TUTORIAL_HOME">EJB3_TUTORIAL_HOME</xref>
+ <sect5>
+ Ant Users:
+ </sect5>
+ <para>
+ Make sure your JBossAS-5.x is running
+ </para>
+ <programlisting>
+ <![CDATA[
+$ ant
+$ ant run
+
+run:
+ [java] jai is a normal user
+ [java] Hello, jai. I am the CompleteXMLDDBean. I have the following resources with me:
+ [java] Timer Service : org.jboss.ejb3.timerservice.jboss.TimerServiceFacade at 184a6b9
+ [java] PartialXMLDD Bean : Proxy to jboss.j2ee:jar=jboss-ejb3-tutorial-partial_deployment_descriptor.jar,name=PartialXMLDD,service=EJB3 implementing [interface org.jboss.ejb3.proxy.intf.EjbProxy, interface org.jboss.tutorial.partial_deployment_descriptor.bean.PartialXMLDD, interface org.jboss.ejb3.proxy.intf.StatefulSessionProxy, interface org.jboss.ejb3.proxy.intf.SessionProxy]
+ [java]
+ [java] Welcome jai, you are in a method with no transaction supported
+ [java] Welcome jai, you are in a method with a REQUIRED transaction
+ [java] Bye, jai. Hope to see you again
+ [java] We'll try calling an uncallable method
+ [java] Caught expected exception : Caller unauthorized
+ [java] bill is an admin
+ [java] Sending Hello World message to bean. We expect the bean to change it
+ [java] This message has been changed
+ [java] Now calling echo message
+ [java] Hello World
+ [java] We are done with the bean, let's remove it
+ [java] Bean removed
+
+
+ ]]>
+ </programlisting>
+
+ <sect5>
+ Maven Users: <xref linkend="Maven_Users_TODO">TODO</xref>
+ </sect5>
+
+ <programlisting>
+$ mvn clean install
+ </programlisting>
+
+ </para>
+ </sect5>
+
+
+</chapter>
+
Property changes on: projects/ejb3/trunk/docs/tutorial/guide/en/modules/partial_deployment_descriptor.xml
___________________________________________________________________
Name: svn:executable
+ *
Modified: projects/ejb3/trunk/docs/tutorial/guide/en/modules/ssl.xml
===================================================================
--- projects/ejb3/trunk/docs/tutorial/guide/en/modules/ssl.xml 2009-02-02 10:46:50 UTC (rev 83771)
+++ projects/ejb3/trunk/docs/tutorial/guide/en/modules/ssl.xml 2009-02-02 10:47:55 UTC (rev 83772)
@@ -116,7 +116,7 @@
]]>
</programlisting>
- <literal>alias</literal> is the name ("ejb2-ssl") of the key pair within the keystore. <literal>keypass</literal>
+ <literal>alias</literal> is the name ("ejb3-ssl") of the key pair within the keystore. <literal>keypass</literal>
is the password ("opensource") for the keystore, and <literal>keystore</literal> specifies the location ("localhost.keystore") of the keystore to create/add to.
</para>
<para>
More information about the jboss-cvs-commits
mailing list