Author: laubai
Date: 2009-11-24 02:06:18 -0500 (Tue, 24 Nov 2009)
New Revision: 11667
Modified:
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Conversations.xml
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Dependencies.xml
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Elenhancements.xml
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Framework.xml
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Gettingstarted.xml
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Remoting.xml
Log:
Edited chapters for CP07.
Modified: tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Conversations.xml
===================================================================
---
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Conversations.xml 2009-11-24
06:41:27 UTC (rev 11666)
+++
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Conversations.xml 2009-11-24
07:06:18 UTC (rev 11667)
@@ -15,29 +15,18 @@
</para>
<itemizedlist>
- <listitem>
- <para>
- The idea of a <emphasis>workspace</emphasis>, which I
- encountered in a project for the Victorian government in
- 2002. In this project I was forced to implement workspace
- management on top of Struts, an experience I pray never
- to repeat.
+ <listitem>
+ <para>
+ The idea of a <emphasis>workspace</emphasis>.
</para>
- </listitem>
+ </listitem>
<listitem>
<para>
The idea of an <emphasis>application transaction</emphasis>
with optimistic semantics, and the realization that existing
frameworks based around a stateless architecture could not
provide effective management of extended persistence contexts.
- (The Hibernate team is truly fed up with copping the blame for
- <literal>LazyInitializationException</literal>s, which are
- not really Hibernate's fault, but rather the fault of the
- extremely limiting persistence context model supported by
- stateless architectures such as the Spring framework or the
- traditional <emphasis>stateless session facade</emphasis>
- (anti)pattern in J2EE.)
- </para>
+ </para>
</listitem>
<listitem>
<para>
@@ -49,7 +38,7 @@
<para>
By unifying these ideas and providing deep support in the framework,
we have a powerful construct that lets us build richer and more efficient
- applications with less code than before.
+ applications with less code.
</para>
<section>
@@ -170,7 +159,7 @@
</h:commandLink>]]></programlisting>
<para>
- Note that disabling conversation context propagation is absolutely not the
+ Note that disabling conversation context propagation is not the
same thing as ending the conversation.
</para>
@@ -587,8 +576,8 @@
</quote>
</para>
<para>
- With a natural conversation its really easy to have the user
- rejoin the existing conversation, and pick up where they left
+ With a natural conversation it is easy to have the user
+ rejoin the existing conversation and pick up where they left
off - just have them to rejoin the payForItem conversation
with the itemId as the conversation id.
</para>
@@ -598,28 +587,20 @@
</para>
<para>
- For me this consists of a navigable
- hierarchy (I can navigate by editing the url) and a meaningful
- URL (like this Wiki uses - so don't identify things by random
- ids). For some applications user friendly URLs are less
+ This consists of a navigable
+ hierarchy (which can be navigated by editing the url) and a meaningful
+ URL. For some applications user-friendly URLs are less
important, of course.
</para>
<para>
- With a natural conversations, when you are building your hotel
- booking system (or, of course, whatever your app is) you can
- generate a URL like
+ With a natural conversations you can generate a URL like
<literal>http://seam-hotels/book.seam?hotel=BestWesternAntwerpen</literal>
(of course, whatever parameter <literal>hotel</literal>
maps
to on your domain model must be unique) and with URLRewrite
easily transform this to
http://seam-hotels/book/BestWesternAntwerpen.
</para>
-
- <para>
- Much better!
- </para>
-
</section>
<section>
<title>Creating a natural conversation</title>
@@ -692,7 +673,7 @@
<para>
From here, we can see that invoking the action
<literal>#{bidAction.placeBid}</literal>
- from our auction view (by the way, all these examples are taken from the
seamBay example in Seam),
+ from our auction view (all examples are taken from the seamBay example in
Seam),
that we will be redirected to <literal>/bid.xhtml</literal>,
which, as we saw previously,
is configured with the natural conversation
<literal>PlaceBid</literal>. The declaration for
our action method looks like this:
@@ -749,7 +730,7 @@
Include one or more of the standard workspace switcher JSP
or facelets fragments in your pages. The standard fragments
support workspace management via a drop down menu, a list
- of conversations, or breadcrumbs.
+ of conversations or breadcrumbs.
</para>
</listitem>
</itemizedlist>
@@ -782,7 +763,7 @@
<para>
Note that if this file is missing, the Seam application will
- continue to work perfectly! The only missing functionality
+ continue to work. The only missing functionality
will be the ability to switch workspaces.
</para>
@@ -833,7 +814,7 @@
<para>
Include the following fragment in your JSP or facelets page
to get a drop-down menu that lets you switch to any
- current conversation, or to any other page of the application:
+ current conversation or to any other page of the application:
</para>
<programlisting role="XHTML"><![CDATA[<h:selectOneMenu
value="#{switcher.conversationIdOrOutcome}">
@@ -953,8 +934,8 @@
<para>
Conversational components have one minor limitation: they cannot be used to
hold bindings
- to JSF components. (We generally prefer not to use this feature of JSF unless
absolutely
- necessary, since it creates a hard dependency from application logic to the
view.) On a
+ to JSF components. It is best to not to use this feature unless absolutely
necessary
+ as it creates a hard dependency from application logic to the view. On a
postback request, component bindings are updated during the Restore View
phase,
before the Seam conversation context has been restored.
</para>
@@ -1029,21 +1010,19 @@
Conversational components don't allow real concurrent access therefore
Seam queues each request to process them serially. This allows each
request to be executed in a deterministic fashion. However, a simple
- queue isn't that great — firstly, if a method is, for some
- reason, taking a very long time to complete, running it over and over
- again whenever the client generates a request is bad idea (potential
- for Denial of Service attacks), and, secondly, AJAX is often to used
- to provide a quick status update to the user, so continuing to run the
- action after a long time isn't useful.
+ queue is not optimal — firstly, if a method is taking a very long
+ time to complete, running it repeatedly whenever the client generates a
+ request creates the potential for Denial of Service attacks), and,
+ secondly, AJAX is often to used to provide a quick status update to the
+ user, so continuing to run the action after a long time is not effective.
</para>
<para>
Therefore, when you are working inside a long running conversation,
Seam queues the action event for a period of time (the concurrent
request timeout); if it can't process the event in time, it creates a
- temporary conversation and prints out a message to the user to let them
- know what's going on. It's therefore very important not to flood the
- server with AJAX events!
+ temporary conversation and prints out a message to the user to inform them.
+ It is therefore important not to flood the server with AJAX events.
</para>
<para>
Modified: tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Dependencies.xml
===================================================================
---
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Dependencies.xml 2009-11-24
06:41:27 UTC (rev 11666)
+++
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Dependencies.xml 2009-11-24
07:06:18 UTC (rev 11667)
@@ -907,7 +907,7 @@
<para>
- Maven offers support for transitive dependency management and can be used
+ <application>Maven</application> offers support for transitive dependency
management and can be used
to manage the dependencies of your Seam project. You can use Maven Ant
Tasks to integrate Maven into your Ant build, or can use Maven to build and
deploy your project.
@@ -919,8 +919,8 @@
</para>
<para>
- Released versions of Seam are available in
http://repository.jboss.org/maven2
- and nightly snapshots are available in
http://snapshots.jboss.org/maven2.
+ Released versions of Seam are available in <ulink type="http"
url="http://repository.jboss.org/maven2"></ulink>
+ and nightly snapshots are available in <ulink type="http"
url="http://snapshots.jboss.org/maven2"></ulink>.
</para>
<para>
Modified: tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Elenhancements.xml
===================================================================
---
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Elenhancements.xml 2009-11-24
06:41:27 UTC (rev 11666)
+++
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Elenhancements.xml 2009-11-24
07:06:18 UTC (rev 11667)
@@ -62,14 +62,14 @@
are stored (for example, <literal>hotel.id</literal> and
<literal>user.username</literal>), and evaluated (as value
expressions) when the page is submitted. You can't pass objects as
- parameters!
+ parameters.
</para>
<para>
You must ensure that the parameters are available not only when the
- page is rendered, but also when it is submittedIf the arguments can
+ page is rendered, but also when it is submitted. If the arguments can
not be resolved when the page is submitted the action method will be
- called with <literal>null</literal> arguments!
+ called with <literal>null</literal> arguments.
</para>
<para>
@@ -173,8 +173,7 @@
types are passed in by JSF. In the case of a method binding,
JSF assumes that there are no parameters to pass. With this
extension, we can't know the parameter types until after the
- expression has been evaluated. This has two minor
- consequences:
+ expression has been evaluated. This has two consequences:
</para>
<itemizedlist>
Modified: tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Framework.xml
===================================================================
--- tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Framework.xml 2009-11-24
06:41:27 UTC (rev 11666)
+++ tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Framework.xml 2009-11-24
07:06:18 UTC (rev 11667)
@@ -51,8 +51,7 @@
</framework:entity-home>]]></programlisting>
<para>
- If that looks a bit too much like "programming in XML" for
- your taste, you can use extension instead:
+ If you prefer, you can use extension instead:
</para>
<programlisting role="JAVA"><![CDATA[
@@ -68,8 +67,8 @@
}]]></programlisting>
<para>
- The second approach has one huge advantage: you can easily add
- extra functionality, and override the built-in functionality
+ The second approach has the advantage of allowing you to easily add
+ extra functionality and override the built-in functionality
(the framework classes were carefully designed for extension
and customization).
</para>
@@ -183,9 +182,9 @@
</h:form>]]></programlisting>
<para>
- Usually, it is much nicer to be able to refer to the
<literal>Person</literal>
- merely as <literal>person</literal>, so let's make that
possible by adding a
- line to <literal>components.xml</literal>:
+ Usually, it is preferable to be able to refer to the
<literal>Person</literal>
+ merely as <literal>person</literal>. Adding a line to
+ <literal>components.xml</literal> makes this possible:
</para>
<programlisting role="XML"><![CDATA[<factory
name="person"
@@ -262,8 +261,8 @@
</para>
<para>
- Suppose we need to create <literal>Person</literal> entries with
their
- nationality initialized. We can do that easily, via configuration:
+ Should we need to create <literal>Person</literal> entries with
their
+ nationality initialized, we can do so easily, via configuration:
</para>
<programlisting role="XML"><![CDATA[<factory
name="person"
@@ -391,14 +390,13 @@
Person_updated=Person #{person.firstName} #{person.lastName}
updated]]></programlisting>
<para>
- This enables internationalization, and keeps your code and configuration
clean of
+ This enables internationalization and keeps your code and configuration clean
of
presentation concerns.
</para>
<para>
- The final step is to add validation functionality to the page, using
- <literal><s:validateAll></literal> and
<literal><s:decorate></literal>,
- but I'll leave that for you to figure out.
+ The final step is to add validation functionality to the page using
+ <literal><s:validateAll></literal> and
<literal><s:decorate></literal>.
</para>
</section>
@@ -593,10 +591,6 @@
}]]></programlisting>
- <para>
- As you can see, its not an earthshattering improvement...
- </para>
-
</section>
-</chapter>
\ No newline at end of file
+</chapter>
Modified:
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml
===================================================================
---
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml 2009-11-24
06:41:27 UTC (rev 11666)
+++
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Getting_Started_With_JBoss_Tools.xml 2009-11-24
07:06:18 UTC (rev 11667)
@@ -13,10 +13,6 @@
</para>
<para>
- In short, if you are an Eclipse user, then you'll want JBoss Tools!
- </para>
-
- <para>
JBoss Tools, as with seam-gen, works best with JBoss AS, but it's possible
with a few tweaks to get your app running on other application servers.
The changes are much like those described for seam-gen later in this
@@ -57,9 +53,7 @@
<para>
First, enter a name for your new project. For this tutorial, we're
- going to use
- <literal>helloworld</literal>
- .
+ going to use <literal>helloworld</literal>.
</para>
@@ -299,7 +293,7 @@
<para>
Finally, review the package names for your generated beans, and if you
- are happy, click <emphasis>Finish</emphasis>:
+ are satisfied, click <emphasis>Finish</emphasis>:
</para>
<mediaobject>
@@ -367,11 +361,11 @@
</imageobject>
</mediaobject>
- <para>
+<!-- <para>
If you don't want to bother with this stuff now, you don't have to—come
back to it later, when you get your first
<literal>OutOfMemoryException</literal>.
- </para>
+ </para> -->
<para>
To start JBoss, and deploy the project, just right click on the server
@@ -391,10 +385,9 @@
</mediaobject>
<para>
- Don't get scared by the XML configuration documents that were generated
- into the project directory. They are mostly standard Java EE stuff, the
- stuff you need to create once and then never look at again, and they
- are 90% the same between all Seam projects.
+ The XML configuration documents generated in the project directory are
+ predominately standard Java EE. They are 90% the same between all Seam
+ projects.
</para>
</section>
@@ -560,10 +553,9 @@
<para>
Then go to <literal>http://localhost:8080/helloworld</literal>. You
can
- browse the database, edit existing objects, and create new objects. If
- you look at the generated code, you'll probably be amazed how simple it
- is! Seam was designed so that data access code is easy to write by
- hand, even for people who don't want to cheat by using reverse
+ browse the database, edit existing objects, and create new objects.
+ Seam was designed so that data access code is easy to write by
+ hand, even for people who don't want to use reverse
engineering.
</para>
</section>
Modified: tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Gettingstarted.xml
===================================================================
---
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Gettingstarted.xml 2009-11-24
06:41:27 UTC (rev 11666)
+++
tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Gettingstarted.xml 2009-11-24
07:06:18 UTC (rev 11667)
@@ -4,21 +4,17 @@
<chapter id="gettingstarted">
<title>Getting started with Seam, using seam-gen</title>
- <para>The Seam distribution includes a command line utility that makes it
really easy to set up an Eclipse project,
- generate some simple Seam skeleton code, and reverse engineer an application from
a preexisting database.</para>
+ <para>The Seam distribution includes a command line utility that makes it easy
to set up an Eclipse project,
+ generate some simple Seam skeleton code and reverse engineer an application from
a preexisting database.</para>
- <para>This is the easy way to get your feet wet with Seam, and gives you some
ammunition for next time you find
- yourself trapped in an elevator with one of those tedious Ruby guys ranting about
how great and wonderful his
- new toy is for building totally trivial applications that put things in
databases.</para>
-
- <para>In this release, seam-gen works best for people with JBoss AS. You can
use the generated project with other
+ <para>In this release, seam-gen works best for people with JBoss AS. You can
use the generated project with other
J2EE or Java EE 5 application servers by making a few manual changes to the
project configuration.</para>
<para>You <emphasis>can</emphasis> use seam-gen without Eclipse,
but in this tutorial, we want to show you how to
use it in conjunction with Eclipse for debugging and integration testing. If you
don't want to install Eclipse,
you can still follow along with this tutorial—all steps can be performed from the
command line.</para>
- <para>Seam-gen is basically just a big ugly Ant script wrapped around Hibernate
Tools, together with some templates.
+ <para>Seam-gen is basically just an Ant script wrapped around Hibernate Tools
together with some templates.
That makes it easy to customize if you need to.</para>
<section>
@@ -44,8 +40,6 @@
<para>If you're running JBoss from the command line, you can configure
the JVM options in
<literal>bin/run.conf</literal>.</para>
- <para>If you don't want to bother with this stuff now, you don't
have to—come back to it later, when you get
- your first <literal>OutOfMemoryException</literal>.</para>
</section>
<section>
@@ -166,9 +160,11 @@
You can edit this page, or the template, in eclipse, and see the results
<emphasis>immediately</emphasis>,
by clicking refresh in your browser.</para>
- <para>Don't get scared by the XML configuration documents that were
generated into the project directory. They
- are mostly standard Java EE stuff, the stuff you need to create once and then
never look at again, and they
- are 90% the same between all Seam projects. (They are so easy to write that
even seam-gen can do it.)</para>
+ <para>
+ The XML configuration documents generated in the project directory are
+ predominately standard Java EE. They are 90% the same between all Seam
+ projects.
+ </para>
<para>The generated project includes three database and persistence
configurations. The
<literal>persistence-test.xml</literal> and
@@ -360,7 +356,7 @@
this may be accomplished by touching the top level deployment descriptor:
<literal>application.xml</literal>
for an EAR deployment, or <literal>web.xml</literal> for a WAR
deployment.)</para>
- <para>But if you really want a fast edit/compile/test cycle, Seam supports
incremental redeployment of JavaBean
+ <para>If you want a fast edit/compile/test cycle, Seam supports incremental
redeployment of JavaBean
components. To make use of this functionality, you must deploy the JavaBean
components into the
<literal>WEB-INF/dev</literal> directory, so that they will
be loaded by a special Seam classloader,
instead of by the WAR or EAR classloader.</para>
@@ -369,8 +365,8 @@
<itemizedlist>
<listitem>
- <para>the components must be JavaBean components, they cannot be
EJB3 beans (we are working on fixing
- this limitation)</para>
+ <para>the components must be JavaBean components, they cannot be
EJB3 beans.
+ (This limitation is being worked on.)</para>
</listitem>
<listitem>
Modified: tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Remoting.xml
===================================================================
--- tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Remoting.xml 2009-11-24
06:41:27 UTC (rev 11666)
+++ tags/JBPAPP_4_3_CP07_FP_CR1a/doc/Seam_Reference_Guide/en-US/Remoting.xml 2009-11-24
07:06:18 UTC (rev 11667)
@@ -3,11 +3,9 @@
<chapter id="remoting">
<title>Remoting</title>
- <para> Seam provides a convenient method of remotely accessing components from a
web page, using AJAX (Asynchronous
- Javascript and XML). The framework for this functionality is provided with almost no
up-front development effort -
- your components only require simple annotating to become accessible via AJAX. This
chapter describes the steps
- required to build an AJAX-enabled web page, then goes on to explain the features of
the Seam Remoting framework in
- more detail. </para>
+ <para>
+ Seam uses Asynchronous JavaScript and XML (AJAX) to remotely access components from a
web page. The framework for this functionality requires very little development effort —
you can make your components AJAX-accessible with simple annotations. This chapter
describes the steps required to build an AJAX-enabled web page, and explains the Seam
Remoting framework in further detail.
+ </para>
<section>
<title>Configuration</title>
@@ -114,15 +112,13 @@
// ]]>]]><![CDATA[
</script>]]></programlisting>
- <para> We're done! Deploy your application and browse to your page. Click
the button, and enter a name when
- prompted. A message box will display the hello message confirming that the call
was successful. If you want to
- save some time, you'll find the full source code for this Hello World example
in Seam's
- <literal>/examples/remoting/helloworld</literal> directory.
</para>
+ <para>
+ Now deploy your application and browse to your page. Click the button, and enter
a name when prompted. A message box will display the "Hello" message, confirming
the call's success. (You can find the full source code for this Hello World example in
Seam's <filename>/examples/remoting/helloworld</filename> directory.)
+ </para>
- <para> So what does the code of our script actually do? Let's break it
down into smaller pieces. To start with,
- you can see from the Javascript code listing that we have implemented two methods
- the first method is
- responsible for prompting the user for their name and then making a remote
request. Take a look at the following
- line: </para>
+ <para>
+ You can see from the JavaScript code listing that we have implemented two
methods. The first method prompts the user for their name, and makes a remote request.
Look at the following line:
+ </para>
<programlisting
role="XHTML">Seam.Component.getInstance("helloAction").sayHello(name,
sayHelloCallback);</programlisting>
@@ -131,16 +127,13 @@
against this stub, which is exactly what happens with the remainder of the line:
<literal>sayHello(name,
sayHelloCallback);</literal>. </para>
- <para> What this line of code in its completeness does, is invoke the
<literal>sayHello</literal> method of our
- component, passing in <literal>name</literal> as a parameter. The
second parameter,
- <literal>sayHelloCallback</literal> isn't a parameter of our
component's <literal>sayHello</literal> method,
- instead it tells the Seam Remoting framework that once it receives the response
to our request, it should pass
- it to the <literal>sayHelloCallback</literal> Javascript method. This
callback parameter is entirely optional,
- so feel free to leave it out if you're calling a method with a
<literal>void</literal> return type or if you
- don't care about the result. </para>
+ <para>
+ The whole line invokes the <literal>sayHello</literal> method of our
component, passing in name as a parameter. The second parameter,
<literal>sayHelloCallback</literal>, is not a parameter of our component's
<literal>sayHello</literal> method — it tells the Seam Remoting framework
that, once a response to the request is received, the response should be passed to the
<literal>sayHelloCallback</literal> JavaScript method. (This callback
parameter is optional; you can leave it out if you are calling a method with a void return
type, or if the result of the request is not important.)
+ </para>
- <para> The <literal>sayHelloCallback</literal> method, once
receiving the response to our remote request then pops
- up an alert message displaying the result of our method call. </para>
+ <para>
+ When the sayHelloCallback method receives the response to our remote request, it
displays an alert message with the result of our method call.
+ </para>
</section>
@@ -243,10 +236,9 @@
<section>
<title>Seam.Remoting.createType()</title>
- <para> If your application contains or uses Javabean classes that
aren't Seam components, you may need to create
- these types on the client side to pass as parameters into your component
method. Use the
- <literal>createType()</literal> method to create an instance of
your type. Pass in the fully qualified Java
- class name as a parameter: </para>
+ <para>
+ If your application contains or uses JavaBean classes that are not Seam
components, you may need to create these types on the client side to pass as parameters
into your component method. Use the <methodname>createType()</methodname>
method to create an instance of your type. Pass in the fully-qualified Java class name as
a parameter:
+ </para>
<programlisting role="XHTML">var widget =
Seam.Remoting.createType("com.acme.widgets.MyWidget");</programlisting>
</section>
@@ -313,12 +305,9 @@
stubs are behavioural, and are used to execute methods against your session bean
components, while type stubs
contain state and represent the types that can be passed in as parameters or
returned as a result. </para>
- <para> The type of client stub that is generated depends on the type of your
Seam component. If the component is a
- session bean, then an executable stub will be generated, otherwise if it's an
entity or JavaBean, then a type stub
- will be generated. There is one exception to this rule; if your component is a
JavaBean (ie it is not a session
- bean nor an entity bean) and any of its methods are annotated with @WebRemote, then
an executable stub will be
- generated for it instead of a type stub. This allows you to use remoting to call
methods of your JavaBean
- components in a non-EJB environment where you don't have access to session
beans. </para>
+ <para>
+ The type of stub that is generated depends upon the type of your Seam component. If
the component is a session bean, an executable stub will be generated. If it is an entity
or JavaBean, a type stub will be generated. However, if your component is a JavaBean and
any of its methods are annotated with <literal>@WebRemote</literal>, an
executable stub will be generated. This lets you call your JavaBean component's
methods in a non-EJB environment, where you do not have access to session beans.
+ </para>
</section>
@@ -337,19 +326,16 @@
call <literal>Seam.Remoting.getContext().getConversationId()</literal>.
To set the conversation ID before making a
request, call
<literal>Seam.Remoting.getContext().setConversationId()</literal>.
</para>
- <para> If the conversation ID hasn't been explicitly set with
- <literal>Seam.Remoting.getContext().setConversationId()</literal>,
then it will be automatically assigned the
- first valid conversation ID that is returned by any remoting call. If you are
working with multiple conversations
- within your page, then you may need to explicitly set the conversation ID before
each call. If you are working
- with just a single conversation, then you don't need to do anything special.
</para>
+ <para>
+ If the conversation ID has not been explicitly set with
Seam.Remoting.getContext().setConversationId(), then the first valid conversation ID
returned by any remoting call is assigned automatically. If you are working with multiple
conversations within your page, you may need to set your conversation ID explicitly before
each call. Single conversations do not require explicit ID setting.
+ </para>
</section>
<section>
<title>Remote calls within the current conversation scope</title>
- <para> In some circumstances it may be required to make a remote call within
the scope of the
- current view's conversation. To do this, you must explicitly set the
conversation ID to that
- of the view before making the remote call. This small snippet of JavaScript will
set the
- conversation ID that is used for remoting calls to the current view's
conversation ID: </para>
+ <para>
+ Under some circumstances, you may need to make a remote call within the scope of
the current view's conversation. To do so, you must explicitly set the conversation ID
to that of the view before making the remote call. The following JavaScript will set the
conversation ID being used for remote calls to the current view's conversation ID:
+ </para>
<programlisting
role="XHTML"><![CDATA[Seam.Remoting.getContext().setConversationId(
#{conversation.id} );]]></programlisting>
</section>