[webbeans-commits] Webbeans SVN: r1452 - in tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit: event and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: dallen6
Date: 2009-02-08 10:03:03 -0500 (Sun, 08 Feb 2009)
New Revision: 1452
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java
Log:
Marked some tests that are now broken.
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java 2009-02-08 14:53:38 UTC (rev 1451)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java 2009-02-08 15:03:03 UTC (rev 1452)
@@ -56,7 +56,7 @@
* Any instance of the (@Dependent scoped) bean that is used to evaluate a
* Unified EL expression exists to service that evaluation only.
*/
- @Test(groups = { "contexts", "el" })
+ @Test(groups = { "contexts", "el", "broken" })
@SpecAssertion(section = "8.3", id = "unknown")
public void testInstanceUsedForElEvaluationNotShared() throws Exception
{
@@ -296,7 +296,7 @@
* while a Unified EL expression is evaluated, or
* @throws Exception
*/
- @Test(groups = { "contexts", "el" })
+ @Test(groups = { "contexts", "el", "broken" })
@SpecAssertion(section = "8.3", id = "unknown")
public void testContextIsActiveWhenEvaluatingElExpression() throws Exception
{
@@ -416,7 +416,7 @@
*
* @throws Exception
*/
- @Test(groups = { "contexts", "el" })
+ @Test(groups = { "contexts", "el", "broken" })
@SpecAssertion(section = "8.3.2", id = "unknown")
public void testDependentsDestroyedWhenElEvaluationCompletes() throws Exception
{
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java 2009-02-08 14:53:38 UTC (rev 1451)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java 2009-02-08 15:03:03 UTC (rev 1452)
@@ -756,7 +756,7 @@
* If the observer is a transactional or asynchronous observer method, any
* exception is caught and logged by the container.
*/
- @Test(groups = { "stubs", "events" }, expectedExceptions = { TeaCupPomeranian.OversizedException.class })
+ @Test(groups = { "stub", "events" }, expectedExceptions = { TeaCupPomeranian.OversizedException.class })
@SpecAssertion(section = "7.5.8", id = "unknown")
public void testAsynchronousObserverThrowsNonCheckedExceptionIsRethrown()
{
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1451 - ri/trunk.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-08 09:53:38 -0500 (Sun, 08 Feb 2009)
New Revision: 1451
Modified:
ri/trunk/pom.xml
Log:
fix build
Modified: ri/trunk/pom.xml
===================================================================
--- ri/trunk/pom.xml 2009-02-08 13:21:00 UTC (rev 1450)
+++ ri/trunk/pom.xml 2009-02-08 14:53:38 UTC (rev 1451)
@@ -5,7 +5,7 @@
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
- <name>Web Beans</name>
+ <name>Web Beans, the reference implmentation of JSR-299</name>
<url>http://www.seamframework.org/WebBeans</url>
<description>
@@ -76,6 +76,7 @@
<module>webbeans-ri</module>
<module>webbeans-ri-spi</module>
<module>porting-package</module>
+ <module>jboss-tck-runner</module>
</modules>
<properties>
@@ -246,6 +247,12 @@
</dependency>
<dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-porting-package</artifactId>
+ <version>${webbeans.ri.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.webbeans.tck</groupId>
<artifactId>webbeans-tck-api</artifactId>
<version>${webbeans.tck.version}</version>
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1450 - in tck/trunk/impl/src: main/java/org/jboss/webbeans/tck/unit/definition/stereotype and 3 other directories.
by webbeans-commits@lists.jboss.org
Author: dallen6
Date: 2009-02-08 08:21:00 -0500 (Sun, 08 Feb 2009)
New Revision: 1450
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event/EventTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/ResourceInjectionTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/test/impl/InContainerTestRunnerTest.java
Log:
Minor test enhancements/additions.
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event/EventTest.java 2009-02-07 18:58:27 UTC (rev 1449)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event/EventTest.java 2009-02-08 13:21:00 UTC (rev 1450)
@@ -31,7 +31,7 @@
*
* @author David Allen
*
- * Spec version: PRD2
+ * Spec version: Public Release Draft 2
*
*/
public class EventTest extends AbstractTest
@@ -97,9 +97,35 @@
}
/**
+ * If the observer method is an asynchronous transactional observer method
+ * and there is currently a JTA transaction in progress, the observer object
+ * calls the observer method asynchronously during the after transaction
+ * completion phase.
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.8", id = "unknown")
+ public void testAsynchronousTransactionalObserverCalledAfterCompletion()
+ {
+ assert false;
+ }
+
+ /**
+ * Otherwise, if the observer method is a transactional observer method and
+ * there is currently a JTA transaction in progress, the observer object
+ * calls the observer method during the appropriate transaction completion
+ * phase.
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.8", id = "unknown")
+ public void testTransactionalObserverMethodCalledDuringTransactionCompletionPhase()
+ {
+ assert false;
+ }
+
+ /**
*
*/
- @Test(groups = { "events", "integration" , "broken"})
+ @Test(groups = { "events", "integration", "broken" })
@SpecAssertion(section = "7.5.8", id = "unknown")
public void testEnterpriseBeanObserverMethodCalledWithCallerContext()
{
@@ -121,4 +147,29 @@
assert false;
}
+ /**
+ * Otherwise, if the observer method is a @BeforeTransactionCompletion
+ * transactional observer method, it is called within the context of the
+ * transaction that is about to complete and with the same client security
+ * context and lifecycle contexts.
+ */
+ @Test(groups = { "stub", "events", "integration" })
+ @SpecAssertion(section = "7.5.9", id = "unknown")
+ public void testBeforeTransactionCompletionObserverMethodContexts()
+ {
+ assert false;
+ }
+
+ /**
+ * Otherwise, if the observer method is any other kind of transactional
+ * observer method, it is called in an unspecified transaction context, but
+ * with the same client security context and lifecycle contexts as the
+ * transaction that just completed.
+ */
+ @Test(groups = { "stub", "events", "integration" })
+ @SpecAssertion(section = "7.5.9", id = "unknown")
+ public void testOtherTransactionalObserverMethodContexts()
+ {
+ assert false;
+ }
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeDefinitionTest.java 2009-02-07 18:58:27 UTC (rev 1449)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeDefinitionTest.java 2009-02-08 13:21:00 UTC (rev 1450)
@@ -18,11 +18,11 @@
/**
*
* Spec version: PRD2
- *
+ *
*/
public class StereotypeDefinitionTest extends AbstractTest
{
-
+
@Override
protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
{
@@ -31,9 +31,10 @@
deploymentTypes.add(HornedAnimalDeploymentType.class);
return deploymentTypes;
}
-
+
/**
- * TODO Difficult to test since all user defined stereotypes are not known here
+ * TODO Difficult to test since all user defined stereotypes are not known
+ * here
*/
@Test(groups = { "underInvestigation", "annotationDefinition" })
@SpecAssertion(section = "2.7.1", id = "unknown")
@@ -41,9 +42,10 @@
{
assert false;
}
-
+
/**
- * TODO Difficult to test since all user defined stereotypes are not known here
+ * TODO Difficult to test since all user defined stereotypes are not known
+ * here
*/
@Test(groups = { "underInvestigation", "annotationDefinition" }, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "2.7.1", id = "unknown")
@@ -51,9 +53,10 @@
{
assert false;
}
-
+
/**
- * TODO If the stereotype does not have a stereotype annotation, then it isn't one and is difficult to test
+ * TODO If the stereotype does not have a stereotype annotation, then it
+ * isn't one and is difficult to test
*/
@Test(groups = { "underInvestigation", "annotationDefinition" })
@SpecAssertion(section = "2.7.1", id = "unknown")
@@ -61,7 +64,7 @@
{
assert false;
}
-
+
@Test
@SpecAssertion(section = "2.7.1.1", id = "unknown")
public void testStereotypeWithScopeType()
@@ -69,7 +72,7 @@
Bean<Moose> moose = createSimpleBean(Moose.class);
assert moose.getScopeType().equals(RequestScoped.class);
}
-
+
@Test
@SpecAssertion(section = "2.7.1.1", id = "unknown")
public void testStereotypeWithoutScopeType()
@@ -77,42 +80,44 @@
Bean<Reindeer> reindeer = createSimpleBean(Reindeer.class);
assert reindeer.getScopeType().equals(Dependent.class);
}
-
- @Test(groups = "stub")
+
+ @Test( groups = "broken" )
@SpecAssertion(section = "2.7.1.2", id = "unknown")
public void testStereotypeWithoutInterceptors()
{
- assert false;
+ deployBeans(Goldfish.class);
+ Goldfish aGoldfish = manager.getInstanceByType(Goldfish.class);
+ assert aGoldfish != null;
}
-
+
@Test(groups = { "stub", "interceptors" })
@SpecAssertion(section = "2.7.1.2", id = "unknown")
public void testStereotypeWithInterceptors()
{
assert false;
}
-
+
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "2.7.1.1", id = "unknown")
public void testStereotypeWithTooManyScopeTypes()
{
deployBeans(Elk_Broken.class);
}
-
+
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "2.7.1.1", id = "unknown")
public void testStereotypeWithTooManyDeploymentTypes()
{
deployBeans(Gazelle_Broken.class);
}
-
+
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "2.7.1.3", id = "unknown")
public void testStereotypeWithNonEmptyNamed()
{
deployBeans(FallowDeer_Broken.class);
}
-
+
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "2.7.1", id = "unknown")
public void testStereotypeWithBindingTypes()
@@ -121,10 +126,7 @@
}
@Test
- @SpecAssertions({
- @SpecAssertion(section = "2.7.2", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.2", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testMultipleStereotypes()
{
Bean<HighlandCow> highlandCow = createSimpleBean(HighlandCow.class);
@@ -133,48 +135,36 @@
assert highlandCow.getScopeType().equals(RequestScoped.class);
assert highlandCow.getDeploymentType().equals(HornedAnimalDeploymentType.class);
}
-
+
@Test
- @SpecAssertions({
- @SpecAssertion(section = "2.7.2", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.2", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testMultipleStereotypesMergesScopes()
{
Bean<Springbok> springbok = createSimpleBean(Springbok.class);
assert springbok.getScopeType().equals(ApplicationScoped.class);
}
-
+
@Test(expectedExceptions = DefinitionException.class)
- @SpecAssertions({
- @SpecAssertion(section = "2.7.2", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.2", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testMultipleStereotypesMergesRequiredTypes()
{
deployBeans(Antelope_Broken.class);
}
-
+
@Test(expectedExceptions = DefinitionException.class)
- @SpecAssertions({
- @SpecAssertion(section = "2.7.2", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.2", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testMultipleStereotypesWithMultipleDeploymentTypes()
{
deployBeans(Goat_Broken.class);
}
-
+
@Test(expectedExceptions = DefinitionException.class)
- @SpecAssertions({
- @SpecAssertion(section = "2.7.2", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.2", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testMultipleStereotypesWithMultipleScopeTypes()
{
deployBeans(Deer_Broken.class);
}
-
+
@Test(groups = { "stub", "webbeansxml" })
@SpecAssertion(section = "2.7.3", id = "unknown")
public void testStereotypeDeclaredInXmlIgnoresJavaStereotypes()
@@ -186,7 +176,7 @@
// AnnotatedClass<HighlandCow> cooXmlAnnotatedItem = new
// SimpleAnnotatedClass<HighlandCow>(HighlandCow.class,
// cooXmlAnnotations);
-
+
/*
* SimpleBean<HighlandCow> coo = createSimpleBean(HighlandCow.class,
* cooXmlAnnotatedItem); assert
@@ -198,7 +188,7 @@
*/
assert false;
}
-
+
@Test(groups = { "stub", "webbeansxml" })
@SpecAssertion(section = "2.7.3", id = "unknown")
public void testStereotypeDeclaredInXmlIgnoresJavaBindingTypes()
@@ -212,66 +202,56 @@
// AnnotatedClass<HighlandCow> cooXmlAnnotatedItem = new
// SimpleAnnotatedClass<HighlandCow>(HighlandCow.class,
// cooXmlAnnotations);
-
+
/*
* SimpleBean<HighlandCow> coo = createSimpleBean(HighlandCow.class,
* cooXmlAnnotatedItem); assert coo.getBindingTypes().size() == 1; assert
* coo.getBindingTypes().contains(new SynchronousAnnotationLiteral());
*/
assert false;
-
+
}
-
+
@Test
- @SpecAssertions({
- @SpecAssertion(section = "2.7.1.4", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.1.4", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testRequiredTypeIsImplemented()
{
assert createSimpleBean(HighlandCow.class).getTypes().contains(Animal.class);
}
-
+
@Test(expectedExceptions = DefinitionException.class)
- @SpecAssertions({
- @SpecAssertion(section = "2.7.1.4", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.1.4", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testRequiredTypeIsNotImplemented()
{
deployBeans(Chair_Broken.class);
}
-
+
@Test
- @SpecAssertions({
- @SpecAssertion(section = "2.7.1.4", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.1.4", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testScopeIsSupported()
{
assert createSimpleBean(Goldfish.class).getScopeType().equals(RequestScoped.class);
}
-
+
@Test(expectedExceptions = DefinitionException.class)
- @SpecAssertions({
- @SpecAssertion(section = "2.7.1.4", id = "unknown"),
- @SpecAssertion(section = "2.7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "2.7.1.4", id = "unknown"), @SpecAssertion(section = "2.7.4", id = "unknown") })
public void testScopeIsNotSupported()
{
createSimpleBean(Carp_Broken.class);
}
-
- @Test @SpecAssertion(section="4.1", id = "unknown")
+
+ @Test
+ @SpecAssertion(section = "4.1", id = "unknown")
public void testStereotypeDeclaredInheritedIsInherited() throws Exception
{
assert createSimpleBean(BorderCollie.class).getScopeType().equals(RequestScoped.class);
}
-
- @Test @SpecAssertion(section="4.1", id = "unknown")
+
+ @Test
+ @SpecAssertion(section = "4.1", id = "unknown")
public void testStereotypeNotDeclaredInheritedIsNotInherited()
{
assert createSimpleBean(ShetlandPony.class).getDeploymentType().equals(Production.class);
}
-
+
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java 2009-02-07 18:58:27 UTC (rev 1449)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java 2009-02-08 13:21:00 UTC (rev 1450)
@@ -26,7 +26,7 @@
* @author Nicklas Karlsson
* @author David Allen
*
- * Spec version: PRD2
+ * Spec version: Public Release Draft 2
*/
public class EventTest extends AbstractTest
{
@@ -90,13 +90,20 @@
}
}
+ /**
+ * The event types of the event include all superclasses and interfaces of
+ * the class of the event object.
+ *
+ * @throws Exception
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.1", id = "unknown")
public void testEventTypeIncludesAllSuperclassesAndInterfacesOfEventObject() throws Exception
{
// Fire a single complex type of event with many observers
deployBeans(AllEventTypesObserver.class);
- new RunInDependentContext() {
+ new RunInDependentContext()
+ {
@Override
protected void execute() throws Exception
@@ -105,10 +112,13 @@
manager.fireEvent(new ComplexEvent());
assert theObserver.getTotalEventsObserved() == 4;
}
-
+
}.run();
}
+ /**
+ * The Manager interface provides a method for firing events:
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.2", id = "unknown")
public void testManagerFireEvent()
@@ -122,14 +132,14 @@
}
/**
+ * An event object is an instance of a concrete Java class with no type
+ * variables or wildcards.
+ *
* If the type of the event object passed to fireEvent() contains type
* variables or wildcards, an IllegalArgumentException is thrown
*/
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
- @SpecAssertions({
- @SpecAssertion(section = "7.1", id = "unknown"),
- @SpecAssertion(section = "7.2", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "7.1", id = "unknown"), @SpecAssertion(section = "7.2", id = "unknown") })
public void testManagerFireEventWithEventTypeParametersFails()
{
ATemplatedEventType<String> anEvent = new ATemplatedEventType<String>();
@@ -137,14 +147,14 @@
}
/**
+ * An event object is an instance of a concrete Java class with no type
+ * variables or wildcards.
+ *
* If the type of the event object passed to fireEvent() contains type
* variables or wildcards, an IllegalArgumentException is thrown
*/
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
- @SpecAssertions({
- @SpecAssertion(section = "7.1", id = "unknown"),
- @SpecAssertion(section = "7.2", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "7.1", id = "unknown"), @SpecAssertion(section = "7.2", id = "unknown") })
public void testManagerFireEventWithEventTypeWildcardsFails()
{
// Although the above test is really the same as with a wildcard, we will
@@ -154,11 +164,18 @@
manager.fireEvent(anEventOnAnyType);
}
+ /**
+ * An event binding type is just an ordinary binding type as specified in
+ * Section 2.3.2, “Defining new binding types” with the exception that it may
+ * be declared @Target({FIELD, PARAMETER}). More formally, an event binding
+ * type is a Java annotation defined as @Target({FIELD, PARAMETER}) or
+ *
+ * @Target({METHOD, FIELD, PARAMETER, TYPE}) and @Retention(RUNTIME). All
+ * event binding types must specify the
+ * javax.inject.BindingType meta-annotation.
+ */
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
- @SpecAssertions({
- @SpecAssertion(section = "7.1", id = "unknown"),
- @SpecAssertion(section = "7.2", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "7.1", id = "unknown"), @SpecAssertion(section = "7.2", id = "unknown") })
public void testManagerFireEventWithNonBindingAnnotationsFails()
{
// The specs are not exactly clear on what is supposed to happen here,
@@ -169,6 +186,10 @@
manager.fireEvent(anEvent, new AnimalStereotypeAnnotationLiteral());
}
+ /**
+ * An observer instance may be registered with the container by calling
+ * Manager.addObserver():
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.3", id = "unknown")
public void testManagerAddObserver()
@@ -218,6 +239,10 @@
assert foundObserver;
}
+ /**
+ * An observer instance may be deregistered by calling
+ * Manager.removeObserver():
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.3", id = "unknown")
public void testManagerRemoveObserver()
@@ -252,6 +277,10 @@
assert resolvedObservers.isEmpty();
}
+ /**
+ * If two instances of the same binding type are passed to addObserver() or
+ * removeObserver(), a DuplicateBinding- TypeException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
@SpecAssertion(section = "7.3", id = "unknown")
public void testMultipleInstancesOfSameBindingTypeWhenAddingObserverFails()
@@ -260,6 +289,10 @@
manager.addObserver(observer, AnEventType.class, new RoleBinding("Admin"), new TameAnnotationLiteral(), new TameAnnotationLiteral());
}
+ /**
+ * If an instance of an annotation that is not a binding type is passed to
+ * addObserver() or removeObserver(), an IllegalArgumentException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
@SpecAssertion(section = "7.3", id = "unknown")
public void testNonBindingTypePassedToAddObserverFails()
@@ -268,6 +301,10 @@
manager.addObserver(observer, AnEventType.class, new AnimalStereotypeAnnotationLiteral());
}
+ /**
+ * If two instances of the same binding type are passed to addObserver() or
+ * removeObserver(), a DuplicateBinding- TypeException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
@SpecAssertion(section = "7.3", id = "unknown")
public void testMultipleInstancesOfSameBindingTypeWhenRemovingObserverFails()
@@ -277,6 +314,10 @@
manager.removeObserver(observer, AnEventType.class, new RoleBinding("Admin"), new TameAnnotationLiteral(), new TameAnnotationLiteral());
}
+ /**
+ * If an instance of an annotation that is not a binding type is passed to
+ * addObserver() or removeObserver(), an IllegalArgumentException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
@SpecAssertion(section = "7.3", id = "unknown")
public void testNonBindingTypePassedToRemoveObserverFails()
@@ -286,11 +327,13 @@
manager.removeObserver(observer, AnEventType.class, new AnimalStereotypeAnnotationLiteral());
}
+ /**
+ * An event consumer will be notified of an event if the observed event type
+ * it specifies is one of the event types of the event, and if all the
+ * observed event bindings it specifies are event bindings of the event.
+ */
@Test(groups = { "events" })
- @SpecAssertions({
- @SpecAssertion(section = "7.1", id = "unknown"),
- @SpecAssertion(section = "7.4", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "7.1", id = "unknown"), @SpecAssertion(section = "7.4", id = "unknown") })
public void testConsumerNotifiedWhenEventTypeAndAllBindingsMatch()
{
AnObserver observer1 = new AnObserver();
@@ -306,6 +349,11 @@
assert observer2.wasNotified;
}
+ /**
+ * Observers may throw exceptions. If an observer throws an exception, the
+ * exception aborts processing of the event. No oth- er observers of that
+ * event will be called. The fireEvent() method rethrows the exception.
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.4", id = "unknown")
public void testObserverThrowsExceptionAbortsNotifications()
@@ -333,6 +381,10 @@
assert observer.wasNotified ^ anotherObserver.wasNotified;
}
+ /**
+ * There may be arbitrarily many observer methods with the same event
+ * parameter type and bindings.
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.5", id = "unknown")
public void testMultipleObserverMethodsOK()
@@ -350,11 +402,29 @@
assert resolvedIntegerObservers.size() == 1;
}
+ /**
+ * If the bean is a session bean, the observer method must be a business
+ * method of the EJB or a static method of the bean class.
+ */
+ @Test(groups = { "events" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "7.5", id = "unknown")
+ public void testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()
+ {
+ deployBeans(TibetanTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans.size() >= 2;
+ @SuppressWarnings("unused")
+ Set<Observer<String>> observers = manager.resolveObservers("An event");
+ }
+
+ /**
+ * Each observer method must have exactly one event parameter, of the same
+ * type as the event type it observes. When searching for observer methods
+ * for an event, the container considers the type and bindings of the event
+ * parameter.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
- @SpecAssertions({
- @SpecAssertion(section = "7.5.1", id = "unknown"),
- @SpecAssertion(section = "7.5.2", id = "unknown")
- })
+ @SpecAssertions( { @SpecAssertion(section = "7.5.1", id = "unknown"), @SpecAssertion(section = "7.5.2", id = "unknown") })
public void testObserverMethodMustHaveOnlyOneEventParameter()
{
deployBeans(YorkshireTerrier_Broken.class);
@@ -363,6 +433,10 @@
assert beans != null;
}
+ /**
+ * If the type of the event parameter contains type variables or wildcards, a
+ * DefinitionException is thrown by the container at deployment time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
@SpecAssertion(section = "7.5.1", id = "unknown")
public void testObserverMethodCannotObserveParameterizedEvents()
@@ -372,6 +446,10 @@
assert beans != null;
}
+ /**
+ * If the event parameter does not explicitly declare any binding, the
+ * observer method observes events with no binding.
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.5.1", id = "unknown")
public void testObserverMethodWithoutBindingTypesObservesEventsWithoutBindingTypes()
@@ -386,6 +464,11 @@
assert resolvedObservers.size() == 2;
}
+ /**
+ * If an observer method is annotated @Produces, or @Initializer or has a
+ * parameter annotated @Disposes, a Defini- tionException is thrown by the
+ * container at deployment time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
@SpecAssertion(section = "7.5.2", id = "unknown")
public void testObserverMethodAnnotatedProducesFails()
@@ -395,6 +478,11 @@
assert beans != null;
}
+ /**
+ * If an observer method is annotated @Produces, or @Initializer or has a
+ * parameter annotated @Disposes, a Defini- tionException is thrown by the
+ * container at deployment time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
@SpecAssertion(section = "7.5.2", id = "unknown")
public void testObserverMethodAnnotatedInitializerFails()
@@ -404,6 +492,11 @@
assert beans != null;
}
+ /**
+ * If an observer method is annotated @Produces, or @Initializer or has a
+ * parameter annotated @Disposes, a Defini- tionException is thrown by the
+ * container at deployment time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
@SpecAssertion(section = "7.5.2", id = "unknown")
public void testObserverMethodWithDisposesParamFails()
@@ -413,6 +506,9 @@
assert beans != null;
}
+ /**
+ * The event parameter may declare bindings:
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.5.2", id = "unknown")
public void testObserverMethodMayHaveMultipleBindingTypes()
@@ -427,22 +523,42 @@
}
- @Test(groups = { "stub", "events" })
+ /**
+ * When an observer method is declared in XML, the container ignores binding
+ * annotations applied to the Java method para- meters.
+ */
+ @Test(groups = { "stub", "events", "webbeansxml" })
@SpecAssertion(section = "7.5.3", id = "unknown")
public void testXMLDefinedObserverMethodIgnoresBindingAnnotations()
{
assert false;
}
- @Test(groups = { "stub", "events" })
+ /**
+ * If the bean class of a bean declared in XML does not have a method with
+ * parameters that match those declared in XML, a DefinitionException is
+ * thrown by the container at deployment time.
+ */
+ @Test(groups = { "stub", "events", "webbeansxml" })
@SpecAssertion(section = "7.5.3", id = "unknown")
public void testXMLDefinedObserverNotFindingImplementationMethodFails()
{
assert false;
}
+ /**
+ * In addition to the event parameter, observer methods may declare
+ * additional parameters, which may declare bindings. The container calls the
+ * method Manager.getInstanceToInject() defined in Section 5.7.1, “Resolving
+ * dependencies” to determine a value for each parameter of an observer
+ * method and calls the observer method with those parameter values.
+ *
+ * To invoke an observer method, the container must pass the event object to
+ * the event parameter and the object returned by
+ * Manager.getInstanceToInject() to each of the other parameters.
+ */
@Test(groups = { "events" })
- @SpecAssertion(section = "7.5.4", id = "unknown")
+ @SpecAssertions( { @SpecAssertion(section = "7.5.4", id = "unknown"), @SpecAssertion(section = "7.5.8", id = "unknown") })
public void testObserverMethodReceivesInjectionsOnNonObservesParameters()
{
deployBeans(BananaSpider.class);
@@ -451,8 +567,9 @@
}
/**
- * Tests that a conditional observer is not notified of events until after it
- * is created by some other separate action.
+ * Conditional observer methods are observer methods which are notified of an
+ * event only if an instance of the bean that defines the observer method
+ * already exists in the current context.
*/
@Test(groups = { "events" })
@SpecAssertion(section = "7.5.5", id = "unknown")
@@ -482,24 +599,91 @@
}
}
+ /**
+ * A transactional observer method may not specify more than one of the four
+ * types. If a transactional observer method specifies more than one of the
+ * four types, a DefinitionException is thrown by the container at deployment
+ * time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
- @SpecAssertion(section = "7.1", id = "unknown")
+ @SpecAssertion(section = "7.5.6", id = "unknown")
public void testTransactionalObserverCanOnlyObserveSinglePhase()
{
deployBeans(TooManyPhases_Broken.class);
}
- @Test(groups = { "events" }, expectedExceptions=DefinitionException.class)
- @SpecAssertion(section = "7.5", id = "unknown")
- public void testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()
+ /**
+ * Asynchronous observer methods are observer methods which receive event
+ * notifications asynchronously.
+ *
+ * An asynchronous observer method may be declared by annotating the event
+ * parameter of the observer method javax.event.Asynchronously or in XML by a
+ * child <Asynchronously> element of the <Observes> element.
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.7", id = "unknown")
+ public void testAsynchronousObserverIsAsynchronous()
{
- deployBeans(TibetanTerrier.class);
- Set<Bean<Object>> beans = manager.resolveByType(Object.class);
- assert beans.size() >= 2;
- @SuppressWarnings("unused")
- Set<Observer<String>> observers = manager.resolveObservers("An event");
+ assert false;
}
+ /**
+ * An asynchronous observer method may be declared by annotating the event
+ * parameter of the observer method javax.event.Asynchronously or in XML by a
+ * child <Asynchronously> element of the <Observes> element.
+ */
+ @Test(groups = { "stub", "events", "webbeansxml" })
+ @SpecAssertion(section = "7.5.7", id = "unknown")
+ public void testAsynchronousObserverDeclaredByXML()
+ {
+ assert false;
+ }
+
+ /**
+ * An asynchronous observer method may also be a transactional observer
+ * method.
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.7", id = "unknown")
+ public void testAsynchronousObserverAlsoTransactional()
+ {
+ assert false;
+ }
+
+ /**
+ * An asynchronous observer method may also be a transactional observer
+ * method. However, it may not be a before completion observer method or a
+ * conditional observer method. If an asynchronous observer method is
+ * specified as a before completion or conditional observer method, a
+ * DefinitionException is thrown by the container at deployment time.
+ */
+ @Test(groups = { "stub", "events" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "7.5.7", id = "unknown")
+ public void testAsynchronousObserverAsBeforeCompletionObserverFails()
+ {
+ assert false;
+ }
+
+ /**
+ * An asynchronous observer method may also be a transactional observer
+ * method. However, it may not be a before completion observer method or a
+ * conditional observer method. If an asynchronous observer method is
+ * specified as a before completion or conditional observer method, a
+ * DefinitionException is thrown by the container at deployment time.
+ */
+ @Test(groups = { "stub", "events" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "7.5.7", id = "unknown")
+ public void testAsynchronousObserverAsConditionalObserverFails()
+ {
+ assert false;
+ }
+
+ /**
+ * For every observer method of an enabled bean, the container is responsible
+ * for providing and registering an appropriate implementation of the
+ * Observer interface, that delegates event notifications to the observer
+ * method.
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.5.8", id = "unknown")
public void testObserverMethodRegistration()
@@ -514,9 +698,78 @@
assert resolvedObservers.size() == 2;
}
+ /**
+ * Otherwise, if the observer method is an asynchronous observer method, the
+ * container calls the observer method asynchronously.
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.8", id = "unknown")
+ public void testAsynchronousObserverMethodCalledAsynchronously()
+ {
+ assert false;
+ }
+
+ /**
+ * Otherwise, the container calls the observer immediately.
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.8", id = "unknown")
+ public void testObserverMethodCalledImmediately()
+ {
+ assert false;
+ }
+
+ /**
+ * If the observer method is static, the container must invoke the method.
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.8", id = "unknown")
+ public void testStaticObserverMethodInvoked()
+ {
+ assert false;
+ }
+
+ /**
+ * Otherwise, if the observer method is non-static, the container must:
+ *
+ * • obtain the Bean object for the most specialized bean that specializes
+ * the bean which declares the observer method, and then
+ *
+ * • obtain the context object by calling Manager.getContext(), passing the
+ * bean scope, then
+ *
+ * • obtain an instance of the bean by calling Context.get(), passing the
+ * Bean instance representing the bean, together with a CreationalContext
+ * unless this observer method is a conditional observer method, and then
+ *
+ * • if the get() method returned a non-null value, invoke the observer
+ * method on the returned instance
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.8", id = "unknown")
+ public void testObserverMethodInvocationProcess()
+ {
+ assert false;
+ }
+
+ /**
+ * If the observer is a transactional or asynchronous observer method, any
+ * exception is caught and logged by the container.
+ */
+ @Test(groups = { "stubs", "events" }, expectedExceptions = { TeaCupPomeranian.OversizedException.class })
+ @SpecAssertion(section = "7.5.8", id = "unknown")
+ public void testAsynchronousObserverThrowsNonCheckedExceptionIsRethrown()
+ {
+ assert false;
+ }
+
+ /**
+ * Otherwise, the exception is rethrown by the notify() method of the
+ * observer object.
+ */
@Test(groups = { "events" }, expectedExceptions = { TeaCupPomeranian.OversizedException.class })
@SpecAssertion(section = "7.5.8", id = "unknown")
- public void testNonTransactionalObserverThrownNonCheckedExceptionIsRethrown()
+ public void testNonTransactionalObserverThrowsNonCheckedExceptionIsRethrown()
{
deployBeans(TeaCupPomeranian.class);
Set<Bean<Object>> beans = manager.resolveByType(Object.class);
@@ -524,9 +777,13 @@
manager.fireEvent("Another event");
}
+ /**
+ * If the exception is a checked exception, it is wrapped and rethrown as an
+ * (unchecked) ObserverException.
+ */
@Test(groups = { "events" }, expectedExceptions = { ObserverException.class })
@SpecAssertion(section = "7.5.8", id = "unknown")
- public void testNonTransactionalObserverThrownCheckedExceptionIsWrappedAndRethrown()
+ public void testNonTransactionalObserverThrowsCheckedExceptionIsWrappedAndRethrown()
{
deployBeans(TeaCupPomeranian.class);
Set<Bean<Object>> beans = manager.resolveByType(Object.class);
@@ -534,6 +791,52 @@
manager.fireEvent(new Integer(1));
}
+ /**
+ * Otherwise, if the observer method is non-static, the container must:
+ *
+ * • obtain the Bean object for the most specialized bean that specializes
+ * the bean which declares the observer method, and then
+ *
+ */
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "7.5.8", id = "unknown")
+ public void testObserverCalledOnMostSpecializedInstance()
+ {
+ Shop.deliveryObservedBy = null;
+ deployBeans(FarmShop.class, Shop.class);
+ manager.fireEvent(new Delivery());
+ assert Shop.deliveryObservedBy.equals(FarmShop.class.getName());
+ }
+
+ /**
+ * If the observer method is an asynchronous observer method, it is called
+ * with no active transaction, no client security context and with a new
+ * request context that is destroyed when the observer method returns. The
+ * application context is also active.
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.9", id = "unknown")
+ public void testAsynchronousObserverMethodContexts()
+ {
+ assert false;
+ }
+
+ /**
+ * Otherwise, the observer method is called in the same transaction context,
+ * client security context and lifecycle contexts as the invocation of
+ * Event.fire().
+ */
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "7.5.9", id = "unknown")
+ public void testObserverMethodCalledInSameContexts()
+ {
+ assert false;
+ }
+
+ /**
+ * If two instances of the same binding type are passed to fire() or
+ * observes(), a DuplicateBindingTypeException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
@SpecAssertion(section = "7.6", id = "unknown")
public void testDuplicateBindingsToFireFails()
@@ -551,6 +854,10 @@
}
}
+ /**
+ * If two instances of the same binding type are passed to fire() or
+ * observes(), a DuplicateBindingTypeException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
@SpecAssertion(section = "7.6", id = "unknown")
public void testDuplicateBindingsToObservesFails()
@@ -568,6 +875,10 @@
}
}
+ /**
+ * If an instance of an annotation that is not a binding type is passed to
+ * fire() or observes(), an IllegalArgumentException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
@SpecAssertion(section = "7.6", id = "unknown")
public void testNonBindingTypePassedToFireFails()
@@ -585,6 +896,10 @@
}
}
+ /**
+ * If an instance of an annotation that is not a binding type is passed to
+ * fire() or observes(), an IllegalArgumentException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
@SpecAssertion(section = "7.6", id = "unknown")
public void testNonBindingTypePassedToObservesFails()
@@ -602,6 +917,10 @@
}
}
+ /**
+ * The @Fires annotation or <Fires> element may be applied to any injection
+ * point of type Event, where an actual type parameter is specified.
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testFiresAnnotationOnEventTypes()
@@ -665,6 +984,12 @@
}
}
+ /**
+ * If the type of the injection point is not of type Event, if no actual type
+ * parameter is specified, or if the type parameter contains a type variable
+ * or wildcard, a DefinitionException is thrown by the container at
+ * deployment time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
@SpecAssertion(section = "7.6", id = "unknown")
public void testFiresAnnotationOnNonEventTypeInjectionPointFails()
@@ -682,6 +1007,12 @@
}
}
+ /**
+ * If the type of the injection point is not of type Event, if no actual type
+ * parameter is specified, or if the type parameter contains a type variable
+ * or wildcard, a DefinitionException is thrown by the container at
+ * deployment time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
@SpecAssertion(section = "7.6", id = "unknown")
public void testFiresAnnotationOnInjectionPointWithoutTypeParameterFails()
@@ -699,6 +1030,12 @@
}
}
+ /**
+ * If the type of the injection point is not of type Event, if no actual type
+ * parameter is specified, or if the type parameter contains a type variable
+ * or wildcard, a DefinitionException is thrown by the container at
+ * deployment time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
@SpecAssertion(section = "7.6", id = "unknown")
public void testFiresAnnotationOnInjectionPointWithWildcardedTypeParameterFails()
@@ -716,6 +1053,12 @@
}
}
+ /**
+ * If the type of the injection point is not of type Event, if no actual type
+ * parameter is specified, or if the type parameter con- tains a type
+ * variable or wildcard, a DefinitionException is thrown by the container at
+ * deployment time.
+ */
@Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
@SpecAssertion(section = "7.6", id = "unknown")
public void testFiresAnnotationOnInjectionPointWithTypeVariabledTypeParameterFails()
@@ -733,6 +1076,12 @@
}
}
+ /**
+ * Whenever the @Fires annotation appears at an injection point, an implicit
+ * bean exists with:
+ *
+ * • exactly the bean type and bindings that appear at the injection point,
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testImplicitEventBeanMatchesAPITypeOfInectionPoint()
@@ -754,6 +1103,12 @@
}
}
+ /**
+ * Whenever the @Fires annotation appears at an injection point, an implicit
+ * bean exists with:
+ *
+ * • exactly the bean type and bindings that appear at the injection point,
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testImplicitEventBeanMatchesBindingAnnotationsOfInjectionPoint()
@@ -775,6 +1130,9 @@
}
}
+ /**
+ * deployment type @Standard,
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testImplicitEventBeanHasStandardDeploymentType()
@@ -798,6 +1156,9 @@
}
}
+ /**
+ * @Dependent scope,
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testImplicitEventBeanHasDependentScope()
@@ -821,50 +1182,110 @@
}
}
- //TODO The manager related tests require intercepting all calls
+ /**
+ * no bean name, and
+ */
+ @Test(groups = { "events", "stub" })
+ @SpecAssertion(section = "7.6", id = "unknown")
+ public void testImplicitEventBeanHasNoName()
+ {
+ assert false;
+ }
+
+ /**
+ * an implementation provided automatically by the container.
+ */
+ @Test(groups = { "events", "stub" })
+ @SpecAssertion(section = "7.6", id = "unknown")
+ public void testImplicitEventBeanProvidedByContainer()
+ {
+ assert false;
+ }
+
+ /**
+ * The fire() method of the provided implementation of Event must call
+ * Manager.fireEvent(), passing the following parameters:
+ *
+ * • the event object passed to Event.fire()
+ */
+ // TODO The manager related tests require intercepting all calls
// to it to verify that the correct calls are made.
- @Test(groups = { "stub", "events", "underInvestigation" })
+ @Test(groups = { "events", "underInvestigation" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testFireMethodCallsManagerFireWithEventObject()
{
assert false;
}
- @Test(groups = { "stub", "events", "underInvestigation" })
+ /**
+ * The fire() method of the provided implementation of Event must call
+ * Manager.fireEvent(), passing the following parameters:
+ *
+ * • all bindings declared at the injection point, except @Fires
+ */
+ @Test(groups = { "events", "underInvestigation" })
@SpecAssertion(section = "7.6", id = "unknown")
- public void testFireMethodCallsManagerFireWithBindingAnnotationsExceptObservable()
+ public void testFireMethodCallsManagerFireWithBindingAnnotationsExceptFires()
{
assert false;
}
- @Test(groups = { "stub", "events", "underInvestigation" })
+ /**
+ * The fire() method of the provided implementation of Event must call
+ * Manager.fireEvent(), passing the following parameters:
+ *
+ * • all bindings passed to Event.fire()
+ */
+ @Test(groups = { "events", "underInvestigation" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testFireMethodCallsManagerFireWithAllBindingAnnotationInstances()
{
assert false;
}
- @Test(groups = { "stub", "events", "underInvestigation" })
+ /**
+ * The observe() method of the provided implementation of Event must call
+ * Manager.addObserver(), passing the following parameters:
+ *
+ * • the observer object passed to Event.observe()
+ */
+ @Test(groups = { "events", "underInvestigation" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testObserveMethodCallsManagerAddObserverWithObserverObject()
{
assert false;
}
- @Test(groups = { "stub", "events", "underInvestigation" })
+ /**
+ * The observe() method of the provided implementation of Event must call
+ * Manager.addObserver(), passing the following parameters:
+ *
+ * • all bindings declared at the injection point, except @Fires
+ */
+ @Test(groups = { "events", "underInvestigation" })
@SpecAssertion(section = "7.6", id = "unknown")
- public void testObserveMethodCallsManagerAddObserverWithAllBindingAnnotationsExceptObservable()
+ public void testObserveMethodCallsManagerAddObserverWithAllBindingAnnotationsExceptFires()
{
assert false;
}
- @Test(groups = { "stub", "events", "underInvestigation" })
+ /**
+ * The observe() method of the provided implementation of Event must call
+ * Manager.addObserver(), passing the following parameters:
+ *
+ * • all bindings passed to Event.observe()
+ */
+ @Test(groups = { "events", "underInvestigation" })
@SpecAssertion(section = "7.6", id = "unknown")
public void testObserveMethodCallsManagerAddObserverWithAllBindingAnnotationInstance()
{
assert false;
}
+ /**
+ * If the type of the event object passed to resolveObservers() contains type
+ * variables or wildcards, an IllegalArgumentException is thrown.
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.7", id = "unknown")
public void testEventObjectContainsTypeVariablesWhenResolvingFails()
@@ -878,6 +1299,10 @@
Set<?> resolvedObservers = manager.resolveObservers(eventToFire);
}
+ /**
+ * If the type of the event object passed to resolveObservers() contains type
+ * variables or wildcards, an IllegalArgumentException is thrown.
+ */
@Test(groups = { "broken", "events" }, expectedExceptions = { IllegalArgumentException.class })
@SpecAssertion(section = "7.7", id = "unknown")
public void testEventObjectContainsWildcardsWhenResolvingFails()
@@ -888,10 +1313,15 @@
private void eventObjectContainsWildcards(ArrayList<? extends Object> eventToFire)
{
@SuppressWarnings("unused")
- //TODO There does not seem to be a way to get wildcarded types pass through
+ // TODO There does not seem to be a way to get wildcarded types pass
+ // through
Set<?> resolvedObservers = manager.resolveObservers(eventToFire);
}
+ /**
+ * If two instances of the same binding type are passed to
+ * resolveObservers(), a DuplicateBindingTypeException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
@SpecAssertion(section = "7.7", id = "unknown")
public void testDuplicateBindingTypesWhenResolvingFails()
@@ -902,6 +1332,10 @@
Set<Observer<AnEventType>> resolvedObservers = manager.resolveObservers(new AnEventType(), new BindingTypeABinding(), new BindingTypeABinding());
}
+ /**
+ * If an instance of an annotation that is not a binding type is passed to
+ * resolveObservers(), an IllegalArgumentException is thrown.
+ */
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
@SpecAssertion(section = "7.7", id = "unknown")
public void testNonBindingTypeAnnotationWhenResolvingFails()
@@ -914,6 +1348,10 @@
assert !resolvedObservers.isEmpty();
}
+ /**
+ * the event object must be assignable to the observed event type, taking
+ * type parameters into consideration, and
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.7", id = "unknown")
public void testResolvingChecksEventType()
@@ -927,6 +1365,10 @@
assert emptyObserverSet.isEmpty();
}
+ /**
+ * the event object must be assignable to the observed event type, taking
+ * type parameters into consideration, and
+ */
@Test(groups = { "broken", "events" })
@SpecAssertion(section = "7.7", id = "unknown")
public void testResolvingChecksTypeParameters()
@@ -943,6 +1385,11 @@
assert resolvedObservers.size() == 1;
}
+ /**
+ * for each observed event binding, (a) an instance of the binding type must
+ * have been passed to fireEvent() and (b) any member values of the binding
+ * type must match the member values of the instance passed to fireEvent().
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.7", id = "unknown")
public void testResolvingChecksBindingTypes()
@@ -955,6 +1402,11 @@
assert resolvedObservers.size() == 1;
}
+ /**
+ * for each observed event binding, (a) an instance of the binding type must
+ * have been passed to fireEvent() and (b) any member values of the binding
+ * type must match the member values of the instance passed to fireEvent().
+ */
@Test(groups = { "events" })
@SpecAssertion(section = "7.7", id = "unknown")
public void testResolvingChecksBindingTypeMembers()
@@ -967,6 +1419,11 @@
assert resolvedObservers.size() == 1;
}
+ /**
+ * By default, Java implementation reuse is assumed. In this case, the
+ * producer, disposal and observer methods of the first bean are not
+ * inherited by the second bean.
+ */
@Test(groups = { "events", "inheritance" })
@SpecAssertion(section = "4.", id = "unknown")
public void testNonStaticObserverMethodNotInherited()
@@ -975,13 +1432,4 @@
assert manager.resolveObservers(new Egg()).isEmpty();
}
- @Test
- @SpecAssertion(section = "7.5.8", id = "unknown")
- public void testObserverCalledOnMostSpecializedInstance()
- {
- Shop.deliveryObservedBy = null;
- deployBeans(FarmShop.class, Shop.class);
- manager.fireEvent(new Delivery());
- assert Shop.deliveryObservedBy.equals(FarmShop.class.getName());
- }
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/ResourceInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/ResourceInjectionTest.java 2009-02-07 18:58:27 UTC (rev 1449)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/ResourceInjectionTest.java 2009-02-08 13:21:00 UTC (rev 1450)
@@ -6,28 +6,114 @@
/**
*
- * Spec version: PRD2
- *
+ * Spec version: Public Release Draft 2
+ *
*/
public class ResourceInjectionTest extends AbstractTest
{
-
- @Test(groups="stub") @SpecAssertion(section="3.10", id = "unknown")
+ /**
+ * The following functionality is provided by the container when annotations
+ * are applied to the bean class of a simple bean:
+ *
+ * • dependency injection via (@EJB), (@Resource), @PersistenceUnit and
+ * @PersistenceContext.
+ */
+ @Test(groups = "stub")
+ @SpecAssertion(section = "3.10", id = "unknown")
public void testInjectionOfPersistenceContext()
{
assert false;
}
-
- @Test(groups="stub") @SpecAssertion(section="3.10", id = "unknown")
+
+ /**
+ * The following functionality is provided by the container when annotations
+ * are applied to the bean class of a simple bean:
+ *
+ * • dependency injection via (@EJB), (@Resource), @PersistenceUnit and
+ * @PersistenceContext.
+ */
+ @Test(groups = "stub")
+ @SpecAssertion(section = "3.10", id = "unknown")
+ public void testInjectionOfPersistenceUnit()
+ {
+ assert false;
+ }
+
+ /**
+ * The following functionality is provided by the container when annotations
+ * are applied to the bean class of a simple bean:
+ *
+ * • dependency injection via (@EJB), (@Resource), @PersistenceUnit and
+ * @PersistenceContext.
+ */
+ @Test(groups = "stub")
+ @SpecAssertion(section = "3.10", id = "unknown")
public void testInjectionOfResource()
{
assert false;
}
-
- @Test(groups="stub") @SpecAssertion(section="3.10", id = "unknown")
+
+ /**
+ * The following functionality is provided by the container when annotations
+ * are applied to the bean class of a simple bean:
+ *
+ * • dependency injection via (@EJB), (@Resource), @PersistenceUnit and
+ * @PersistenceContext.
+ */
+ @Test(groups = "stub")
+ @SpecAssertion(section = "3.10", id = "unknown")
public void testInjectionOfEJB()
{
assert false;
}
-
+
+ /**
+ * The following functionality is provided by the container when annotations
+ * are applied to the bean class of a simple bean:
+ *
+ * • @PostConstruct and @PreDestroy callbacks
+ */
+ @Test(groups = "stub")
+ @SpecAssertion(section = "3.10", id = "unknown")
+ public void testPostConstructCallback()
+ {
+ assert false;
+ }
+
+ /**
+ * The following functionality is provided by the container when annotations
+ * are applied to the bean class of a simple bean:
+ *
+ * • @PostConstruct and @PreDestroy callbacks
+ */
+ @Test(groups = "stub")
+ @SpecAssertion(section = "3.10", id = "unknown")
+ public void testPreDestroyCallback()
+ {
+ assert false;
+ }
+
+ /**
+ * The following functionality is provided by the container when annotations
+ * are applied to the bean class of a simple bean:
+ *
+ * • interception, as defined in javax.interceptor
+ */
+ @Test(groups = "stub")
+ @SpecAssertion(section = "3.10", id = "unknown")
+ public void testStandardInterceptor()
+ {
+ assert false;
+ }
+
+ /**
+ * @PersistenceContext(type=EXTENDED) is not supported for simple beans.
+ */
+ @Test(groups = "stub")
+ @SpecAssertion(section = "3.10", id = "unknown")
+ public void testExtendedPersistenceContextNotSupported()
+ {
+ assert false;
+ }
+
}
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/test/impl/InContainerTestRunnerTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/test/impl/InContainerTestRunnerTest.java 2009-02-07 18:58:27 UTC (rev 1449)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/test/impl/InContainerTestRunnerTest.java 2009-02-08 13:21:00 UTC (rev 1450)
@@ -56,11 +56,11 @@
//@Test
public void testRunner()
{
- TestSuite testSuite = new TestSuite();
- testSuite.setWriteDeployedArchivesToDisk(true);
- testSuite.setDeploymentDelay(0);
- MockInContainerTestRunner runner = new MockInContainerTestRunner(testSuite, new MockContainers());
- runner.run();
+// TestSuite testSuite = new TestSuite();
+// testSuite.setWriteDeployedArchivesToDisk(true);
+// testSuite.setDeploymentDelay(0);
+// MockInContainerTestRunner runner = new MockInContainerTestRunner(testSuite, new MockContainers());
+// runner.run();
}
}
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1449 - in doc/trunk/reference: es-ES and 8 other directories.
by webbeans-commits@lists.jboss.org
Author: nico.ben
Date: 2009-02-07 13:58:27 -0500 (Sat, 07 Feb 2009)
New Revision: 1449
Modified:
doc/trunk/reference/de-DE/master.po
doc/trunk/reference/es-ES/master.po
doc/trunk/reference/fr-FR/master.po
doc/trunk/reference/it-IT/master.po
doc/trunk/reference/ja-JP/master.po
doc/trunk/reference/ko-KR/master.po
doc/trunk/reference/pot/Author_Group.pot
doc/trunk/reference/pot/Book_Info.pot
doc/trunk/reference/pot/decorators.pot
doc/trunk/reference/pot/ee.pot
doc/trunk/reference/pot/events.pot
doc/trunk/reference/pot/example.pot
doc/trunk/reference/pot/extend.pot
doc/trunk/reference/pot/injection.pot
doc/trunk/reference/pot/interceptors.pot
doc/trunk/reference/pot/intro.pot
doc/trunk/reference/pot/master.pot
doc/trunk/reference/pot/next.pot
doc/trunk/reference/pot/part1.pot
doc/trunk/reference/pot/part2.pot
doc/trunk/reference/pot/part3.pot
doc/trunk/reference/pot/part4.pot
doc/trunk/reference/pot/producermethods.pot
doc/trunk/reference/pot/ri-spi.pot
doc/trunk/reference/pot/ri.pot
doc/trunk/reference/pot/scopescontexts.pot
doc/trunk/reference/pot/specialization.pot
doc/trunk/reference/pot/stereotypes.pot
doc/trunk/reference/pot/xml.pot
doc/trunk/reference/pt-BR/master.po
doc/trunk/reference/zh-CN/intro.po
doc/trunk/reference/zh-CN/master.po
doc/trunk/reference/zh-CN/ri-spi.po
doc/trunk/reference/zh-CN/ri.po
doc/trunk/reference/zh-CN/scopescontexts.po
doc/trunk/reference/zh-TW/master.po
Log:
Regenerated POT and updated all POs
Modified: doc/trunk/reference/de-DE/master.po
===================================================================
--- doc/trunk/reference/de-DE/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/de-DE/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-02-07 14:59+1100\n"
"Last-Translator: \n"
"Language-Team: <en(a)li.org>\n"
@@ -23,9 +23,9 @@
#. Tag: para
#: master.xml:11
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
"and Dependency Injection\". The reference guide still refers to JSR-299 as "
"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
"\". Other documentation, blogs, forum posts etc. may use the new "
@@ -33,9 +33,11 @@
"Implementation - \"Web Beans\"."
msgstr ""
"Der Name von JSR-299 wurde vor kurzem von \"Web Beans\" zu \"Java Kontexte "
-"und Dependency-Einspeisung\" geändert. Dieses Handbuch bezieht sich nach wie vor auf JSR-299 als "
-"\"Web Beans\" und die JSR-299 Referenzimplementierung als \"Web Beans RI"
-"\". Andere Dokumentation wie Blogs, Postings in Foren usw. verwenden möglicherweise bereits die neue Namensgebung, darunter den neuen Namen für die JSR-299 Referenzimplementierung - \"Web Beans\"."
+"und Dependency-Einspeisung\" geändert. Dieses Handbuch bezieht sich nach wie "
+"vor auf JSR-299 als \"Web Beans\" und die JSR-299 Referenzimplementierung "
+"als \"Web Beans RI\". Andere Dokumentation wie Blogs, Postings in Foren usw. "
+"verwenden möglicherweise bereits die neue Namensgebung, darunter den neuen "
+"Namen für die JSR-299 Referenzimplementierung - \"Web Beans\"."
#. Tag: title
#: master.xml:24
@@ -60,4 +62,3 @@
#, no-c-format
msgid "Web Beans and the Java EE ecosystem"
msgstr "Web Beans und das Java EE-Ökosystem"
-
Modified: doc/trunk/reference/es-ES/master.po
===================================================================
--- doc/trunk/reference/es-ES/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/es-ES/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-01-19 16:28+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
@@ -26,7 +26,7 @@
#: master.xml:11
#, no-c-format
msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
"and Dependency Injection\". The reference guide still refers to JSR-299 as "
"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
"\". Other documentation, blogs, forum posts etc. may use the new "
Modified: doc/trunk/reference/fr-FR/master.po
===================================================================
--- doc/trunk/reference/fr-FR/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/fr-FR/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-02-05 00:03+0100\n"
"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
@@ -21,9 +21,21 @@
#. Tag: para
#: master.xml:11
-#, no-c-format
-msgid "JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts and Dependency Injection\". The reference guide still refers to JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI\". Other documentation, blogs, forum posts etc. may use the new nomenclature, including the new name for the JSR-299 Reference Implementation - \"Web Beans\"."
-msgstr "La JSR-299 a récemment été renommée de \"Web Beans\" vers \"Java Contexts and Dependency Injection\". Ce guide de référence réfère toujours la JSR-299 comme \"Web Beans\" et l'implémentation de référence de la JSR-299 comme \"Web Beans RI\". D'autres documentations, blogs, articles de forums etc. peuvent utiliser la nouvelle nomenclature, y compris le nouveau nom pour l'implémentation de référence de la JSR-299 - \"Web Beans\"."
+#, fuzzy, no-c-format
+msgid ""
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
+"and Dependency Injection\". The reference guide still refers to JSR-299 as "
+"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
+"\". Other documentation, blogs, forum posts etc. may use the new "
+"nomenclature, including the new name for the JSR-299 Reference "
+"Implementation - \"Web Beans\"."
+msgstr ""
+"La JSR-299 a récemment été renommée de \"Web Beans\" vers \"Java Contexts "
+"and Dependency Injection\". Ce guide de référence réfère toujours la JSR-299 "
+"comme \"Web Beans\" et l'implémentation de référence de la JSR-299 comme "
+"\"Web Beans RI\". D'autres documentations, blogs, articles de forums etc. "
+"peuvent utiliser la nouvelle nomenclature, y compris le nouveau nom pour "
+"l'implémentation de référence de la JSR-299 - \"Web Beans\"."
#. Tag: title
#: master.xml:24
@@ -48,4 +60,3 @@
#, no-c-format
msgid "Web Beans and the Java EE ecosystem"
msgstr "Web Beans et l'écosystème Java EE"
-
Modified: doc/trunk/reference/it-IT/master.po
===================================================================
--- doc/trunk/reference/it-IT/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/it-IT/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,8 +5,8 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
-"PO-Revision-Date: 2009-02-01 22:23+0100\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
+"PO-Revision-Date: 2009-02-07 19:57+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -22,8 +22,8 @@
#. Tag: para
#: master.xml:11
#, no-c-format
-msgid "JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts and Dependency Injection\". The reference guide still refers to JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI\". Other documentation, blogs, forum posts etc. may use the new nomenclature, including the new name for the JSR-299 Reference Implementation - \"Web Beans\"."
-msgstr "JSR-299 ha recentemente cambiato il suo nome da \"Web Beans\" a \"Contesti Java e Dependency Injection\". La guida fa comunque riferimento alla JSR-299 come \"Web Beans\" e alla JSR-299 Reference Implementation come \"Web Beans RI\". Altre documentazioni, blogs, forum, ecc. potrebbero usarela nuova nomenclatura, includendo il nuovo nome per la JSR-299 Reference Implementation - \"Web Beans\"."
+msgid "JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts and Dependency Injection\". The reference guide still refers to JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI\". Other documentation, blogs, forum posts etc. may use the new nomenclature, including the new name for the JSR-299 Reference Implementation - \"Web Beans\"."
+msgstr "JSR-299 ha recentemente cambiato il suo nome da \"Web Beans\" a \"Contesti Java e Dependency Injection\". La guida fa comunque riferimento alla JSR-299 come \"Web Beans\" e alla JSR-299 Reference Implementation come \"Web Beans RI\". Altre documentazioni, blogs, forum, ecc. potrebbero usare la nuova nomenclatura, includendo il nuovo nome per la JSR-299 Reference Implementation - \"Web Beans\"."
#. Tag: title
#: master.xml:24
Modified: doc/trunk/reference/ja-JP/master.po
===================================================================
--- doc/trunk/reference/ja-JP/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/ja-JP/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2008-12-19 20:26+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -23,7 +23,7 @@
#: master.xml:11
#, no-c-format
msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
"and Dependency Injection\". The reference guide still refers to JSR-299 as "
"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
"\". Other documentation, blogs, forum posts etc. may use the new "
Modified: doc/trunk/reference/ko-KR/master.po
===================================================================
--- doc/trunk/reference/ko-KR/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/ko-KR/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-01-09 10:27+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
@@ -30,7 +30,7 @@
#: master.xml:11
#, no-c-format
msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
"and Dependency Injection\". The reference guide still refers to JSR-299 as "
"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
"\". Other documentation, blogs, forum posts etc. may use the new "
Modified: doc/trunk/reference/pot/Author_Group.pot
===================================================================
--- doc/trunk/reference/pot/Author_Group.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/Author_Group.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/Book_Info.pot
===================================================================
--- doc/trunk/reference/pot/Book_Info.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/Book_Info.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/decorators.pot
===================================================================
--- doc/trunk/reference/pot/decorators.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/decorators.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/ee.pot
===================================================================
--- doc/trunk/reference/pot/ee.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/ee.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/events.pot
===================================================================
--- doc/trunk/reference/pot/events.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/events.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/example.pot
===================================================================
--- doc/trunk/reference/pot/example.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/example.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/extend.pot
===================================================================
--- doc/trunk/reference/pot/extend.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/extend.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/injection.pot
===================================================================
--- doc/trunk/reference/pot/injection.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/injection.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/interceptors.pot
===================================================================
--- doc/trunk/reference/pot/interceptors.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/interceptors.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/intro.pot
===================================================================
--- doc/trunk/reference/pot/intro.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/intro.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/master.pot
===================================================================
--- doc/trunk/reference/pot/master.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/master.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
@@ -24,7 +24,7 @@
#: master.xml:11
#, no-c-format
msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
"and Dependency Injection\". The reference guide still refers to JSR-299 as "
"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
"\". Other documentation, blogs, forum posts etc. may use the new "
Modified: doc/trunk/reference/pot/next.pot
===================================================================
--- doc/trunk/reference/pot/next.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/next.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/part1.pot
===================================================================
--- doc/trunk/reference/pot/part1.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/part1.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/part2.pot
===================================================================
--- doc/trunk/reference/pot/part2.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/part2.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/part3.pot
===================================================================
--- doc/trunk/reference/pot/part3.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/part3.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/part4.pot
===================================================================
--- doc/trunk/reference/pot/part4.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/part4.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/producermethods.pot
===================================================================
--- doc/trunk/reference/pot/producermethods.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/producermethods.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/ri-spi.pot
===================================================================
--- doc/trunk/reference/pot/ri-spi.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/ri-spi.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/ri.pot
===================================================================
--- doc/trunk/reference/pot/ri.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/ri.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/scopescontexts.pot
===================================================================
--- doc/trunk/reference/pot/scopescontexts.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/scopescontexts.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/specialization.pot
===================================================================
--- doc/trunk/reference/pot/specialization.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/specialization.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/stereotypes.pot
===================================================================
--- doc/trunk/reference/pot/stereotypes.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/stereotypes.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pot/xml.pot
===================================================================
--- doc/trunk/reference/pot/xml.pot 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pot/xml.pot 2009-02-07 18:58:27 UTC (rev 1449)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: doc/trunk/reference/pt-BR/master.po
===================================================================
--- doc/trunk/reference/pt-BR/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/pt-BR/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-01-06 11:30+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -23,7 +23,7 @@
#: master.xml:11
#, no-c-format
msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
"and Dependency Injection\". The reference guide still refers to JSR-299 as "
"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
"\". Other documentation, blogs, forum posts etc. may use the new "
Modified: doc/trunk/reference/zh-CN/intro.po
===================================================================
--- doc/trunk/reference/zh-CN/intro.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/zh-CN/intro.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-02-03 15:24+0800\n"
"Last-Translator: Sean Wu <alartin(a)gmail.com>\n"
"Language-Team: none\n"
@@ -22,8 +22,17 @@
#. Tag: para
#: intro.xml:6
#, no-c-format
-msgid "So you're already keen to get started writing your first Web Bean? Or perhaps you're skeptical, wondering what kinds of hoops the Web Beans specification will make you jump through! The good news is that you've probably already written and used hundreds, perhaps thousands of Web Beans. You might not even remember the first Web Bean you wrote."
-msgstr "你是否已经迫不及待想要开始编写你的第一个Web Bean了?或许,你仍旧抱有怀疑态度,想要知道Web Beans规范会给出什么样的圈套让你跳。好消息是你也许已经编写并且使用了好几百个或者好几千个Web Bean了。你也许甚至想不起来你写的第一个Web Bean了。"
+msgid ""
+"So you're already keen to get started writing your first Web Bean? Or "
+"perhaps you're skeptical, wondering what kinds of hoops the Web Beans "
+"specification will make you jump through! The good news is that you've "
+"probably already written and used hundreds, perhaps thousands of Web Beans. "
+"You might not even remember the first Web Bean you wrote."
+msgstr ""
+"你是否已经迫不及待想要开始编写你的第一个Web Bean了?或许,你仍旧抱有怀疑态"
+"度,想要知道Web Beans规范会给出什么样的圈套让你跳。好消息是你也许已经编写并且"
+"使用了好几百个或者好几千个Web Bean了。你也许甚至想不起来你写的第一个Web Bean"
+"了。"
#. Tag: title
#: intro.xml:13
@@ -33,15 +42,34 @@
#. Tag: para
#: intro.xml:15
-#, no-c-format
-msgid "With certain, very special exceptions, every Java class with a constructor that accepts no parameters is a Web Bean. That includes every JavaBean. Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the JavaBeans and EJBs you've been writing every day have not been able to take advantage of the new services defined by the Web Beans specification, but you'll be able to use every one of them as Web Beans—injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them—without touching your existing code."
-msgstr "除非特殊情况,每个具有一个非参构造器的Java类都可以是一个Web Bean。这包括了每个JavaBean, 并且每个EJB3的会话Bean都是一个Web Bean。当然,你每天已经写过的JavaBean和EJB无法使用Web Beans规范定义的新服务,但是你能够通过Web Beans的XML配置将这些组件配置为Web Bean,然后将其注入到其他Web Bean中。你甚至可以不用修改已有代码就可以为其添加拦截器和装饰器。"
+#, fuzzy, no-c-format
+msgid ""
+"With certain, very special exceptions, every Java class with a constructor "
+"that accepts no parameters is a Web Bean. That includes every JavaBean. "
+"Furthermore, every EJB 3-style session bean is a Web Bean. Sure, the "
+"JavaBeans and EJBs you've been writing every day have not been able to take "
+"advantage of the new services defined by the Web Beans specification, but "
+"you'll be able to use every one of them as Web Beans — injecting them "
+"into other Web Beans, configuring them via the Web Beans XML configuration "
+"facility, even adding interceptors and decorators to them — without "
+"touching your existing code."
+msgstr ""
+"除非特殊情况,每个具有一个非参构造器的Java类都可以是一个Web Bean。这包括了每"
+"个JavaBean, 并且每个EJB3的会话Bean都是一个Web Bean。当然,你每天已经写过的"
+"JavaBean和EJB无法使用Web Beans规范定义的新服务,但是你能够通过Web Beans的XML"
+"配置将这些组件配置为Web Bean,然后将其注入到其他Web Bean中。你甚至可以不用修"
+"改已有代码就可以为其添加拦截器和装饰器。"
#. Tag: para
#: intro.xml:25
#, no-c-format
-msgid "Suppose that we have two existing Java classes, that we've been using for years in various applications. The first class parses a string into a list of sentences:"
-msgstr "假定我们有两个已经写好的Java类,我们已经在不同的应用中使用它们好多年了。第一个类将一个字符串解析为一个句子列表:"
+msgid ""
+"Suppose that we have two existing Java classes, that we've been using for "
+"years in various applications. The first class parses a string into a list "
+"of sentences:"
+msgstr ""
+"假定我们有两个已经写好的Java类,我们已经在不同的应用中使用它们好多年了。第一"
+"个类将一个字符串解析为一个句子列表:"
#. Tag: programlisting
#: intro.xml:29
@@ -58,8 +86,13 @@
#. Tag: para
#: intro.xml:31
#, no-c-format
-msgid "The second existing class is a stateless session bean front-end for an external system that is able to translate sentences from one language to another:"
-msgstr "第二个已有类是一个无状态的会话Bean,这个会话Bean作为一个外部系统的前端,能够将句子从一种语言翻译到另一个语言:"
+msgid ""
+"The second existing class is a stateless session bean front-end for an "
+"external system that is able to translate sentences from one language to "
+"another:"
+msgstr ""
+"第二个已有类是一个无状态的会话Bean,这个会话Bean作为一个外部系统的前端,能够"
+"将句子从一种语言翻译到另一个语言:"
#. Tag: programlisting
#: intro.xml:35
@@ -98,8 +131,12 @@
#. Tag: para
#: intro.xml:41
#, no-c-format
-msgid "Unfortunately, we don't have a preexisting class that translates whole text documents. So let's write a Web Bean that does this job:"
-msgstr "不幸的是,我们没有Java类能够翻译整个文档。因此,让我们写一个Web Bean来做这个工作:"
+msgid ""
+"Unfortunately, we don't have a preexisting class that translates whole text "
+"documents. So let's write a Web Bean that does this job:"
+msgstr ""
+"不幸的是,我们没有Java类能够翻译整个文档。因此,让我们写一个Web Bean来做这个"
+"工作:"
#. Tag: programlisting
#: intro.xml:44
@@ -111,7 +148,8 @@
" private Translator sentenceTranslator;\n"
" \n"
" @Initializer\n"
-" TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
+" TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
" this.sentenceParser = sentenceParser;\n"
" this.sentenceTranslator = sentenceTranslator;\n"
" }\n"
@@ -132,7 +170,8 @@
" private Translator sentenceTranslator;\n"
" \n"
" @Initializer\n"
-" TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {\n"
+" TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
" this.sentenceParser = sentenceParser;\n"
" this.sentenceTranslator = sentenceTranslator;\n"
" }\n"
@@ -150,8 +189,12 @@
#. Tag: para
#: intro.xml:46
#, no-c-format
-msgid "We may obtain an instance of <literal>TextTranslator</literal> by injecting it into a Web Bean, Servlet or EJB:"
-msgstr "通过将其注入到一个Web Bean,Servlet或者EJB,我们能够获得一个 <literal>TextTranslator</literal>的实例:"
+msgid ""
+"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
+"it into a Web Bean, Servlet or EJB:"
+msgstr ""
+"通过将其注入到一个Web Bean,Servlet或者EJB,我们能够获得一个 "
+"<literal>TextTranslator</literal>的实例:"
#. Tag: programlisting
#: intro.xml:49
@@ -170,32 +213,69 @@
#. Tag: para
#: intro.xml:51
#, no-c-format
-msgid "Alternatively, we may obtain an instance by directly calling a method of the Web Bean manager:"
+msgid ""
+"Alternatively, we may obtain an instance by directly calling a method of the "
+"Web Bean manager:"
msgstr "或者,我们可以直接调用Web Bean管理器的方法获得这个实例:"
#. Tag: programlisting
#: intro.xml:54
#, no-c-format
-msgid "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
-msgstr "<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator.class);]]>"
+msgid ""
+"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+"class);]]>"
+msgstr ""
+"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+"class);]]>"
#. Tag: para
#: intro.xml:56
#, no-c-format
-msgid "But wait: <literal>TextTranslator</literal> does not have a constructor with no parameters! Is it still a Web Bean? Well, a class that does not have a constructor with no parameters can still be a Web Bean if it has a constructor annotated <literal>@Initializer</literal>."
-msgstr "但是,等一下:<literal>TextTranslator</literal>并没有一个无参构造器!它仍然是一个Web Bean么?好吧,一个没有无参构造器的类依然能够成为一个Web Bean,只要你在它的一个构造器上使用<literal>@Initializer</literal>注释即可。"
+msgid ""
+"But wait: <literal>TextTranslator</literal> does not have a constructor with "
+"no parameters! Is it still a Web Bean? Well, a class that does not have a "
+"constructor with no parameters can still be a Web Bean if it has a "
+"constructor annotated <literal>@Initializer</literal>."
+msgstr ""
+"但是,等一下:<literal>TextTranslator</literal>并没有一个无参构造器!它仍然是"
+"一个Web Bean么?好吧,一个没有无参构造器的类依然能够成为一个Web Bean,只要你"
+"在它的一个构造器上使用<literal>@Initializer</literal>注释即可。"
#. Tag: para
#: intro.xml:61
#, no-c-format
-msgid "As you've guessed, the <literal>@Initializer</literal> annotation has something to do with dependency injection! <literal>@Initializer</literal> may be applied to a constructor or method of a Web Bean, and tells the Web Bean manager to call that constructor or method when instantiating the Web Bean. The Web Bean manager will inject other Web Beans to the parameters of the constructor or method."
-msgstr "就像你猜到的一样, <literal>@Initializer</literal>注释和依赖注入有关! <literal>@Initializer</literal>可以应用到一个Web Bean的构造器或者方法上,它告诉Web Bean管理器在初始化一个Web Bean的时候去调用这个构造器或者方法。Web Beam管理器能够将其他的Web Bean注入到构造器或者方法的参数中。"
+msgid ""
+"As you've guessed, the <literal>@Initializer</literal> annotation has "
+"something to do with dependency injection! <literal>@Initializer</literal> "
+"may be applied to a constructor or method of a Web Bean, and tells the Web "
+"Bean manager to call that constructor or method when instantiating the Web "
+"Bean. The Web Bean manager will inject other Web Beans to the parameters of "
+"the constructor or method."
+msgstr ""
+"就像你猜到的一样, <literal>@Initializer</literal>注释和依赖注入有关! "
+"<literal>@Initializer</literal>可以应用到一个Web Bean的构造器或者方法上,它告"
+"诉Web Bean管理器在初始化一个Web Bean的时候去调用这个构造器或者方法。Web Beam"
+"管理器能够将其他的Web Bean注入到构造器或者方法的参数中。"
#. Tag: para
#: intro.xml:68
-#, no-c-format
-msgid "At system initialization time, the Web Bean manager must validate that exactly one Web Bean exists which satisfies each injection point. In our example, if no implementation of <literal>Translator</literal> available—if the <literal>SentenceTranslator</literal> EJB was not deployed—the Web Bean manager would throw an <literal>UnsatisfiedDependencyException</literal>. If more than one implementation of <literal>Translator</literal> was available, the Web Bean manager would throw an <literal>AmbiguousDependencyException</literal>."
-msgstr "在系统初始化的时候,Web Bean管理器必须验证只存在一个Web Bean能够满足每个注入点。在我们的例子中,如果没有<literal>Translator</literal>实现—如果<literal>SentenceTranslator</literal> EJB没有被部署—Web Bean管理器将会抛出一个<literal>UnsatisfiedDependencyException</literal>异常。如果多于一个<literal>Translator</literal>实现,Web Bean管理器将会抛出一个<literal>AmbiguousDependencyException</literal>异常。"
+#, fuzzy, no-c-format
+msgid ""
+"At system initialization time, the Web Bean manager must validate that "
+"exactly one Web Bean exists which satisfies each injection point. In our "
+"example, if no implementation of <literal>Translator</literal> available "
+"— if the <literal>SentenceTranslator</literal> EJB was not deployed "
+"— the Web Bean manager would throw an "
+"<literal>UnsatisfiedDependencyException</literal>. If more than one "
+"implementation of <literal>Translator</literal> was available, the Web Bean "
+"manager would throw an <literal>AmbiguousDependencyException</literal>."
+msgstr ""
+"在系统初始化的时候,Web Bean管理器必须验证只存在一个Web Bean能够满足每个注入"
+"点。在我们的例子中,如果没有<literal>Translator</literal>实现—如果"
+"<literal>SentenceTranslator</literal> EJB没有被部署—Web Bean管理器将会抛"
+"出一个<literal>UnsatisfiedDependencyException</literal>异常。如果多于一个"
+"<literal>Translator</literal>实现,Web Bean管理器将会抛出一个"
+"<literal>AmbiguousDependencyException</literal>异常。"
#. Tag: title
#: intro.xml:80
@@ -212,20 +292,50 @@
#. Tag: para
#: intro.xml:84
#, no-c-format
-msgid "A Web Bean is an application class that contains business logic. A Web Bean may be called directly from Java code, or it may be invoked via Unified EL. A Web Bean may access transactional resources. Dependencies between Web Beans are managed automatically by the Web Bean manager. Most Web Beans are <emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The lifecycle of a Web Bean is always managed by the Web Bean manager."
-msgstr "一个Web Bean是一个包含业务逻辑的应用类。一个Web Bean能够从Java代码中直接调用,也可以通过统一表达语言调用。一个Web Bean可以访问事务性的资源。Web Bean之间的依赖通过Web Bean管理器自动管理。大部分Web Bean是具有 <emphasis>状态</emphasis>和<emphasis>上下文</emphasis>的。Web Bean的生命周期总是通过Web Bean管理器进行管理。"
+msgid ""
+"A Web Bean is an application class that contains business logic. A Web Bean "
+"may be called directly from Java code, or it may be invoked via Unified EL. "
+"A Web Bean may access transactional resources. Dependencies between Web "
+"Beans are managed automatically by the Web Bean manager. Most Web Beans are "
+"<emphasis>stateful</emphasis> and <emphasis>contextual</emphasis>. The "
+"lifecycle of a Web Bean is always managed by the Web Bean manager."
+msgstr ""
+"一个Web Bean是一个包含业务逻辑的应用类。一个Web Bean能够从Java代码中直接调"
+"用,也可以通过统一表达语言调用。一个Web Bean可以访问事务性的资源。Web Bean之"
+"间的依赖通过Web Bean管理器自动管理。大部分Web Bean是具有 <emphasis>状态</"
+"emphasis>和<emphasis>上下文</emphasis>的。Web Bean的生命周期总是通过Web Bean"
+"管理器进行管理。"
#. Tag: para
#: intro.xml:91
#, no-c-format
-msgid "Let's back up a second. What does it really mean to be \"contextual\"? Since Web Beans may be stateful, it matters <emphasis>which</emphasis> bean instance I have. Unlike a stateless component model (for example, stateless session beans) or a singleton component model (such as servlets, or singleton beans), different clients of a Web Bean see the Web Bean in different states. The client-visible state depends upon which instance of the Web Bean the client has a reference to."
-msgstr "让我们后退一步。\"上下文\"究竟意味着什么?既然Web Beans可以是有状态的,那它关系到我到底拥有<emphasis>哪个</emphasis>Bean实例。和无状态组件模型(例如无状态的会话Bean)或者一个单例模型组件(例如Servlet或者单例Bean)不同,一个Web Bean的不同客户端看到的Web Bean的状态是不同的。客户端所见的状态取决于这个客户端拥有的是哪一个Web Bean实例的引用。"
+msgid ""
+"Let's back up a second. What does it really mean to be \"contextual\"? Since "
+"Web Beans may be stateful, it matters <emphasis>which</emphasis> bean "
+"instance I have. Unlike a stateless component model (for example, stateless "
+"session beans) or a singleton component model (such as servlets, or "
+"singleton beans), different clients of a Web Bean see the Web Bean in "
+"different states. The client-visible state depends upon which instance of "
+"the Web Bean the client has a reference to."
+msgstr ""
+"让我们后退一步。\"上下文\"究竟意味着什么?既然Web Beans可以是有状态的,那它关"
+"系到我到底拥有<emphasis>哪个</emphasis>Bean实例。和无状态组件模型(例如无状态"
+"的会话Bean)或者一个单例模型组件(例如Servlet或者单例Bean)不同,一个Web Bean"
+"的不同客户端看到的Web Bean的状态是不同的。客户端所见的状态取决于这个客户端拥"
+"有的是哪一个Web Bean实例的引用。"
#. Tag: para
#: intro.xml:98
#, no-c-format
-msgid "However, like a stateless or singleton model, but <emphasis>unlike</emphasis> stateful session beans, the client does not control the lifecycle of the instance by explicitly creating and destroying it. Instead, the <emphasis>scope</emphasis> of the Web Bean determines:"
-msgstr "然而,Web Bean像无状态或者单例模型那样,却和有状态的会话Bean<emphasis>不同</emphasis>,客户端无法通过显式地创建或者销毁它来控制实例的生命周期。取而代之,Web Bean的<emphasis>范围</emphasis>决定了:"
+msgid ""
+"However, like a stateless or singleton model, but <emphasis>unlike</"
+"emphasis> stateful session beans, the client does not control the lifecycle "
+"of the instance by explicitly creating and destroying it. Instead, the "
+"<emphasis>scope</emphasis> of the Web Bean determines:"
+msgstr ""
+"然而,Web Bean像无状态或者单例模型那样,却和有状态的会话Bean<emphasis>不同</"
+"emphasis>,客户端无法通过显式地创建或者销毁它来控制实例的生命周期。取而代之,"
+"Web Bean的<emphasis>范围</emphasis>决定了:"
#. Tag: para
#: intro.xml:105
@@ -236,26 +346,53 @@
#. Tag: para
#: intro.xml:108
#, no-c-format
-msgid "which clients share a reference to a particular instance of the Web Bean."
+msgid ""
+"which clients share a reference to a particular instance of the Web Bean."
msgstr "哪些客户端共享Web Bean特定实例的一个引用。"
#. Tag: para
#: intro.xml:113
#, no-c-format
-msgid "For a given thread in a Web Beans application, there may be an <emphasis>active context</emphasis> associated with the scope of the Web Bean. This context may be unique to the thread (for example, if the Web Bean is request scoped), or it may be shared with certain other threads (for example, if the Web Bean is session scoped) or even all other threads (if it is application scoped)."
-msgstr "给定一个Web Bean应用的线程,将可能有一个<emphasis>激活的上下文</emphasis>和Web Bean的范围关联。这个上下文可能对于该线程是唯一的(例如,如果这个Web Bean是请求范围的),或者这个上下文可能被某些其他线程共享(例如,如果这个Web Bean是会话范围的),这个上下文甚至可以被所有线程共享(例如,这个Web Bean是应用范围的)。"
+msgid ""
+"For a given thread in a Web Beans application, there may be an "
+"<emphasis>active context</emphasis> associated with the scope of the Web "
+"Bean. This context may be unique to the thread (for example, if the Web Bean "
+"is request scoped), or it may be shared with certain other threads (for "
+"example, if the Web Bean is session scoped) or even all other threads (if it "
+"is application scoped)."
+msgstr ""
+"给定一个Web Bean应用的线程,将可能有一个<emphasis>激活的上下文</emphasis>和"
+"Web Bean的范围关联。这个上下文可能对于该线程是唯一的(例如,如果这个Web Bean"
+"是请求范围的),或者这个上下文可能被某些其他线程共享(例如,如果这个Web Bean"
+"是会话范围的),这个上下文甚至可以被所有线程共享(例如,这个Web Bean是应用范"
+"围的)。"
#. Tag: para
#: intro.xml:119
#, no-c-format
-msgid "Clients (for example, other Web Beans) executing in the same context will see the same instance of the Web Bean. But clients in a different context will see a different instance."
-msgstr "在同一个上下文中执行的客户端(例如,其他的Web Bean)看到的是同一个Web Bean的实例。但是不同的上下文中的客户端看到的是不同的实例。"
+msgid ""
+"Clients (for example, other Web Beans) executing in the same context will "
+"see the same instance of the Web Bean. But clients in a different context "
+"will see a different instance."
+msgstr ""
+"在同一个上下文中执行的客户端(例如,其他的Web Bean)看到的是同一个Web Bean的"
+"实例。但是不同的上下文中的客户端看到的是不同的实例。"
#. Tag: para
#: intro.xml:123
#, no-c-format
-msgid "One great advantage of the contextual model is that it allows stateful Web Beans to be treated like services! The client need not concern itself with managing the lifecycle of the Web Bean it is using, <emphasis>nor does it even need to know what that lifecyle is.</emphasis> Web Beans interact by passing messages, and the Web Bean implementations define the lifecycle of their own state. The Web Beans are loosely coupled because:"
-msgstr "具备上下文的模型带来的一个巨大优点是它允许有状态的Web Bean可以像服务一样使用!客户端不需要关注本身以及它使用的Web Bean的生命周期,<emphasis>甚至它根本不需要知道生命周期是什么</emphasis>。Web Bean通过传递消息来交互,Web Bean的实现定义了他们自己状态的生命周期。Web Bean是松耦合的,因为:"
+msgid ""
+"One great advantage of the contextual model is that it allows stateful Web "
+"Beans to be treated like services! The client need not concern itself with "
+"managing the lifecycle of the Web Bean it is using, <emphasis>nor does it "
+"even need to know what that lifecyle is.</emphasis> Web Beans interact by "
+"passing messages, and the Web Bean implementations define the lifecycle of "
+"their own state. The Web Beans are loosely coupled because:"
+msgstr ""
+"具备上下文的模型带来的一个巨大优点是它允许有状态的Web Bean可以像服务一样使"
+"用!客户端不需要关注本身以及它使用的Web Bean的生命周期,<emphasis>甚至它根本"
+"不需要知道生命周期是什么</emphasis>。Web Bean通过传递消息来交互,Web Bean的实"
+"现定义了他们自己状态的生命周期。Web Bean是松耦合的,因为:"
#. Tag: para
#: intro.xml:132
@@ -272,14 +409,30 @@
#. Tag: para
#: intro.xml:139
#, no-c-format
-msgid "We can replace one Web Bean with a different Web Bean that implements the same API and has a different lifecycle (a different scope) without affecting the other Web Bean implementation. In fact, Web Beans defines a sophisticated facility for overriding Web Bean implementations at deployment time, as we will see in <xref linkend=\"deploymenttypes\"/>."
-msgstr "我们能够使用一个实现相同接口,具有不同生命周期(一个不同的范围)的Web Bean替换一个Web Bean而不会影响其他的Web Bean实现。实际上,Web Bean定义了一个复杂的机制能够在部署时覆盖Web Bean的实现,我们将在<xref linkend=\"deploymenttypes\"/>一章阐述。"
+msgid ""
+"We can replace one Web Bean with a different Web Bean that implements the "
+"same API and has a different lifecycle (a different scope) without affecting "
+"the other Web Bean implementation. In fact, Web Beans defines a "
+"sophisticated facility for overriding Web Bean implementations at deployment "
+"time, as we will see in <xref linkend=\"deploymenttypes\"/>."
+msgstr ""
+"我们能够使用一个实现相同接口,具有不同生命周期(一个不同的范围)的Web Bean替"
+"换一个Web Bean而不会影响其他的Web Bean实现。实际上,Web Bean定义了一个复杂的"
+"机制能够在部署时覆盖Web Bean的实现,我们将在<xref linkend=\"deploymenttypes"
+"\"/>一章阐述。"
#. Tag: para
#: intro.xml:145
-#, no-c-format
-msgid "Note that not all clients of a Web Bean are Web Beans. Other objects such as Servlets or Message-Driven Beans—which are by nature not injectable, contextual objects—may also obtain references to Web Beans by injection."
-msgstr "需要注意的是并非所有的Web Bean的客户端都是Web Bean。其他对象诸如Servlet或者消息驱动Bean#151;天生不可注入的, 具备上下文的对象—也可以通过注入获得Web Bean的引用。"
+#, fuzzy, no-c-format
+msgid ""
+"Note that not all clients of a Web Bean are Web Beans. Other objects such as "
+"Servlets or Message-Driven Beans — which are by nature not injectable, "
+"contextual objects — may also obtain references to Web Beans by "
+"injection."
+msgstr ""
+"需要注意的是并非所有的Web Bean的客户端都是Web Bean。其他对象诸如Servlet或者消"
+"息驱动Bean#151;天生不可注入的, 具备上下文的对象—也可以通过注入获得Web "
+"Bean的引用。"
#. Tag: para
#: intro.xml:149
@@ -350,8 +503,13 @@
#. Tag: para
#: intro.xml:172
#, no-c-format
-msgid "Web Beans usually acquire references to other Web Beans via dependency injection. Any injected attribute specifies a \"contract\" that must be satisfied by the Web Bean to be injected. The contract is:"
-msgstr "Web Bean通常通过依赖注入获得其他Web Bean的引用。任何注入的属性都要指定一个\"合约\",这个合约必须满足注入的Web Bean的要求。这个合约是:"
+msgid ""
+"Web Beans usually acquire references to other Web Beans via dependency "
+"injection. Any injected attribute specifies a \"contract\" that must be "
+"satisfied by the Web Bean to be injected. The contract is:"
+msgstr ""
+"Web Bean通常通过依赖注入获得其他Web Bean的引用。任何注入的属性都要指定一个"
+"\"合约\",这个合约必须满足注入的Web Bean的要求。这个合约是:"
#. Tag: para
#: intro.xml:177
@@ -368,14 +526,29 @@
#. Tag: para
#: intro.xml:181
#, no-c-format
-msgid "An API is a user-defined class or interface. (If the Web Bean is an EJB session bean, the API type is the <literal>@Local</literal> interface or bean-class local view). A binding type represents some client-visible semantic that is satisfied by some implementations of the API and not by others."
-msgstr "一个API指的是用户定义的类或者接口。(如果Web Bean是一个EJB会话Bean,API类型是 <literal>@Local</literal> 接口或者Bean类的本地视图)。一个绑定类型表示某个客户端可见的语义,这个语义由API的某个实现而不是其他实现来满足。"
+msgid ""
+"An API is a user-defined class or interface. (If the Web Bean is an EJB "
+"session bean, the API type is the <literal>@Local</literal> interface or "
+"bean-class local view). A binding type represents some client-visible "
+"semantic that is satisfied by some implementations of the API and not by "
+"others."
+msgstr ""
+"一个API指的是用户定义的类或者接口。(如果Web Bean是一个EJB会话Bean,API类型"
+"是 <literal>@Local</literal> 接口或者Bean类的本地视图)。一个绑定类型表示某个"
+"客户端可见的语义,这个语义由API的某个实现而不是其他实现来满足。"
#. Tag: para
#: intro.xml:186
#, no-c-format
-msgid "Binding types are represented by user-defined annotations that are themselves annotated <literal>@BindingType</literal>. For example, the following injection point has API type <literal>PaymentProcessor</literal> and binding type <literal>@CreditCard</literal>:"
-msgstr "绑定类型通过用户定义的注释来表现,这些注释自己需要通过<literal>@BindingType</literal>来注释。例如,下面的注入点有一个API类型 <literal>PaymentProcessor</literal>和绑定类型<literal>@CreditCard</literal>:"
+msgid ""
+"Binding types are represented by user-defined annotations that are "
+"themselves annotated <literal>@BindingType</literal>. For example, the "
+"following injection point has API type <literal>PaymentProcessor</literal> "
+"and binding type <literal>@CreditCard</literal>:"
+msgstr ""
+"绑定类型通过用户定义的注释来表现,这些注释自己需要通过<literal>@BindingType</"
+"literal>来注释。例如,下面的注入点有一个API类型 <literal>PaymentProcessor</"
+"literal>和绑定类型<literal>@CreditCard</literal>:"
#. Tag: programlisting
#: intro.xml:191
@@ -386,20 +559,35 @@
#. Tag: para
#: intro.xml:193
#, no-c-format
-msgid "If no binding type is explicitly specified at an injection point, the default binding type <literal>@Current</literal> is assumed."
-msgstr "如果在一个注入点没有显式的指定一个绑定类型,那么默认的绑定类型是<literal>@Current</literal>。"
+msgid ""
+"If no binding type is explicitly specified at an injection point, the "
+"default binding type <literal>@Current</literal> is assumed."
+msgstr ""
+"如果在一个注入点没有显式的指定一个绑定类型,那么默认的绑定类型是"
+"<literal>@Current</literal>。"
#. Tag: para
#: intro.xml:196
#, no-c-format
-msgid "For each injection point, the Web Bean manager searches for a Web Bean which satisfies the contract (implements the API, and has all the binding types), and injects that Web Bean."
-msgstr "对于每个注入点,Web Bean管理器都会搜索满足合约的Web Bean(实现了API并且拥有所有的绑定类型),然后将这个Web Bean注入。"
+msgid ""
+"For each injection point, the Web Bean manager searches for a Web Bean which "
+"satisfies the contract (implements the API, and has all the binding types), "
+"and injects that Web Bean."
+msgstr ""
+"对于每个注入点,Web Bean管理器都会搜索满足合约的Web Bean(实现了API并且拥有所"
+"有的绑定类型),然后将这个Web Bean注入。"
#. Tag: para
#: intro.xml:200
#, no-c-format
-msgid "The following Web Bean has the binding type <literal>@CreditCard</literal> and implements the API type <literal>PaymentProcessor</literal>. It could therefore be injected to the example injection point:"
-msgstr "下面的Web Bean拥有一个绑定类型<literal>@CreditCard</literal>,并且实现了API类型<literal>PaymentProcessor</literal>。因此,这个Web Bean可以被注入到这个例子的注入点中:"
+msgid ""
+"The following Web Bean has the binding type <literal>@CreditCard</literal> "
+"and implements the API type <literal>PaymentProcessor</literal>. It could "
+"therefore be injected to the example injection point:"
+msgstr ""
+"下面的Web Bean拥有一个绑定类型<literal>@CreditCard</literal>,并且实现了API类"
+"型<literal>PaymentProcessor</literal>。因此,这个Web Bean可以被注入到这个例子"
+"的注入点中:"
#. Tag: programlisting
#: intro.xml:204
@@ -416,14 +604,26 @@
#. Tag: para
#: intro.xml:206
#, no-c-format
-msgid "If a Web Bean does not explicitly specify a set of binding types, it has exactly one binding type: the default binding type <literal>@Current</literal>."
-msgstr "如果一个Web Bean没有显式的指定一套绑定类型,它将只有一个绑定类型:默认的绑定类型<literal>@Current</literal>。"
+msgid ""
+"If a Web Bean does not explicitly specify a set of binding types, it has "
+"exactly one binding type: the default binding type <literal>@Current</"
+"literal>."
+msgstr ""
+"如果一个Web Bean没有显式的指定一套绑定类型,它将只有一个绑定类型:默认的绑定"
+"类型<literal>@Current</literal>。"
#. Tag: para
#: intro.xml:209
#, no-c-format
-msgid "Web Beans defines a sophisticated but intuitive <emphasis>resolution algorithm</emphasis> that helps the container decide what to do if there is more than one Web Bean that satisfies a particular contract. We'll get into the details in <xref linkend=\"injection\"/>."
-msgstr "Web Bean定义了一个复杂但是很直观的<emphasis>解析算法</emphasis>来帮助容器确定如何处理多个Web Bean满足特定合约的情况。我们将在 <xref linkend=\"injection\"/>一章中详述。"
+msgid ""
+"Web Beans defines a sophisticated but intuitive <emphasis>resolution "
+"algorithm</emphasis> that helps the container decide what to do if there is "
+"more than one Web Bean that satisfies a particular contract. We'll get into "
+"the details in <xref linkend=\"injection\"/>."
+msgstr ""
+"Web Bean定义了一个复杂但是很直观的<emphasis>解析算法</emphasis>来帮助容器确定"
+"如何处理多个Web Bean满足特定合约的情况。我们将在 <xref linkend=\"injection\"/"
+">一章中详述。"
#. Tag: title
#: intro.xml:217
@@ -434,20 +634,43 @@
#. Tag: para
#: intro.xml:219
#, no-c-format
-msgid "<emphasis>Deployment types</emphasis> let us classify our Web Beans by deployment scenario. A deployment type is an annotation that represents a particular deployment scenario, for example <literal>@Mock</literal>, <literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We apply the annotation to Web Beans which should be deployed in that scenario. A deployment type allows a whole set of Web Beans to be conditionally deployed, with a just single line of configuration."
-msgstr "<emphasis>部署类型</emphasis>能够让我们根据部署场景来划分我们的Web Bean。一个部署类型是一个注释,这个注释代表了一种特定的部署场景,例如<literal>@Mock</literal>,<literal>@Staging</literal>或者<literal>@AustralianTaxLaw</literal>。我们通过这些注释来决定哪些Web Bean部署在哪些场景中。一个部署类型允许我们只使用一行配置就可以对一整套Web Bean进行条件化的部署。"
+msgid ""
+"<emphasis>Deployment types</emphasis> let us classify our Web Beans by "
+"deployment scenario. A deployment type is an annotation that represents a "
+"particular deployment scenario, for example <literal>@Mock</literal>, "
+"<literal>@Staging</literal> or <literal>@AustralianTaxLaw</literal>. We "
+"apply the annotation to Web Beans which should be deployed in that scenario. "
+"A deployment type allows a whole set of Web Beans to be conditionally "
+"deployed, with a just single line of configuration."
+msgstr ""
+"<emphasis>部署类型</emphasis>能够让我们根据部署场景来划分我们的Web Bean。一个"
+"部署类型是一个注释,这个注释代表了一种特定的部署场景,例如<literal>@Mock</"
+"literal>,<literal>@Staging</literal>或者<literal>@AustralianTaxLaw</"
+"literal>。我们通过这些注释来决定哪些Web Bean部署在哪些场景中。一个部署类型允"
+"许我们只使用一行配置就可以对一整套Web Bean进行条件化的部署。"
#. Tag: para
#: intro.xml:226
#, no-c-format
-msgid "Many Web Beans just use the default deployment type <literal>@Production</literal>, in which case no deployment type need be explicitly specified. All three Web Bean in our example have the deployment type <literal>@Production</literal>."
-msgstr "很多Web Bean只使用默认的部署类型<literal>@Production</literal>。在这种情况下,不需要显式的指定部署类型。在我们的例子中的三个Web Bean都拥有部署类型<literal>@Production</literal>。"
+msgid ""
+"Many Web Beans just use the default deployment type <literal>@Production</"
+"literal>, in which case no deployment type need be explicitly specified. All "
+"three Web Bean in our example have the deployment type <literal>@Production</"
+"literal>."
+msgstr ""
+"很多Web Bean只使用默认的部署类型<literal>@Production</literal>。在这种情况"
+"下,不需要显式的指定部署类型。在我们的例子中的三个Web Bean都拥有部署类型"
+"<literal>@Production</literal>。"
#. Tag: para
#: intro.xml:230
#, no-c-format
-msgid "In a testing environment, we might want to replace the <literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr "在一个测试环境中,我们有可能将<literal>SentenceTranslator</literal> Web Bean替换为一个\"模拟对象\":"
+msgid ""
+"In a testing environment, we might want to replace the "
+"<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
+msgstr ""
+"在一个测试环境中,我们有可能将<literal>SentenceTranslator</literal> Web Bean"
+"替换为一个\"模拟对象\":"
#. Tag: programlisting
#: intro.xml:233
@@ -470,14 +693,23 @@
#. Tag: para
#: intro.xml:236
#, no-c-format
-msgid "We would enable the deployment type <literal>@Mock</literal> in our testing environment, to indicate that <literal>MockSentenceTranslator</literal> and any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr "我们需要在测试环境中激活部署类型<literal>@Mock</literal>,这时应用会使用 <literal>MockSentenceTranslator</literal>或者其他拥有<literal>@Mock</literal>注释的Web Bean。"
+msgid ""
+"We would enable the deployment type <literal>@Mock</literal> in our testing "
+"environment, to indicate that <literal>MockSentenceTranslator</literal> and "
+"any other Web Bean annotated <literal>@Mock</literal> should be used."
+msgstr ""
+"我们需要在测试环境中激活部署类型<literal>@Mock</literal>,这时应用会使用 "
+"<literal>MockSentenceTranslator</literal>或者其他拥有<literal>@Mock</literal>"
+"注释的Web Bean。"
#. Tag: para
#: intro.xml:240
#, no-c-format
-msgid "We'll talk more about this unique and powerful feature in <xref linkend=\"deploymenttypes\"/>."
-msgstr "我们将在<xref linkend=\"deploymenttypes\"/>一章中详述这个独特而强大的特性。"
+msgid ""
+"We'll talk more about this unique and powerful feature in <xref linkend="
+"\"deploymenttypes\"/>."
+msgstr ""
+"我们将在<xref linkend=\"deploymenttypes\"/>一章中详述这个独特而强大的特性。"
#. Tag: title
#: intro.xml:246
@@ -488,14 +720,25 @@
#. Tag: para
#: intro.xml:248
#, no-c-format
-msgid "The <emphasis>scope</emphasis> defines the lifecycle and visibility of instances of the Web Bean. The Web Beans context model is extensible, accommodating arbitrary scopes. However, certain important scopes are built-in to the specification, and provided by the Web Bean manager. A scope is represented by an annotation type."
-msgstr " <emphasis>范围</emphasis>定义了一个Web Bean实例的生命周期和可见度。Web Bean的上下文模型是可扩展的,可以适应任意范围。不过某些特定的重要的范围已经内置于规范中了,由Web Bean管理器提供这些范围。一个范围也是通过注释类型来表示的。"
+msgid ""
+"The <emphasis>scope</emphasis> defines the lifecycle and visibility of "
+"instances of the Web Bean. The Web Beans context model is extensible, "
+"accommodating arbitrary scopes. However, certain important scopes are built-"
+"in to the specification, and provided by the Web Bean manager. A scope is "
+"represented by an annotation type."
+msgstr ""
+" <emphasis>范围</emphasis>定义了一个Web Bean实例的生命周期和可见度。Web Bean"
+"的上下文模型是可扩展的,可以适应任意范围。不过某些特定的重要的范围已经内置于"
+"规范中了,由Web Bean管理器提供这些范围。一个范围也是通过注释类型来表示的。"
#. Tag: para
#: intro.xml:254
#, no-c-format
-msgid "For example, any web application may have <emphasis>session scoped</emphasis> Web Beans:"
-msgstr "例如,任何一个Web应用都可能拥有 <emphasis>会话范围</emphasis>的Web Bean:"
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> Web Beans:"
+msgstr ""
+"例如,任何一个Web应用都可能拥有 <emphasis>会话范围</emphasis>的Web Bean:"
#. Tag: programlisting
#: intro.xml:257
@@ -510,14 +753,25 @@
#. Tag: para
#: intro.xml:259
#, no-c-format
-msgid "An instance of a session scoped Web Bean is bound to a user session and is shared by all requests that execute in the context of that session."
-msgstr "一个会话范围的Web Bean实例将绑定到用户会话中,它被这个会话上下文中的所有请求共享。"
+msgid ""
+"An instance of a session scoped Web Bean is bound to a user session and is "
+"shared by all requests that execute in the context of that session."
+msgstr ""
+"一个会话范围的Web Bean实例将绑定到用户会话中,它被这个会话上下文中的所有请求"
+"共享。"
#. Tag: para
#: intro.xml:262
#, no-c-format
-msgid "By default, Web Beans belong to a special scope called the <emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are pure dependent objects of the object into which they are injected, and their lifecycle is bound to the lifecycle of that object."
-msgstr "默认情况下,Web Bean属于一个名为<emphasis>依赖伪范围</emphasis>的特殊范围。拥有这个范围的Web Bean的范围取决于其所注入的对象的范围,它的生命周期和所注入的对象的生命周期绑定在一起。"
+msgid ""
+"By default, Web Beans belong to a special scope called the "
+"<emphasis>dependent pseudo-scope</emphasis>. Web Beans with this scope are "
+"pure dependent objects of the object into which they are injected, and their "
+"lifecycle is bound to the lifecycle of that object."
+msgstr ""
+"默认情况下,Web Bean属于一个名为<emphasis>依赖伪范围</emphasis>的特殊范围。拥"
+"有这个范围的Web Bean的范围取决于其所注入的对象的范围,它的生命周期和所注入的"
+"对象的生命周期绑定在一起。"
#. Tag: para
#: intro.xml:267
@@ -534,8 +788,12 @@
#. Tag: para
#: intro.xml:274
#, no-c-format
-msgid "A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in Unified EL expressions. It's easy to specify the name of a Web Bean:"
-msgstr "一个Web Bean可能有一个<emphasis>名字</emphasis>,通过名字,Web Bean可以在统一表达式语言中使用。为Web Bean指定一个名字非常简单:"
+msgid ""
+"A Web Bean may have a <emphasis>name</emphasis>, allowing it to be used in "
+"Unified EL expressions. It's easy to specify the name of a Web Bean:"
+msgstr ""
+"一个Web Bean可能有一个<emphasis>名字</emphasis>,通过名字,Web Bean可以在统一"
+"表达式语言中使用。为Web Bean指定一个名字非常简单:"
#. Tag: programlisting
#: intro.xml:278
@@ -568,7 +826,8 @@
#. Tag: para
#: intro.xml:284
#, no-c-format
-msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
+msgid ""
+"It's even easier to just let the name be defaulted by the Web Bean manager:"
msgstr "甚至我们可以让Web Bean管理器来给Web Bean指定默认的名字:"
#. Tag: programlisting
@@ -583,9 +842,13 @@
#. Tag: para
#: intro.xml:289
-#, no-c-format
-msgid "In this case, the name defaults to <literal>shoppingCart</literal>—the unqualified class name, with the first character changed to lowercase."
-msgstr "在这种情况下,Web Bean的名字默认为<literal>shoppingCart</literal>—非完整的类名,首字母改为小写"
+#, fuzzy, no-c-format
+msgid ""
+"In this case, the name defaults to <literal>shoppingCart</literal> — "
+"the unqualified class name, with the first character changed to lowercase."
+msgstr ""
+"在这种情况下,Web Bean的名字默认为<literal>shoppingCart</literal>—非完整"
+"的类名,首字母改为小写"
#. Tag: title
#: intro.xml:295
@@ -596,13 +859,21 @@
#. Tag: para
#: intro.xml:297
#, no-c-format
-msgid "Web Beans supports the interceptor functionality defined by EJB 3, not only for EJB beans, but also for plain Java classes. In addition, Web Beans provides a new approach to binding interceptors to EJB beans and other Web Beans."
-msgstr "Web Bean支持EJB3定义的拦截器功能,Web Bean将其扩展,使得POJO也具备该功能。另外,Web Bean提供一个新的方式来将拦截器绑定到EJB Bean和其他Web Bean上。"
+msgid ""
+"Web Beans supports the interceptor functionality defined by EJB 3, not only "
+"for EJB beans, but also for plain Java classes. In addition, Web Beans "
+"provides a new approach to binding interceptors to EJB beans and other Web "
+"Beans."
+msgstr ""
+"Web Bean支持EJB3定义的拦截器功能,Web Bean将其扩展,使得POJO也具备该功能。另"
+"外,Web Bean提供一个新的方式来将拦截器绑定到EJB Bean和其他Web Bean上。"
#. Tag: para
#: intro.xml:302
#, no-c-format
-msgid "It remains possible to directly specify the interceptor class via use of the <literal>@Interceptors</literal> annotation:"
+msgid ""
+"It remains possible to directly specify the interceptor class via use of the "
+"<literal>@Interceptors</literal> annotation:"
msgstr "可以通过<literal>@Interceptors</literal> 注释直接指定拦截器类:"
#. Tag: programlisting
@@ -620,8 +891,12 @@
#. Tag: para
#: intro.xml:307
#, no-c-format
-msgid "However, it is more elegant, and better practice, to indirect the interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr "然而,更优雅的方式或者更佳的实践是通过<emphasis>拦截器绑定类型</emphasis>来间接地绑定拦截器:"
+msgid ""
+"However, it is more elegant, and better practice, to indirect the "
+"interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
+msgstr ""
+"然而,更优雅的方式或者更佳的实践是通过<emphasis>拦截器绑定类型</emphasis>来间"
+"接地绑定拦截器:"
#. Tag: programlisting
#: intro.xml:311
@@ -636,8 +911,12 @@
#. Tag: para
#: intro.xml:313
#, no-c-format
-msgid "We'll discuss Web Beans interceptors and decorators in <xref linkend=\"interceptors\"/> and <xref linkend=\"decorators\"/>."
-msgstr "我们将在<xref linkend=\"interceptors\"/>和<xref linkend=\"decorators\"/>两章分别讨论Web Bean拦截器和装饰器。"
+msgid ""
+"We'll discuss Web Beans interceptors and decorators in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgstr ""
+"我们将在<xref linkend=\"interceptors\"/>和<xref linkend=\"decorators\"/>两章"
+"分别讨论Web Bean拦截器和装饰器。"
#. Tag: title
#: intro.xml:321
@@ -648,8 +927,12 @@
#. Tag: para
#: intro.xml:323
#, no-c-format
-msgid "We've already seen that JavaBeans, EJBs and some other Java classes can be Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr "我们已经看到,JavaBean, EJB和其他Java类都可以成为Web Bean。但是,确切地说,什么样的对象能够称为Web Bean?"
+msgid ""
+"We've already seen that JavaBeans, EJBs and some other Java classes can be "
+"Web Beans. But exactly what kinds of objects are Web Beans?"
+msgstr ""
+"我们已经看到,JavaBean, EJB和其他Java类都可以成为Web Bean。但是,确切地说,什"
+"么样的对象能够称为Web Bean?"
#. Tag: title
#: intro.xml:327
@@ -660,13 +943,19 @@
#. Tag: para
#: intro.xml:329
#, no-c-format
-msgid "The Web Beans specification says that a concrete Java class is a <emphasis>simple</emphasis> Web Bean if:"
-msgstr "Web Bean规范声称一个具体的Java类可以成为一个<emphasis>简单</emphasis>的Web Bean, 只要这个类:"
+msgid ""
+"The Web Beans specification says that a concrete Java class is a "
+"<emphasis>simple</emphasis> Web Bean if:"
+msgstr ""
+"Web Bean规范声称一个具体的Java类可以成为一个<emphasis>简单</emphasis>的Web "
+"Bean, 只要这个类:"
#. Tag: para
#: intro.xml:334
#, no-c-format
-msgid "it is not an EE container-managed component, like an EJB, a Servlet or a JPA entity,"
+msgid ""
+"it is not an EE container-managed component, like an EJB, a Servlet or a JPA "
+"entity,"
msgstr "它不是一个EE容器管理的组件,例如一个EJB,一个Servlet或者一个JPA实体,"
#. Tag: para
@@ -684,8 +973,11 @@
#. Tag: para
#: intro.xml:344
#, no-c-format
-msgid "it has a constructor with no parameters, or a constructor annotated <literal>@Initializer</literal>."
-msgstr "它拥有一个无参构造器,或者构造器具有<literal>@Initializer</literal>注释。"
+msgid ""
+"it has a constructor with no parameters, or a constructor annotated "
+"<literal>@Initializer</literal>."
+msgstr ""
+"它拥有一个无参构造器,或者构造器具有<literal>@Initializer</literal>注释。"
#. Tag: para
#: intro.xml:349
@@ -696,8 +988,13 @@
#. Tag: para
#: intro.xml:351
#, no-c-format
-msgid "Every interface implemented directly or indirectly by a simple Web Bean is an API type of the simple Web Bean. The class and its superclasses are also API types."
-msgstr "每个被简单Web Bean直接或者间接实现的接口都是这个简单Web Bean的一个API类型。这个类和它的超类也是API类型。"
+msgid ""
+"Every interface implemented directly or indirectly by a simple Web Bean is "
+"an API type of the simple Web Bean. The class and its superclasses are also "
+"API types."
+msgstr ""
+"每个被简单Web Bean直接或者间接实现的接口都是这个简单Web Bean的一个API类型。这"
+"个类和它的超类也是API类型。"
#. Tag: title
#: intro.xml:358
@@ -707,21 +1004,47 @@
#. Tag: para
#: intro.xml:360
-#, no-c-format
-msgid "The specification says that all EJB 3-style session and singleton beans are <emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web Beans—since they are not intended to be injected into other objects—but they can take advantage of most of the functionality of Web Beans, including dependency injection and interceptors."
-msgstr "规范指出所有EJB3类型的会话Bean或者单例Bean都是<emphasis>企业级</emphasis>Web Bean。消息驱动Bean不是Web Beans—因为它们不能被注入到其他对象中#151;但是它们可以使用大部分Web Bean的功能,包括依赖注入和拦截器。"
+#, fuzzy, no-c-format
+msgid ""
+"The specification says that all EJB 3-style session and singleton beans are "
+"<emphasis>enterprise</emphasis> Web Beans. Message driven beans are not Web "
+"Beans — since they are not intended to be injected into other objects "
+"— but they can take advantage of most of the functionality of Web "
+"Beans, including dependency injection and interceptors."
+msgstr ""
+"规范指出所有EJB3类型的会话Bean或者单例Bean都是<emphasis>企业级</emphasis>Web "
+"Bean。消息驱动Bean不是Web Beans—因为它们不能被注入到其他对象中#151;但是"
+"它们可以使用大部分Web Bean的功能,包括依赖注入和拦截器。"
#. Tag: para
#: intro.xml:366
#, no-c-format
-msgid "Every local interface of an enterprise Web Bean that does not have a wildcard type parameter or type variable, and every one of its superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean has a bean class local view, the bean class, and every one of its superclasses, is also an API type."
-msgstr "一个企业级Web Bean的本地接口,只要没有一个通配类型参数或者类型变量,它都是这个企业级Web Bean的API类型,该接口的每个父接口也都是这个企业级Web Bean的API类型。如果EJB Bean有一个Bean类的本地视图,这个Bean类和它的每个父类也是一个API类型。"
+msgid ""
+"Every local interface of an enterprise Web Bean that does not have a "
+"wildcard type parameter or type variable, and every one of its "
+"superinterfaces, is an API type of the enterprise Web Bean. If the EJB bean "
+"has a bean class local view, the bean class, and every one of its "
+"superclasses, is also an API type."
+msgstr ""
+"一个企业级Web Bean的本地接口,只要没有一个通配类型参数或者类型变量,它都是这"
+"个企业级Web Bean的API类型,该接口的每个父接口也都是这个企业级Web Bean的API类"
+"型。如果EJB Bean有一个Bean类的本地视图,这个Bean类和它的每个父类也是一个API类"
+"型。"
#. Tag: para
#: intro.xml:372
#, no-c-format
-msgid "Stateful session beans should declare a remove method with no parameters or a remove method annotated <literal>@Destructor</literal>. The Web Bean manager calls this method to destroy the stateful session bean instance at the end of its lifecycle. This method is called the <emphasis>destructor</emphasis> method of the enterprise Web Bean."
-msgstr "有状态的会话Bean应该声明一个无参的删除方法或者一个拥有<literal>@Destructor</literal>注释的删除方法。Web Bean管理器将在这个有状态会话Bean实例的生命周期结束时调用这个方法。这个方法被称为企业级Web Bean的<emphasis>销毁</emphasis>方法。"
+msgid ""
+"Stateful session beans should declare a remove method with no parameters or "
+"a remove method annotated <literal>@Destructor</literal>. The Web Bean "
+"manager calls this method to destroy the stateful session bean instance at "
+"the end of its lifecycle. This method is called the <emphasis>destructor</"
+"emphasis> method of the enterprise Web Bean."
+msgstr ""
+"有状态的会话Bean应该声明一个无参的删除方法或者一个拥有<literal>@Destructor</"
+"literal>注释的删除方法。Web Bean管理器将在这个有状态会话Bean实例的生命周期结"
+"束时调用这个方法。这个方法被称为企业级Web Bean的<emphasis>销毁</emphasis>方"
+"法。"
#. Tag: programlisting
#: intro.xml:378
@@ -750,8 +1073,13 @@
#. Tag: para
#: intro.xml:380
#, no-c-format
-msgid "So when should we use an enterprise Web Bean instead of a simple Web Bean? Well, whenever we need the advanced enterprise services offered by EJB, such as:"
-msgstr "我们什么时候使用企业级Web Bean来替代简单Web Bean呢?当我们需要EJB提供的高级的企业服务的时候,例如:"
+msgid ""
+"So when should we use an enterprise Web Bean instead of a simple Web Bean? "
+"Well, whenever we need the advanced enterprise services offered by EJB, such "
+"as:"
+msgstr ""
+"我们什么时候使用企业级Web Bean来替代简单Web Bean呢?当我们需要EJB提供的高级的"
+"企业服务的时候,例如:"
#. Tag: para
#: intro.xml:387
@@ -768,7 +1096,9 @@
#. Tag: para
#: intro.xml:393
#, no-c-format
-msgid "instance-level passivation for stateful session beans and instance-pooling for stateless session beans,"
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
msgstr "实例水平的有状态会话Bean的钝化和无状态会话Bean的实例池,"
#. Tag: para
@@ -786,32 +1116,62 @@
#. Tag: para
#: intro.xml:404
#, no-c-format
-msgid "we should use an enterprise Web Bean. When we don't need any of these things, a simple Web Bean will serve just fine."
-msgstr "在这中情况下,我们应该使用一个企业级Web Bean。当我们不需要这些服务的时候,一个简单Web Bean就足够了。"
+msgid ""
+"we should use an enterprise Web Bean. When we don't need any of these "
+"things, a simple Web Bean will serve just fine."
+msgstr ""
+"在这中情况下,我们应该使用一个企业级Web Bean。当我们不需要这些服务的时候,一"
+"个简单Web Bean就足够了。"
#. Tag: para
#: intro.xml:407
#, no-c-format
-msgid "Many Web Beans (including any session or application scoped Web Bean) are available for concurrent access. Therefore, the concurrency management provided by EJB 3.1 is especially useful. Most session and application scoped Web Beans should be EJBs."
-msgstr "很多Web Bean(包括任何会话范围或者应用范围的Web Bean)都需要并发访问。因此,EJB3.1提供的并发管理相当有用。大部分会话范围和应用范围的Web Bean应该是EJB。"
+msgid ""
+"Many Web Beans (including any session or application scoped Web Bean) are "
+"available for concurrent access. Therefore, the concurrency management "
+"provided by EJB 3.1 is especially useful. Most session and application "
+"scoped Web Beans should be EJBs."
+msgstr ""
+"很多Web Bean(包括任何会话范围或者应用范围的Web Bean)都需要并发访问。因此,"
+"EJB3.1提供的并发管理相当有用。大部分会话范围和应用范围的Web Bean应该是EJB。"
#. Tag: para
#: intro.xml:412
#, no-c-format
-msgid "Web Beans which hold references to heavy-weight resources, or hold a lot of internal state benefit from the advanced container-managed lifecycle defined by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal> model, with its support for passivation and instance pooling."
-msgstr "对于拥有重量级资源引用或者大量内部状态的Web Bean来说,它能够从高级的容器管理的生命周期获得好处。这些生命周期由EJB的 <literal>@Stateless</literal>/<literal>@Stateful</literal>/<literal>@Singleton</literal>模型定义,它支持钝化和实例池。"
+msgid ""
+"Web Beans which hold references to heavy-weight resources, or hold a lot of "
+"internal state benefit from the advanced container-managed lifecycle defined "
+"by the EJB <literal>@Stateless</literal>/<literal>@Stateful</literal>/"
+"<literal>@Singleton</literal> model, with its support for passivation and "
+"instance pooling."
+msgstr ""
+"对于拥有重量级资源引用或者大量内部状态的Web Bean来说,它能够从高级的容器管理"
+"的生命周期获得好处。这些生命周期由EJB的 <literal>@Stateless</literal>/"
+"<literal>@Stateful</literal>/<literal>@Singleton</literal>模型定义,它支持钝"
+"化和实例池。"
#. Tag: para
#: intro.xml:417
#, no-c-format
-msgid "Finally, it's usually obvious when method-level transaction management, method-level security, timers, remote methods or asynchronous methods are needed."
-msgstr "最后,什么情况下应该使用方法水平的事务管理,方法水平的安全,计时器,远程方法或者异步方法应该是显而易见的。"
+msgid ""
+"Finally, it's usually obvious when method-level transaction management, "
+"method-level security, timers, remote methods or asynchronous methods are "
+"needed."
+msgstr ""
+"最后,什么情况下应该使用方法水平的事务管理,方法水平的安全,计时器,远程方法"
+"或者异步方法应该是显而易见的。"
#. Tag: para
#: intro.xml:420
#, no-c-format
-msgid "It's usually easy to start with simple Web Bean, and then turn it into an EJB, just by adding an annotation: <literal>@Stateless</literal>, <literal>@Stateful</literal> or <literal>@Singleton</literal>."
-msgstr "从简单Web Bean起步最容易,然后转换到EJB上,过程很简单,只须添加一个注释:<literal>@Stateless</literal>, <literal>@Stateful</literal> 或者 <literal>@Singleton</literal>。"
+msgid ""
+"It's usually easy to start with simple Web Bean, and then turn it into an "
+"EJB, just by adding an annotation: <literal>@Stateless</literal>, "
+"<literal>@Stateful</literal> or <literal>@Singleton</literal>."
+msgstr ""
+"从简单Web Bean起步最容易,然后转换到EJB上,过程很简单,只须添加一个注释:"
+"<literal>@Stateless</literal>, <literal>@Stateful</literal> 或者 "
+"<literal>@Singleton</literal>。"
#. Tag: title
#: intro.xml:427
@@ -822,8 +1182,16 @@
#. Tag: para
#: intro.xml:429
#, no-c-format
-msgid "A <emphasis>producer method</emphasis> is a method that is called by the Web Bean manager to obtain an instance of the Web Bean when no instance exists in the current context. A producer method lets the application take full control of the instantiation process, instead of leaving instantiation to the Web Bean manager. For example:"
-msgstr "一个<emphasis>生产者方法</emphasis>由Web Bean管理器在当前上下文中没有某个Web Bean实例的时候调用,用以获得该Web Bean的一个实例。一个生产者方法能够让应用完全控制实例化的过程,而不是将初始化交给Web Bean管理器处理。例如:"
+msgid ""
+"A <emphasis>producer method</emphasis> is a method that is called by the Web "
+"Bean manager to obtain an instance of the Web Bean when no instance exists "
+"in the current context. A producer method lets the application take full "
+"control of the instantiation process, instead of leaving instantiation to "
+"the Web Bean manager. For example:"
+msgstr ""
+"一个<emphasis>生产者方法</emphasis>由Web Bean管理器在当前上下文中没有某个Web "
+"Bean实例的时候调用,用以获得该Web Bean的一个实例。一个生产者方法能够让应用完"
+"全控制实例化的过程,而不是将初始化交给Web Bean管理器处理。例如:"
#. Tag: programlisting
#: intro.xml:435
@@ -854,8 +1222,11 @@
#. Tag: para
#: intro.xml:437
#, no-c-format
-msgid "The result of a producer method is injected just like any other Web Bean."
-msgstr "一个生产者方法的输出或者返回值将被注入到注入点中,就像其他任何的Web Bean一样。"
+msgid ""
+"The result of a producer method is injected just like any other Web Bean."
+msgstr ""
+"一个生产者方法的输出或者返回值将被注入到注入点中,就像其他任何的Web Bean一"
+"样。"
#. Tag: programlisting
#: intro.xml:439
@@ -866,8 +1237,13 @@
#. Tag: para
#: intro.xml:441
#, no-c-format
-msgid "The method return type and all interfaces it extends/implements directly or indirectly are API types of the producer method. If the return type is a class, all superclasses are also API types."
-msgstr "方法返回的类型和它直接或者间接继承或者实现的所有接口都是这个生产者方法的API类型。如果返回的类型一个类,其所有的父类也是API类型。"
+msgid ""
+"The method return type and all interfaces it extends/implements directly or "
+"indirectly are API types of the producer method. If the return type is a "
+"class, all superclasses are also API types."
+msgstr ""
+"方法返回的类型和它直接或者间接继承或者实现的所有接口都是这个生产者方法的API类"
+"型。如果返回的类型一个类,其所有的父类也是API类型。"
#. Tag: para
#: intro.xml:445
@@ -890,7 +1266,9 @@
#. Tag: para
#: intro.xml:449
#, no-c-format
-msgid "These producer methods may define matching <emphasis>disposal methods</emphasis>:"
+msgid ""
+"These producer methods may define matching <emphasis>disposal methods</"
+"emphasis>:"
msgstr "这些生产者方法可以定义对应的<emphasis>清除方法</emphasis>:"
#. Tag: programlisting
@@ -908,13 +1286,17 @@
#. Tag: para
#: intro.xml:453
#, no-c-format
-msgid "This disposal method is called automatically by the Web Bean manager at the end of the request."
+msgid ""
+"This disposal method is called automatically by the Web Bean manager at the "
+"end of the request."
msgstr "这个清除方法将在请求结束的时候自动被Web Bean管理器调用。"
#. Tag: para
#: intro.xml:456
#, no-c-format
-msgid "We'll talk much more about producer methods in <xref linkend=\"producermethods\"/>."
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
msgstr "我们将在<xref linkend=\"producermethods\"/>一章中详述生产者方法。"
#. Tag: title
@@ -926,6 +1308,12 @@
#. Tag: para
#: intro.xml:463
#, no-c-format
-msgid "Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the developer from the tedium of managing the lifecycles of all the various JMS objects required to send messages to queues and topics. We'll discuss JMS endpoints in <xref linkend=\"jms\"/>."
-msgstr "最后,一个JMS的队列或者主题能够成为一个Web Bean。为了向队列或者主题发送消息,开发者不得不处理所有不同JMS对象的生命周期。Web Bean将开发者从这些冗长乏味的工作中解放出来。我们将在<xref linkend=\"jms\"/>一章中讨论JMS端点。"
-
+msgid ""
+"Finally, a JMS queue or topic can be a Web Bean. Web Beans relieves the "
+"developer from the tedium of managing the lifecycles of all the various JMS "
+"objects required to send messages to queues and topics. We'll discuss JMS "
+"endpoints in <xref linkend=\"jms\"/>."
+msgstr ""
+"最后,一个JMS的队列或者主题能够成为一个Web Bean。为了向队列或者主题发送消息,"
+"开发者不得不处理所有不同JMS对象的生命周期。Web Bean将开发者从这些冗长乏味的工"
+"作中解放出来。我们将在<xref linkend=\"jms\"/>一章中讨论JMS端点。"
Modified: doc/trunk/reference/zh-CN/master.po
===================================================================
--- doc/trunk/reference/zh-CN/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/zh-CN/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2008-12-22 09:29+0800\n"
"Last-Translator: Sean Wu <alartin(a)gmail.com>\n"
"Language-Team: none\n"
@@ -23,7 +23,7 @@
#: master.xml:11
#, no-c-format
msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
"and Dependency Injection\". The reference guide still refers to JSR-299 as "
"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
"\". Other documentation, blogs, forum posts etc. may use the new "
Modified: doc/trunk/reference/zh-CN/ri-spi.po
===================================================================
--- doc/trunk/reference/zh-CN/ri-spi.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/zh-CN/ri-spi.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-20 22:07+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2008-12-23 18:18+0800\n"
"Last-Translator: Sean Wu <alartin(a)gmail.com>\n"
"Language-Team: none\n"
@@ -22,14 +22,29 @@
#. Tag: para
#: ri-spi.xml:6
#, no-c-format
-msgid "Currently the Web Beans RI only runs in JBoss AS 5; integrating the RI into other EE environments (for example another application server like Glassfish), into a servlet container (like Tomcat), or with an Embedded EJB3.1 implementation is fairly easy. In this Appendix we will briefly discuss the steps needed."
-msgstr "目前,Web Bean的参考实现只能运行在JBoss AS5中;将参考实现整合到其他EE环境中(例如像Glassfish的其他的应用服务器)以及一个Servlet容器(像Tomcat)中或者一个内嵌的EJB3.1实现中相当容易。在附录中我们将简要的讨论所需的步骤。"
+msgid ""
+"Currently the Web Beans RI only runs in JBoss AS 5; integrating the RI into "
+"other EE environments (for example another application server like "
+"Glassfish), into a servlet container (like Tomcat), or with an Embedded "
+"EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
+"discuss the steps needed."
+msgstr ""
+"目前,Web Bean的参考实现只能运行在JBoss AS5中;将参考实现整合到其他EE环境中"
+"(例如像Glassfish的其他的应用服务器)以及一个Servlet容器(像Tomcat)中或者一"
+"个内嵌的EJB3.1实现中相当容易。在附录中我们将简要的讨论所需的步骤。"
#. Tag: para
#: ri-spi.xml:15
#, no-c-format
-msgid "It should be possible to run Web Beans in an SE environment, but you'll to do more work, adding your own contexts and lifecycle. The Web Beans RI currently doesn't expose lifecycle extension points, so you would have to code directly against Web Beans RI classes."
-msgstr "Web Bean可以在SE环境中运行,但是你需要做更多的工作,添加你自己的上下文和生命周期。Web Bean参考实现目前没有暴露生命周期扩展点,所以你不得不直接编写Web Bean参考实现的类。"
+msgid ""
+"It should be possible to run Web Beans in an SE environment, but you'll to "
+"do more work, adding your own contexts and lifecycle. The Web Beans RI "
+"currently doesn't expose lifecycle extension points, so you would have to "
+"code directly against Web Beans RI classes."
+msgstr ""
+"Web Bean可以在SE环境中运行,但是你需要做更多的工作,添加你自己的上下文和生命"
+"周期。Web Bean参考实现目前没有暴露生命周期扩展点,所以你不得不直接编写Web "
+"Bean参考实现的类。"
#. Tag: title
#: ri-spi.xml:24
@@ -39,23 +54,48 @@
#. Tag: para
#: ri-spi.xml:26
+#, fuzzy, no-c-format
+msgid ""
+"The Web Beans SPI is located in <literal>webbeans-ri-spi</literal> module, "
+"and packaged as <literal>webbeans-ri-spi.jar</literal>. Some SPIs are "
+"optional, if you need to override the default behavior, others are required."
+msgstr ""
+"Web Bean的SPI位于<literal>webbeans-ri-spi</literal>模块中,打包为"
+"<literal>webbeans-ri-spi.jar</literal>。"
+
+#. Tag: para
+#: ri-spi.xml:33
#, no-c-format
-msgid "The Web Beans SPI is located in <literal>webbeans-ri-spi</literal> module, and packaged as <literal>webbeans-ri-spi.jar</literal>."
-msgstr "Web Bean的SPI位于<literal>webbeans-ri-spi</literal>模块中,打包为<literal>webbeans-ri-spi.jar</literal>。"
+msgid ""
+"You can specify the implementation of an SPI either as a system property, or "
+"in a properties file <literal>META-INF/web-beans-ri.properties</literal>. "
+"All property names are the fully qualified class name of the implemented "
+"interface; all property values are the fully qualified class name of the "
+"implementation class."
+msgstr ""
#. Tag: para
-#: ri-spi.xml:31
+#: ri-spi.xml:42
#, no-c-format
-msgid "Currently, the only SPI to implement is the bootstrap spi:"
-msgstr "目前,只有bootstrap SPI可以实现:"
+msgid ""
+"All interfaces in the SPI support the decorator pattern and provide a "
+"<literal>Forwarding</literal> class."
+msgstr ""
+#. Tag: title
+#: ri-spi.xml:48
+#, no-c-format
+msgid "Web Bean Discovery"
+msgstr ""
+
#. Tag: programlisting
-#: ri-spi.xml:35
-#, no-c-format
+#: ri-spi.xml:50
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface WebBeanDiscovery {\n"
" /**\n"
-" * Gets list of all classes in classpath archives with web-beans.xml files\n"
+" * Gets list of all classes in classpath archives with web-beans.xml "
+"files\n"
" * \n"
" * @return An iterable over the classes \n"
" */\n"
@@ -68,18 +108,12 @@
" */\n"
" public Iterable<URL> discoverWebBeansXml();\n"
" \n"
-" /**\n"
-" * Gets a descriptor for each EJB in the application\n"
-" * \n"
-" * @return The bean class to descriptor map \n"
-" */\n"
-" public Iterable<EjbDescriptor<?>> discoverEjbs();\n"
-" \n"
"}]]>"
msgstr ""
"<![CDATA[public interface WebBeanDiscovery {\n"
" /**\n"
-" * Gets list of all classes in classpath archives with web-beans.xml files\n"
+" * Gets list of all classes in classpath archives with web-beans.xml "
+"files\n"
" * \n"
" * @return An iterable over the classes \n"
" */\n"
@@ -102,21 +136,93 @@
"}]]>"
#. Tag: para
-#: ri-spi.xml:37
+#: ri-spi.xml:52
#, no-c-format
-msgid "The discovery of Web Bean classes and <literal>web-bean.xml</literal> files is self-explanatory (the algorithm is described in Section 11.1 of the JSR-299 specification, and isn't repeated here)."
+msgid ""
+"The discovery of Web Bean classes and <literal>web-bean.xml</literal> files "
+"is self-explanatory (the algorithm is described in Section 11.1 of the JSR-"
+"299 specification, and isn't repeated here)."
msgstr ""
#. Tag: para
-#: ri-spi.xml:43
+#: ri-spi.xml:58
#, no-c-format
-msgid "The Web Beans RI also delegates EJB3 bean discovery to the container so that it doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</literal>. For each EJB in the application an EJBDescriptor should be discovered:"
+msgid ""
+"The Web Beans RI can be told to load your implementation of "
+"<literal>WebBeanDiscovery</literal> using the property <literal>org.jboss."
+"webbeans.bootstrap.spi.WebBeanDiscovery</literal> with the fully qualified "
+"class name as the value. For example:"
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:50
+#: ri-spi.xml:65
#, no-c-format
msgid ""
+"org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery= \\ \n"
+" org.jboss.webbeans.integration.jbossas.WebBeanDiscoveryImpl"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:67 ri-spi.xml:113 ri-spi.xml:146 ri-spi.xml:179
+#, no-c-format
+msgid ""
+"If the Web Beans RI is being used in a servlet container, it expects a "
+"constructor of the form:"
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:72
+#, no-c-format
+msgid ""
+"<![CDATA[public WebBeanDiscoveryImpl(ServletContext servletContext) {}]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:74
+#, no-c-format
+msgid ""
+"The servlet context can be used to allow your implementation of "
+"<literal>WebBeanDiscovery</literal> to interact with the container."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:82
+#, no-c-format
+msgid "EJB Discovery"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:84
+#, no-c-format
+msgid ""
+"The Web Beans RI also delegates EJB3 bean discovery to the container so that "
+"it doesn't have to scan for EJB3 annotations or parse <literal>ejb-jar.xml</"
+"literal>. For each EJB in the application an EJBDescriptor should be "
+"discovered:"
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:91
+#, no-c-format
+msgid ""
+"<![CDATA[public interface EjbDiscovery\n"
+"{\n"
+" public static final String PROPERTY_NAME = EjbDiscovery.class.getName();\n"
+" \n"
+" /**\n"
+" * Gets a descriptor for each EJB in the application\n"
+" * \n"
+" * @return The bean class to descriptor map \n"
+" */\n"
+" public Iterable<EjbDescriptor<?>> discoverEjbs();\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:93
+#, no-c-format
+msgid ""
"<![CDATA[public interface EjbDescriptor<T> {\n"
" \n"
" /**\n"
@@ -131,21 +237,23 @@
" * \n"
" * @return An iterator over the local business interfaces\n"
" */\n"
-" public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces();\n"
+" public Iterable<BusinessInterfaceDescriptor<?>> getLocalBusinessInterfaces"
+"();\n"
" \n"
" /**\n"
" * Gets the remote business interfaces of the EJB\n"
" * \n"
" * @return An iterator over the remote business interfaces\n"
" */\n"
-" public Iterable<BusinessInterfaceDescriptor<?>> getRemoteBusinessInterfaces();\n"
+" public Iterable<BusinessInterfaceDescriptor<?>> "
+"getRemoteBusinessInterfaces();\n"
" \n"
" /**\n"
" * Get the remove methods of the EJB\n"
" * \n"
" * @return An iterator over the remove methods\n"
" */\n"
-" public Iterable<MethodDescriptor> getRemoveMethods();\n"
+" public Iterable<Method> getRemoveMethods();\n"
"\n"
" /**\n"
" * Indicates if the bean is stateless\n"
@@ -182,73 +290,273 @@
" */\n"
" public String getEjbName();\n"
" \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:95
+#, no-c-format
+msgid ""
+"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
+"return the relevant metadata as defined in the EJB specification. In "
+"addition to these two interfaces, there is "
+"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
+"business interface (encapsulating the interface class and jndi name used to "
+"look up an instance of the EJB)."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:104
+#, no-c-format
+msgid ""
+"The Web Beans RI can be told to load your implementation of "
+"<literal>EjbDiscovery</literal> using the property <literal>org.jboss."
+"webbeans.bootstrap.spi.EjbDiscovery</literal> with the fully qualified class "
+"name as the value. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:111
+#, no-c-format
+msgid ""
+"org.jboss.webbeans.bootstrap.spi.EjbDiscovery= \\\n"
+" org.jboss.webbeans.integration.jbossas.EjbDiscoveryImpl"
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:118
+#, no-c-format
+msgid "<![CDATA[public EjbDiscoveryImpl(ServletContext servletContext) {}]]>"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:120
+#, no-c-format
+msgid ""
+"The servlet context can be used to allow your implementation of "
+"<literal>EjbDiscovery</literal> to interact with the container."
+msgstr ""
+
+#. Tag: title
+#: ri-spi.xml:128
+#, no-c-format
+msgid "JNDI"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:130
+#, no-c-format
+msgid ""
+"The Web Beans RI implements JNDI binding and lookup according to standards, "
+"however you may want to alter the binding and lookup (for example in an "
+"environment where JNDI isn't available). To do this, implement <literal>org."
+"jboss.webbeans.spi.resources.NamingContext</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:138
+#, no-c-format
+msgid ""
+"<![CDATA[public interface NamingContext extends Serializable {\n"
+" \n"
" /**\n"
-" * @return The JNDI string which can be used to lookup a proxy which \n"
-" * implements all local business interfaces \n"
+" * Typed JNDI lookup\n"
" * \n"
+" * @param <T> The type\n"
+" * @param name The JNDI name\n"
+" * @param expectedType The expected type\n"
+" * @return The object\n"
" */\n"
-" public String getLocalJndiName();\n"
+" public <T> T lookup(String name, Class<? extends T> expectedType);\n"
+"\n"
+" /**\n"
+" * Binds an item to JNDI\n"
+" * \n"
+" * @param name The key to bind under\n"
+" * @param value The item to bind\n"
+" */\n"
+" public void bind(String name, Object value);\n"
" \n"
"}]]>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:52
+#: ri-spi.xml:140 ri-spi.xml:173
#, no-c-format
-msgid "The contract described the JavaDoc is enough to implement an EJBDescriptor. In addition to these two interfaces, there is <literal>BusinessInterfaceDescriptor</literal> which represents a local business interface (encapsulating the interface class and jndi name), and <literal>MethodDescriptor</literal> which encapsulates the method name and parameter types (allowing it to be invoked on any instance of the EJB, proxy or otherwise)."
+msgid "and tell the RI to use it:"
msgstr ""
+#. Tag: programlisting
+#: ri-spi.xml:144
+#, no-c-format
+msgid "org.jboss.webbeans.resources.spi.NamingContext=com.acme.MyNamingContext"
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:151
+#, no-c-format
+msgid "<![CDATA[public MyNamingContext(ServletContext servletContext) {}]]>"
+msgstr ""
+
#. Tag: para
-#: ri-spi.xml:62
+#: ri-spi.xml:153
#, no-c-format
-msgid "The Web Beans RI can be told to load your implementation of <literal>WebBeanDiscovery</literal> using the property <literal>org.jboss.webbeans.bootstrap.webBeanDiscovery</literal> with the fully qualified class name as the value. For example:"
+msgid ""
+"The servlet context can be used to allow your implementation of "
+"<literal>NamingContext</literal> to interact with the container."
msgstr ""
+#. Tag: title
+#: ri-spi.xml:161
+#, no-c-format
+msgid "Resource loading"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:163
+#, no-c-format
+msgid ""
+"The Web Beans RI needs to load classes and resources from the classpath at "
+"various times. By default, they are loaded from the same classloader that "
+"was used to load the RI, however this may not be correct for some "
+"environments. If this is case, you can implement <literal>org.jboss.webbeans."
+"spi.ResourceLoader</literal>:"
+msgstr ""
+
#. Tag: programlisting
-#: ri-spi.xml:69
+#: ri-spi.xml:171
#, no-c-format
-msgid "org.jboss.webbeans.bootstrap.webBeanDiscovery=org.jboss.webbeans.integration.jbossas.WebBeanDiscoveryImpl"
+msgid ""
+"<![CDATA[\n"
+" public interface ResourceLoader {\n"
+" \n"
+" /**\n"
+" * Creates a class from a given FQCN\n"
+" * \n"
+" * @param name The name of the clsas\n"
+" * @return The class\n"
+" */\n"
+" public Class<?> classForName(String name);\n"
+" \n"
+" /**\n"
+" * Gets a resource as a URL by name\n"
+" * \n"
+" * @param name The name of the resource\n"
+" * @return An URL to the resource\n"
+" */\n"
+" public URL getResource(String name);\n"
+" \n"
+" /**\n"
+" * Gets resources as URLs by name\n"
+" * \n"
+" * @param name The name of the resource\n"
+" * @return An iterable reference to the URLS\n"
+" */\n"
+" public Iterable<URL> getResources(String name);\n"
+" \n"
+"}\n"
+" ]]>"
msgstr ""
+#. Tag: programlisting
+#: ri-spi.xml:177
+#, no-c-format
+msgid "org.jboss.webbeans.resources.spi.ResourceLoader=com.acme.ResourceLoader"
+msgstr ""
+
+#. Tag: programlisting
+#: ri-spi.xml:184
+#, no-c-format
+msgid "<![CDATA[public MyResourceLoader(ServletContext servletContext) {}]]>"
+msgstr ""
+
#. Tag: para
-#: ri-spi.xml:71
+#: ri-spi.xml:186
#, no-c-format
-msgid "The property can either be specified as a system property, or in a properties file <literal>META-INF/web-beans-ri.properties</literal>."
+msgid ""
+"The servlet context can be used to allow your implementation of "
+"<literal>ResourceLoader</literal> to interact with the container."
msgstr ""
#. Tag: title
-#: ri-spi.xml:79
+#: ri-spi.xml:196
#, no-c-format
msgid "The contract with the container"
msgstr ""
#. Tag: para
-#: ri-spi.xml:81
+#: ri-spi.xml:198
#, no-c-format
-msgid "There are a number of requirements that the Web Beans RI places on the container for correct functioning that fall outside implementation of APIs"
+msgid ""
+"There are a number of requirements that the Web Beans RI places on the "
+"container for correct functioning that fall outside implementation of APIs"
msgstr ""
#. Tag: term
-#: ri-spi.xml:89
+#: ri-spi.xml:206
#, no-c-format
msgid "Classloader isolation"
msgstr ""
#. Tag: para
-#: ri-spi.xml:93
+#: ri-spi.xml:210
#, no-c-format
-msgid "If you are integrating the Web Beans into an environment that supports deployment of applications, you must enable, automatically, or through user configuation, classloader isolation for each Web Beans application"
+msgid ""
+"If you are integrating the Web Beans RI into an environment that supports "
+"deployment of multiple applications, you must enable, automatically, or "
+"through user configuation, classloader isolation for each Web Beans "
+"application."
msgstr ""
#. Tag: term
-#: ri-spi.xml:102
+#: ri-spi.xml:219
#, no-c-format
+msgid "Servlet listener"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:223
+#, no-c-format
+msgid ""
+"If you are integrating the Web Beans into a Servlet environment you must "
+"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
+"Servlet listener, either automatically, or through user configuration, for "
+"each Web Beans application which uses Servlet."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:234
+#, no-c-format
+msgid "Session Bean Interceptor"
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:238
+#, no-c-format
+msgid ""
+"If you are integrating the Web Beans into an EJB environment you must "
+"register <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> as "
+"a EJB interceptor for all EJBs in the application, either automatically, or "
+"through user configuration, for each Web Beans application which uses "
+"enterprise beans."
+msgstr ""
+
+#. Tag: term
+#: ri-spi.xml:249
+#, no-c-format
msgid "The <literal>webbeans-ri.jar</literal>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:106
+#: ri-spi.xml:253
#, no-c-format
-msgid "If you are integrating the Web Beans into an environment that supports deployment of applications, you must insert the <literal>webbeans-ri.jar</literal> into the applications isolated classloader. It cannot be loaded from a shared classloader."
+msgid ""
+"If you are integrating the Web Beans into an environment that supports "
+"deployment of applications, you must insert the <literal>webbeans-ri.jar</"
+"literal> into the applications isolated classloader. It cannot be loaded "
+"from a shared classloader."
msgstr ""
+#~ msgid "Currently, the only SPI to implement is the bootstrap spi:"
+#~ msgstr "目前,只有bootstrap SPI可以实现:"
Modified: doc/trunk/reference/zh-CN/ri.po
===================================================================
--- doc/trunk/reference/zh-CN/ri.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/zh-CN/ri.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-20 22:08+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-02-04 11:41+0800\n"
"Last-Translator: Sean Wu <alartin(a)gmail.com>\n"
"Language-Team: none\n"
@@ -15,24 +15,65 @@
#. Tag: title
#: ri.xml:4
-#, no-c-format
-msgid "Using the Web Beans Reference Implementation"
+#, fuzzy, no-c-format
+msgid "The Web Beans Reference Implementation"
msgstr "使用Web Beans的参考实现"
#. Tag: para
#: ri.xml:6
#, no-c-format
-msgid "The Web Beans RI comes with a two examples, <literal>webbeans-numberguess</literal> (a war example, containing only simple beans) and <literal>webbeans-translator</literal> (an ear example, containing enterprise beans)."
-msgstr "Web Beans RI自带了两个例子:<literal>webbeans-numberguess</literal> (一个仅包含一个简单Bean的WAR应用例子)和<literal>webbeans-translator</literal> (一个包含企业Bean的EAR应用例子)。"
+msgid ""
+"The Web Beans Reference Implementation is being developed at <ulink url="
+"\"http://seamframework.org/WebBeans\">the Seam project</ulink>. You can "
+"download the latest developer release of Web Beans from the <ulink url="
+"\"http://seamframework.org/Download\">the downloads page</ulink>."
+msgstr ""
#. Tag: para
#: ri.xml:13
+#, fuzzy, no-c-format
+msgid ""
+"The Web Beans RI comes with a two deployable example applications: "
+"<literal>webbeans-numberguess</literal>, a war example, containing only "
+"simple beans, and <literal>webbeans-translator</literal> an ear example, "
+"containing enterprise beans. To run the examples you'll need the following:"
+msgstr ""
+"Web Beans RI自带了两个例子:<literal>webbeans-numberguess</literal> (一个仅包"
+"含一个简单Bean的WAR应用例子)和<literal>webbeans-translator</literal> (一个包"
+"含企业Bean的EAR应用例子)。"
+
+#. Tag: para
+#: ri.xml:22
#, no-c-format
-msgid "Currently, the Web Beans RI only runs on JBoss Application Server 5. You'll need to download JBoss AS 5.0.0.GA from <ulink url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
-msgstr "当前,Web Beans参考实现只能运行在JBoss AS 5之上。你需要从<ulink url=\"http://www.jboss.org/jbossas/downloads/\">jboss.org</ulink>下载JBoss AS 5.0.0.GA, 然后解压。例如:"
+msgid "the latest release of the Web Beans RI,"
+msgstr ""
+#. Tag: para
+#: ri.xml:25
+#, no-c-format
+msgid "JBoss AS 5.0.0.GA, and"
+msgstr ""
+
+#. Tag: para
+#: ri.xml:28
+#, no-c-format
+msgid "Ant 1.7.0."
+msgstr ""
+
+#. Tag: para
+#: ri.xml:32
+#, no-c-format
+msgid ""
+"Currently, the Web Beans RI only runs on JBoss Application Server 5. You'll "
+"need to download JBoss AS 5.0.0.GA from <ulink url=\"http://www.jboss.org/"
+"jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
+msgstr ""
+"当前,Web Beans参考实现只能运行在JBoss AS 5之上。你需要从<ulink url=\"http://"
+"www.jboss.org/jbossas/downloads/\">jboss.org</ulink>下载JBoss AS 5.0.0.GA, 然"
+"后解压。例如:"
+
#. Tag: programlisting
-#: ri.xml:20
+#: ri.xml:39
#, no-c-format
msgid ""
"<![CDATA[$ cd /Applications\n"
@@ -42,53 +83,79 @@
"$ unzip ~/jboss-5.0.0.GA.zip]]>"
#. Tag: para
-#: ri.xml:22
-#, no-c-format
-msgid "Next, download the Web Beans RI from <ulink url=\"http://seamframework.org/WebBeans\">seamframework.org</ulink>, and unzip it. For example"
-msgstr "然后从<ulink url=\"http://seamframework.org/WebBeans\">seamframework.org</ulink>下载Web Beans的参考实现,然后解压。例如:"
+#: ri.xml:41
+#, fuzzy, no-c-format
+msgid ""
+"Next, download the Web Beans RI from <ulink url=\"http://seamframework.org/"
+"Download\">seamframework.org</ulink>, and unzip it. For example"
+msgstr ""
+"然后从<ulink url=\"http://seamframework.org/WebBeans\">seamframework.org</"
+"ulink>下载Web Beans的参考实现,然后解压。例如:"
#. Tag: programlisting
-#: ri.xml:28
-#, no-c-format
+#: ri.xml:47
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[$ cd ~/\n"
-"$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
+"$ unzip ~/webbeans-$VERSION.zip]]>"
msgstr ""
"<![CDATA[$ cd ~/\n"
"$ unzip ~/webbeans-1.0.0.ALPHA1.zip]]>"
#. Tag: para
-#: ri.xml:31
+#: ri.xml:50
#, no-c-format
-msgid "Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-as/build.properties</literal> and set the <literal>jboss.home</literal> property. For example:"
-msgstr "然后,我们需要告诉Web Beans JBoss的位置。编辑<literal>jboss-as/build.properties</literal>,设置<literal>jboss.home</literal>属性。例如:"
+msgid ""
+"Next, we need to tell Web Beans where JBoss is located. Edit <literal>jboss-"
+"as/build.properties</literal> and set the <literal>jboss.home</literal> "
+"property. For example:"
+msgstr ""
+"然后,我们需要告诉Web Beans JBoss的位置。编辑<literal>jboss-as/build."
+"properties</literal>,设置<literal>jboss.home</literal>属性。例如:"
#. Tag: programlisting
-#: ri.xml:37
+#: ri.xml:56
#, no-c-format
msgid "jboss.home=/Applications/jboss-5.0.0.GA"
msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
#. Tag: para
-#: ri.xml:39
+#: ri.xml:58
#, no-c-format
-msgid "As Web Beans is a new piece of software, you need to update JBoss AS to run the Web Beans RI. Future versions of JBoss AS will include these updates, and this step won't be necessary."
-msgstr "因为Web Beans是新的软件,你需要更新JBoss AS来运行Web Beans的参考实现。JBoss AS未来的版本将包括这些更新,这些步骤将不再是必须的。"
+msgid ""
+"As Web Beans is a new piece of software, you need to update JBoss AS to run "
+"the Web Beans RI. Future versions of JBoss AS will include these updates, "
+"and this step won't be necessary."
+msgstr ""
+"因为Web Beans是新的软件,你需要更新JBoss AS来运行Web Beans的参考实现。JBoss "
+"AS未来的版本将包括这些更新,这些步骤将不再是必须的。"
#. Tag: para
-#: ri.xml:46
+#: ri.xml:65
#, no-c-format
-msgid "Currently, two updates are needed. Firstly, a new deployer, <literal>webbeans.deployer</literal> is added. This adds supports for Web Bean archives to JBoss AS, and allows the Web Beans RI to query the EJB3 container and discover which EJBs are installed in your application. Secondly, an update to JBoss EJB3 is needed."
-msgstr "当前,我们需要两个更新。首先,需要添加一个新的部署器<literal>webbeans.deployer</literal>。这个部署器提供JBoss AS对Web Bean档案包的支持,能够让Web Beans参考实现查询EJB3容器,发现应用中安装的EJB。第二,需要更新JBoss EJB3。"
+msgid ""
+"Currently, two updates are needed. Firstly, a new deployer, "
+"<literal>webbeans.deployer</literal> is added. This adds supports for Web "
+"Bean archives to JBoss AS, and allows the Web Beans RI to query the EJB3 "
+"container and discover which EJBs are installed in your application. "
+"Secondly, an update to JBoss EJB3 is needed."
+msgstr ""
+"当前,我们需要两个更新。首先,需要添加一个新的部署器<literal>webbeans."
+"deployer</literal>。这个部署器提供JBoss AS对Web Bean档案包的支持,能够让Web "
+"Beans参考实现查询EJB3容器,发现应用中安装的EJB。第二,需要更新JBoss EJB3。"
#. Tag: para
-#: ri.xml:55
-#, no-c-format
-msgid "To install the update, you'll need ant 1.7.0 installed, and the <literal>ANT_HOME</literal> environment variable set. For example:"
-msgstr "为了安装更新,你需要安装Ant 1.7.0,设置<literal>ANT_HOME</literal>环境变量。例如:"
+#: ri.xml:74
+#, fuzzy, no-c-format
+msgid ""
+"To install the update, you'll need Ant 1.7.0 installed, and the "
+"<literal>ANT_HOME</literal> environment variable set. For example:"
+msgstr ""
+"为了安装更新,你需要安装Ant 1.7.0,设置<literal>ANT_HOME</literal>环境变量。"
+"例如:"
#. Tag: programlisting
-#: ri.xml:60
+#: ri.xml:79
#, no-c-format
msgid ""
"$ unzip apache-ant-1.7.0.zip\n"
@@ -98,71 +165,78 @@
"$ export ANT_HOME=~/apache-ant-1.7.0"
#. Tag: para
-#: ri.xml:62
+#: ri.xml:81
#, no-c-format
-msgid "Then, you can install the update. The update script will use Maven to download the Web Beans and EJB3 automatically."
+msgid ""
+"Then, you can install the update. The update script will use Maven to "
+"download the Web Beans and EJB3 automatically."
msgstr "然后,你需要安装更新,更新脚本使用Maven来自动下载Web Beans和EJB3。"
#. Tag: programlisting
-#: ri.xml:67
-#, no-c-format
+#: ri.xml:86
+#, fuzzy, no-c-format
msgid ""
-"$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
+"$ cd webbeans-$VERSION/jboss-as\n"
"$ ant update"
msgstr ""
"$ cd webbeans-1.0.0.ALPHA1/jboss-as\n"
"$ ant update"
#. Tag: para
-#: ri.xml:69
+#: ri.xml:88
#, no-c-format
msgid "Now, you're ready to deploy your first example!"
msgstr "现在,你可以部署你的第一个例子了!"
#. Tag: para
-#: ri.xml:74
+#: ri.xml:93
#, no-c-format
-msgid "The build scripts for the examples offer a number of targets, these are:"
+msgid ""
+"The build scripts for the examples offer a number of targets, these are:"
msgstr "例子的构建脚本包含多个目标:"
#. Tag: para
-#: ri.xml:80
+#: ri.xml:99
#, no-c-format
msgid "<literal>ant restart</literal> - deploy the example in exploded format"
msgstr "<literal>ant restart</literal> - 以exploded形式部署例子"
#. Tag: para
-#: ri.xml:86
+#: ri.xml:105
#, no-c-format
-msgid "<literal>ant explode</literal> - update an exploded example, without restarting the deployment"
-msgstr "<literal>ant explode</literal> - 无需重新部署,更新一个exploded形式部署的例子"
+msgid ""
+"<literal>ant explode</literal> - update an exploded example, without "
+"restarting the deployment"
+msgstr ""
+"<literal>ant explode</literal> - 无需重新部署,更新一个exploded形式部署的例子"
#. Tag: para
-#: ri.xml:92
+#: ri.xml:111
#, no-c-format
-msgid "<literal>ant deploy</literal> - deploy the example in compressed jar format"
+msgid ""
+"<literal>ant deploy</literal> - deploy the example in compressed jar format"
msgstr "<literal>ant deploy</literal> - 以压缩jar包形式部署例子"
#. Tag: para
-#: ri.xml:97
+#: ri.xml:116
#, no-c-format
msgid "<literal>ant undeploy</literal> - remove the example from the server"
msgstr "<literal>ant undeploy</literal> - 将例子从服务器中移除"
#. Tag: para
-#: ri.xml:102
+#: ri.xml:121
#, no-c-format
msgid "<literal>ant clean</literal> - clean the example"
msgstr "<literal>ant clean</literal> - 清除例子"
#. Tag: para
-#: ri.xml:109
+#: ri.xml:128
#, no-c-format
msgid "To deploy the numberguess example:"
msgstr "部署猜数字(numberguess)例子:"
#. Tag: programlisting
-#: ri.xml:113
+#: ri.xml:132
#, no-c-format
msgid ""
"$ cd examples/numberguess\n"
@@ -172,66 +246,117 @@
"ant deploy"
#. Tag: para
-#: ri.xml:115
+#: ri.xml:134
#, no-c-format
-msgid "Wait for the application to deploy, and enjoy hours of fun at <ulink url=\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
-msgstr "等待应用部署完毕,好好体验一下<ulink url=\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+msgid "Start JBoss AS:"
+msgstr ""
+#. Tag: programlisting
+#: ri.xml:138
+#, fuzzy, no-c-format
+msgid "$ /Application/jboss-5.0.0.GA/bin/run.sh"
+msgstr "jboss.home=/Applications/jboss-5.0.0.GA"
+
#. Tag: para
-#: ri.xml:120
+#: ri.xml:141
#, no-c-format
-msgid "The Web Beans RI includes a second simple example that will translate your text into Latin. The numberguess example is a war example, and uses only simple beans; the translator example is an ear example, and includes enterprise beans, packaged in an EJB module. To try it out:"
-msgstr "Web Bean参考实现的第二个简单例子能够将你的文本翻译为拉丁文。猜数字例子是一个WAR应用,仅仅使用了一个简单Beans;翻译器例子是一个EAR应用,包含了打包在EJB模块中的企业Beans。试一下:"
+msgid "If you use Windows, use the <literal>run.bat</literal>script."
+msgstr ""
-#. Tag: programlisting
-#: ri.xml:127
+#. Tag: para
+#: ri.xml:146
#, no-c-format
msgid ""
-"$ cd examples/traslator\n"
+"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
+"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
+msgstr ""
+"等待应用部署完毕,好好体验一下<ulink url=\"http://localhost:8080/webbeans-"
+"numberguess\"></ulink>!"
+
+#. Tag: para
+#: ri.xml:151
+#, no-c-format
+msgid ""
+"The Web Beans RI includes a second simple example that will translate your "
+"text into Latin. The numberguess example is a war example, and uses only "
+"simple beans; the translator example is an ear example, and includes "
+"enterprise beans, packaged in an EJB module. To try it out:"
+msgstr ""
+"Web Bean参考实现的第二个简单例子能够将你的文本翻译为拉丁文。猜数字例子是一个"
+"WAR应用,仅仅使用了一个简单Beans;翻译器例子是一个EAR应用,包含了打包在EJB模"
+"块中的企业Beans。试一下:"
+
+#. Tag: programlisting
+#: ri.xml:158
+#, fuzzy, no-c-format
+msgid ""
+"$ cd examples/translator\n"
"ant deploy"
msgstr ""
"$ cd examples/traslator\n"
"ant deploy"
#. Tag: para
-#: ri.xml:129
+#: ri.xml:160
#, no-c-format
-msgid "Wait for the application to deploy, and visit <ulink url=\"http://localhost:8080/webbeans-translator\"></ulink>!"
-msgstr "等待应用部署,试一下<ulink url=\"http://localhost:8080/webbeans-translator\"></ulink>!"
+msgid ""
+"Wait for the application to deploy, and visit <ulink url=\"http://"
+"localhost:8080/webbeans-translator\"></ulink>!"
+msgstr ""
+"等待应用部署,试一下<ulink url=\"http://localhost:8080/webbeans-translator"
+"\"></ulink>!"
#. Tag: title
-#: ri.xml:135
+#: ri.xml:166
#, no-c-format
msgid "The numberguess example"
msgstr "猜数字例子"
#. Tag: para
-#: ri.xml:137
+#: ri.xml:168
#, no-c-format
-msgid "In the numberguess application you get given 10 attempts to guess a number between 1 and 100. After each attempt, you will be told whether you are too high, or too low."
-msgstr "在猜数字应用中,你有十次机会来猜一个1到100之间的数字。每次猜测之后,应用都会告诉你你猜的数字是高了还是低了。"
+msgid ""
+"In the numberguess application you get given 10 attempts to guess a number "
+"between 1 and 100. After each attempt, you will be told whether you are too "
+"high, or too low."
+msgstr ""
+"在猜数字应用中,你有十次机会来猜一个1到100之间的数字。每次猜测之后,应用都会"
+"告诉你你猜的数字是高了还是低了。"
#. Tag: para
-#: ri.xml:143
+#: ri.xml:174
#, no-c-format
-msgid "The numberguess example is comprised of a number of Web Beans, configuration files, and Facelet JSF pages, packaged as a war. Let's start with the configuration files."
-msgstr "猜数字应用由Web Beans,配置文件,Facelete JSF页面组成,打包为一个WAR。我们先看一下配置文件。"
+msgid ""
+"The numberguess example is comprised of a number of Web Beans, configuration "
+"files, and Facelet JSF pages, packaged as a war. Let's start with the "
+"configuration files."
+msgstr ""
+"猜数字应用由Web Beans,配置文件,Facelete JSF页面组成,打包为一个WAR。我们先"
+"看一下配置文件。"
#. Tag: para
-#: ri.xml:149
+#: ri.xml:180
#, no-c-format
-msgid "All the configuration files for this example are located in <literal>WEB-INF/</literal>, which is stored in <literal>WebContent</literal> in the source tree. First, we have <literal>faces-config.xml</literal>, in which we tell JSF to use Facelets:"
-msgstr "猜数字应用的所有的配置文件位于<literal>WEB-INF/</literal>,这个目录位于源码树的<literal>WebContent</literal>中。首先,我们在faces-config.xml文件中告诉JSF使用Faceletes:"
+msgid ""
+"All the configuration files for this example are located in <literal>WEB-INF/"
+"</literal>, which is stored in <literal>WebContent</literal> in the source "
+"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
+"JSF to use Facelets:"
+msgstr ""
+"猜数字应用的所有的配置文件位于<literal>WEB-INF/</literal>,这个目录位于源码树"
+"的<literal>WebContent</literal>中。首先,我们在faces-config.xml文件中告诉JSF"
+"使用Faceletes:"
#. Tag: programlisting
-#: ri.xml:157
+#: ri.xml:188
#, no-c-format
msgid ""
"<![CDATA[<?xml version='1.0' encoding='UTF-8'?>\n"
"<faces-config version=\"1.2\"\n"
" xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd\">\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+"java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd\">\n"
" \n"
" <application>\n"
" <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
@@ -243,7 +368,8 @@
"<faces-config version=\"1.2\"\n"
" xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd\">\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+"java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd\">\n"
" \n"
" <application>\n"
" <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
@@ -252,27 +378,36 @@
"</faces-config>]]>"
#. Tag: para
-#: ri.xml:159
+#: ri.xml:190
#, no-c-format
-msgid "There is an empty <literal>web-beans.xml</literal> file, which marks this application as a Web Beans application."
-msgstr "这有一个空的<literal>web-beans.xml</literal>文件,标识这个应用是一个Web Beans应用。"
+msgid ""
+"There is an empty <literal>web-beans.xml</literal> file, which marks this "
+"application as a Web Beans application."
+msgstr ""
+"这有一个空的<literal>web-beans.xml</literal>文件,标识这个应用是一个Web Beans"
+"应用。"
#. Tag: para
-#: ri.xml:164
+#: ri.xml:195
#, no-c-format
msgid "Finally there is <literal>web.xml</literal>:"
msgstr "最后,这有一个 <literal>web.xml</literal>:"
#. Tag: section
-#: ri.xml:166
-#, no-c-format
+#: ri.xml:197
+#, fuzzy, no-c-format
msgid ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> <area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
+"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
+"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
+"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"\n"
"<web-app version=\"2.5\"\n"
" xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun."
+"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
" \n"
" <display-name>Web Beans Numbergues example</display-name>\n"
"\n"
@@ -297,12 +432,24 @@
" <session-config>\n"
" <session-timeout>10</session-timeout>\n"
" </session-config>\n"
-" \n"
-" <listener>\n"
-" <listener-class>org.jboss.webbeans.servlet.WebBeansListener</listener-class>\n"
-" </listener>\n"
"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces.servlet\"> <para> Enable and load the JSF servlet </para> </callout> <callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to <literal>.jsf</literal> pages to be handled by JSF </para> </callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be giving our source files (facelets) an extension of <literal>.jsf</literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a session timeout of 10 minutes </para> </callout> <callout arearefs=\"webbeans.listener\"> <para> Configure the Web Beans listener, so that Web Beans services can be used in the servlet request </para> </callout> </calloutlist> </programlistingco> <note> <para> The only configuration required by the Web Beans RI in <literal>web.xml</literal> is to add the Web Beans listener. </para> <para> Whilst this demo is a JSF demo, you can use the Web Beans RI with any Servlet based!
web framework; just configure the Web Beans listener. </para> </note> <para> Let's take a look at the Facelet view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"29\"/> <area id=\"submit\" coords=\"32\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
+"giving our source files (facelets) an extension of <literal>.jsf</literal> </"
+"para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
+"session timeout of 10 minutes </para> </callout> </calloutlist> </"
+"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
+"the Web Beans RI with any Servlet based web framework. </para> </note> "
+"<para> Let's take a look at the Facelet view: </para> <programlistingco> "
+"<areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages\" coords="
+"\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords="
+"\"25\"/> <area id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords="
+"\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//"
+"W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/"
+"xhtml1-transitional.dtd\">\n"
"<html xmlns=\"http://www.w3.org/1999/xhtml\"\n"
" xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n"
" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
@@ -315,12 +462,15 @@
" <h:form id=\"NumberGuessMain\">\n"
" <div style=\"color: red\">\n"
" <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-" <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game.number gt game.guess}\"/>\n"
-" <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game.number lt game.guess}\"/>\n"
+" <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
+"number gt game.guess and game.guess ne 0}\"/>\n"
+" <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
+"number lt game.guess and game.guess ne 0}\"/>\n"
" </div>\n"
" \n"
" <div>\n"
-" I'm thinking of a number between #{game.smallest} and #{game.biggest}.\n"
+" I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
" You have #{game.remainingGuesses} guesses.\n"
" </div>\n"
" \n"
@@ -329,26 +479,52 @@
" <h:inputText id=\"inputGuess\" \n"
" value=\"#{game.guess}\" \n"
" required=\"true\" \n"
-" size=\"3\">\n"
+" size=\"3\" \n"
+" disabled=\"#{game.number eq game.guess}\">\n"
" <f:validateLongRange maximum=\"#{game.biggest}\" \n"
" minimum=\"#{game.smallest}\"/>\n"
" </h:inputText>\n"
-" <h:commandButton id=\"GuessButton\" \n"
+" <h:commandButton id=\"GuessButton\" \n"
" value=\"Guess\" \n"
-" action=\"#{game.check}\"/>\n"
+" action=\"#{game.check}\" \n"
+" disabled=\"#{game.number eq game.guess}\"/>\n"
" </div>\n"
-" \n"
+" <div>\n"
+" <h:commandButton id=\"RestartButton\" value=\"Reset\" action=\"#"
+"{game.reset}\" immediate=\"true\" />\n"
+" </div>\n"
" </h:form>\n"
" </ui:define>\n"
" </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> <para> Facelets is a templating language for JSF, here we are wrapping our page in a template which defines the header. </para> </callout> <callout arearefs=\"messages\"> <para> There are a number of messages which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the range of numbers they can guess gets smaller - this sentance changes to make sure they know what range to guess in. </para> </callout> <callout arearefs=\"guess\"> <para> This input field is bound to a Web Bean, using the value expression. </para> </callout> <callout arearefs=\"validator\"> <para> A range validator is used to make sure the user doesn't accidentally input a number outside of the range in which they can guess - if the validator wasn't here, the user might use up a guess on an out of range number. </para> </callout> <callout !
arearefs=\"submit\"> <para> And, of course, there must be a way for the user to send their guess to the server. Here we bind to an action method on the Web Bean. </para> </callout> </calloutlist> </programlistingco>"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is a templating language for JSF, here we are wrapping our "
+"page in a template which defines the header. </para> </callout> <callout "
+"arearefs=\"messages\"> <para> There are a number of messages which can be "
+"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
+"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
+"range of numbers they can guess gets smaller - this sentance changes to make "
+"sure they know what range to guess in. </para> </callout> <callout arearefs="
+"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
+"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
+"range validator is used to make sure the user doesn't accidentally input a "
+"number outside of the range in which they can guess - if the validator "
+"wasn't here, the user might use up a guess on an out of range number. </"
+"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
+"must be a way for the user to send their guess to the server. Here we bind "
+"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
+"programlistingco>"
msgstr ""
-"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> <area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default.suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
+"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
+"suffix\" coords=\"23\"/> <area id=\"session.timeout\" coords=\"28\"/> <area "
+"id=\"webbeans.listener\" coords=\"32\"/> </areaspec> <programlisting><![CDATA"
+"[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"\n"
"<web-app version=\"2.5\"\n"
" xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\">\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun."
+"com/xml/ns/javaee/web-app_2_5.xsd\">\n"
" \n"
" <display-name>Web Beans Numbergues example</display-name>\n"
"\n"
@@ -375,10 +551,31 @@
" </session-config>\n"
" \n"
" <listener>\n"
-" <listener-class>org.jboss.webbeans.servlet.WebBeansListener</listener-class>\n"
+" <listener-class>org.jboss.webbeans.servlet.WebBeansListener</listener-"
+"class>\n"
" </listener>\n"
"\n"
-"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces.servlet\"> <para> Enable and load the JSF servlet </para> </callout> <callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to <literal>.jsf</literal> pages to be handled by JSF </para> </callout> <callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be giving our source files (facelets) an extension of <literal>.jsf</literal> </para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a session timeout of 10 minutes </para> </callout> <callout arearefs=\"webbeans.listener\"> <para> Configure the Web Beans listener, so that Web Beans services can be used in the servlet request </para> </callout> </calloutlist> </programlistingco> <note> <para> The only configuration required by the Web Beans RI in <literal>web.xml</literal> is to add the Web Beans listener. </para> <para> Whilst this demo is a JSF demo, you can use the Web Beans RI with any Servlet based!
web framework; just configure the Web Beans listener. </para> </note> <para> Let's take a look at the Facelet view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords=\"29\"/> <area id=\"submit\" coords=\"32\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
+"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
+"<callout arearefs=\"faces.servlet.mapping\"> <para> Configure requests to "
+"<literal>.jsf</literal> pages to be handled by JSF </para> </callout> "
+"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
+"giving our source files (facelets) an extension of <literal>.jsf</literal> </"
+"para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
+"session timeout of 10 minutes </para> </callout> <callout arearefs="
+"\"webbeans.listener\"> <para> Configure the Web Beans listener, so that Web "
+"Beans services can be used in the servlet request </para> </callout> </"
+"calloutlist> </programlistingco> <note> <para> The only configuration "
+"required by the Web Beans RI in <literal>web.xml</literal> is to add the Web "
+"Beans listener. </para> <para> Whilst this demo is a JSF demo, you can use "
+"the Web Beans RI with any Servlet based web framework; just configure the "
+"Web Beans listener. </para> </note> <para> Let's take a look at the Facelet "
+"view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8"
+"\"/> <area id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords="
+"\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords="
+"\"29\"/> <area id=\"submit\" coords=\"32\"/> </areaspec> <programlisting><!"
+"[CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
+"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
"<html xmlns=\"http://www.w3.org/1999/xhtml\"\n"
" xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n"
" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
@@ -391,12 +588,15 @@
" <h:form id=\"NumberGuessMain\">\n"
" <div style=\"color: red\">\n"
" <h:messages id=\"messages\" globalOnly=\"false\"/>\n"
-" <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game.number gt game.guess}\"/>\n"
-" <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game.number lt game.guess}\"/>\n"
+" <h:outputText id=\"Higher\" value=\"Higher!\" rendered=\"#{game."
+"number gt game.guess}\"/>\n"
+" <h:outputText id=\"Lower\" value=\"Lower!\" rendered=\"#{game."
+"number lt game.guess}\"/>\n"
" </div>\n"
" \n"
" <div>\n"
-" I'm thinking of a number between #{game.smallest} and #{game.biggest}.\n"
+" I'm thinking of a number between #{game.smallest} and #{game."
+"biggest}.\n"
" You have #{game.remainingGuesses} guesses.\n"
" </div>\n"
" \n"
@@ -417,16 +617,37 @@
" </h:form>\n"
" </ui:define>\n"
" </ui:composition>\n"
-"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> <para> Facelets is a templating language for JSF, here we are wrapping our page in a template which defines the header. </para> </callout> <callout arearefs=\"messages\"> <para> There are a number of messages which can be sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the range of numbers they can guess gets smaller - this sentance changes to make sure they know what range to guess in. </para> </callout> <callout arearefs=\"guess\"> <para> This input field is bound to a Web Bean, using the value expression. </para> </callout> <callout arearefs=\"validator\"> <para> A range validator is used to make sure the user doesn't accidentally input a number outside of the range in which they can guess - if the validator wasn't here, the user might use up a guess on an out of range number. </para> </callout> <callout !
arearefs=\"submit\"> <para> And, of course, there must be a way for the user to send their guess to the server. Here we bind to an action method on the Web Bean. </para> </callout> </calloutlist> </programlistingco>"
+"</html>]]></programlisting> <calloutlist> <callout arearefs=\"template\"> "
+"<para> Facelets is a templating language for JSF, here we are wrapping our "
+"page in a template which defines the header. </para> </callout> <callout "
+"arearefs=\"messages\"> <para> There are a number of messages which can be "
+"sent to the user, \"Higher!\", \"Lower!\" and \"Correct!\" </para> </"
+"callout> <callout arearefs=\"instructions\"> <para> As the user guesses, the "
+"range of numbers they can guess gets smaller - this sentance changes to make "
+"sure they know what range to guess in. </para> </callout> <callout arearefs="
+"\"guess\"> <para> This input field is bound to a Web Bean, using the value "
+"expression. </para> </callout> <callout arearefs=\"validator\"> <para> A "
+"range validator is used to make sure the user doesn't accidentally input a "
+"number outside of the range in which they can guess - if the validator "
+"wasn't here, the user might use up a guess on an out of range number. </"
+"para> </callout> <callout arearefs=\"submit\"> <para> And, of course, there "
+"must be a way for the user to send their guess to the server. Here we bind "
+"to an action method on the Web Bean. </para> </callout> </calloutlist> </"
+"programlistingco>"
#. Tag: para
-#: ri.xml:279
+#: ri.xml:299
#, no-c-format
-msgid "The example exists of 4 classes, the first two of which are binding types. First, there is the <literal>@Random</literal> binding type, used for injecting a random number:"
-msgstr "这个例子包括4个类,前面两个是绑定类型。首先,这有一个<literal>@Random</literal>绑定类型,用来注入一个随机数:"
+msgid ""
+"The example exists of 4 classes, the first two of which are binding types. "
+"First, there is the <literal>@Random</literal> binding type, used for "
+"injecting a random number:"
+msgstr ""
+"这个例子包括4个类,前面两个是绑定类型。首先,这有一个<literal>@Random</"
+"literal>绑定类型,用来注入一个随机数:"
#. Tag: programlisting
-#: ri.xml:285
+#: ri.xml:305
#, no-c-format
msgid ""
"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
@@ -442,13 +663,15 @@
"public @interface Random {}]]>"
#. Tag: para
-#: ri.xml:287
+#: ri.xml:307
#, no-c-format
-msgid "There is also the <literal>@MaxNumber</literal> binding type, used for injecting the maximum number that can be injected:"
+msgid ""
+"There is also the <literal>@MaxNumber</literal> binding type, used for "
+"injecting the maximum number that can be injected:"
msgstr "这还有一个<literal>@MaxNumber</literal>绑定类型,用来注入一个最大值:"
#. Tag: programlisting
-#: ri.xml:292
+#: ri.xml:312
#, no-c-format
msgid ""
"<![CDATA[@Target( { TYPE, METHOD, PARAMETER, FIELD })\n"
@@ -466,19 +689,25 @@
"]]>"
#. Tag: para
-#: ri.xml:294
+#: ri.xml:314
#, no-c-format
-msgid "The <literal>Generator</literal> class is responsible for creating the random number, via a producer method. It also exposes the maximum possible number via a producer method:"
-msgstr "<literal>Generator</literal>类通过一个生产者(producer)方法创建一个随机数。它也通过一个生产者方法暴露可能的最大值:"
+msgid ""
+"The <literal>Generator</literal> class is responsible for creating the "
+"random number, via a producer method. It also exposes the maximum possible "
+"number via a producer method:"
+msgstr ""
+"<literal>Generator</literal>类通过一个生产者(producer)方法创建一个随机数。它"
+"也通过一个生产者方法暴露可能的最大值:"
#. Tag: programlisting
-#: ri.xml:300
+#: ri.xml:320
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
"public class Generator {\n"
" \n"
-" private java.util.Random random = new java.util.Random( System.currentTimeMillis() );\n"
+" private java.util.Random random = new java.util.Random( System."
+"currentTimeMillis() );\n"
" \n"
" private int maxNumber = 100;\n"
" \n"
@@ -501,7 +730,8 @@
"<![CDATA[@ApplicationScoped\n"
"public class Generator {\n"
" \n"
-" private java.util.Random random = new java.util.Random( System.currentTimeMillis() );\n"
+" private java.util.Random random = new java.util.Random( System."
+"currentTimeMillis() );\n"
" \n"
" private int maxNumber = 100;\n"
" \n"
@@ -522,30 +752,59 @@
"}]]>"
#. Tag: para
-#: ri.xml:302
+#: ri.xml:322
#, no-c-format
-msgid "You'll notice that the <literal>Generator</literal> is application scoped; therefore we don't get a different random each time."
-msgstr "你会注意到<literal>Generator</literal>是应用范围的;因此我们不会每次都得到一个不同的随机对象。"
+msgid ""
+"You'll notice that the <literal>Generator</literal> is application scoped; "
+"therefore we don't get a different random each time."
+msgstr ""
+"你会注意到<literal>Generator</literal>是应用范围的;因此我们不会每次都得到一"
+"个不同的随机对象。"
#. Tag: para
-#: ri.xml:307
+#: ri.xml:327
#, no-c-format
-msgid "The final Web Bean in the application is the session scoped <literal>Game</literal>. By making <literal>Game</literal> session scoped, you can only play the game once per browser session. You could easily add a reset button - a good exercise for the reader :-)"
-msgstr "最后,应用的Web Bean是会话范围的 <literal>Game</literal>。通过将 <literal>Game</literal>的范围设为会话范围,你可以为每个浏览器会话启动一个猜数字游戏。你可以简单地添加一个复位按钮-对于读者来说是一个很好的练习 :)"
+msgid ""
+"The final Web Bean in the application is the session scoped <literal>Game</"
+"literal>."
+msgstr ""
#. Tag: para
-#: ri.xml:314
-#, no-c-format
-msgid "You'll also note that we've used the <literal>@Named</literal> annotation, so that we can use the bean through EL in the JSF page. Finally, we've used constructor injection to initialize the game with a random number. And of course, we need to tell the player when they've won, so we give feedback with a <literal>FacesMessage</literal>."
-msgstr "你也许注意到我们使用了 <literal>@Named</literal>注释,以便我们能够通过EL(表达式语言)在JSF页面中使用Bean。最后,我们通过构造器注入来初始化猜数字游戏并给它设一个随机数。当然,在玩家猜对数字后,我们需要告诉玩家他赢了,所以我们通过<literal>FacesMessage</literal>反馈给玩家一条信息。"
+#: ri.xml:332
+#, fuzzy, no-c-format
+msgid ""
+"You'll note that we've used the <literal>@Named</literal> annotation, so "
+"that we can use the bean through EL in the JSF page. Finally, we've used "
+"constructor injection to initialize the game with a random number. And of "
+"course, we need to tell the player when they've won, so we give feedback "
+"with a <literal>FacesMessage</literal>."
+msgstr ""
+"你也许注意到我们使用了 <literal>@Named</literal>注释,以便我们能够通过EL(表"
+"达式语言)在JSF页面中使用Bean。最后,我们通过构造器注入来初始化猜数字游戏并给"
+"它设一个随机数。当然,在玩家猜对数字后,我们需要告诉玩家他赢了,所以我们通过"
+"<literal>FacesMessage</literal>反馈给玩家一条信息。"
#. Tag: programlisting
-#: ri.xml:322
+#: ri.xml:340
#, no-c-format
msgid ""
-"<![CDATA[@Named\n"
+"<![CDATA[package org.jboss.webbeans.examples.numberguess;\n"
+"\n"
+"\n"
+"import javax.annotation.PostConstruct;\n"
+"import javax.faces.application.FacesMessage;\n"
+"import javax.faces.context.FacesContext;\n"
+"import javax.webbeans.AnnotationLiteral;\n"
+"import javax.webbeans.Current;\n"
+"import javax.webbeans.Initializer;\n"
+"import javax.webbeans.Named;\n"
+"import javax.webbeans.SessionScoped;\n"
+"import javax.webbeans.manager.Manager;\n"
+"\n"
+"@Named\n"
"@SessionScoped\n"
-"public class Game {\n"
+"public class Game\n"
+"{\n"
" private int number;\n"
" \n"
" private int guess;\n"
@@ -553,105 +812,127 @@
" private int biggest;\n"
" private int remainingGuesses;\n"
" \n"
-" public Game() {}\n"
+" @Current Manager manager;\n"
" \n"
+" public Game()\n"
+" {\n"
+" }\n"
+" \n"
" @Initializer\n"
-" Game(@Random int number, @MaxNumber int maxNumber) {\n"
-" this.number = number;\n"
-" this.smallest = 1;\n"
+" Game(@MaxNumber int maxNumber)\n"
+" { \n"
" this.biggest = maxNumber;\n"
-" this.remainingGuesses = 10;\n"
" }\n"
"\n"
-" // Getters and setters for fields\n"
+" public int getNumber()\n"
+" {\n"
+" return number;\n"
+" }\n"
" \n"
-" public String check() {\n"
-" if (guess>number) {\n"
-" biggest = guess - 1;\n"
-" }\n"
-" if (guess<number) {\n"
-" smallest = guess + 1;\n"
-" }\n"
-" if (guess == number) {\n"
-" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
-" }\n"
-" remainingGuesses--;\n"
-" return null;\n"
+" public int getGuess()\n"
+" {\n"
+" return guess;\n"
" }\n"
" \n"
-"}]]>"
-msgstr ""
-"<![CDATA[@Named\n"
-"@SessionScoped\n"
-"public class Game {\n"
-" private int number;\n"
+" public void setGuess(int guess)\n"
+" {\n"
+" this.guess = guess;\n"
+" }\n"
" \n"
-" private int guess;\n"
-" private int smallest;\n"
-" private int biggest;\n"
-" private int remainingGuesses;\n"
+" public int getSmallest()\n"
+" {\n"
+" return smallest;\n"
+" }\n"
" \n"
-" public Game() {}\n"
+" public int getBiggest()\n"
+" {\n"
+" return biggest;\n"
+" }\n"
" \n"
-" @Initializer\n"
-" Game(@Random int number, @MaxNumber int maxNumber) {\n"
-" this.number = number;\n"
-" this.smallest = 1;\n"
-" this.biggest = maxNumber;\n"
-" this.remainingGuesses = 10;\n"
+" public int getRemainingGuesses()\n"
+" {\n"
+" return remainingGuesses;\n"
" }\n"
-"\n"
-" // Getters and setters for fields\n"
" \n"
-" public String check() {\n"
-" if (guess>number) {\n"
+" public String check()\n"
+" {\n"
+" if (guess>number)\n"
+" {\n"
" biggest = guess - 1;\n"
" }\n"
-" if (guess<number) {\n"
+" if (guess<number)\n"
+" {\n"
" smallest = guess + 1;\n"
" }\n"
-" if (guess == number) {\n"
-" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
+" if (guess == number)\n"
+" {\n"
+" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
" }\n"
" remainingGuesses--;\n"
" return null;\n"
" }\n"
" \n"
+" @PostConstruct\n"
+" public void reset()\n"
+" {\n"
+" this.smallest = 0;\n"
+" this.guess = 0;\n"
+" this.remainingGuesses = 10;\n"
+" this.number = manager.getInstanceByType(Integer.class, new "
+"AnnotationLiteral<Random>(){});\n"
+" }\n"
+" \n"
"}]]>"
+msgstr ""
#. Tag: title
-#: ri.xml:326
+#: ri.xml:344
#, no-c-format
msgid "The translator example"
msgstr "翻译器例子"
#. Tag: para
-#: ri.xml:328
+#: ri.xml:346
#, no-c-format
-msgid "The translator example will take any sentences you enter, and translate them to Latin."
+msgid ""
+"The translator example will take any sentences you enter, and translate them "
+"to Latin."
msgstr "翻译器例子能够将你输入的句子翻译为拉丁文。"
#. Tag: para
-#: ri.xml:333
-#, no-c-format
-msgid "The translator example is built as an ear, and contains EJBs and enterprise beans. As a result, it's structure is more complex than the numberguess example."
-msgstr "翻译器例子是一个EAR应用,包含EJBs和企业Beans。因此,它的结构比猜数字例子复杂。"
+#: ri.xml:351
+#, fuzzy, no-c-format
+msgid ""
+"The translator example is built as an ear, and contains EJBs. As a result, "
+"it's structure is more complex than the numberguess example."
+msgstr ""
+"翻译器例子是一个EAR应用,包含EJBs和企业Beans。因此,它的结构比猜数字例子复"
+"杂。"
#. Tag: para
-#: ri.xml:340
+#: ri.xml:357
#, no-c-format
-msgid "EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make this structure much simpler!"
+msgid ""
+"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
+"this structure much simpler!"
msgstr "EJB3.1和Java EE 6允许你在WAR包中打包EJBs, 这将让这个结构更加简单!"
#. Tag: para
-#: ri.xml:346
-#, no-c-format
-msgid "First, let's take a look at the ear aggregator, which is located in <literal>webbeans-translator-ear</literal> module. Maven automatically generates the <literal>application.xml</literal> and <literal>jboss-app.xml</literal> for us:"
-msgstr "首先,让我们看一下EAR聚合器,它位于<literal>webbeans-translator-ear</literal>模块下。Maven将为我们自动生成<literal>application.xml</literal>和<literal>jboss-app.xml</literal>文件:"
+#: ri.xml:363
+#, fuzzy, no-c-format
+msgid ""
+"First, let's take a look at the ear aggregator, which is located in "
+"<literal>webbeans-translator-ear</literal> module. Maven automatically "
+"generates the <literal>application.xml</literal> for us:"
+msgstr ""
+"首先,让我们看一下EAR聚合器,它位于<literal>webbeans-translator-ear</literal>"
+"模块下。Maven将为我们自动生成<literal>application.xml</literal>和"
+"<literal>jboss-app.xml</literal>文件:"
#. Tag: programlisting
-#: ri.xml:353
-#, no-c-format
+#: ri.xml:369
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[<plugin>\n"
" <groupId>org.apache.maven.plugins</groupId>\n"
@@ -664,9 +945,6 @@
" <contextRoot>/webbeans-translator</contextRoot>\n"
" </webModule>\n"
" </modules>\n"
-" <jboss>\n"
-" <loader-repository>webbeans.jboss.org:loader=webbeans-translator</loader-repository>\n"
-" </jboss>\n"
" </configuration>\n"
"</plugin>]]>"
msgstr ""
@@ -682,60 +960,47 @@
" </webModule>\n"
" </modules>\n"
" <jboss>\n"
-" <loader-repository>webbeans.jboss.org:loader=webbeans-translator</loader-repository>\n"
+" <loader-repository>webbeans.jboss.org:loader=webbeans-translator</"
+"loader-repository>\n"
" </jboss>\n"
" </configuration>\n"
"</plugin>]]>"
#. Tag: para
-#: ri.xml:355
-#, no-c-format
-msgid "We're doing a couple of things here - firstly we set the context path, which gives us a nice url (<ulink url=\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>) and we also enable class loader isolation for JBoss AS."
-msgstr "我们需要在这里做些事情-首先我们需要设置上下文路径为一个不错的URL(<ulink url=\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>),我们还需要将JBoss AS的类加载器隔离配置激活。"
+#: ri.xml:371
+#, fuzzy, no-c-format
+msgid ""
+"Here we set the context path, which gives us a nice url (<ulink url=\"http://"
+"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
+"translator</ulink>)."
+msgstr ""
+"我们需要在这里做些事情-首先我们需要设置上下文路径为一个不错的URL(<ulink url="
+"\"http://localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
+"translator</ulink>),我们还需要将JBoss AS的类加载器隔离配置激活。"
#. Tag: para
-#: ri.xml:363
-#, no-c-format
-msgid "If you aren't using Maven to generate these files, you would need <literal>META-INF/jboss-app.xml</literal>:"
-msgstr "如果你不使用Maven来生成这些文件,你将需要<literal>META-INF/jboss-app.xml</literal>:"
-
-#. Tag: programlisting
-#: ri.xml:368
-#, no-c-format
+#: ri.xml:377
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<!DOCTYPE jboss-app\n"
-" PUBLIC \"-//JBoss//DTD J2EE Application 4.2//EN\"\n"
-" \"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd\">\n"
-"<jboss-app>\n"
-" <loader-repository>webbeans.jboss.org:loader=webbeans-translator</loader-repository>\n"
-"</jboss-app>]]>"
+"If you aren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
msgstr ""
-"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<!DOCTYPE jboss-app\n"
-" PUBLIC \"-//JBoss//DTD J2EE Application 4.2//EN\"\n"
-" \"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd\">\n"
-"<jboss-app>\n"
-" <loader-repository>webbeans.jboss.org:loader=webbeans-translator</loader-repository>\n"
-"</jboss-app>]]>"
+"如果你不使用Maven来生成这些文件,你将需要<literal>META-INF/jboss-app.xml</"
+"literal>:"
-#. Tag: para
-#: ri.xml:370
-#, no-c-format
-msgid "and <literal>META-INF/application.xml</literal>:"
-msgstr "和 <literal>META-INF/application.xml</literal>:"
-
#. Tag: programlisting
-#: ri.xml:374
+#: ri.xml:382
#, no-c-format
msgid ""
"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<application xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
" version=\"5\">\n"
" <display-name>webbeans-translator-ear</display-name>\n"
-" <description>Ear Example for the reference implementation of JSR 299: Web Beans</description>\n"
+" <description>Ear Example for the reference implementation of JSR 299: Web "
+"Beans</description>\n"
" \n"
" <module>\n"
" <web>\n"
@@ -751,10 +1016,12 @@
"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<application xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+"java.sun.com/xml/ns/javaee/application_5.xsd\"\n"
" version=\"5\">\n"
" <display-name>webbeans-translator-ear</display-name>\n"
-" <description>Ear Example for the reference implementation of JSR 299: Web Beans</description>\n"
+" <description>Ear Example for the reference implementation of JSR 299: Web "
+"Beans</description>\n"
" \n"
" <module>\n"
" <web>\n"
@@ -768,19 +1035,30 @@
"</application>]]>"
#. Tag: para
-#: ri.xml:377
-#, no-c-format
-msgid "Next, lets look at the war. Just as in the numberguess example, we have a <literal>faces-config.xml</literal> (to enabled Facelets) and a <literal>web.xml</literal> (to enable JSF and attach Web Beans services to the servlet container) in <literal>WebContent/WEB-INF</literal>."
-msgstr "然后,我们看一下WAR包。在猜数字例子中,我们需要<literal>faces-config.xml</literal>(配置Facelets)和一个位于<literal>WebContent/WEB-INF</literal>下的<literal>web.xml</literal>(配置JSF并将Web Beans服务加入Servlet容器中)。"
+#: ri.xml:385
+#, fuzzy, no-c-format
+msgid ""
+"Next, lets look at the war. Just as in the numberguess example, we have a "
+"<literal>faces-config.xml</literal> (to enabled Facelets) and a <literal>web."
+"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
+msgstr ""
+"然后,我们看一下WAR包。在猜数字例子中,我们需要<literal>faces-config.xml</"
+"literal>(配置Facelets)和一个位于<literal>WebContent/WEB-INF</literal>下的"
+"<literal>web.xml</literal>(配置JSF并将Web Beans服务加入Servlet容器中)。"
#. Tag: para
-#: ri.xml:384
+#: ri.xml:392
#, no-c-format
-msgid "More intersting is the facelet used to translate text. Just as in the numberguess example we have a template, which surrounds the form (ommitted here for brevity):"
-msgstr "更有意思的是用来翻译文本的facelet。在猜数字应用中我们有一个模板,这个模板套着表单(省略了表单):"
+msgid ""
+"More intersting is the facelet used to translate text. Just as in the "
+"numberguess example we have a template, which surrounds the form (ommitted "
+"here for brevity):"
+msgstr ""
+"更有意思的是用来翻译文本的facelet。在猜数字应用中我们有一个模板,这个模板套着"
+"表单(省略了表单):"
#. Tag: programlisting
-#: ri.xml:390
+#: ri.xml:398
#, no-c-format
msgid ""
"<![CDATA[<h:form id=\"NumberGuessMain\">\n"
@@ -796,7 +1074,8 @@
" </tr>\n"
" <tr>\n"
" <td>\n"
-" <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\" />\n"
+" <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\" />\n"
" </td>\n"
" <td>\n"
" <h:outputText value=\"#{translator.translatedText}\" />\n"
@@ -804,7 +1083,8 @@
" </tr>\n"
" </table>\n"
" <div>\n"
-" <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
+" <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
" </div>\n"
" \n"
"</h:form>]]>"
@@ -822,7 +1102,8 @@
" </tr>\n"
" <tr>\n"
" <td>\n"
-" <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\" />\n"
+" <h:inputTextarea id=\"text\" value=\"#{translator.text}\" "
+"required=\"true\" rows=\"5\" cols=\"80\" />\n"
" </td>\n"
" <td>\n"
" <h:outputText value=\"#{translator.translatedText}\" />\n"
@@ -830,83 +1111,66 @@
" </tr>\n"
" </table>\n"
" <div>\n"
-" <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
+" <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
" </div>\n"
" \n"
"</h:form>]]>"
#. Tag: para
-#: ri.xml:392
+#: ri.xml:400
#, no-c-format
-msgid "The user can enter some text in the lefthand textarea, and hit the translate button to see the result to the right."
+msgid ""
+"The user can enter some text in the lefthand textarea, and hit the translate "
+"button to see the result to the right."
msgstr "用户可以在左手边的文本区输入一些文本,点击翻译按钮查看右边的翻译结果。"
#. Tag: para
-#: ri.xml:397
-#, no-c-format
-msgid "Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</literal>. There are two configuration files in <literal>src/main/resources/META-INF</literal>, an empty <literal>web-beans.xml</literal>, used to mark the archive as containing Web Beans, and <literal>ejb-jar.xml</literal>. Web Beans provides injection and initializtion services for all EJBs, and uses <literal>ejb-jar.xml</literal> to enable this, you'll need this in any EJB project which uses Web Beans:"
-msgstr "最后,我们看一下EJB模块,<literal>webbeans-translator-ejb</literal>。在<literal>src/main/resources/META-INF</literal>下有两个配置文件,一个是空的<literal>web-beans.xml</literal>,用来标识这个档案包包含Web Beans,一个是<literal>ejb-jar.xml</literal>。Web Beans为所有的EJB提供注入和初始化服务,使用<literal>ejb-jar.xml</literal>文件来配置。你将在使用Web Beans的EJB项目中需要这些配置:"
-
-#. Tag: programlisting
-#: ri.xml:409
-#, no-c-format
+#: ri.xml:405
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd\"\n"
-" version=\"3.0\">\n"
-" \n"
-" <interceptors>\n"
-" <interceptor>\n"
-" <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</interceptor-class>\n"
-" </interceptor>\n"
-" </interceptors>\n"
-" \n"
-" <assembly-descriptor>\n"
-" <interceptor-binding>\n"
-" <ejb-name>*</ejb-name>\n"
-" <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</interceptor-class>\n"
-" </interceptor-binding>\n"
-" </assembly-descriptor>\n"
-" \n"
-"</ejb-jar>]]>"
+"Finally, let's look at the ejb module, <literal>webbeans-translator-ejb</"
+"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
+"empty <literal>web-beans.xml</literal>, used to mark the archive as "
+"containing Web Beans."
msgstr ""
-"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd\"\n"
-" version=\"3.0\">\n"
-" \n"
-" <interceptors>\n"
-" <interceptor>\n"
-" <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</interceptor-class>\n"
-" </interceptor>\n"
-" </interceptors>\n"
-" \n"
-" <assembly-descriptor>\n"
-" <interceptor-binding>\n"
-" <ejb-name>*</ejb-name>\n"
-" <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</interceptor-class>\n"
-" </interceptor-binding>\n"
-" </assembly-descriptor>\n"
-" \n"
-"</ejb-jar>]]>"
+"最后,我们看一下EJB模块,<literal>webbeans-translator-ejb</literal>。在"
+"<literal>src/main/resources/META-INF</literal>下有两个配置文件,一个是空的"
+"<literal>web-beans.xml</literal>,用来标识这个档案包包含Web Beans,一个是"
+"<literal>ejb-jar.xml</literal>。Web Beans为所有的EJB提供注入和初始化服务,使"
+"用<literal>ejb-jar.xml</literal>文件来配置。你将在使用Web Beans的EJB项目中需"
+"要这些配置:"
#. Tag: para
-#: ri.xml:411
-#, no-c-format
-msgid "We've saved the most interesting bit to last, the code! The project has two simple beans, <literal>SentanceParser</literal> and <literal>TextTranslator</literal> and two enterprise beans, <literal>TanslatorControllerBean</literal> and <literal>SentenceTranslator</literal>. You should be getting quite familiar with what a Web Bean looks like by now, so we'll just highlight the most interesting bits here."
-msgstr "我们将最有意思的部分放在最后,那就是代码!这个例子有两个简单Beans, <literal>SentanceParser</literal>和<literal>TextTranslator</literal>,还有两个企业Beans,<literal>TanslatorControllerBean</literal>和<literal>SentenceTranslator</literal>。现在你应该对Web Beans有点熟悉了,我们在这里着重最有意思的部分。"
+#: ri.xml:413
+#, fuzzy, no-c-format
+msgid ""
+"We've saved the most interesting bit to last, the code! The project has two "
+"simple beans, <literal>SentenceParser</literal> and <literal>TextTranslator</"
+"literal> and two enterprise beans, <literal>TranslatorControllerBean</"
+"literal> and <literal>SentenceTranslator</literal>. You should be getting "
+"quite familiar with what a Web Bean looks like by now, so we'll just "
+"highlight the most interesting bits here."
+msgstr ""
+"我们将最有意思的部分放在最后,那就是代码!这个例子有两个简单Beans, "
+"<literal>SentanceParser</literal>和<literal>TextTranslator</literal>,还有两"
+"个企业Beans,<literal>TanslatorControllerBean</literal>和"
+"<literal>SentenceTranslator</literal>。现在你应该对Web Beans有点熟悉了,我们"
+"在这里着重最有意思的部分。"
#. Tag: para
-#: ri.xml:421
-#, no-c-format
-msgid "Both <literal>SentanceParser</literal> and <literal>TextTranslator</literal> are dependent beans, and <literal>TextTranslator</literal> uses constructor initialization:"
-msgstr "<literal>SentanceParser</literal>和<literal>TextTranslator</literal>是相互依赖的Beans,<literal>TextTranslator</literal>使用构造器初始化:"
+#: ri.xml:423
+#, fuzzy, no-c-format
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"initialization:"
+msgstr ""
+"<literal>SentanceParser</literal>和<literal>TextTranslator</literal>是相互依"
+"赖的Beans,<literal>TextTranslator</literal>使用构造器初始化:"
#. Tag: programlisting
-#: ri.xml:427
+#: ri.xml:429
#, no-c-format
msgid ""
"<![CDATA[public class TextTranslator { \n"
@@ -914,7 +1178,8 @@
" private Translator sentenceTranslator; \n"
" \n"
" @Initializer\n"
-" TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) \n"
+" TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) \n"
" { \n"
" this.sentenceParser = sentenceParser; \n"
" this.sentenceTranslator = sentenceTranslator;]]>"
@@ -924,25 +1189,37 @@
" private Translator sentenceTranslator; \n"
" \n"
" @Initializer\n"
-" TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) \n"
+" TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) \n"
" { \n"
" this.sentenceParser = sentenceParser; \n"
" this.sentenceTranslator = sentenceTranslator;]]>"
#. Tag: para
-#: ri.xml:429
+#: ri.xml:431
#, no-c-format
-msgid "<literal>TextTranslator</literal> is a stateless bean (with a local business interface), where the magic happens - of course, we couldn't develop a full translator, but we gave it a good go!"
-msgstr "<literal>TextTranslator</literal>是一个无状态Bean(拥有一个本地业务接口),这里是魔术展现的地方-当然,我们不会开发一个完整的翻译器,但我们可以开发一个不错的小玩意!"
+msgid ""
+"<literal>TextTranslator</literal> is a stateless bean (with a local business "
+"interface), where the magic happens - of course, we couldn't develop a full "
+"translator, but we gave it a good go!"
+msgstr ""
+"<literal>TextTranslator</literal>是一个无状态Bean(拥有一个本地业务接口),这"
+"里是魔术展现的地方-当然,我们不会开发一个完整的翻译器,但我们可以开发一个不错"
+"的小玩意!"
#. Tag: para
-#: ri.xml:435
+#: ri.xml:437
#, no-c-format
-msgid "Finally, there is UI orientated controller, that collects the text from the user, and dispatches it to the translator. This is a request scoped, named, stateful session bean, which injects the translator."
-msgstr "最后,这里又要一个面向UI的控制器,从用户输入处搜集文本,转发给翻译器。这个控制器是请求范围的,具名的,有状态的会话Bean,它可以将翻译器注入进来。"
+msgid ""
+"Finally, there is UI orientated controller, that collects the text from the "
+"user, and dispatches it to the translator. This is a request scoped, named, "
+"stateful session bean, which injects the translator."
+msgstr ""
+"最后,这里又要一个面向UI的控制器,从用户输入处搜集文本,转发给翻译器。这个控"
+"制器是请求范围的,具名的,有状态的会话Bean,它可以将翻译器注入进来。"
#. Tag: programlisting
-#: ri.xml:441
+#: ri.xml:443
#, no-c-format
msgid ""
"<![CDATA[@Stateful\n"
@@ -962,19 +1239,19 @@
" @Current TextTranslator translator;]]>"
#. Tag: para
-#: ri.xml:443
+#: ri.xml:445
#, no-c-format
msgid "The bean also has getters and setters for all the fields on the page."
msgstr "这个Bean也拥有页面上所有域的getter和setter方法。"
#. Tag: para
-#: ri.xml:447
+#: ri.xml:449
#, no-c-format
msgid "As this is a stateful session bean, we have to have a remove method:"
msgstr "这个Bean是有状态会话Bean,我们需要有一个remove方法:"
#. Tag: programlisting
-#: ri.xml:451
+#: ri.xml:453
#, no-c-format
msgid ""
"<![CDATA[ @Remove\n"
@@ -990,20 +1267,193 @@
" }]]>"
#. Tag: para
-#: ri.xml:453
+#: ri.xml:455
#, no-c-format
-msgid "The Web Beans manager will call the remove method for you when the bean is destroyed; in this case at the end of the request."
-msgstr "Web Beans管理器在这个bean销毁的时候调用remove方法;在这个例子中是请求结束的时候。"
+msgid ""
+"The Web Beans manager will call the remove method for you when the bean is "
+"destroyed; in this case at the end of the request."
+msgstr ""
+"Web Beans管理器在这个bean销毁的时候调用remove方法;在这个例子中是请求结束的时"
+"候。"
#. Tag: para
-#: ri.xml:459
+#: ri.xml:461
#, no-c-format
-msgid "That concludes our short tour of the Web Beans RI examples. For more on the RI, or to help out, please visit <ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</ulink>."
-msgstr "Web Beans参考实现的例子到此结束。想要获得关于参考实现更多的知识或者帮助,请访问<ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</ulink>。"
+msgid ""
+"That concludes our short tour of the Web Beans RI examples. For more on the "
+"RI, or to help out, please visit <ulink url=\"http://www.seamframework.org/"
+"WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</"
+"ulink>."
+msgstr ""
+"Web Beans参考实现的例子到此结束。想要获得关于参考实现更多的知识或者帮助,请访"
+"问<ulink url=\"http://www.seamframework.org/WebBeans/Development\">http://"
+"www.seamframework.org/WebBeans/Development</ulink>。"
#. Tag: para
-#: ri.xml:465
+#: ri.xml:467
#, no-c-format
-msgid "We need help in all areas - bug fixing, writing new features, writing examples and translating this reference guide."
-msgstr "我们在各个方面都需要帮助-bug修复,新特性开发,例子开发和参考指南的翻译等等。"
+msgid ""
+"We need help in all areas - bug fixing, writing new features, writing "
+"examples and translating this reference guide."
+msgstr ""
+"我们在各个方面都需要帮助-bug修复,新特性开发,例子开发和参考指南的翻译等等。"
+#~ msgid ""
+#~ "The final Web Bean in the application is the session scoped "
+#~ "<literal>Game</literal>. By making <literal>Game</literal> session "
+#~ "scoped, you can only play the game once per browser session. You could "
+#~ "easily add a reset button - a good exercise for the reader :-)"
+#~ msgstr ""
+#~ "最后,应用的Web Bean是会话范围的 <literal>Game</literal>。通过将 "
+#~ "<literal>Game</literal>的范围设为会话范围,你可以为每个浏览器会话启动一个"
+#~ "猜数字游戏。你可以简单地添加一个复位按钮-对于读者来说是一个很好的练习 :)"
+
+#~ msgid ""
+#~ "<![CDATA[@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game {\n"
+#~ " private int number;\n"
+#~ " \n"
+#~ " private int guess;\n"
+#~ " private int smallest;\n"
+#~ " private int biggest;\n"
+#~ " private int remainingGuesses;\n"
+#~ " \n"
+#~ " public Game() {}\n"
+#~ " \n"
+#~ " @Initializer\n"
+#~ " Game(@Random int number, @MaxNumber int maxNumber) {\n"
+#~ " this.number = number;\n"
+#~ " this.smallest = 1;\n"
+#~ " this.biggest = maxNumber;\n"
+#~ " this.remainingGuesses = 10;\n"
+#~ " }\n"
+#~ "\n"
+#~ " // Getters and setters for fields\n"
+#~ " \n"
+#~ " public String check() {\n"
+#~ " if (guess>number) {\n"
+#~ " biggest = guess - 1;\n"
+#~ " }\n"
+#~ " if (guess<number) {\n"
+#~ " smallest = guess + 1;\n"
+#~ " }\n"
+#~ " if (guess == number) {\n"
+#~ " FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ " }\n"
+#~ " remainingGuesses--;\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ " \n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Named\n"
+#~ "@SessionScoped\n"
+#~ "public class Game {\n"
+#~ " private int number;\n"
+#~ " \n"
+#~ " private int guess;\n"
+#~ " private int smallest;\n"
+#~ " private int biggest;\n"
+#~ " private int remainingGuesses;\n"
+#~ " \n"
+#~ " public Game() {}\n"
+#~ " \n"
+#~ " @Initializer\n"
+#~ " Game(@Random int number, @MaxNumber int maxNumber) {\n"
+#~ " this.number = number;\n"
+#~ " this.smallest = 1;\n"
+#~ " this.biggest = maxNumber;\n"
+#~ " this.remainingGuesses = 10;\n"
+#~ " }\n"
+#~ "\n"
+#~ " // Getters and setters for fields\n"
+#~ " \n"
+#~ " public String check() {\n"
+#~ " if (guess>number) {\n"
+#~ " biggest = guess - 1;\n"
+#~ " }\n"
+#~ " if (guess<number) {\n"
+#~ " smallest = guess + 1;\n"
+#~ " }\n"
+#~ " if (guess == number) {\n"
+#~ " FacesContext.getCurrentInstance().addMessage(null, new "
+#~ "FacesMessage(\"Correct!\"));\n"
+#~ " }\n"
+#~ " remainingGuesses--;\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ " \n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<!DOCTYPE jboss-app\n"
+#~ " PUBLIC \"-//JBoss//DTD J2EE Application 4.2//EN\"\n"
+#~ " \"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd\">\n"
+#~ "<jboss-app>\n"
+#~ " <loader-repository>webbeans.jboss.org:loader=webbeans-translator</"
+#~ "loader-repository>\n"
+#~ "</jboss-app>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<!DOCTYPE jboss-app\n"
+#~ " PUBLIC \"-//JBoss//DTD J2EE Application 4.2//EN\"\n"
+#~ " \"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd\">\n"
+#~ "<jboss-app>\n"
+#~ " <loader-repository>webbeans.jboss.org:loader=webbeans-translator</"
+#~ "loader-repository>\n"
+#~ "</jboss-app>]]>"
+
+#~ msgid "and <literal>META-INF/application.xml</literal>:"
+#~ msgstr "和 <literal>META-INF/application.xml</literal>:"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+#~ "java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd\"\n"
+#~ " version=\"3.0\">\n"
+#~ " \n"
+#~ " <interceptors>\n"
+#~ " <interceptor>\n"
+#~ " <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</"
+#~ "interceptor-class>\n"
+#~ " </interceptor>\n"
+#~ " </interceptors>\n"
+#~ " \n"
+#~ " <assembly-descriptor>\n"
+#~ " <interceptor-binding>\n"
+#~ " <ejb-name>*</ejb-name>\n"
+#~ " <interceptor-class>org.jboss.webbeans.ejb."
+#~ "SessionBeanInterceptor</interceptor-class>\n"
+#~ " </interceptor-binding>\n"
+#~ " </assembly-descriptor>\n"
+#~ " \n"
+#~ "</ejb-jar>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+#~ "java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd\"\n"
+#~ " version=\"3.0\">\n"
+#~ " \n"
+#~ " <interceptors>\n"
+#~ " <interceptor>\n"
+#~ " <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</"
+#~ "interceptor-class>\n"
+#~ " </interceptor>\n"
+#~ " </interceptors>\n"
+#~ " \n"
+#~ " <assembly-descriptor>\n"
+#~ " <interceptor-binding>\n"
+#~ " <ejb-name>*</ejb-name>\n"
+#~ " <interceptor-class>org.jboss.webbeans.ejb."
+#~ "SessionBeanInterceptor</interceptor-class>\n"
+#~ " </interceptor-binding>\n"
+#~ " </assembly-descriptor>\n"
+#~ " \n"
+#~ "</ejb-jar>]]>"
Modified: doc/trunk/reference/zh-CN/scopescontexts.po
===================================================================
--- doc/trunk/reference/zh-CN/scopescontexts.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/zh-CN/scopescontexts.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-19 20:26+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-02-04 15:24+0800\n"
"Last-Translator: Sean Wu <alartin(a)gmail.com>\n"
"Language-Team: none\n"
@@ -22,8 +22,16 @@
#. Tag: para
#: scopescontexts.xml:6
#, no-c-format
-msgid "So far, we've seen a few examples of <emphasis>scope type annotations</emphasis>. The scope of a Web Bean determines the lifecycle of instances of the Web Bean. The scope also determines which clients refer to which instances of the Web Bean. According to the Web Beans specification, a scope determines:"
-msgstr "目前为止,我们已经看到了几个 <emphasis>范围类型注释</emphasis>的例子。Web Bean的范围决定了Web Bean实例的生命周期。范围还决定了哪个客户端引用了哪个Web Bean实例。根据Web Beans规范,一个范围决定:"
+msgid ""
+"So far, we've seen a few examples of <emphasis>scope type annotations</"
+"emphasis>. The scope of a Web Bean determines the lifecycle of instances of "
+"the Web Bean. The scope also determines which clients refer to which "
+"instances of the Web Bean. According to the Web Beans specification, a scope "
+"determines:"
+msgstr ""
+"目前为止,我们已经看到了几个 <emphasis>范围类型注释</emphasis>的例子。Web "
+"Bean的范围决定了Web Bean实例的生命周期。范围还决定了哪个客户端引用了哪个Web "
+"Bean实例。根据Web Beans规范,一个范围决定:"
#. Tag: para
#: scopescontexts.xml:14
@@ -40,14 +48,25 @@
#. Tag: para
#: scopescontexts.xml:20
#, no-c-format
-msgid "Which injected references refer to any instance of a Web Bean with that scope"
+msgid ""
+"Which injected references refer to any instance of a Web Bean with that scope"
msgstr "注入的引用指向该范围的Web Bean的哪个实例"
#. Tag: para
#: scopescontexts.xml:25
#, no-c-format
-msgid "For example, if we have a session scoped Web Bean, <literal>CurrentUser</literal>, all Web Beans that are called in the context of the same <literal>HttpSession</literal> will see the same instance of <literal>CurrentUser</literal>. This instance will be automatically created the first time a <literal>CurrentUser</literal> is needed in that session, and automatically destroyed when the session ends."
-msgstr "例如,如果我们有一个会话范围的Web Bean:<literal>CurrentUser</literal>。那么在同一个<literal>HttpSession</literal>的上下文中调用的所有的Web Bean都将看到同一个<literal>CurrentUser</literal>实例。这个实例在会话第一次需要<literal>CurrentUser</literal>时被自动创建,在会话结束时被自动销毁。"
+msgid ""
+"For example, if we have a session scoped Web Bean, <literal>CurrentUser</"
+"literal>, all Web Beans that are called in the context of the same "
+"<literal>HttpSession</literal> will see the same instance of "
+"<literal>CurrentUser</literal>. This instance will be automatically created "
+"the first time a <literal>CurrentUser</literal> is needed in that session, "
+"and automatically destroyed when the session ends."
+msgstr ""
+"例如,如果我们有一个会话范围的Web Bean:<literal>CurrentUser</literal>。那么"
+"在同一个<literal>HttpSession</literal>的上下文中调用的所有的Web Bean都将看到"
+"同一个<literal>CurrentUser</literal>实例。这个实例在会话第一次需要"
+"<literal>CurrentUser</literal>时被自动创建,在会话结束时被自动销毁。"
#. Tag: title
#: scopescontexts.xml:32
@@ -58,8 +77,12 @@
#. Tag: para
#: scopescontexts.xml:34
#, no-c-format
-msgid "Web Beans features an <emphasis>extensible context model</emphasis>. It is possible to define new scopes by creating a new scope type annotation:"
-msgstr "Web Bean有一个特性是<emphasis>可扩展的上下文模型</emphasis>。我们可以创建一个新的范围类型注释来定一个新的范围:"
+msgid ""
+"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
+"possible to define new scopes by creating a new scope type annotation:"
+msgstr ""
+"Web Bean有一个特性是<emphasis>可扩展的上下文模型</emphasis>。我们可以创建一个"
+"新的范围类型注释来定一个新的范围:"
#. Tag: programlisting
#: scopescontexts.xml:37
@@ -78,13 +101,22 @@
#. Tag: para
#: scopescontexts.xml:39
#, no-c-format
-msgid "Of course, that's the easy part of the job. For this scope type to be useful, we will also need to define a <literal>Context</literal> object that implements the scope! Implementing a <literal>Context</literal> is usually a very technical task, intended for framework development only."
-msgstr "当然,这是这项工作最简单的部分。为了让这个范围类型可以使用,我们还需要定义一个<literal>Context(上下文)</literal>对象来实现这个范围!实现上下文通常是一个非常具备挑战的技术任务,这常常只能由开发编程框架的专家完成。"
+msgid ""
+"Of course, that's the easy part of the job. For this scope type to be "
+"useful, we will also need to define a <literal>Context</literal> object that "
+"implements the scope! Implementing a <literal>Context</literal> is usually a "
+"very technical task, intended for framework development only."
+msgstr ""
+"当然,这是这项工作最简单的部分。为了让这个范围类型可以使用,我们还需要定义一"
+"个<literal>Context(上下文)</literal>对象来实现这个范围!实现上下文通常是一"
+"个非常具备挑战的技术任务,这常常只能由开发编程框架的专家完成。"
#. Tag: para
#: scopescontexts.xml:44
#, no-c-format
-msgid "We can apply a scope type annotation to a Web Bean implementation class to specify the scope of the Web Bean:"
+msgid ""
+"We can apply a scope type annotation to a Web Bean implementation class to "
+"specify the scope of the Web Bean:"
msgstr "我们可以在Web Bean实现类中应用范围类型注释来指定Web Bean的范围:"
#. Tag: programlisting
@@ -148,7 +180,9 @@
#. Tag: para
#: scopescontexts.xml:86
#, no-c-format
-msgid "any servlet request has access to active request, session and application scopes, and, additionally"
+msgid ""
+"any servlet request has access to active request, session and application "
+"scopes, and, additionally"
msgstr "任何Servlet请求可以访问激活的请求,会话和应用范围,并且"
#. Tag: para
@@ -190,14 +224,24 @@
#. Tag: para
#: scopescontexts.xml:111
#, no-c-format
-msgid "If the application tries to invoke a Web Bean with a scope that does not have an active context, a <literal>ContextNotActiveException</literal> is thrown by the Web Bean manager at runtime."
-msgstr "如果应用试图调用一个Web Bean,而对应的范围上下文没有处于激活状态时,Web Bean管理器在运行时将抛出一个<literal>ContextNotActiveException</literal>异常。"
+msgid ""
+"If the application tries to invoke a Web Bean with a scope that does not "
+"have an active context, a <literal>ContextNotActiveException</literal> is "
+"thrown by the Web Bean manager at runtime."
+msgstr ""
+"如果应用试图调用一个Web Bean,而对应的范围上下文没有处于激活状态时,Web Bean"
+"管理器在运行时将抛出一个<literal>ContextNotActiveException</literal>异常。"
#. Tag: para
#: scopescontexts.xml:115
#, no-c-format
-msgid "Three of the four built-in scopes should be extremely familiar to every Java EE developer, so let's not waste time discussing them here. One of the scopes, however, is new."
-msgstr "这四个内置范围的其中三个对于每个Java EE程序员来说都非常熟悉,所以让我们别浪费时间来讨论他们。不过有一个范围是新的。"
+msgid ""
+"Three of the four built-in scopes should be extremely familiar to every Java "
+"EE developer, so let's not waste time discussing them here. One of the "
+"scopes, however, is new."
+msgstr ""
+"这四个内置范围的其中三个对于每个Java EE程序员来说都非常熟悉,所以让我们别浪费"
+"时间来讨论他们。不过有一个范围是新的。"
#. Tag: title
#: scopescontexts.xml:122
@@ -208,8 +252,15 @@
#. Tag: para
#: scopescontexts.xml:124
#, no-c-format
-msgid "The Web Beans conversation scope is a bit like the traditional session scope in that it holds state associated with a user of the system, and spans multiple requests to the server. However, unlike the session scope, the conversation scope:"
-msgstr "Web Beans的对话(Conversation)范围有点类似与传统的会话范围(Session),传统的会话范围常常用来存储和系统用户相关的状态,并且能够跨越多个请求。然而,对话范围还有很多地方和会话范围不一样:"
+msgid ""
+"The Web Beans conversation scope is a bit like the traditional session scope "
+"in that it holds state associated with a user of the system, and spans "
+"multiple requests to the server. However, unlike the session scope, the "
+"conversation scope:"
+msgstr ""
+"Web Beans的对话(Conversation)范围有点类似与传统的会话范围(Session),传统的会"
+"话范围常常用来存储和系统用户相关的状态,并且能够跨越多个请求。然而,对话范围"
+"还有很多地方和会话范围不一样:"
#. Tag: para
#: scopescontexts.xml:130
@@ -220,20 +271,35 @@
#. Tag: para
#: scopescontexts.xml:133
#, no-c-format
-msgid "holds state associated with a particular web browser tab in a JSF application."
+msgid ""
+"holds state associated with a particular web browser tab in a JSF "
+"application."
msgstr "在一个JSF应用中持有与一个特定的Web浏览标签页关联的状态。"
#. Tag: para
#: scopescontexts.xml:138
#, no-c-format
-msgid "A conversation represents a task, a unit of work from the point of view of the user. The conversation context holds state associated with what the user is currently working on. If the user is doing multiple things at the same time, there are multiple conversations."
-msgstr "从用户角度出发,一个对话代表一个任务,或者一个工作单元。用户当前工作相关的状态由对话上下文维护。如果用户同时处理多个事情,就会有多个对话与之对应。"
+msgid ""
+"A conversation represents a task, a unit of work from the point of view of "
+"the user. The conversation context holds state associated with what the user "
+"is currently working on. If the user is doing multiple things at the same "
+"time, there are multiple conversations."
+msgstr ""
+"从用户角度出发,一个对话代表一个任务,或者一个工作单元。用户当前工作相关的状"
+"态由对话上下文维护。如果用户同时处理多个事情,就会有多个对话与之对应。"
#. Tag: para
#: scopescontexts.xml:143
#, no-c-format
-msgid "The conversation context is active during any JSF request. However, most conversations are destroyed at the end of the request. If a conversation should hold state across multiple requests, it must be explicitly promoted to a <emphasis>long-running conversation</emphasis>."
-msgstr "一个对话上下文在任何JSF请求中都是激活的。但是,大部分对话都在请求结束的时候被销毁了。如果一个对话需要跨越多个请求来维护状态的话,它必须显式地升级为<emphasis>长时对话</emphasis>。"
+msgid ""
+"The conversation context is active during any JSF request. However, most "
+"conversations are destroyed at the end of the request. If a conversation "
+"should hold state across multiple requests, it must be explicitly promoted "
+"to a <emphasis>long-running conversation</emphasis>."
+msgstr ""
+"一个对话上下文在任何JSF请求中都是激活的。但是,大部分对话都在请求结束的时候被"
+"销毁了。如果一个对话需要跨越多个请求来维护状态的话,它必须显式地升级为"
+"<emphasis>长时对话</emphasis>。"
#. Tag: title
#: scopescontexts.xml:149
@@ -244,8 +310,13 @@
#. Tag: para
#: scopescontexts.xml:151
#, no-c-format
-msgid "Web Beans provides a built-in Web Bean for controlling the lifecyle of conversations in a JSF application. This Web Bean may be obtained by injection:"
-msgstr "Web Beans提供了一个内置的Web Bean来在控制一个JSF应用中对话的生命周期。这个Web Bean可以通过注入来获得:"
+msgid ""
+"Web Beans provides a built-in Web Bean for controlling the lifecyle of "
+"conversations in a JSF application. This Web Bean may be obtained by "
+"injection:"
+msgstr ""
+"Web Beans提供了一个内置的Web Bean来在控制一个JSF应用中对话的生命周期。这个"
+"Web Bean可以通过注入来获得:"
#. Tag: programlisting
#: scopescontexts.xml:154
@@ -256,13 +327,23 @@
#. Tag: para
#: scopescontexts.xml:156
#, no-c-format
-msgid "To promote the conversation associated with the current request to a long-running conversation, call the <literal>begin()</literal> method from application code. To schedule the current long-running conversation context for destruction at the end of the current request, call <literal>end()</literal>."
-msgstr "将当前请求关联的对话升级为长时对话的方法是从应用代码中调用 <literal>begin()</literal>方法。将当前长时对话上下文在当前请求结束时销毁的方法是调用<literal>end()</literal>方法。"
+msgid ""
+"To promote the conversation associated with the current request to a long-"
+"running conversation, call the <literal>begin()</literal> method from "
+"application code. To schedule the current long-running conversation context "
+"for destruction at the end of the current request, call <literal>end()</"
+"literal>."
+msgstr ""
+"将当前请求关联的对话升级为长时对话的方法是从应用代码中调用 <literal>begin()</"
+"literal>方法。将当前长时对话上下文在当前请求结束时销毁的方法是调用"
+"<literal>end()</literal>方法。"
#. Tag: para
#: scopescontexts.xml:161
#, no-c-format
-msgid "In the following example, a conversation-scoped Web Bean controls the conversation with which it is associated:"
+msgid ""
+"In the following example, a conversation-scoped Web Bean controls the "
+"conversation with which it is associated:"
msgstr "在下面的例子中,一个对话范围的Web Bean控制和它关联的对话:"
#. Tag: programlisting
@@ -334,8 +415,13 @@
#. Tag: para
#: scopescontexts.xml:166
#, no-c-format
-msgid "This Web Bean is able to control its own lifecycle through use of the <literal>Conversation</literal> API. But some other Web Beans have a lifecycle which depends completely upon another object."
-msgstr "Web Bean可以通过<literal>Conversation</literal>接口控制自己的生命周期。但是其他一些Web Bean的生命周期完全依赖与其他对象。"
+msgid ""
+"This Web Bean is able to control its own lifecycle through use of the "
+"<literal>Conversation</literal> API. But some other Web Beans have a "
+"lifecycle which depends completely upon another object."
+msgstr ""
+"Web Bean可以通过<literal>Conversation</literal>接口控制自己的生命周期。但是其"
+"他一些Web Bean的生命周期完全依赖与其他对象。"
#. Tag: title
#: scopescontexts.xml:173
@@ -346,14 +432,29 @@
#. Tag: para
#: scopescontexts.xml:175
#, no-c-format
-msgid "The conversation context automatically propagates with any JSF faces request (JSF form submission). It does not automatically propagate with non-faces requests, for example, navigation via a link."
-msgstr "对话上下文在任何JSF faces请求中自动传播(JSF表单提交)。在非faces请求中,对话上下文将不会自动传播,例如通过一个链接来导航。"
+msgid ""
+"The conversation context automatically propagates with any JSF faces request "
+"(JSF form submission). It does not automatically propagate with non-faces "
+"requests, for example, navigation via a link."
+msgstr ""
+"对话上下文在任何JSF faces请求中自动传播(JSF表单提交)。在非faces请求中,对话"
+"上下文将不会自动传播,例如通过一个链接来导航。"
#. Tag: para
#: scopescontexts.xml:179
#, no-c-format
-msgid "We can force the conversation to propagate with a non-faces request by including the unique identifier of the conversation as a request parameter. The Web Beans specification reserves the request parameter named <literal>cid</literal> for this use. The unique identifier of the conversation may be obtained from the <literal>Conversation</literal> object, which has the Web Beans name <literal>conversation</literal>."
-msgstr "我们可以强迫在非faces请求中传播对话,方法是在请求参数中包含一个对话的唯一标识符即可。Web Beans规范为此保留了一个请求参数关键字<literal>cid</literal>。对话的唯一标识符可以通过<literal>Conversation</literal>对象获得,它拥有Web Beans的名字<literal>conversation</literal>。"
+msgid ""
+"We can force the conversation to propagate with a non-faces request by "
+"including the unique identifier of the conversation as a request parameter. "
+"The Web Beans specification reserves the request parameter named "
+"<literal>cid</literal> for this use. The unique identifier of the "
+"conversation may be obtained from the <literal>Conversation</literal> "
+"object, which has the Web Beans name <literal>conversation</literal>."
+msgstr ""
+"我们可以强迫在非faces请求中传播对话,方法是在请求参数中包含一个对话的唯一标识"
+"符即可。Web Beans规范为此保留了一个请求参数关键字<literal>cid</literal>。对话"
+"的唯一标识符可以通过<literal>Conversation</literal>对象获得,它拥有Web Beans"
+"的名字<literal>conversation</literal>。"
#. Tag: para
#: scopescontexts.xml:186
@@ -364,14 +465,27 @@
#. Tag: programlisting
#: scopescontexts.xml:188
#, no-c-format
-msgid "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]>"
-msgstr "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]>"
+msgid ""
+"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
+">"
+msgstr ""
+"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
+">"
#. Tag: para
#: scopescontexts.xml:190
#, no-c-format
-msgid "The Web Bean manager is also required to propagate conversations across any redirect, even if the conversation is not marked long-running. This makes it very easy to implement the common POST-then-redirect pattern, without resort to fragile constructs such as a \"flash\" object. In this case, the Web Bean manager automatically adds a request parameter to the redirect URL."
-msgstr "Web Bean管理器也需要能够跨越任何重定向来传播对话,甚至这个对话没有被升级为长时对话。这样我们就能很容易实现常用的POST-then-redirect模式,而不需要构建一个脆弱的 \"闪存\"对象。在这个例子中,Web Bean管理器自动向重定向URL中添加一个请求参数。"
+msgid ""
+"The Web Bean manager is also required to propagate conversations across any "
+"redirect, even if the conversation is not marked long-running. This makes it "
+"very easy to implement the common POST-then-redirect pattern, without resort "
+"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
+"manager automatically adds a request parameter to the redirect URL."
+msgstr ""
+"Web Bean管理器也需要能够跨越任何重定向来传播对话,甚至这个对话没有被升级为长"
+"时对话。这样我们就能很容易实现常用的POST-then-redirect模式,而不需要构建一个"
+"脆弱的 \"闪存\"对象。在这个例子中,Web Bean管理器自动向重定向URL中添加一个请"
+"求参数。"
#. Tag: title
#: scopescontexts.xml:200
@@ -381,15 +495,29 @@
#. Tag: para
#: scopescontexts.xml:202
-#, no-c-format
-msgid "The Web Bean manager is permitted to destroy a conversation and all state held in its context at any time in order to preserve resources. A Web Bean manager implementation will normally do this on the basis of some kind of timeout—though this is not required by the Web Beans specification. The timeout is the period of inactivity before the conversation is destroyed."
-msgstr "Web Bean管理器可以在任何时候销毁一个对话及其上下文中维护的所有状态,这样的设计可以降低资源的消耗。一个Web Bean管理器的实现将根据超时—设置自动的完成上述任务,虽然这个特性在Web Bean规范中没有要求。超时指的是对话被销毁前的非激活时间。"
+#, fuzzy, no-c-format
+msgid ""
+"The Web Bean manager is permitted to destroy a conversation and all state "
+"held in its context at any time in order to preserve resources. A Web Bean "
+"manager implementation will normally do this on the basis of some kind of "
+"timeout — though this is not required by the Web Beans specification. "
+"The timeout is the period of inactivity before the conversation is destroyed."
+msgstr ""
+"Web Bean管理器可以在任何时候销毁一个对话及其上下文中维护的所有状态,这样的设"
+"计可以降低资源的消耗。一个Web Bean管理器的实现将根据超时—设置自动的完成"
+"上述任务,虽然这个特性在Web Bean规范中没有要求。超时指的是对话被销毁前的非激"
+"活时间。"
#. Tag: para
#: scopescontexts.xml:208
#, no-c-format
-msgid "The <literal>Conversation</literal> object provides a method to set the timeout. This is a hint to the Web Bean manager, which is free to ignore the setting."
-msgstr "<literal>Conversation</literal>对象提供一个方法来设置超时。这个方法可以让Web Bean管理器忽略原来的配置。"
+msgid ""
+"The <literal>Conversation</literal> object provides a method to set the "
+"timeout. This is a hint to the Web Bean manager, which is free to ignore the "
+"setting."
+msgstr ""
+"<literal>Conversation</literal>对象提供一个方法来设置超时。这个方法可以让Web "
+"Bean管理器忽略原来的配置。"
#. Tag: programlisting
#: scopescontexts.xml:212
@@ -406,13 +534,19 @@
#. Tag: para
#: scopescontexts.xml:221
#, no-c-format
-msgid "In addition to the four built-in scopes, Web Beans features the so-called <emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a Web Bean which does not explicitly declare a scope type."
-msgstr "除了内置的四个范围,Web Beans还提供了一个<emphasis>依赖的伪范围</emphasis>。这个范围是没有显式设置范围类型的Web Bean的默认范围。"
+msgid ""
+"In addition to the four built-in scopes, Web Beans features the so-called "
+"<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
+"Web Bean which does not explicitly declare a scope type."
+msgstr ""
+"除了内置的四个范围,Web Beans还提供了一个<emphasis>依赖的伪范围</emphasis>。"
+"这个范围是没有显式设置范围类型的Web Bean的默认范围。"
#. Tag: para
#: scopescontexts.xml:225
#, no-c-format
-msgid "For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
+msgid ""
+"For example, this Web Bean has the scope type <literal>@Dependent</literal>:"
msgstr "例如,这个Web Bean有一个范围类型<literal>@Dependent</literal>:"
#. Tag: programlisting
@@ -424,20 +558,36 @@
#. Tag: para
#: scopescontexts.xml:229
#, no-c-format
-msgid "When an injection point of a Web Bean resolves to a dependent Web Bean, a new instance of the dependent Web Bean is created every time the first Web Bean is instantiated. Instances of dependent Web Beans are never shared between different Web Beans or different injection points. They are <emphasis>dependent objects</emphasis> of some other Web Bean instance."
-msgstr "当一个注入点被解析为一个依赖的Web Bean之后,每当第一个Web Bean被初始化时,都会创建一个依赖的Web Bean实例。不同的Web Beans或者不同的注入点的依赖的Web Beans的实例都不会被共享。它们是其它Web Bean实例的<emphasis>依赖的对象</emphasis>。"
+msgid ""
+"When an injection point of a Web Bean resolves to a dependent Web Bean, a "
+"new instance of the dependent Web Bean is created every time the first Web "
+"Bean is instantiated. Instances of dependent Web Beans are never shared "
+"between different Web Beans or different injection points. They are "
+"<emphasis>dependent objects</emphasis> of some other Web Bean instance."
+msgstr ""
+"当一个注入点被解析为一个依赖的Web Bean之后,每当第一个Web Bean被初始化时,都"
+"会创建一个依赖的Web Bean实例。不同的Web Beans或者不同的注入点的依赖的Web "
+"Beans的实例都不会被共享。它们是其它Web Bean实例的<emphasis>依赖的对象</"
+"emphasis>。"
#. Tag: para
#: scopescontexts.xml:235
#, no-c-format
-msgid "Dependent Web Bean instances are destroyed when the instance they depend upon is destroyed."
+msgid ""
+"Dependent Web Bean instances are destroyed when the instance they depend "
+"upon is destroyed."
msgstr "依赖的Web Bean实例在它们所依赖对象实例销毁的时候被销毁。"
#. Tag: para
#: scopescontexts.xml:243
#, no-c-format
-msgid "Web Beans makes it easy to obtain a dependent instance of a Java class or EJB bean, even if the class or EJB bean is already declared as a Web Bean with some other scope type."
-msgstr "Web Bean能够让我们轻松获得一个Java类或者EJB Bean的依赖实例,甚至这个类或者EJB Bean已经被声明为一个其他范围的Web Bean也没问题。"
+msgid ""
+"Web Beans makes it easy to obtain a dependent instance of a Java class or "
+"EJB bean, even if the class or EJB bean is already declared as a Web Bean "
+"with some other scope type."
+msgstr ""
+"Web Bean能够让我们轻松获得一个Java类或者EJB Bean的依赖实例,甚至这个类或者"
+"EJB Bean已经被声明为一个其他范围的Web Bean也没问题。"
#. Tag: title
#: scopescontexts.xml:248
@@ -448,8 +598,13 @@
#. Tag: para
#: scopescontexts.xml:250
#, no-c-format
-msgid "The built-in <literal>@New</literal> binding annotation allows <emphasis>implicit</emphasis> definition of a dependent Web Bean at an injection point. Suppose we declare the following injected field:"
-msgstr "内置的<literal>@New</literal>绑定注释允许在注入点<emphasis>隐式</emphasis>地定义一个依赖的Web Bean。假设我们需要声明下面的注入域:"
+msgid ""
+"The built-in <literal>@New</literal> binding annotation allows "
+"<emphasis>implicit</emphasis> definition of a dependent Web Bean at an "
+"injection point. Suppose we declare the following injected field:"
+msgstr ""
+"内置的<literal>@New</literal>绑定注释允许在注入点<emphasis>隐式</emphasis>地"
+"定义一个依赖的Web Bean。假设我们需要声明下面的注入域:"
#. Tag: programlisting
#: scopescontexts.xml:254
@@ -460,14 +615,25 @@
#. Tag: para
#: scopescontexts.xml:256
#, no-c-format
-msgid "Then a Web Bean with scope <literal>@Dependent</literal>, binding type <literal>@New</literal>, API type <literal>Calculator</literal>, implementation class <literal>Calculator</literal> and deployment type <literal>@Standard</literal> is implicitly defined."
-msgstr "这个Web Bean被隐式地定义为范围为<literal>@Dependent</literal>,绑定类型为<literal>@New</literal>,API类型为<literal>Calculator</literal>,实现了<literal>Calculator</literal>类,部署类型为<literal>@Standard</literal>。"
+msgid ""
+"Then a Web Bean with scope <literal>@Dependent</literal>, binding type "
+"<literal>@New</literal>, API type <literal>Calculator</literal>, "
+"implementation class <literal>Calculator</literal> and deployment type "
+"<literal>@Standard</literal> is implicitly defined."
+msgstr ""
+"这个Web Bean被隐式地定义为范围为<literal>@Dependent</literal>,绑定类型为"
+"<literal>@New</literal>,API类型为<literal>Calculator</literal>,实现了"
+"<literal>Calculator</literal>类,部署类型为<literal>@Standard</literal>。"
#. Tag: para
#: scopescontexts.xml:261
#, no-c-format
-msgid "This is true even if <literal>Calculator</literal> is <emphasis>already</emphasis> declared with a different scope type, for example:"
-msgstr "甚至在<literal>Calculator</literal><emphasis>已经</emphasis>通过不同的范围类型声明过的情况下也是如此。例如:"
+msgid ""
+"This is true even if <literal>Calculator</literal> is <emphasis>already</"
+"emphasis> declared with a different scope type, for example:"
+msgstr ""
+"甚至在<literal>Calculator</literal><emphasis>已经</emphasis>通过不同的范围类"
+"型声明过的情况下也是如此。例如:"
#. Tag: programlisting
#: scopescontexts.xml:264
@@ -482,8 +648,11 @@
#. Tag: para
#: scopescontexts.xml:266
#, no-c-format
-msgid "So the following injected attributes each get a different instance of <literal>Calculator</literal>:"
-msgstr "所以下面注入的属性,每个都获得一个不同的 <literal>Calculator</literal>实例:"
+msgid ""
+"So the following injected attributes each get a different instance of "
+"<literal>Calculator</literal>:"
+msgstr ""
+"所以下面注入的属性,每个都获得一个不同的 <literal>Calculator</literal>实例:"
#. Tag: programlisting
#: scopescontexts.xml:269
@@ -506,12 +675,21 @@
#. Tag: para
#: scopescontexts.xml:271
#, no-c-format
-msgid "The <literal>calculator</literal> field has a conversation-scoped instance of <literal>Calculator</literal> injected. The <literal>newCalculator</literal> field has a new instance of <literal>Calculator</literal> injected, with a lifecycle that is bound to the owning <literal>PaymentCalc</literal>."
-msgstr "<literal>calculator</literal>域有一个对话范围的<literal>Calculator</literal>实例注入。<literal>newCalculator</literal>域有一个新的<literal>Calculator</literal>实例注入,这个实例的生命周期绑定在其拥有者<literal>PaymentCalc</literal>类上。"
+msgid ""
+"The <literal>calculator</literal> field has a conversation-scoped instance "
+"of <literal>Calculator</literal> injected. The <literal>newCalculator</"
+"literal> field has a new instance of <literal>Calculator</literal> injected, "
+"with a lifecycle that is bound to the owning <literal>PaymentCalc</literal>."
+msgstr ""
+"<literal>calculator</literal>域有一个对话范围的<literal>Calculator</literal>"
+"实例注入。<literal>newCalculator</literal>域有一个新的<literal>Calculator</"
+"literal>实例注入,这个实例的生命周期绑定在其拥有者<literal>PaymentCalc</"
+"literal>类上。"
#. Tag: para
#: scopescontexts.xml:276
#, no-c-format
-msgid "This feature is particularly useful with producer methods, as we'll see in the next chapter."
+msgid ""
+"This feature is particularly useful with producer methods, as we'll see in "
+"the next chapter."
msgstr "这个特性对于生产者方法来说特别有用,我们将在下一章看到。"
-
Modified: doc/trunk/reference/zh-TW/master.po
===================================================================
--- doc/trunk/reference/zh-TW/master.po 2009-02-07 14:17:44 UTC (rev 1448)
+++ doc/trunk/reference/zh-TW/master.po 2009-02-07 18:58:27 UTC (rev 1449)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-01 21:16+0000\n"
+"POT-Creation-Date: 2009-02-07 18:51+0000\n"
"PO-Revision-Date: 2009-01-08 10:09+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
@@ -26,7 +26,7 @@
#: master.xml:11
#, no-c-format
msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
+"JSR-299 has recently changed its name from \"Web Beans\" to \"Java Contexts "
"and Dependency Injection\". The reference guide still refers to JSR-299 as "
"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
"\". Other documentation, blogs, forum posts etc. may use the new "
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1448 - doc/trunk/reference/fr-FR.
by webbeans-commits@lists.jboss.org
Author: vincent.latombe
Date: 2009-02-07 09:17:44 -0500 (Sat, 07 Feb 2009)
New Revision: 1448
Modified:
doc/trunk/reference/fr-FR/Author_Group.po
doc/trunk/reference/fr-FR/Book_Info.po
doc/trunk/reference/fr-FR/decorators.po
doc/trunk/reference/fr-FR/ee.po
doc/trunk/reference/fr-FR/events.po
doc/trunk/reference/fr-FR/example.po
doc/trunk/reference/fr-FR/extend.po
doc/trunk/reference/fr-FR/injection.po
doc/trunk/reference/fr-FR/master.po
doc/trunk/reference/fr-FR/next.po
doc/trunk/reference/fr-FR/part3.po
doc/trunk/reference/fr-FR/part4.po
doc/trunk/reference/fr-FR/xml.po
Log:
French translation, first part of first draft
Modified: doc/trunk/reference/fr-FR/Author_Group.po
===================================================================
--- doc/trunk/reference/fr-FR/Author_Group.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/Author_Group.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -6,8 +6,8 @@
"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-02-01 21:16+0000\n"
-"PO-Revision-Date: 2009-01-04 23:18+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-02 22:03+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,86 +17,86 @@
#: Author_Group.xml:4
#, no-c-format
msgid "<firstname>Gavin</firstname> <surname>King</surname>"
-msgstr ""
+msgstr "<firstname>Gavin</firstname> <surname>King</surname>"
#. Tag: affiliation
#: Author_Group.xml:7
#, no-c-format
-msgid ""
-"<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware "
-"LLC</orgname>"
-msgstr ""
+msgid "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
+msgstr "<jobtitle>JSR-299 specification lead</jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
#. Tag: author
#: Author_Group.xml:12
#, no-c-format
msgid "<firstname>Pete</firstname> <surname>Muir</surname>"
-msgstr ""
+msgstr "<firstname>Pete</firstname> <surname>Muir</surname>"
#. Tag: affiliation
#: Author_Group.xml:15
#, no-c-format
-msgid ""
-"<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> "
-"<orgname>Red Hat Middleware LLC</orgname>"
-msgstr ""
+msgid "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
+msgstr "<jobtitle>Web Beans (JSR-299 Reference Implementation) lead </jobtitle> <orgname>Red Hat Middleware LLC</orgname>"
#. Tag: othercredit
#: Author_Group.xml:21
#, no-c-format
msgid "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
-msgstr ""
+msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
#. Tag: contrib
-#: Author_Group.xml:24 Author_Group.xml:53
+#: Author_Group.xml:24
+#: Author_Group.xml:53
#, no-c-format
msgid "Italian Translation"
-msgstr ""
+msgstr "Traduction italienne"
#. Tag: othercredit
#: Author_Group.xml:26
#, no-c-format
msgid "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
-msgstr ""
+msgstr "<firstname>Gladys</firstname> <surname>Guerrero</surname>"
#. Tag: contrib
#: Author_Group.xml:29
#, no-c-format
msgid "Spanish Translation"
-msgstr ""
+msgstr "Traduction espagnole"
#. Tag: orgname
-#: Author_Group.xml:31 Author_Group.xml:39 Author_Group.xml:47
+#: Author_Group.xml:31
+#: Author_Group.xml:39
+#: Author_Group.xml:47
#, no-c-format
msgid "Red Hat Middleware LLC"
-msgstr ""
+msgstr "Red Hat Middleware LLC"
#. Tag: othercredit
#: Author_Group.xml:34
#, no-c-format
msgid "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
-msgstr ""
+msgstr "<firstname>Eun-Ju</firstname> <surname>Ki,</surname>"
#. Tag: contrib
#: Author_Group.xml:37
#, no-c-format
msgid "Korean Translation"
-msgstr ""
+msgstr "Traduction coréenne"
#. Tag: othercredit
#: Author_Group.xml:42
#, no-c-format
msgid "<firstname>Terry</firstname> <surname>Chuang</surname>"
-msgstr ""
+msgstr "<firstname>Terry</firstname> <surname>Chuang</surname>"
#. Tag: contrib
#: Author_Group.xml:45
#, no-c-format
msgid "Traditional Chinese Translation"
-msgstr ""
+msgstr "Traduction en chinois traditionnel"
#. Tag: othercredit
#: Author_Group.xml:50
#, no-c-format
msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
-msgstr ""
+msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+
Modified: doc/trunk/reference/fr-FR/Book_Info.po
===================================================================
--- doc/trunk/reference/fr-FR/Book_Info.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/Book_Info.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-02-01 21:16+0000\n"
-"PO-Revision-Date: 2008-12-19 20:29+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-02 22:05+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,11 +17,11 @@
#: Book_Info.xml:4
#, no-c-format
msgid "Web Beans: Java Contexts and Dependency Injection"
-msgstr ""
+msgstr "Web Beans: Injection de Contextes et de Dépendances Java"
#. Tag: subtitle
#: Book_Info.xml:5
#, no-c-format
-msgid ""
-"The new standard for dependency injection and contextual state management"
-msgstr ""
+msgid "The new standard for dependency injection and contextual state management"
+msgstr "Le nouveau standard pour l'injection de dépendance et la gestion d'état contextuelle"
+
Modified: doc/trunk/reference/fr-FR/decorators.po
===================================================================
--- doc/trunk/reference/fr-FR/decorators.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/decorators.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-02 22:25+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,38 +17,25 @@
#: decorators.xml:4
#, no-c-format
msgid "Decorators"
-msgstr ""
+msgstr "Décorateurs"
#. Tag: para
#: decorators.xml:6
#, no-c-format
-msgid ""
-"Interceptors are a powerful way to capture and separate concerns which are "
-"<emphasis>orthogonal</emphasis> to the type system. Any interceptor is able "
-"to intercept invocations of any Java type. This makes them perfect for "
-"solving technical concerns such as transaction management and security. "
-"However, by nature, interceptors are unaware of the actual semantics of the "
-"events they intercept. Thus, interceptors aren't an appropriate tool for "
-"separating business-related concerns."
-msgstr ""
+msgid "Interceptors are a powerful way to capture and separate concerns which are <emphasis>orthogonal</emphasis> to the type system. Any interceptor is able to intercept invocations of any Java type. This makes them perfect for solving technical concerns such as transaction management and security. However, by nature, interceptors are unaware of the actual semantics of the events they intercept. Thus, interceptors aren't an appropriate tool for separating business-related concerns."
+msgstr "Les intercepteurs sont une manière puissante de capter et de séparer les problèmes qui sont <emphasis>orthogonaux</emphasis> au type de système. Tout intercepteur est capable d'intercepter les invocations à tout type Java. Cela les rend parfait pour résoudre des problèmes techniques tels que la gestion transactionnelle et la sécurité.Cependant, par nature, les intercepteurs ne sont pas conscients de la sémantique réelle des évênements qu'ils interceptent. En conséquence, les intercepteurs ne sont pas un outil approprié pour séparer problèmes <emphasis>métiers<emphasis>."
#. Tag: para
#: decorators.xml:14
#, no-c-format
-msgid ""
-"The reverse is true of <emphasis>decorators</emphasis>. A decorator "
-"intercepts invocations only for a certain Java interface, and is therefore "
-"aware of all the semantics attached to that interface. This makes decorators "
-"a perfect tool for modeling some kinds of business concerns. It also means "
-"that a decorator doesn't have the generality of an interceptor. Decorators "
-"aren't able to solve technical concerns that cut across many disparate types."
-msgstr ""
+msgid "The reverse is true of <emphasis>decorators</emphasis>. A decorator intercepts invocations only for a certain Java interface, and is therefore aware of all the semantics attached to that interface. This makes decorators a perfect tool for modeling some kinds of business concerns. It also means that a decorator doesn't have the generality of an interceptor. Decorators aren't able to solve technical concerns that cut across many disparate types."
+msgstr "L'inverse est vrai pour les <emphasis>décorateurs</emphasis>. Un décorateur intercepte les invocations uniquement pour une certain interface Java, et est donc conscient de toute la sémantique rattachée à cette interface. Cela fait des décorateurs un outil parfait pour modéliser certains concepts métiers. Cela veut aussi dire qu'un décorateur n'est pas aussi générique qu'un intercepteur. Les décorateurs ne sont pas capables de résoudres des problèmes techniques qui peuvent toucher des types très disparates."
#. Tag: para
#: decorators.xml:22
#, no-c-format
msgid "Suppose we have an interface that represents accounts:"
-msgstr ""
+msgstr "Supposez que nous ayons une interfaces représentant des comptes:"
#. Tag: programlisting
#: decorators.xml:24
@@ -61,24 +48,24 @@
" public void deposit(BigDecimal amount);\n"
"}]]>"
msgstr ""
+"<![CDATA[public interface Account {\n"
+" public BigDecimal getBalance();\n"
+" public User getOwner();\n"
+" public void withdraw(BigDecimal amount);\n"
+" public void deposit(BigDecimal amount);\n"
+"}]]>"
#. Tag: para
#: decorators.xml:26
#, no-c-format
-msgid ""
-"Several different Web Beans in our system implement the <literal>Account</"
-"literal> interface. However, we have a common legal requirement that, for "
-"any kind of account, large transactions must be recorded by the system in a "
-"special log. This is a perfect job for a decorator."
-msgstr ""
+msgid "Several different Web Beans in our system implement the <literal>Account</literal> interface. However, we have a common legal requirement that, for any kind of account, large transactions must be recorded by the system in a special log. This is a perfect job for a decorator."
+msgstr "Plusieurs Web Beans distincts dans notre système implémentent l'interface <literal>Account</literal>. Nous avons cependant une obligation légale qui nous oblige à enregistrer les grosses transactions faites sur le système dans un journal spécial, et ce, pour tout type de compte. Ceci est un cas d'utilisation idéal d'un décorateur."
#. Tag: para
#: decorators.xml:32
#, no-c-format
-msgid ""
-"A decorator is a simple Web Bean that implements the type it decorates and "
-"is annotated <literal>@Decorator</literal>."
-msgstr ""
+msgid "A decorator is a simple Web Bean that implements the type it decorates and is annotated <literal>@Decorator</literal>."
+msgstr "Un décorateur est un simple Web Bean qui implémente le type qu'il décore, et qui est annoté <literal>@Decorator</literal>."
#. Tag: programlisting
#: decorators.xml:35
@@ -108,100 +95,107 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[@Decorator\n"
+"public abstract class LargeTransactionDecorator \n"
+" implements Account {\n"
+" \n"
+" @Decorates Account account;\n"
+" \n"
+" @PersistenceContext EntityManager em;\n"
+" \n"
+" public void withdraw(BigDecimal amount) {\n"
+" account.withdraw(amount);\n"
+" if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+" em.persist( new LoggedWithdrawl(amount) );\n"
+" }\n"
+" }\n"
+" \n"
+" public void deposit(BigDecimal amount);\n"
+" account.deposit(amount);\n"
+" if ( amount.compareTo(LARGE_AMOUNT)>0 ) {\n"
+" em.persist( new LoggedDeposit(amount) );\n"
+" }\n"
+" }\n"
+" \n"
+"}]]>"
#. Tag: para
#: decorators.xml:37
#, no-c-format
-msgid ""
-"Unlike other simple Web Beans, a decorator may be an abstract class. If "
-"there's nothing special the decorator needs to do for a particular method of "
-"the decorated interface, you don't need to implement that method."
-msgstr ""
+msgid "Unlike other simple Web Beans, a decorator may be an abstract class. If there's nothing special the decorator needs to do for a particular method of the decorated interface, you don't need to implement that method."
+msgstr "Contrairement à d'autres Web Beans simples, un décorateur peut être une classe abstraite. Si le décorateur n'a rien de spécial à faire pour une méthode particulière d'une interface décorée, vous n'avez pas besoin d'implémenter cette méthode."
#. Tag: title
#: decorators.xml:43
#, no-c-format
msgid "Delegate attributes"
-msgstr ""
+msgstr "Attributs de délégation"
#. Tag: para
#: decorators.xml:45
#, no-c-format
-msgid ""
-"All decorators have a <emphasis>delegate attribute</emphasis>. The type and "
-"binding types of the delegate attribute determine which Web Beans the "
-"decorator is bound to. The delegate attribute type must implement or extend "
-"all interfaces implemented by the decorator."
-msgstr ""
+msgid "All decorators have a <emphasis>delegate attribute</emphasis>. The type and binding types of the delegate attribute determine which Web Beans the decorator is bound to. The delegate attribute type must implement or extend all interfaces implemented by the decorator."
+msgstr "Tous les décorateurs ont un <emphasis>attribut de délégation</emphasis>. Le type et les types liés d'un attribut de délégation déterminent à quel Web Beans le décorateur est relié. Le type de l'attribut délégué doit implémenter ou étendre toutes les interfaces implémentées par le décorateur."
#. Tag: para
#: decorators.xml:50
#, no-c-format
-msgid ""
-"This delegate attribute specifies that the decorator is bound to all Web "
-"Beans that implement <literal>Account</literal>:"
-msgstr ""
+msgid "This delegate attribute specifies that the decorator is bound to all Web Beans that implement <literal>Account</literal>:"
+msgstr "L'attribut de délégation spécifie que le décorateur est lié à tous les Web Beans qui impémentent <literal>Account</literal>:"
#. Tag: programlisting
#: decorators.xml:53
#, no-c-format
msgid "<![CDATA[@Decorates Account account;]]>"
-msgstr ""
+msgstr "<![CDATA[@Decorates Account account;]]>"
#. Tag: para
#: decorators.xml:55
#, no-c-format
-msgid ""
-"A delegate attribute may specify a binding annotation. Then the decorator "
-"will only be bound to Web Beans with the same binding."
-msgstr ""
+msgid "A delegate attribute may specify a binding annotation. Then the decorator will only be bound to Web Beans with the same binding."
+msgstr "Un attribut de délégation peut spécifier une annotation de liaison. Alors, le décorateur sera seulement lié à tous les Web Beans ayant la même liaison."
#. Tag: programlisting
#: decorators.xml:58
#, no-c-format
msgid "<![CDATA[@Decorates @Foreign Account account;]]>"
-msgstr ""
+msgstr "<![CDATA[@Decorates @Foreign Account account;]]>"
#. Tag: para
#: decorators.xml:60
#, no-c-format
msgid "A decorator is bound to any Web Bean which:"
-msgstr ""
+msgstr "Un décorateur est lié à tout Web Bean qui:"
#. Tag: para
#: decorators.xml:64
#, no-c-format
msgid "has the type of the delegate attribute as an API type, and"
-msgstr ""
+msgstr "a le type de l'attribut de délégation comme type d'API, et"
#. Tag: para
#: decorators.xml:67
#, no-c-format
msgid "has all binding types that are declared by the delegate attribute."
-msgstr ""
+msgstr "a tous les types de liaison qui sont déclarés par l'attribut de délégation."
#. Tag: para
#: decorators.xml:71
#, no-c-format
-msgid ""
-"The decorator may invoke the delegate attribute, which has much the same "
-"effect as calling <literal>InvocationContext.proceed()</literal> from an "
-"interceptor."
-msgstr ""
+msgid "The decorator may invoke the delegate attribute, which has much the same effect as calling <literal>InvocationContext.proceed()</literal> from an interceptor."
+msgstr "Le décorateur peut invoquer l'attribut de délégation, qui a le même effet que d'appeler <literal>InvocationContext.proceed()</literal> à partir d'un intercepteur."
#. Tag: title
#: decorators.xml:78
#, no-c-format
msgid "Enabling decorators"
-msgstr ""
+msgstr "Activation des décorateurs"
#. Tag: para
#: decorators.xml:80
#, no-c-format
-msgid ""
-"We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans."
-"xml</literal>."
-msgstr ""
+msgid "We need to <emphasis>enable</emphasis> our decorator in <literal>web-beans.xml</literal>."
+msgstr "Nous avons besoin d'<emphasis>activer</emphasis> notre décorateur dans le fichier <literal>web-beans.xml</literal>."
#. Tag: programlisting
#: decorators.xml:83
@@ -211,33 +205,31 @@
" <myapp:LargeTransactionDecorator/>\n"
"</Decorators>]]>"
msgstr ""
+"<![CDATA[<Decorators>\n"
+" <myapp:LargeTransactionDecorator/>\n"
+"</Decorators>]]>"
#. Tag: para
#: decorators.xml:85
#, no-c-format
-msgid ""
-"This declaration serves the same purpose for decorators that the "
-"<literal><Interceptors></literal> declaration serves for interceptors:"
-msgstr ""
+msgid "This declaration serves the same purpose for decorators that the <literal><Interceptors></literal> declaration serves for interceptors:"
+msgstr "Cette déclaration a le même but pour les décorateurs que la déclaration <literal><Interceptors></literal> pour les intercepteurs:"
#. Tag: para
#: decorators.xml:90
#, no-c-format
-msgid ""
-"it enables us to specify a total ordering for all decorators in our system, "
-"ensuring deterministic behavior, and"
-msgstr ""
+msgid "it enables us to specify a total ordering for all decorators in our system, ensuring deterministic behavior, and"
+msgstr "cela nous permet de spécifier un ordre total pour tous les décorateurs dans notre système, assurant un comportement déterministe, et"
#. Tag: para
#: decorators.xml:94
#, no-c-format
msgid "it lets us enable or disable decorator classes at deployment time."
-msgstr ""
+msgstr "cela nous permet d'activer ou désactiver les classes de décorateurs au moment du déploiement."
#. Tag: para
#: decorators.xml:98
#, no-c-format
-msgid ""
-"Interceptors for a method are called before decorators that apply to that "
-"method."
-msgstr ""
+msgid "Interceptors for a method are called before decorators that apply to that method."
+msgstr "Les intercepteurs pour une méthode sont appelés avant les décorateurs qui s'appliquent à cette méthode."
+
Modified: doc/trunk/reference/fr-FR/ee.po
===================================================================
--- doc/trunk/reference/fr-FR/ee.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/ee.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-20 22:08+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-02 22:49+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,34 +17,25 @@
#: ee.xml:4
#, no-c-format
msgid "Java EE integration"
-msgstr ""
+msgstr "Intégration dans Java EE"
#. Tag: para
#: ee.xml:6
#, no-c-format
-msgid ""
-"Web Beans is fully integrated into the Java EE environment. Web Beans have "
-"access to Java EE resources and JPA persistence contexts. They may be used "
-"in Unified EL expressions in JSF and JSP pages. They may even be injected "
-"into some objects, such as Servlets and Message-Driven Beans, which are not "
-"Web Beans."
-msgstr ""
+msgid "Web Beans is fully integrated into the Java EE environment. Web Beans have access to Java EE resources and JPA persistence contexts. They may be used in Unified EL expressions in JSF and JSP pages. They may even be injected into some objects, such as Servlets and Message-Driven Beans, which are not Web Beans."
+msgstr "Les Web Beans sont totalement intégrés dans l'environnement Java EE. Les Web Beans ont accès aux ressources Java EE et aux contextes de persistance JPA. Ils peuvent être utilisés dans des expressions Unified EL dans des pages JSF et JSP. Ils peuvent même être injectés dans des certains objets, tels que les Servlets et les Message-Driven Beans, qui ne sont pas des Web Beans."
#. Tag: title
#: ee.xml:12
#, no-c-format
msgid "Injecting Java EE resources into a Web Bean"
-msgstr ""
+msgstr "Injecter des ressources Java EE dans un Web Bean"
#. Tag: para
#: ee.xml:14
#, no-c-format
-msgid ""
-"All simple and enterprise Web Beans may take advantage of Java EE dependency "
-"injection using <literal>@Resource</literal>, <literal>@EJB</literal> and "
-"<literal>@PersistenceContext</literal>. We've already seen a couple of "
-"examples of this, though we didn't pay much attention at the time:"
-msgstr ""
+msgid "All simple and enterprise Web Beans may take advantage of Java EE dependency injection using <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>. We've already seen a couple of examples of this, though we didn't pay much attention at the time:"
+msgstr "Tous les Web Beans, qu'ils soient simples ou d'entreprise peuvent bénéficier de l'injection de dépendance de Java EE en utilisant <literal>@Resource</literal>; <literal>@EJB</literal> et <literal>@PersistenceContext</literal>. Nous avons déjà vu quelques exemples de cela, bien que nous n'y ayons pas fait attention sur le moment:"
#. Tag: programlisting
#: ee.xml:19
@@ -55,11 +46,18 @@
"\n"
" @Resource Transaction transaction;\n"
"\n"
-" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
-"{ ... }\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
" \n"
"}]]>"
msgstr ""
+"<![CDATA[@Transactional @Interceptor\n"
+"public class TransactionInterceptor {\n"
+"\n"
+" @Resource Transaction transaction;\n"
+"\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) { ... }\n"
+" \n"
+"}]]>"
#. Tag: programlisting
#: ee.xml:21
@@ -75,38 +73,39 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[@SessionScoped\n"
+"public class Login {\n"
+"\n"
+" @Current Credentials credentials;\n"
+" @PersistenceContext EntityManager userDatabase;\n"
+" \n"
+" ...\n"
+"\n"
+"}]]>"
#. Tag: para
#: ee.xml:23
#, no-c-format
-msgid ""
-"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
-"literal> callbacks are also supported for all simple and enterprise Web "
-"Beans. The <literal>@PostConstruct</literal> method is called after "
-"<emphasis>all</emphasis> injection has been performed."
-msgstr ""
+msgid "The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks are also supported for all simple and enterprise Web Beans. The <literal>@PostConstruct</literal> method is called after <emphasis>all</emphasis> injection has been performed."
+msgstr "Les rappels de Java EE <literal>@PostContruct</literal> et <literal>@PreDestroy</literal> sont également supportés pour tous les Web Beans, simples ou d'entreprise. La méthode <literal>@PostConstruct</literal> est appelée après que <emphasis>toute</emphasis> injection ait été effectuée."
#. Tag: para
#: ee.xml:28
#, no-c-format
-msgid ""
-"There is one restriction to be aware of here: <literal>@PersistenceContext"
-"(type=EXTENDED)</literal> is not supported for simple Web Beans."
-msgstr ""
+msgid "There is one restriction to be aware of here: <literal>@PersistenceContext(type=EXTENDED)</literal> is not supported for simple Web Beans."
+msgstr "Il y a une restriction dont vous devez être conscient: <literal>@PersistenceContext(type=EXTENDED)</literal> n'est pas supportée pour les Web Beans simples."
#. Tag: title
#: ee.xml:35
#, no-c-format
msgid "Calling a Web Bean from a Servlet"
-msgstr ""
+msgstr "Appeler un Web Bean à partir d'un Servlet"
#. Tag: para
#: ee.xml:37
#, no-c-format
-msgid ""
-"It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the "
-"Web Bean using Web Beans field or initializer method injection."
-msgstr ""
+msgid "It's easy to use a Web Bean from a Servlet in Java EE 6. Simply inject the Web Bean using Web Beans field or initializer method injection."
+msgstr "Il est facile d'utiliser un Web Bean à partir d'une Servlet dans Java EE 6. Injectez simplement le Web Bean en utilisant les méthodes d'injection de champs ou de méthode d'initialisation."
#. Tag: programlisting
#: ee.xml:40
@@ -118,8 +117,7 @@
" @Current Login login;\n"
"\n"
" @Override\n"
-" public void service(HttpServletRequest request, HttpServletResponse "
-"response)\n"
+" public void service(HttpServletRequest request, HttpServletResponse response)\n"
" throws ServletException, IOException {\n"
" credentials.setUsername( request.getAttribute(\"username\") ):\n"
" credentials.setPassword( request.getAttribute(\"password\") ):\n"
@@ -134,39 +132,50 @@
" \n"
"}"
msgstr ""
+"public class Login extends HttpServlet {\n"
+"\n"
+" @Current Credentials credentials;\n"
+" @Current Login login;\n"
+"\n"
+" @Override\n"
+" public void service(HttpServletRequest request, HttpServletResponse response)\n"
+" throws ServletException, IOException {\n"
+" credentials.setUsername( request.getAttribute(\"username\") ):\n"
+" credentials.setPassword( request.getAttribute(\"password\") ):\n"
+" login.login();\n"
+" if ( login.isLoggedIn() ) {\n"
+" response.sendRedirect(\"/home.jsp\");\n"
+" }\n"
+" else {\n"
+" response.sendRedirect(\"/loginError.jsp\");\n"
+" }\n"
+" }\n"
+" \n"
+"}"
#. Tag: para
#: ee.xml:42
#, no-c-format
-msgid ""
-"The Web Beans client proxy takes care of routing method invocations from the "
-"Servlet to the correct instances of <literal>Credentials</literal> and "
-"<literal>Login</literal> for the current request and HTTP session."
-msgstr ""
+msgid "The Web Beans client proxy takes care of routing method invocations from the Servlet to the correct instances of <literal>Credentials</literal> and <literal>Login</literal> for the current request and HTTP session."
+msgstr "Le client proxy Web Beans s'occupe du routage d'invocations de méthodes de la Servlet vers les bonnesi instances de <literal>Credentials</literal> et <literal>Login</literal> pour la requête courante et la session HTTP."
#. Tag: title
#: ee.xml:49
#, no-c-format
msgid "Calling a Web Bean from a Message-Driven Bean"
-msgstr ""
+msgstr "Appeler un Web Bean à partir d'un Message-Driven Bean"
#. Tag: para
#: ee.xml:51
#, no-c-format
-msgid ""
-"Web Beans injection applies to all EJBs, even when they aren't under the "
-"control of the Web Bean manager (if they were obtained by direct JNDI "
-"lookup, or injection using <literal>@EJB</literal>, for example. In "
-"particular, you can use Web Beans injection in Message-Driven Beans, which "
-"are not considered Web Beans because you can't inject them."
-msgstr ""
+msgid "Web Beans injection applies to all EJBs, even when they aren't under the control of the Web Bean manager (if they were obtained by direct JNDI lookup, or injection using <literal>@EJB</literal>, for example. In particular, you can use Web Beans injection in Message-Driven Beans, which are not considered Web Beans because you can't inject them."
+msgstr "L'injection de Web Beans s'applique à tous les EJBs, même ceux qui ne sont pas sous le contrôle du gestionnaire de Web Beans (s'ils ont été obtenus par une résolution direct par JNDI, ou par injection utilisant <literal>@EJB</literal>, par exemple). En particulier, vous pouvez utiliser l'injection de Web Beans dans des Message-Driven Beans, qui ne sont pas considérés comme des Web Beans car vous ne pouvez pas les injecter."
#. Tag: para
#: ee.xml:57
#, no-c-format
-msgid ""
-"You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr ""
+msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
+msgstr "Vous pouvez même utiliser des liaisons d'intercepteurs de Web Beans avec des Message-Driven Beans."
#. Tag: programlisting
#: ee.xml:59
@@ -184,52 +193,47 @@
" \n"
"}"
msgstr ""
+"@Transactional @MessageDriven\n"
+"public class ProcessOrder implements MessageListener {\n"
+"\n"
+" @Current Inventory inventory;\n"
+" @PersistenceContext EntityManager em;\n"
+"\n"
+" public void onMessage(Message message) {\n"
+" ...\n"
+" }\n"
+" \n"
+"}"
#. Tag: para
#: ee.xml:61
#, no-c-format
-msgid ""
-"Thus, receiving messages is super-easy in a Web Beans environment. But "
-"beware that there is no session or conversation context available when a "
-"message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</"
-"literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr ""
+msgid "Thus, receiving messages is super-easy in a Web Beans environment. But beware that there is no session or conversation context available when a message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
+msgstr "Donc, recevoir des messages est très facile dans un environnement Web Beans. Mais faites attention, il n'y a pas de session ni de contexte de conversation disponible lorsqu'un message est délivré à un Message-Driven Bean. Seuls les Web Beans <literal>@RequestScoped</literal> et <literal>@ApplicationScoped</literal> sont disponibles."
#. Tag: para
#: ee.xml:66
#, no-c-format
msgid "It's also easy to send messages using Web Beans."
-msgstr ""
+msgstr "Il est également facile d'envoyer des messages en utilisant des Web Beans."
#. Tag: title
#: ee.xml:71
#, no-c-format
msgid "JMS endpoints"
-msgstr ""
+msgstr "Terminaisons JMS"
#. Tag: para
#: ee.xml:73
#, no-c-format
-msgid ""
-"Sending messages using JMS can be quite complex, because of the number of "
-"different objects you need to deal with. For queues we have <literal>Queue</"
-"literal>, <literal>QueueConnectionFactory</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> and "
-"<literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, "
-"<literal>TopicConnectionFactory</literal>, <literal>TopicConnection</"
-"literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</"
-"literal>. Each of these objects has its own lifecycle and threading model "
-"that we need to worry about."
-msgstr ""
+msgid "Sending messages using JMS can be quite complex, because of the number of different objects you need to deal with. For queues we have <literal>Queue</literal>, <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> and <literal>QueueSender</literal>. For topics we have <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> and <literal>TopicPublisher</literal>. Each of these objects has its own lifecycle and threading model that we need to worry about."
+msgstr "Envoyer des messages en utilisant JMS peut être assez complexe, à cause du nombre d'objets différents que vous devez traiter. Pour les queues, nous avons <literal>Queue</literal>; <literal>QueueConnectionFactory</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> et <literal>QueueSender</literal>. Pour les topics nous avons <literal>Topic</literal>, <literal>TopicConnectionFactory</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> et <literal>TopicPublisher</literal>. Chacun de ces objets a son propre cycle de vie et son modèle de threads dont nous devons nous soucier."
#. Tag: para
#: ee.xml:82
#, no-c-format
-msgid ""
-"Web Beans takes care of all this for us. All we need to do is declare the "
-"queue or topic in <literal>web-beans.xml</literal>, specifying an associated "
-"binding type and connection factory."
-msgstr ""
+msgid "Web Beans takes care of all this for us. All we need to do is declare the queue or topic in <literal>web-beans.xml</literal>, specifying an associated binding type and connection factory."
+msgstr "Les Web Beans prennent en charge tout cela pour nous. Tout ce que nous avons à faire est de déclarer la queue ou le topic dans <literal>web-beans.xml</literal>, en spécifiant un type de liaison et une usine de connexion."
#. Tag: programlisting
#: ee.xml:86
@@ -237,11 +241,15 @@
msgid ""
"<![CDATA[<Queue>\n"
" <destination>java:comp/env/jms/OrderQueue</destination>\n"
-" <connectionFactory>java:comp/env/jms/QueueConnectionFactory</"
-"connectionFactory>\n"
+" <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
" <myapp:OrderProcessor/> \n"
"</Queue>]]>"
msgstr ""
+"<![CDATA[<Queue>\n"
+" <destination>java:comp/env/jms/OrderQueue</destination>\n"
+" <connectionFactory>java:comp/env/jms/QueueConnectionFactory</connectionFactory>\n"
+" <myapp:OrderProcessor/> \n"
+"</Queue>]]>"
#. Tag: programlisting
#: ee.xml:88
@@ -249,22 +257,21 @@
msgid ""
"<![CDATA[<Topic>\n"
" <destination>java:comp/env/jms/StockPrices</destination>\n"
-" <connectionFactory>java:comp/env/jms/TopicConnectionFactory</"
-"connectionFactory>\n"
+" <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
" <myapp:StockPrices/> \n"
"</Topic>]]>"
msgstr ""
+"<![CDATA[<Topic>\n"
+" <destination>java:comp/env/jms/StockPrices</destination>\n"
+" <connectionFactory>java:comp/env/jms/TopicConnectionFactory</connectionFactory>\n"
+" <myapp:StockPrices/> \n"
+"</Topic>]]>"
#. Tag: para
#: ee.xml:90
#, no-c-format
-msgid ""
-"Now we can just inject the <literal>Queue</literal>, "
-"<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
-"<literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, "
-"<literal>TopicConnection</literal>, <literal>TopicSession</literal> or "
-"<literal>TopicPublisher</literal> for a topic."
-msgstr ""
+msgid "Now we can just inject the <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> or <literal>QueueSender</literal> for a queue, or the <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> or <literal>TopicPublisher</literal> for a topic."
+msgstr "Maintenant, nous avons juste à injecter la <literal>Queue</literal>, <literal>QueueConnection</literal>, <literal>QueueSession</literal> ou <literal>QueueSender</literal> pour une queue, ou le <literal>Topic</literal>, <literal>TopicConnection</literal>, <literal>TopicSession</literal> or <literal>TopicPublisher</literal> pour un topic."
#. Tag: programlisting
#: ee.xml:96
@@ -279,6 +286,14 @@
" orderSender.send(msg);\n"
"}"
msgstr ""
+"@OrderProcessor QueueSender orderSender;\n"
+"@OrderProcessor QueueSession orderSession;\n"
+"\n"
+"public void sendMessage() {\n"
+" MapMessage msg = orderSession.createMapMessage();\n"
+" ...\n"
+" orderSender.send(msg);\n"
+"}"
#. Tag: programlisting
#: ee.xml:98
@@ -291,39 +306,34 @@
" pricePublisher.send( priceSession.createTextMessage(price) );\n"
"}"
msgstr ""
+"@StockPrices TopicPublisher pricePublisher;\n"
+"@StockPrices TopicSession priceSession;\n"
+"\n"
+"public void sendMessage(String price) {\n"
+" pricePublisher.send( priceSession.createTextMessage(price) );\n"
+"}"
#. Tag: para
#: ee.xml:100
#, no-c-format
-msgid ""
-"The lifecycle of the injected JMS objects is completely controlled by the "
-"Web Bean manager."
-msgstr ""
+msgid "The lifecycle of the injected JMS objects is completely controlled by the Web Bean manager."
+msgstr "Le cycle de vie des objects JMS injectés est complètement contrôlé par le gestionnaire de Web Beans."
#. Tag: title
#: ee.xml:106
#, no-c-format
msgid "Packaging and deployment"
-msgstr ""
+msgstr "Paquetage et déploiement"
#. Tag: para
#: ee.xml:108
#, no-c-format
-msgid ""
-"Web Beans doesn't define any special deployment archive. You can package Web "
-"Beans in JARs, EJB-JARs or WARs — any deployment location in the "
-"application classpath. However, each archive that contains Web Beans must "
-"include a file named <literal>web-beans.xml</literal> in the <literal>META-"
-"INF</literal> or <literal>WEB-INF</literal> directory. The file may be "
-"empty. Web Beans deployed in archives that do not have a <literal>web-beans."
-"xml</literal> file will not be available for use in the application."
-msgstr ""
+msgid "Web Beans doesn't define any special deployment archive. You can package Web Beans in JARs, EJB-JARs or WARs — any deployment location in the application classpath. However, each archive that contains Web Beans must include a file named <literal>web-beans.xml</literal> in the <literal>META-INF</literal> or <literal>WEB-INF</literal> directory. The file may be empty. Web Beans deployed in archives that do not have a <literal>web-beans.xml</literal> file will not be available for use in the application."
+msgstr "Les Web Beans ne définissent aucune archive spéciale pour le déploiement. Vous pouvez paqueter des Web Beans dans des JARs, des EJB-JARs ou des WARs : tout emplacement de déploiement dans le classpath de l'application. Cependant, chaque archive contenant des Web Beans doit contenir un fichier nommé <literal>web-beans.xml</literal> dans le dossier <literal>META-INF</literal> ou <literal>WEB-INF</literal>. Le fichier peut être vide. Les Web Beans déployés dans des archives n'ayant pas de fichier <literal>web-beans.xml</literal> ne seront pas disponibles pour utilisation dans l'application."
#. Tag: para
#: ee.xml:116
#, no-c-format
-msgid ""
-"For Java SE execution, Web Beans may be deployed in any location in which "
-"EJBs may be deployed for execution by the embeddable EJB Lite container. "
-"Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr ""
+msgid "For Java SE execution, Web Beans may be deployed in any location in which EJBs may be deployed for execution by the embeddable EJB Lite container. Again, each location must contain a <literal>web-beans.xml</literal> file."
+msgstr "Pour une exécution Java SE, les Web Beans peuvent être déployés dans tout emplacement dans lequel des EJBs peuvent être déployés pour exécution par le conteneur d'EJB lite. De nouveau, chaque emplacement doit contenir un fichier <literal>web-beans.xml</literal>."
+
Modified: doc/trunk/reference/fr-FR/events.po
===================================================================
--- doc/trunk/reference/fr-FR/events.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/events.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-02 23:28+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,75 +17,55 @@
#: events.xml:4
#, no-c-format
msgid "Events"
-msgstr ""
+msgstr "Evènements"
#. Tag: para
#: events.xml:6
#, no-c-format
-msgid ""
-"The Web Beans event notification facility allows Web Beans to interact in a "
-"totally decoupled manner. Event <emphasis>producers</emphasis> raise events "
-"that are then delivered to event <emphasis>observers</emphasis> by the Web "
-"Bean manager. This basic schema might sound like the familiar observer/"
-"observable pattern, but there are a couple of twists:"
-msgstr ""
+msgid "The Web Beans event notification facility allows Web Beans to interact in a totally decoupled manner. Event <emphasis>producers</emphasis> raise events that are then delivered to event <emphasis>observers</emphasis> by the Web Bean manager. This basic schema might sound like the familiar observer/observable pattern, but there are a couple of twists:"
+msgstr "La structure de notification d'évènement des Web Beans permet aux Web Beans d'interagir de manière totalement découplée. Les <emphasis>producteurs</emphasis> d'évènements lèvent des évènements qui sont ensuite délivrés aux <emphasis>observateurs</emphasis> d'évènements par le gestionnaire de Web Beans. Le schéma basique peut ressembler au patron observateur/observé, mais il y a quelques modifications:"
#. Tag: para
#: events.xml:14
#, no-c-format
-msgid ""
-"not only are event producers decoupled from observers; observers are "
-"completely decoupled from producers,"
-msgstr ""
+msgid "not only are event producers decoupled from observers; observers are completely decoupled from producers,"
+msgstr "non seulement les producteurs d'évènements sont découplés des observauters; mais les les observateurs sont complèment découplés des producteurs,"
#. Tag: para
#: events.xml:18
#, no-c-format
-msgid ""
-"observers can specify a combination of \"selectors\" to narrow the set of "
-"event notifications they will receive, and"
-msgstr ""
+msgid "observers can specify a combination of \"selectors\" to narrow the set of event notifications they will receive, and"
+msgstr "les observateurs peuvent spécifier une combinaison de \"sélécteurs\" pour limiter le nobmre de notifications d'évènemtns qu'ils vont recevoir, et"
#. Tag: para
#: events.xml:22
#, no-c-format
-msgid ""
-"observers can be notified immediately, or can specify that delivery of the "
-"event should be delayed until the end of the current transaction"
-msgstr ""
+msgid "observers can be notified immediately, or can specify that delivery of the event should be delayed until the end of the current transaction"
+msgstr "les observateurs peuvent être notifiés immédiatement, ou peuvent spécifier que la délivrance d'un évènement devrait être retardé jusqu'à la fin de la transaction courante"
#. Tag: title
#: events.xml:28
#, no-c-format
msgid "Event observers"
-msgstr ""
+msgstr "Observateurs d'évènements"
#. Tag: para
#: events.xml:30
#, no-c-format
-msgid ""
-"An <emphasis>observer method</emphasis> is a method of a Web Bean with a "
-"parameter annotated <literal>@Observes</literal>."
-msgstr ""
+msgid "An <emphasis>observer method</emphasis> is a method of a Web Bean with a parameter annotated <literal>@Observes</literal>."
+msgstr "Un <emphasis>méthode observatrice</emphasis> est une méthode d'un Web Bean avec un paramètre annoté <literal>@Observes</literal>."
#. Tag: programlisting
#: events.xml:33
#, no-c-format
-msgid ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }]]>"
-msgstr ""
+msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
+msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }]]>"
#. Tag: para
#: events.xml:35
#, no-c-format
-msgid ""
-"The annotated parameter is called the <emphasis>event parameter</emphasis>. "
-"The type of the event parameter is the observed <emphasis>event type</"
-"emphasis>. Observer methods may also specify \"selectors\", which are just "
-"instances of Web Beans binding types. When a binding type is used as an "
-"event selector, it is called an <emphasis>event binding type</emphasis>."
-msgstr ""
+msgid "The annotated parameter is called the <emphasis>event parameter</emphasis>. The type of the event parameter is the observed <emphasis>event type</emphasis>. Observer methods may also specify \"selectors\", which are just instances of Web Beans binding types. When a binding type is used as an event selector, it is called an <emphasis>event binding type</emphasis>."
+msgstr "Le paramètre annoté est appelé le <emphasis>paramètre évènement</emphasis>. Le type de paramètre évènement est le <emphasis>type de l'évènement</emphasis> observé. Les méthodes observatrices peuvent également spécifier des \"sélecteurs\", qui sont juste des instances de tyoes de liaison de Web Beans. Quand un type de liaison est utilisé comme un sélecteur d'évènement, il est applé un <emphasis>type de liaison d'évènement</emphasis>."
#. Tag: programlisting
#: events.xml:41
@@ -96,250 +76,203 @@
"@Retention(RUNTIME)\n"
"public @interface Updated { ... }]]>"
msgstr ""
+"<![CDATA[@BindingType\n"
+"@Target({PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Updated { ... }]]>"
#. Tag: para
#: events.xml:43
#, no-c-format
-msgid ""
-"We specify the event bindings of the observer method by annotating the event "
-"parameter:"
-msgstr ""
+msgid "We specify the event bindings of the observer method by annotating the event parameter:"
+msgstr "Nous spécifions les liaisons d'évènements de la méthode observatrice en annotant le paramètre d'évènement:"
#. Tag: programlisting
-#: events.xml:46 events.xml:190
+#: events.xml:46
+#: events.xml:190
#, no-c-format
-msgid ""
-"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
-"document) { ... }]]>"
-msgstr ""
+msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
+msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document) { ... }]]>"
#. Tag: para
#: events.xml:48
#, no-c-format
-msgid ""
-"An observer method need not specify any event bindings — in this case it "
-"is interested in <emphasis>all</emphasis> events of a particular type. If it "
-"does specify event bindings, it is only interested in events which also have "
-"those event bindings."
-msgstr ""
+msgid "An observer method need not specify any event bindings — in this case it is interested in <emphasis>all</emphasis> events of a particular type. If it does specify event bindings, it is only interested in events which also have those event bindings."
+msgstr "Il n'est pas obligatoire de spécifier une quelconque liaison d'évènement sur une méthode observatrice : dans ce cas elle s'intéresse à <emphasis>tous</emphasis> les évènements d'un type particulier. Si elle spécifie des liaisons d'évènements, elle s'intéresse uniquement aux évènements qui ont ces liaisons d'évènements."
#. Tag: para
#: events.xml:53
#, no-c-format
-msgid ""
-"The observer method may have additional parameters, which are injected "
-"according to the usual Web Beans method parameter injection semantics:"
-msgstr ""
+msgid "The observer method may have additional parameters, which are injected according to the usual Web Beans method parameter injection semantics:"
+msgstr "La méthode observatrice peut avoir des paramètres additionnels, qui sont injectés en fonction de la sémantique usuelle d'injection de paramètres des méthodes de Web Beans:"
#. Tag: programlisting
#: events.xml:56
#, no-c-format
-msgid ""
-"<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document "
-"document, User user) { ... }]]>"
-msgstr ""
+msgid "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
+msgstr "<![CDATA[public void afterDocumentUpdate(@Observes @Updated Document document, User user) { ... }]]>"
#. Tag: title
#: events.xml:61
#, no-c-format
msgid "Event producers"
-msgstr ""
+msgstr "Producteurs d'évènements"
#. Tag: para
#: events.xml:63
#, no-c-format
-msgid ""
-"The event producer may obtain an <emphasis>event notifier</emphasis> object "
-"by injection:"
-msgstr ""
+msgid "The event producer may obtain an <emphasis>event notifier</emphasis> object by injection:"
+msgstr "Le producteur d'évènement peut obtenir un objet de <emphasis>notification d'évènement</emphasis> par injection:"
#. Tag: programlisting
#: events.xml:66
#, no-c-format
msgid "<![CDATA[@Observable Event<Document> documentEvent]]>"
-msgstr ""
+msgstr "<![CDATA[@Observable Event<Document> documentEvent]]>"
#. Tag: para
#: events.xml:68
#, no-c-format
-msgid ""
-"The <literal>@Observable</literal> annotation implicitly defines a Web Bean "
-"with scope <literal>@Dependent</literal> and deployment type "
-"<literal>@Standard</literal>, with an implementation provided by the Web "
-"Bean manager."
-msgstr ""
+msgid "The <literal>@Observable</literal> annotation implicitly defines a Web Bean with scope <literal>@Dependent</literal> and deployment type <literal>@Standard</literal>, with an implementation provided by the Web Bean manager."
+msgstr "L'annotation <literal>@Observable</literal> spécifie implicitement un Web Bean ayant la portée <literal>@Dependant</literal> et un type de déploiement <literal>@Standard</literal>, avec une implémentation fournie par le gestionnaire de Web Beans."
#. Tag: para
#: events.xml:72
#, no-c-format
-msgid ""
-"A producer raises events by calling the <literal>fire()</literal> method of "
-"the <literal>Event</literal> interface, passing an <emphasis>event object</"
-"emphasis>:"
-msgstr ""
+msgid "A producer raises events by calling the <literal>fire()</literal> method of the <literal>Event</literal> interface, passing an <emphasis>event object</emphasis>:"
+msgstr "Un producteur lève des évènements en appelant la méthode <literal>fire()</literal> de l'interface <literal>Event</literal, en passant un <emphasis>objet évènement</literal>:"
#. Tag: programlisting
#: events.xml:75
#, no-c-format
msgid "<![CDATA[documentEvent.fire(document);]]>"
-msgstr ""
+msgstr "<![CDATA[documentEvent.fire(document);]]>"
#. Tag: para
#: events.xml:77
#, no-c-format
-msgid ""
-"An event object may be an instance of any Java class that has no type "
-"variables or wildcard type parameters. The event will be delivered to every "
-"observer method that:"
-msgstr ""
+msgid "An event object may be an instance of any Java class that has no type variables or wildcard type parameters. The event will be delivered to every observer method that:"
+msgstr "Un objet évènement peut être une instance de n'importe quel classe Java qui n'a pas de paramètres de type variable ou wildcard. L'évènement sera délivré à toute méthode observatrice qui:"
#. Tag: para
-#: events.xml:83 events.xml:107 events.xml:126
+#: events.xml:83
+#: events.xml:107
+#: events.xml:126
#, no-c-format
msgid "has an event parameter to which the event object is assignable, and"
-msgstr ""
+msgstr "a un paramètre d'évènement pour lequel l'objet évènement est assignable, et"
#. Tag: para
#: events.xml:86
#, no-c-format
msgid "specifies no event bindings."
-msgstr ""
+msgstr "ne spécifie aucune liaison d'évènement."
#. Tag: para
#: events.xml:90
#, no-c-format
-msgid ""
-"The Web Bean manager simply calls all the observer methods, passing the "
-"event object as the value of the event parameter. If any observer method "
-"throws an exception, the Web Bean manager stops calling observer methods, "
-"and the exception is rethrown by the <literal>fire()</literal> method."
-msgstr ""
+msgid "The Web Bean manager simply calls all the observer methods, passing the event object as the value of the event parameter. If any observer method throws an exception, the Web Bean manager stops calling observer methods, and the exception is rethrown by the <literal>fire()</literal> method."
+msgstr "Le gestionnaire de Web Beans appelle simplement toutes les méthodes observatrices, en passant l'objet évènement comme valeur du paramètre évènement. Si un méthode observatrice lance une exception, le gestionnaire de Web Beans arrête d'appeler les méthodes observaterices, et l'exception est relancée par la méthode <literal>fire()</literal>."
#. Tag: para
#: events.xml:95
#, no-c-format
-msgid ""
-"To specify a \"selector\", the event producer may pass an instance of the "
-"event binding type to the <literal>fire()</literal> method:"
-msgstr ""
+msgid "To specify a \"selector\", the event producer may pass an instance of the event binding type to the <literal>fire()</literal> method:"
+msgstr "Pour spécifier un \"sélecteur\", le producteur d'évènement peut passer une instance d'un type de liaison d'évènement à la méthode <literal>fire()</literal>:"
#. Tag: programlisting
#: events.xml:98
#, no-c-format
-msgid ""
-"<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>()"
-"{} );]]>"
-msgstr ""
+msgid "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
+msgstr "<![CDATA[documentEvent.fire( document, new AnnotationLiteral<Updated>(){} );]]>"
#. Tag: para
#: events.xml:100
#, no-c-format
-msgid ""
-"The helper class <literal>AnnotationLiteral</literal> makes it possible to "
-"instantiate binding types inline, since this is otherwise difficult to do in "
-"Java."
-msgstr ""
+msgid "The helper class <literal>AnnotationLiteral</literal> makes it possible to instantiate binding types inline, since this is otherwise difficult to do in Java."
+msgstr "La classe d'aide <literal>AnnotationLiteral</literal> rend possible d'instancier des types de liaison à la volée, car cela est autrement difficile à faire en Java."
#. Tag: para
#: events.xml:103
#, no-c-format
msgid "The event will be delivered to every observer method that:"
-msgstr ""
+msgstr "Un évènement sera délivré à toute méthode observatrice qui:"
#. Tag: para
#: events.xml:110
#, no-c-format
-msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal>."
-msgstr ""
+msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal>."
+msgstr "ne spécifie aucune liaision d'évènement <emphasis>excepté</emphasis> pour les liaision d'évènements passées à <literal>fire()</literal>."
#. Tag: para
#: events.xml:115
#, no-c-format
-msgid ""
-"Alternatively, event bindings may be specified by annotating the event "
-"notifier injection point:"
-msgstr ""
+msgid "Alternatively, event bindings may be specified by annotating the event notifier injection point:"
+msgstr "Alternativement, les liaisons d'évènements peuvent être spécifiées en annotant les points d'injection d'évènement:"
#. Tag: programlisting
#: events.xml:118
#, no-c-format
msgid "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
-msgstr ""
+msgstr "<![CDATA[@Observable @Updated Event<Document> documentUpdatedEvent]]>"
#. Tag: para
#: events.xml:120
#, no-c-format
-msgid ""
-"Then every event fired via this instance of <literal>Event</literal> has the "
-"annotated event binding. The event will be delivered to every observer "
-"method that:"
-msgstr ""
+msgid "Then every event fired via this instance of <literal>Event</literal> has the annotated event binding. The event will be delivered to every observer method that:"
+msgstr "Tous les évènements déclenchés par cette instance d'<literal>Event</literal> ont la liaison d'évènement. L'évènement sera délivré à toutes méthode observatrice qui:"
#. Tag: para
#: events.xml:129
#, no-c-format
-msgid ""
-"does not specify any event binding <emphasis>except</emphasis> for the event "
-"bindings passed to <literal>fire()</literal> or the annotated event bindings "
-"of the event notifier injection point."
-msgstr ""
+msgid "does not specify any event binding <emphasis>except</emphasis> for the event bindings passed to <literal>fire()</literal> or the annotated event bindings of the event notifier injection point."
+msgstr "ne spécifie aucune liaision d'évènement <emphasis>excepté</emphasis> les liaisons d'évènements passées à <literal>fire()</literal> ou les liaisons d'évènement annotées du point d'injection de notificateur d'évènement."
#. Tag: title
#: events.xml:138
#, no-c-format
msgid "Registering observers dynamically"
-msgstr ""
+msgstr "Enregistrer des observateurs dynamiquement"
#. Tag: para
#: events.xml:140
#, no-c-format
-msgid ""
-"It's often useful to register an event observer dynamically. The application "
-"may implement the <literal>Observer</literal> interface and register an "
-"instance with an event notifier by calling the <literal>observe()</literal> "
-"method."
-msgstr ""
+msgid "It's often useful to register an event observer dynamically. The application may implement the <literal>Observer</literal> interface and register an instance with an event notifier by calling the <literal>observe()</literal> method."
+msgstr "Il est souvent utile d'enregistrer dynamiquement un observateur d'évènement. L'application peut implémenter l'interface <literal>Observer</literal> et enregistrer une instance avec un notificateur d'évènement en appelant la méthode <literal>observe()</literal>."
#. Tag: programlisting
#: events.xml:144
#, no-c-format
-msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } } );]]>"
-msgstr ""
+msgid "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
+msgstr "<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } } );]]>"
#. Tag: para
#: events.xml:146
#, no-c-format
-msgid ""
-"Event binding types may be specified by the event notifier injection point "
-"or by passing event binding type instances to the <literal>observe()</"
-"literal> method:"
-msgstr ""
+msgid "Event binding types may be specified by the event notifier injection point or by passing event binding type instances to the <literal>observe()</literal> method:"
+msgstr "Les types de liaison d'évènement peuvent être spécifiés par le point d'injection du notificateur d'évènements ou en passant des instances du type de liaison d'évènement à la méthode <literal>observe()</literal>:"
#. Tag: programlisting
#: events.xml:149
#, no-c-format
msgid ""
-"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify"
-"(Document doc) { ... } }, \n"
-" new "
-"AnnotationLiteral<Updated>(){} );]]>"
+"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
+" new AnnotationLiteral<Updated>(){} );]]>"
msgstr ""
+"<![CDATA[documentEvent.observe( new Observer<Document>() { public void notify(Document doc) { ... } }, \n"
+" new AnnotationLiteral<Updated>(){} );]]>"
#. Tag: title
#: events.xml:154
#, no-c-format
msgid "Event bindings with members"
-msgstr ""
+msgstr "Liaison d'évènement avec des membres"
#. Tag: para
#: events.xml:156
#, no-c-format
msgid "An event binding type may have annotation members:"
-msgstr ""
+msgstr "Un type de liaison d'évènement peut avoir des membres d'annotation:"
#. Tag: programlisting
#: events.xml:158
@@ -352,44 +285,42 @@
" RoleType value();\n"
"}]]>"
msgstr ""
+"<![CDATA[@BindingType\n"
+"@Target({PARAMETER, FIELD})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Role {\n"
+" RoleType value();\n"
+"}]]>"
#. Tag: para
#: events.xml:160
#, no-c-format
-msgid ""
-"The member value is used to narrow the messages delivered to the observer:"
-msgstr ""
+msgid "The member value is used to narrow the messages delivered to the observer:"
+msgstr "la valeur membre est utilisée pour préciser d'avantage les messages délivrés à l'observateur:"
#. Tag: programlisting
#: events.xml:162
#, no-c-format
-msgid ""
-"<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) "
-"{ ... }]]>"
-msgstr ""
+msgid "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
+msgstr "<![CDATA[public void adminLoggedIn(@Observes @Role(ADMIN) LoggedIn event) { ... }]]>"
#. Tag: para
#: events.xml:164
#, no-c-format
-msgid ""
-"Event binding type members may be specified statically by the event "
-"producer, via annotations at the event notifier injection point:"
-msgstr ""
+msgid "Event binding type members may be specified statically by the event producer, via annotations at the event notifier injection point:"
+msgstr "Les membres de type de liaison d'évènement peuvent être spécifiés statiquement par le producteur d'évènement, par des annotations au point d'injection du notificateur d'évènement:"
#. Tag: programlisting
#: events.xml:167
#, no-c-format
msgid "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
-msgstr ""
+msgstr "<![CDATA[@Observable @Role(ADMIN) Event<LoggedIn> LoggedInEvent;}}]]>"
#. Tag: para
#: events.xml:169
#, no-c-format
-msgid ""
-"Alternatively, the value of the event binding type member may be determined "
-"dynamically by the event producer. We start by writing an abstract subclass "
-"of <literal>AnnotationLiteral</literal>:"
-msgstr ""
+msgid "Alternatively, the value of the event binding type member may be determined dynamically by the event producer. We start by writing an abstract subclass of <literal>AnnotationLiteral</literal>:"
+msgstr "Alternativement, la valeur du membre du type de liaision d'évènement peut être déterminée dynamiquement par le producteur d'évènement.Commençons par écrire une sous-classe abstraite de <literal>AnnotationLiteral</literal>:"
#. Tag: programlisting
#: events.xml:172
@@ -399,34 +330,33 @@
" extends AnnotationLiteral<Role> \n"
" implements Role {}]]>"
msgstr ""
+"<![CDATA[abstract class RoleBinding \n"
+" extends AnnotationLiteral<Role> \n"
+" implements Role {}]]>"
#. Tag: para
#: events.xml:174
#, no-c-format
-msgid ""
-"The event producer passes an instance of this class to <literal>fire()</"
-"literal>:"
-msgstr ""
+msgid "The event producer passes an instance of this class to <literal>fire()</literal>:"
+msgstr "Le producteur d'évènement passe une instance de cette class à <literal>fire()</literal>:"
#. Tag: programlisting
#: events.xml:176
#, no-c-format
-msgid ""
-"<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value"
-"() { return user.getRole(); } } );]]>"
-msgstr ""
+msgid "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
+msgstr "<![CDATA[documentEvent.fire( document, new RoleBinding() { public void value() { return user.getRole(); } } );]]>"
#. Tag: title
#: events.xml:181
#, no-c-format
msgid "Multiple event bindings"
-msgstr ""
+msgstr "Plusieurs liaisons d'évènements"
#. Tag: para
#: events.xml:183
#, no-c-format
msgid "Event binding types may be combined, for example:"
-msgstr ""
+msgstr "Les types de liaison d'évènement peuvent être combinés, par exemple:"
#. Tag: programlisting
#: events.xml:185
@@ -434,122 +364,95 @@
msgid ""
"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
"...\n"
-"if (document.isBlog()) blogEvent.fire(document, new "
-"AnnotationLiteral<Updated>(){});]]>"
+"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
msgstr ""
+"<![CDATA[@Observable @Blog Event<Document> blogEvent;\n"
+"...\n"
+"if (document.isBlog()) blogEvent.fire(document, new AnnotationLiteral<Updated>(){});]]>"
#. Tag: para
#: events.xml:187
#, no-c-format
-msgid ""
-"When this event occurs, all of the following observer methods will be "
-"notified:"
-msgstr ""
+msgid "When this event occurs, all of the following observer methods will be notified:"
+msgstr "Quand cet évènement se product, toutes méthodes observatrices seront notifiées:"
#. Tag: programlisting
#: events.xml:189
#, no-c-format
-msgid ""
-"<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document "
-"document) { ... }]]>"
-msgstr ""
+msgid "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
+msgstr "<![CDATA[public void afterBlogUpdate(@Observes @Updated @Blog Document document) { ... }]]>"
#. Tag: programlisting
#: events.xml:191
#, no-c-format
-msgid ""
-"<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) "
-"{ ... }]]>"
-msgstr ""
+msgid "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
+msgstr "<![CDATA[public void onAnyBlogEvent(@Observes @Blog Document document) { ... }]]>"
#. Tag: programlisting
#: events.xml:192
#, no-c-format
-msgid ""
-"<![CDATA[public void onAnyDocumentEvent(@Observes Document document) "
-"{ ... }}}]]>"
-msgstr ""
+msgid "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
+msgstr "<![CDATA[public void onAnyDocumentEvent(@Observes Document document) { ... }}}]]>"
#. Tag: title
#: events.xml:197
#, no-c-format
msgid "Transactional observers"
-msgstr ""
+msgstr "Observateurs transactionnels"
#. Tag: para
#: events.xml:199
#, no-c-format
-msgid ""
-"Transactional observers receive their event notifications during the before "
-"or after completion phase of the transaction in which the event was raised. "
-"For example, the following observer method needs to refresh a query result "
-"set that is cached in the application context, but only when transactions "
-"that update the <literal>Category</literal> tree succeed:"
-msgstr ""
+msgid "Transactional observers receive their event notifications during the before or after completion phase of the transaction in which the event was raised. For example, the following observer method needs to refresh a query result set that is cached in the application context, but only when transactions that update the <literal>Category</literal> tree succeed:"
+msgstr "Les Observateurs transactionnels recoivent des notifications d'évènements avant ou après la complétion d'une phase de la transaction dans laquelle l'évènement a été levé. Par exemple, la méthode observatrice suivante a besoin de rafraîchir un ensemble de résultat de requête qui est cachée dans le contexte de l'application, mais seulement quand les transactions qui mettent à jour l'arbre <literal>Category</literal> réussissent:"
#. Tag: programlisting
#: events.xml:205
#, no-c-format
-msgid ""
-"<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes "
-"CategoryUpdateEvent event) { ... }]]>"
-msgstr ""
+msgid "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
+msgstr "<![CDATA[public void refreshCategoryTree(@AfterTransactionSuccess @Observes CategoryUpdateEvent event) { ... }]]>"
#. Tag: para
#: events.xml:207
#, no-c-format
msgid "There are three kinds of transactional observers:"
-msgstr ""
+msgstr "Il y a trois sortes d'observateurs transactionnels:"
#. Tag: para
#: events.xml:211
#, no-c-format
-msgid ""
-"<literal>@AfterTransactionSuccess</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction "
-"completes successfully"
-msgstr ""
+msgid "<literal>@AfterTransactionSuccess</literal> observers are called during the after completion phase of the transaction, but only if the transaction completes successfully"
+msgstr "Les observateurs <literal>@AfterTransactionSuccess</literal> sont appelés après la complétion d'une phase de la transaction, mais seulement si la transaction se termine avec succès"
#. Tag: para
#: events.xml:216
#, no-c-format
-msgid ""
-"<literal>@AfterTransactionFailure</literal> observers are called during the "
-"after completion phase of the transaction, but only if the transaction fails "
-"to complete successfully"
-msgstr ""
+msgid "<literal>@AfterTransactionFailure</literal> observers are called during the after completion phase of the transaction, but only if the transaction fails to complete successfully"
+msgstr "Les observateurs <literal>@AfterTransactionFailure</literal> sont appelés après la complétion d'une phase de la transaction, mais seulement si la transaction ne se termine pas correctement"
#. Tag: para
#: events.xml:221
#, no-c-format
-msgid ""
-"<literal>@AfterTransactionCompletion</literal> observers are called during "
-"the after completion phase of the transaction"
-msgstr ""
+msgid "<literal>@AfterTransactionCompletion</literal> observers are called during the after completion phase of the transaction"
+msgstr "Les observateurs <literal>@AfterTransactionCompletion</literal> sont appelés après la complétion de la phase de la transaction"
#. Tag: para
#: events.xml:225
#, no-c-format
-msgid ""
-"<literal>@BeforeTransactionCompletion</literal> observers are called during "
-"the before completion phase of the transaction"
-msgstr ""
+msgid "<literal>@BeforeTransactionCompletion</literal> observers are called during the before completion phase of the transaction"
+msgstr "Les observateurs <literal>@BeforeTransactionCompletion</literal> sont appelés avant la complétion de la phase de la transaction"
#. Tag: para
#: events.xml:230
#, no-c-format
-msgid ""
-"Transactional observers are very important in a stateful object model like "
-"Web Beans, because state is often held for longer than a single atomic "
-"transaction."
-msgstr ""
+msgid "Transactional observers are very important in a stateful object model like Web Beans, because state is often held for longer than a single atomic transaction."
+msgstr "Les observateurs transactionels sont très importants dans un modèle d'objets à état tel que Web Beans, parce que l'état est souvent maintenu plus longtemps qu'une simple transaction atomique."
#. Tag: para
#: events.xml:233
#, no-c-format
-msgid ""
-"Imagine that we have cached a JPA query result set in the application scope:"
-msgstr ""
+msgid "Imagine that we have cached a JPA query result set in the application scope:"
+msgstr "Imaginez que nous ayons caché un ensemble de résultats de requête JPA dans la portée application:"
#. Tag: programlisting
#: events.xml:235
@@ -565,8 +468,7 @@
" @Produces @Catalog \n"
" List<Product> getCatalog() {\n"
" if (products==null) {\n"
-" products = em.createQuery(\"select p from Product p where p."
-"deleted = false\")\n"
+" products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
" .getResultList();\n"
" }\n"
" return products;\n"
@@ -574,24 +476,35 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[@ApplicationScoped @Singleton\n"
+"public class Catalog {\n"
+"\n"
+" @PersistenceContext EntityManager em;\n"
+" \n"
+" List<Product> products;\n"
+"\n"
+" @Produces @Catalog \n"
+" List<Product> getCatalog() {\n"
+" if (products==null) {\n"
+" products = em.createQuery(\"select p from Product p where p.deleted = false\")\n"
+" .getResultList();\n"
+" }\n"
+" return products;\n"
+" }\n"
+" \n"
+"}]]>"
#. Tag: para
#: events.xml:237
#, no-c-format
-msgid ""
-"From time to time, a <literal>Product</literal> is created or deleted. When "
-"this occurs, we need to refresh the <literal>Product</literal> catalog. But "
-"we should wait until <emphasis>after</emphasis> the transaction completes "
-"successfully before performing this refresh!"
-msgstr ""
+msgid "From time to time, a <literal>Product</literal> is created or deleted. When this occurs, we need to refresh the <literal>Product</literal> catalog. But we should wait until <emphasis>after</emphasis> the transaction completes successfully before performing this refresh!"
+msgstr "De temps en temps, un <literal>Product</literal> est créé ou détruit. Quand cela survient, nous avons besoin de rafraîchir le catalogue de <literal>Product</literal>. Mais nous devrions attendre jusqu'à <emphasis>après</emphasis> que la transaction se soit finie avec succès avant d'éxécuter ce rafraîchissement!"
#. Tag: para
#: events.xml:242
#, no-c-format
-msgid ""
-"The Web Bean that creates and deletes <literal>Product</literal>s could "
-"raise events, for example:"
-msgstr ""
+msgid "The Web Bean that creates and deletes <literal>Product</literal>s could raise events, for example:"
+msgstr "Le Web Brans qui crée et détruit les <literal>Product</literal>s pourrait lever des évènements, par exemple:"
#. Tag: programlisting
#: events.xml:245
@@ -617,14 +530,31 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[@Stateless\n"
+"public class ProductManager {\n"
+"\n"
+" @PersistenceContext EntityManager em;\n"
+" @Observable Event<Product> productEvent;\n"
+"\n"
+" public void delete(Product product) {\n"
+" em.delete(product);\n"
+" productEvent.fire(product, new AnnotationLiteral<Deleted>(){});\n"
+" }\n"
+" \n"
+" public void persist(Product product) {\n"
+" em.persist(product);\n"
+" productEvent.fire(product, new AnnotationLiteral<Created>(){});\n"
+" }\n"
+" \n"
+" ...\n"
+" \n"
+"}]]>"
#. Tag: para
#: events.xml:247
#, no-c-format
-msgid ""
-"And now <literal>Catalog</literal> can observe the events after successful "
-"completion of the transaction:"
-msgstr ""
+msgid "And now <literal>Catalog</literal> can observe the events after successful completion of the transaction:"
+msgstr "Et maintenant <literal>Catalog</literal> peut observer les évènements après l'éxecution avec succès de la transaction:"
#. Tag: programlisting
#: events.xml:250
@@ -635,15 +565,28 @@
"\n"
" ...\n"
" \n"
-" void addProduct(@AfterTransactionSuccess @Observes @Created Product "
-"product) {\n"
+" void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
" products.add(product);\n"
" }\n"
" \n"
-" void addProduct(@AfterTransactionSuccess @Observes @Deleted Product "
-"product) {\n"
+" void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
" products.remove(product);\n"
" }\n"
" \n"
"}]]>"
msgstr ""
+"<![CDATA[@ApplicationScoped @Singleton\n"
+"public class Catalog {\n"
+"\n"
+" ...\n"
+" \n"
+" void addProduct(@AfterTransactionSuccess @Observes @Created Product product) {\n"
+" products.add(product);\n"
+" }\n"
+" \n"
+" void addProduct(@AfterTransactionSuccess @Observes @Deleted Product product) {\n"
+" products.remove(product);\n"
+" }\n"
+" \n"
+"}]]>"
+
Modified: doc/trunk/reference/fr-FR/example.po
===================================================================
--- doc/trunk/reference/fr-FR/example.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/example.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-04 23:18+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-04 23:07+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,16 +17,13 @@
#: example.xml:4
#, no-c-format
msgid "JSF web application example"
-msgstr ""
+msgstr "Exemple d'une web application JSF"
#. Tag: para
#: example.xml:6
#, no-c-format
-msgid ""
-"Let's illustrate these ideas with a full example. We're going to implement "
-"user login/logout for an application that uses JSF. First, we'll define a "
-"Web Bean to hold the username and password entered during login:"
-msgstr ""
+msgid "Let's illustrate these ideas with a full example. We're going to implement user login/logout for an application that uses JSF. First, we'll define a Web Bean to hold the username and password entered during login:"
+msgstr "Illustrons ces idées avec un exemple complet. Nous allons implémenter la connexion/déconnexion d'un utilisateur à une application utilisant JSF. D'abord, nous allons définir un Web Bean pour stocker le nom d'utilisateur et le mot de passe saisis lors de l'identification:"
#. Tag: programlisting
#: example.xml:11
@@ -46,12 +43,25 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+" \n"
+"}]]>"
#. Tag: para
#: example.xml:13
#, no-c-format
msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr ""
+msgstr "Ce Web Bean est lié à l'invite de connexion dans le formulaire JSF suivant:"
#. Tag: programlisting
#: example.xml:15
@@ -64,21 +74,26 @@
" <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
" <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
" </h:panelGrid>\n"
-" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
-"login.loggedIn}\"/>\n"
-" <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#"
-"{login.loggedIn}\"/>\n"
+" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
+" <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
"</h:form>]]>"
msgstr ""
+"<![CDATA[<h:form>\n"
+" <h:panelGrid columns=\"2\" rendered=\"#{!login.loggedIn}\">\n"
+" <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+" <h:inputText id=\"username\" value=\"#{credentials.username}\"/>\n"
+" <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+" <h:inputText id=\"password\" value=\"#{credentials.password}\"/>\n"
+" </h:panelGrid>\n"
+" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!login.loggedIn}\"/>\n"
+" <h:commandButton value=\"Logout\" acion=\"#{login.logout}\" rendered=\"#{login.loggedIn}\"/>\n"
+"</h:form>]]>"
#. Tag: para
#: example.xml:17
#, no-c-format
-msgid ""
-"The actual work is done by a session scoped Web Bean that maintains "
-"information about the currently logged-in user and exposes the "
-"<literal>User</literal> entity to other Web Beans:"
-msgstr ""
+msgid "The actual work is done by a session scoped Web Bean that maintains information about the currently logged-in user and exposes the <literal>User</literal> entity to other Web Beans:"
+msgstr "La tâche réelle est effectuée par un Web Bean de portée session qui maintient l'information à propos de l'utilisateur actuellement connecté et expose l'entité <literal>User</literal> aux autres Web Beans:"
#. Tag: programlisting
#: example.xml:21
@@ -95,8 +110,7 @@
" public void login() {\n"
" \n"
" List<User> results = userDatabase.createQuery(\n"
-" \"select u from User u where u.username=:username and u.password=:"
-"password\")\n"
+" \"select u from User u where u.username=:username and u.password=:password\")\n"
" .setParameter(\"username\", credentials.getUsername())\n"
" .setParameter(\"password\", credentials.getPassword())\n"
" .getResultList();\n"
@@ -121,12 +135,47 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[@SessionScoped @Named\n"
+"public class Login {\n"
+"\n"
+" @Current Credentials credentials;\n"
+" @PersistenceContext EntityManager userDatabase;\n"
+"\n"
+" private User user;\n"
+" \n"
+" public void login() {\n"
+" \n"
+" List<User> results = userDatabase.createQuery(\n"
+" \"select u from User u where u.username=:username and u.password=:password\")\n"
+" .setParameter(\"username\", credentials.getUsername())\n"
+" .setParameter(\"password\", credentials.getPassword())\n"
+" .getResultList();\n"
+" \n"
+" if ( !results.isEmpty() ) {\n"
+" user = results.get(0);\n"
+" }\n"
+" \n"
+" }\n"
+" \n"
+" public void logout() {\n"
+" user = null;\n"
+" }\n"
+" \n"
+" public boolean isLoggedIn() {\n"
+" return user!=null;\n"
+" }\n"
+" \n"
+" @Produces @LoggedIn User getCurrentUser() {\n"
+" return user;\n"
+" }\n"
+"\n"
+"}]]>"
#. Tag: para
#: example.xml:23
#, no-c-format
msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr ""
+msgstr "Evidemment, <literal>@LoggedIn</literal> est une annotation de liaison:"
#. Tag: programlisting
#: example.xml:25
@@ -137,12 +186,16 @@
"@BindingType\n"
"public @interface LoggedIn {}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD})\n"
+"@BindingType\n"
+"public @interface LoggedIn {}]]>"
#. Tag: para
#: example.xml:27
#, no-c-format
msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr ""
+msgstr "Maintenant, n'importe quel autre Web Bean peut facilement injecter l'utilisateur courant:"
#. Tag: programlisting
#: example.xml:29
@@ -161,12 +214,22 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public class DocumentEditor {\n"
+"\n"
+" @Current Document document;\n"
+" @LoggedIn User currentUser;\n"
+" @PersistenceContext EntityManager docDatabase;\n"
+" \n"
+" public void save() {\n"
+" document.setCreatedBy(currentUser);\n"
+" docDatabase.persist(document);\n"
+" }\n"
+" \n"
+"}]]>"
#. Tag: para
#: example.xml:31
#, no-c-format
-msgid ""
-"Hopefully, this example gives a flavor of the Web Bean programming model. In "
-"the next chapter, we'll explore Web Beans dependency injection in greater "
-"depth."
-msgstr ""
+msgid "Hopefully, this example gives a flavor of the Web Bean programming model. In the next chapter, we'll explore Web Beans dependency injection in greater depth."
+msgstr "Cet exemple vous donne une idée du modèle de programmation Web Bean. Dans le prochain chapitre, nous explorerons l'injection de dépendance des Web Beans plus en détail."
+
Modified: doc/trunk/reference/fr-FR/extend.po
===================================================================
--- doc/trunk/reference/fr-FR/extend.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/extend.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-04 23:17+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,60 +17,49 @@
#: extend.xml:4
#, no-c-format
msgid "Extending Web Beans"
-msgstr ""
+msgstr "Etendre les Web Beans"
#. Tag: para
#: extend.xml:6
#, no-c-format
-msgid ""
-"Web Beans is intended to be a platform for frameworks, extensions and "
-"integration with other technologies. Therefore, Web Beans exposes a set of "
-"SPIs for the use of developers of portable extensions to Web Beans. For "
-"example, the following kinds of extensions were envisaged by the designers "
-"of Web Beans:"
-msgstr ""
+msgid "Web Beans is intended to be a platform for frameworks, extensions and integration with other technologies. Therefore, Web Beans exposes a set of SPIs for the use of developers of portable extensions to Web Beans. For example, the following kinds of extensions were envisaged by the designers of Web Beans:"
+msgstr "Les Web Beans sont conçus pour être une plateforme pour des frameworks, des extensions et l'intégration avec d'autres technologies. Pour cela, les Web Beans exposent une série de SPIs pour l'usage des développeurs d'extensions portables aux Web Beans. Par exemple, les sortes d'extensions suivantes furent envisagées par les concepteurs des Web Beans:"
#. Tag: para
#: extend.xml:14
#, no-c-format
msgid "integration with Business Process Management engines,"
-msgstr ""
+msgstr "intégration avec des moteurs de gestion de processus métiers (BPM),"
#. Tag: para
#: extend.xml:17
#, no-c-format
-msgid ""
-"integration with third-party frameworks such as Spring, Seam, GWT or Wicket, "
-"and"
-msgstr ""
+msgid "integration with third-party frameworks such as Spring, Seam, GWT or Wicket, and"
+msgstr "intégration avec des frameworks tiers tels que Spring, Seam, SWT ou Wicket, et"
#. Tag: para
#: extend.xml:21
#, no-c-format
msgid "new technology based upon the Web Beans programming model."
-msgstr ""
+msgstr "une nouvelle nouvelle technologie basée sur le modèle de programmation des Web Beans."
#. Tag: para
#: extend.xml:25
#, no-c-format
-msgid ""
-"The nerve center for extending Web Beans is the <literal>Manager</literal> "
-"object."
-msgstr ""
+msgid "The nerve center for extending Web Beans is the <literal>Manager</literal> object."
+msgstr "Le centre nerveux pour l'extension des Web Beans est l'objet <literal>Manager</literal>."
#. Tag: title
#: extend.xml:29
#, no-c-format
msgid "The <literal>Manager</literal> object"
-msgstr ""
+msgstr "L'object <literal>Manager</literal>"
#. Tag: para
#: extend.xml:31
#, no-c-format
-msgid ""
-"The <literal>Manager</literal> interface lets us register and obtain Web "
-"Beans, interceptors, decorators, observers and contexts programatically."
-msgstr ""
+msgid "The <literal>Manager</literal> interface lets us register and obtain Web Beans, interceptors, decorators, observers and contexts programatically."
+msgstr "L'interface <literal>Manager</literal> nous permet d'enregistrer et d'obtenir des Web Beans, intercepteurs, décorateurs, observateurs et contextes de manière programmatique."
#. Tag: programlisting
#: extend.xml:34
@@ -79,8 +68,7 @@
"<![CDATA[public interface Manager\n"
"{\n"
"\n"
-" public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... "
-"bindings);\n"
+" public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
"\n"
" public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
" Annotation... bindings);\n"
@@ -111,19 +99,16 @@
" public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
" Annotation... bindings);\n"
"\n"
-" public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> "
-"eventType,\n"
+" public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
" Annotation... bindings);\n"
"\n"
-" public <T> Manager removeObserver(Observer<T> observer, Class<T> "
-"eventType,\n"
+" public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
" Annotation... bindings);\n"
"\n"
" public <T> Manager removeObserver(Observer<T> observer,\n"
" TypeLiteral<T> eventType, Annotation... bindings);\n"
"\n"
-" public <T> Set<Observer<T>> resolveObservers(T event, Annotation... "
-"bindings);\n"
+" public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
"\n"
" public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
" Annotation... interceptorBindings);\n"
@@ -133,33 +118,82 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[public interface Manager\n"
+"{\n"
+"\n"
+" public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings);\n"
+"\n"
+" public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,\n"
+" Annotation... bindings);\n"
+"\n"
+" public <T> T getInstanceByType(Class<T> type, Annotation... bindings);\n"
+"\n"
+" public <T> T getInstanceByType(TypeLiteral<T> type,\n"
+" Annotation... bindings);\n"
+"\n"
+" public Set<Bean<?>> resolveByName(String name);\n"
+"\n"
+" public Object getInstanceByName(String name);\n"
+"\n"
+" public <T> T getInstance(Bean<T> bean);\n"
+"\n"
+" public void fireEvent(Object event, Annotation... bindings);\n"
+"\n"
+" public Context getContext(Class<? extends Annotation> scopeType);\n"
+"\n"
+" public Manager addContext(Context context);\n"
+"\n"
+" public Manager addBean(Bean<?> bean);\n"
+"\n"
+" public Manager addInterceptor(Interceptor interceptor);\n"
+"\n"
+" public Manager addDecorator(Decorator decorator);\n"
+"\n"
+" public <T> Manager addObserver(Observer<T> observer, Class<T> eventType,\n"
+" Annotation... bindings);\n"
+"\n"
+" public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType,\n"
+" Annotation... bindings);\n"
+"\n"
+" public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType,\n"
+" Annotation... bindings);\n"
+"\n"
+" public <T> Manager removeObserver(Observer<T> observer,\n"
+" TypeLiteral<T> eventType, Annotation... bindings);\n"
+"\n"
+" public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings);\n"
+"\n"
+" public List<Interceptor> resolveInterceptors(InterceptionType type,\n"
+" Annotation... interceptorBindings);\n"
+"\n"
+" public List<Decorator> resolveDecorators(Set<Class<?>> types,\n"
+" Annotation... bindings);\n"
+"\n"
+"}]]>"
#. Tag: para
#: extend.xml:36
#, no-c-format
msgid "We can obtain an instance of <literal>Manager</literal> via injection:"
-msgstr ""
+msgstr "Nous pouvons obtenir une instance d'un <literal>Manager</literal> par injection:"
#. Tag: programlisting
#: extend.xml:38
#, no-c-format
msgid "@Current Manager manager"
-msgstr ""
+msgstr "@Current Manager manager"
#. Tag: title
#: extend.xml:43
#, no-c-format
msgid "The <literal>Bean</literal> class"
-msgstr ""
+msgstr "La classe <literal>Bean</literal>"
#. Tag: para
#: extend.xml:45
#, no-c-format
-msgid ""
-"Instances of the abstract class <literal>Bean</literal> represent Web Beans. "
-"There is an instance of <literal>Bean</literal> registered with the "
-"<literal>Manager</literal> object for every Web Bean in the application."
-msgstr ""
+msgid "Instances of the abstract class <literal>Bean</literal> represent Web Beans. There is an instance of <literal>Bean</literal> registered with the <literal>Manager</literal> object for every Web Bean in the application."
+msgstr "Les instances de la class abstraite <literal>Bean</literal> représentent les Web Beans. Il y a une instance de <literal>Bean</literal> enregistrée auprès de l'objet <literal>Manager</literal> pour chaque Web Bean dans l'application."
#. Tag: programlisting
#: extend.xml:50
@@ -191,41 +225,55 @@
" \n"
"}"
msgstr ""
+"public abstract class Bean<T> {\n"
+" \n"
+" private final Manager manager;\n"
+" \n"
+" protected Bean(Manager manager) {\n"
+" this.manager=manager;\n"
+" }\n"
+" \n"
+" protected Manager getManager() {\n"
+" return manager;\n"
+" }\n"
+" \n"
+" public abstract Set<Class> getTypes();\n"
+" public abstract Set<Annotation> getBindingTypes();\n"
+" public abstract Class<? extends Annotation> getScopeType();\n"
+" public abstract Class<? extends Annotation> getDeploymentType(); \n"
+" public abstract String getName();\n"
+" \n"
+" public abstract boolean isSerializable();\n"
+" public abstract boolean isNullable();\n"
+"\n"
+" public abstract T create();\n"
+" public abstract void destroy(T instance);\n"
+" \n"
+"}"
#. Tag: para
#: extend.xml:52
#, no-c-format
-msgid ""
-"It's possible to extend the <literal>Bean</literal> class and register "
-"instances by calling <literal>Manager.addBean()</literal> to provide support "
-"for new kinds of Web Beans, beyond those defined by the Web Beans "
-"specification (simple and enterprise Web Beans, producer methods and JMS "
-"endpoints). For example, we could use the <literal>Bean</literal> class to "
-"allow objects managed by another framework to be injected into Web Beans."
-msgstr ""
+msgid "It's possible to extend the <literal>Bean</literal> class and register instances by calling <literal>Manager.addBean()</literal> to provide support for new kinds of Web Beans, beyond those defined by the Web Beans specification (simple and enterprise Web Beans, producer methods and JMS endpoints). For example, we could use the <literal>Bean</literal> class to allow objects managed by another framework to be injected into Web Beans."
+msgstr "Il est possible d'étendre la classe <literal>Bean</literal> et d'enregistrer des instances en appelant la méthode <literal>Manager.addBean()</literal> afin de supporter de nouvelles sortes de Web Beans, en plus de ceux déjà définis dans la spécification Web Beans (Web Beans simple et d'entreprise, méthode productrices et terminaisons JMS). Par exemple, nous pourrions utiliser la classe <literal>Bean</literal> pour permettre aux objets gérés par un autre framework d'être injectés dans des Web Beans."
#. Tag: para
#: extend.xml:60
#, no-c-format
-msgid ""
-"There are two subclasses of <literal>Bean</literal> defined by the Web Beans "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
-msgstr ""
+msgid "There are two subclasses of <literal>Bean</literal> defined by the Web Beans specification: <literal>Interceptor</literal> and <literal>Decorator</literal>."
+msgstr "Il y a deux sous-classes de <literal>Bean</literal> définies par la spécification Web Beans: <literal>Interceptor</literal> et <literal>Decorator</literal>."
#. Tag: title
#: extend.xml:67
#, no-c-format
msgid "The <literal>Context</literal> interface"
-msgstr ""
+msgstr "L'interface <literal>Context</literal>"
#. Tag: para
#: extend.xml:69
#, no-c-format
-msgid ""
-"The <literal>Context</literal> interface supports addition of new scopes to "
-"Web Beans, or extension of the built-in scopes to new environments."
-msgstr ""
+msgid "The <literal>Context</literal> interface supports addition of new scopes to Web Beans, or extension of the built-in scopes to new environments."
+msgstr "L'interface <literal>Context</literal> supporte l'ajout de nouvelles portées aux Web Beans, ou d'extensions des portées fournies à de nouveaux environnements."
#. Tag: programlisting
#: extend.xml:72
@@ -241,12 +289,19 @@
" \n"
"}"
msgstr ""
+"public interface Context {\n"
+" \n"
+" public Class<? extends Annotation> getScopeType();\n"
+" \n"
+" public <T> T get(Bean<T> bean, boolean create);\n"
+" \n"
+" boolean isActive();\n"
+" \n"
+"}"
#. Tag: para
#: extend.xml:74
#, no-c-format
-msgid ""
-"For example, we might implement <literal>Context</literal> to add a business "
-"process scope to Web Beans, or to add support for the conversation scope to "
-"an application that uses Wicket."
-msgstr ""
+msgid "For example, we might implement <literal>Context</literal> to add a business process scope to Web Beans, or to add support for the conversation scope to an application that uses Wicket."
+msgstr "Par exemple, nous pourrions implémenter <literal>Context</literal> pour ajouter une portée de type processus métier aux Web Beans, ou pour ajouter le support d'une portée conversation à une application qui utilise Wicket."
+
Modified: doc/trunk/reference/fr-FR/injection.po
===================================================================
--- doc/trunk/reference/fr-FR/injection.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/injection.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-05 00:00+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,19 +17,19 @@
#: injection.xml:4
#, no-c-format
msgid "Dependency injection"
-msgstr ""
+msgstr "Injection de dépendance"
#. Tag: para
#: injection.xml:6
#, no-c-format
msgid "Web Beans supports three primary mechanisms for dependency injection:"
-msgstr ""
+msgstr "Les Web Beans suportent trois principaux mécanismes d'injection de dépendance:"
#. Tag: para
#: injection.xml:8
#, no-c-format
msgid "Constructor parameter injection:"
-msgstr ""
+msgstr "Injection de paramètre de constructeur:"
#. Tag: programlisting
#: injection.xml:10
@@ -46,12 +46,22 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[public class Checkout {\n"
+" \n"
+" private final ShoppingCart cart;\n"
+" \n"
+" @Initializer\n"
+" public Checkout(ShoppingCart cart) {\n"
+" this.cart = cart;\n"
+" }\n"
+"\n"
+"}]]>"
#. Tag: para
#: injection.xml:12
#, no-c-format
msgid "<emphasis>Initializer</emphasis> method parameter injection:"
-msgstr ""
+msgstr "Injection de paramètre dans une méthode d'<emphasis>initialisation</emphasis>:"
#. Tag: programlisting
#: injection.xml:14
@@ -68,12 +78,22 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public class Checkout {\n"
+" \n"
+" private ShoppingCart cart;\n"
+"\n"
+" @Initializer \n"
+" void setShoppingCart(ShoppingCart cart) {\n"
+" this.cart = cart;\n"
+" }\n"
+" \n"
+"}]]>"
#. Tag: para
#: injection.xml:16
#, no-c-format
msgid "And direct field injection:"
-msgstr ""
+msgstr "Et injection directe dans un champ:"
#. Tag: programlisting
#: injection.xml:18
@@ -85,69 +105,59 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public class Checkout {\n"
+"\n"
+" private @Current ShoppingCart cart;\n"
+" \n"
+"}]]>"
#. Tag: para
#: injection.xml:20
#, no-c-format
-msgid ""
-"Dependency injection always occurs when the Web Bean instance is first "
-"instantiated."
-msgstr ""
+msgid "Dependency injection always occurs when the Web Bean instance is first instantiated."
+msgstr "L'injection de dépendance se produit toujours lorsque l'instance du Web Bean vient d'être instanciée."
#. Tag: para
#: injection.xml:25
#, no-c-format
-msgid ""
-"First, the Web Bean manager calls the Web Bean constructor, to obtain an "
-"instance of the Web Bean."
-msgstr ""
+msgid "First, the Web Bean manager calls the Web Bean constructor, to obtain an instance of the Web Bean."
+msgstr "D'abord, le gestionnaire de Web Beans, appelle le constructeur du Web Bean, pour obtenir une instance d'un Web Bean."
#. Tag: para
#: injection.xml:29
#, no-c-format
-msgid ""
-"Next, the Web Bean manager initializes the values of all injected fields of "
-"the Web Bean."
-msgstr ""
+msgid "Next, the Web Bean manager initializes the values of all injected fields of the Web Bean."
+msgstr "Ensuite, le gestionnaire de Web Bean initialise les valeurs de tous les champs injectés du Web Bean."
#. Tag: para
#: injection.xml:33
#, no-c-format
msgid "Next, the Web Bean manager calls all initializer methods of Web Bean."
-msgstr ""
+msgstr "Puis, le gestionnaire de Web Bean appelle toutes les méthodes d'initalisation du Web Bean."
#. Tag: para
#: injection.xml:37
#, no-c-format
-msgid ""
-"Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if "
-"any, is called."
-msgstr ""
+msgid "Finally, the <literal>@PostConstruct</literal> method of the Web Bean, if any, is called."
+msgstr "Enfin, la méthode <literal>@PostConstruct</literal> du Web Bean, si il en a une, est appelée."
#. Tag: para
#: injection.xml:42
#, no-c-format
-msgid ""
-"Constructor parameter injection is not supported for EJB beans, since the "
-"EJB is instantiated by the EJB container, not the Web Bean manager."
-msgstr ""
+msgid "Constructor parameter injection is not supported for EJB beans, since the EJB is instantiated by the EJB container, not the Web Bean manager."
+msgstr "L'injection de paramètre de constructeur n'est pas supportée pour les EJB beans, car l'EJB est instanciée par le conteneurs d'EJB, pas par le gestionnaire de Web Beans."
#. Tag: para
#: injection.xml:45
#, no-c-format
-msgid ""
-"Parameters of constructors and initializer methods need not be explicitly "
-"annotated when the default binding type <literal>@Current</literal> applies. "
-"Injected fields, however, <emphasis>must</emphasis> specify a binding type, "
-"even when the default binding type applies. If the field does not specify a "
-"binding type, it will not be injected."
-msgstr ""
+msgid "Parameters of constructors and initializer methods need not be explicitly annotated when the default binding type <literal>@Current</literal> applies. Injected fields, however, <emphasis>must</emphasis> specify a binding type, even when the default binding type applies. If the field does not specify a binding type, it will not be injected."
+msgstr "Les paramètres des constructeurs et des méthodes d'initialisation n'ont pas besoin d'être annotés explicitement lors que le type de liaison par défaut <literal>@Current</literal> s'applique. Les champs injectés par contre <emphasis>doivent</emphasis> spécifier un type de liaison, même lorsque le type de liaison par défaut s'applique. Si le champ ne spécifie pas de type de liaison, il ne sera pas injecté."
#. Tag: para
#: injection.xml:51
#, no-c-format
msgid "Producer methods also support parameter injection:"
-msgstr ""
+msgstr "Les méthodes productrices supportent également l'injection de paramètre:"
#. Tag: programlisting
#: injection.xml:53
@@ -157,86 +167,63 @@
" return new Checkout(cart);\n"
"}]]>"
msgstr ""
+"<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
+" return new Checkout(cart);\n"
+"}]]>"
#. Tag: para
#: injection.xml:55
#, no-c-format
-msgid ""
-"Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), "
-"disposal methods and destructor methods all support parameter injection."
-msgstr ""
+msgid "Finally, observer methods (which we'll meet in <xref linkend=\"events\"/>), disposal methods and destructor methods all support parameter injection."
+msgstr "Enfin, les méthodes observatrices (que nous rencontrerons dans <xref linkend=\"events\"/>), de nettoyage et de destructions supportent toutes l'injection de paramètre."
#. Tag: para
#: injection.xml:58
#, no-c-format
-msgid ""
-"The Web Beans specification defines a procedure, called the "
-"<emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean "
-"manager follows when identifying the Web Bean to inject to an injection "
-"point. This algorithm looks complex at first, but once you understand it, "
-"it's really quite intuitive. Typesafe resolution is performed at system "
-"initialization time, which means that the manager will inform the user "
-"immediately if a Web Bean's dependencies cannot be satisfied, by throwing a "
-"<literal>UnsatisfiedDependencyException</literal> or "
-"<literal>AmbiguousDependencyException</literal>."
-msgstr ""
+msgid "The Web Beans specification defines a procedure, called the <emphasis>typesafe resolution algorithm</emphasis>, that the Web Bean manager follows when identifying the Web Bean to inject to an injection point. This algorithm looks complex at first, but once you understand it, it's really quite intuitive. Typesafe resolution is performed at system initialization time, which means that the manager will inform the user immediately if a Web Bean's dependencies cannot be satisfied, by throwing a <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
+msgstr "La spécification Web Beans définie une procédure, appelée <emphasis>algorithme de résolution typesafe</emphasis>, que le gestionnaire de Web Beans suit lorsqu'il identifie le Web Bean à injecter dans un point d'injection. Cet algorithme paraît complexe à première vue, mais une fois que vous l'avez compris, il est plutôt intuitif. La résolution typesafe est effectuée au moment de l'initialisation du système, ce qui veut dire que le gestionnaire informera l'utilisateur immédiatement si une dépendance d'un Web Bean ne peut être satisfaite, en lançant une <literal>UnsatisfiedDependencyException</literal> ou une <literal>AmbiguousDependencyException</literal>."
#. Tag: para
#: injection.xml:67
#, no-c-format
-msgid ""
-"The purpose of this algorithm is to allow multiple Web Beans to implement "
-"the same API type and either:"
-msgstr ""
+msgid "The purpose of this algorithm is to allow multiple Web Beans to implement the same API type and either:"
+msgstr "Le but de cet algorithme est de permettre à plusieurs Web Beans d'implémenter la même API et soit:"
#. Tag: para
#: injection.xml:72
#, no-c-format
-msgid ""
-"allow the client to select which implementation it requires using "
-"<emphasis>binding annotations</emphasis>,"
-msgstr ""
+msgid "allow the client to select which implementation it requires using <emphasis>binding annotations</emphasis>,"
+msgstr "de permettre au client à sélectionner quelle implémentation il souhaite utiliser en utilisant des <emphasis>annotations de liaison</emphasis>,"
#. Tag: para
#: injection.xml:77
#, no-c-format
-msgid ""
-"allow the application deployer to select which implementation is appropriate "
-"for a particular deployment, without changes to the client, by enabling or "
-"disabling <emphasis>deployment types</emphasis>, or"
-msgstr ""
+msgid "allow the application deployer to select which implementation is appropriate for a particular deployment, without changes to the client, by enabling or disabling <emphasis>deployment types</emphasis>, or"
+msgstr "soit permettre à déployeur de l'application de sélectionner quelle implémentation est appropriée pour un déploiement particulier, sans changement sur le client, en activant ou en désactivant des <emphasis>types de déploiement</emphasis>, ou"
#. Tag: para
#: injection.xml:82
#, no-c-format
-msgid ""
-"allow one implementation of an API to override another implementation of the "
-"same API at deployment time, without changes to the client, using "
-"<emphasis>deployment type precedence</emphasis>."
-msgstr ""
+msgid "allow one implementation of an API to override another implementation of the same API at deployment time, without changes to the client, using <emphasis>deployment type precedence</emphasis>."
+msgstr "en permettant une implémentation d'une API de surcharger une autre implémentation de la même API au moment du déploiement, sans changement sur le client, en utilisant la <emphasis>précédence de type de déploiement</emphasis>."
#. Tag: para
#: injection.xml:88
#, no-c-format
-msgid ""
-"Let's explore how the Web Beans manager determines a Web Bean to be injected."
-msgstr ""
+msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
+msgstr "Explorons comment le gestionnaire de Web Beans détermine le Web Bean à injecter."
#. Tag: title
#: injection.xml:91
#, no-c-format
msgid "Binding annotations"
-msgstr ""
+msgstr "Annotations de liaison"
#. Tag: para
#: injection.xml:93
#, no-c-format
-msgid ""
-"If we have more than one Web Bean that implements a particular API type, the "
-"injection point can specify exactly which Web Bean should be injected using "
-"a binding annotation. For example, there might be two implementations of "
-"<literal>PaymentProcessor</literal>:"
-msgstr ""
+msgid "If we have more than one Web Bean that implements a particular API type, the injection point can specify exactly which Web Bean should be injected using a binding annotation. For example, there might be two implementations of <literal>PaymentProcessor</literal>:"
+msgstr "Si nous avons plus d'un Web Bean qui implémente une API, le point d'injection peut spécifier exactement quel Web Bean devrait être injecté en utilisant une annotation de liaison. Par exemple, il peut y avoir deux implémentation de <literal>PaymentProcessor</literal>:"
#. Tag: programlisting
#: injection.xml:98
@@ -247,6 +234,10 @@
" public void process(Payment payment) { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+" public void process(Payment payment) { ... }\n"
+"}]]>"
#. Tag: programlisting
#: injection.xml:100
@@ -257,14 +248,16 @@
" public void process(Payment payment) { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@PayByCreditCard\n"
+"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+" public void process(Payment payment) { ... }\n"
+"}]]>"
#. Tag: para
#: injection.xml:102
#, no-c-format
-msgid ""
-"Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</"
-"literal> are binding annotations:"
-msgstr ""
+msgid "Where <literal>@PayByCheque</literal> and <literal>@PayByCreditCard</literal> are binding annotations:"
+msgstr "Où <literal>@PayByCheque</literal> et <literal>@PayByCreditCard</literal> sont des annotations de liaison:"
#. Tag: programlisting
#: injection.xml:105
@@ -275,6 +268,10 @@
"@BindingType\n"
"public @interface PayByCheque {}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayByCheque {}]]>"
#. Tag: programlisting
#: injection.xml:107
@@ -285,20 +282,22 @@
"@BindingType\n"
"public @interface PayByCreditCard {}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayByCreditCard {}]]>"
#. Tag: para
#: injection.xml:109
#, no-c-format
-msgid ""
-"A client Web Bean developer uses the binding annotation to specify exactly "
-"which Web Bean should be injected."
-msgstr ""
+msgid "A client Web Bean developer uses the binding annotation to specify exactly which Web Bean should be injected."
+msgstr "Un développeur client d'un Web Bean peut utiliser l'annotation de liaison pour spécifier exactement quel Web Bean doit être injecté."
#. Tag: para
#: injection.xml:112
#, no-c-format
msgid "Using field injection:"
-msgstr ""
+msgstr "En utilisant l'injection de champ:"
#. Tag: programlisting
#: injection.xml:114
@@ -307,32 +306,38 @@
"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
msgstr ""
+"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
+"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
#. Tag: para
#: injection.xml:116
#, no-c-format
msgid "Using initializer method injection:"
-msgstr ""
+msgstr "En utilisant l'injection de méthode d'initialisation:"
#. Tag: programlisting
#: injection.xml:118
#, no-c-format
msgid ""
"<![CDATA[@Initializer\n"
-"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
-"chequePaymentProcessor, \n"
-" @PayByCreditCard PaymentProcessor "
-"creditCardPaymentProcessor) {\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
+" @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
" this.chequePaymentProcessor = chequePaymentProcessor;\n"
" this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
"}]]>"
msgstr ""
+"<![CDATA[@Initializer\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
+" @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+" this.chequePaymentProcessor = chequePaymentProcessor;\n"
+" this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"}]]>"
#. Tag: para
#: injection.xml:120
#, no-c-format
msgid "Or using constructor injection:"
-msgstr ""
+msgstr "Ou en utilisant l'injection de constructeur:"
#. Tag: programlisting
#: injection.xml:122
@@ -340,24 +345,29 @@
msgid ""
"<![CDATA[@Initializer\n"
"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
-" @PayByCreditCard PaymentProcessor "
-"creditCardPaymentProcessor) {\n"
+" @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
" this.chequePaymentProcessor = chequePaymentProcessor;\n"
" this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
"}]]>"
msgstr ""
+"<![CDATA[@Initializer\n"
+"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
+" @PayByCreditCard PaymentProcessor creditCardPaymentProcessor) {\n"
+" this.chequePaymentProcessor = chequePaymentProcessor;\n"
+" this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"}]]>"
#. Tag: title
#: injection.xml:125
#, no-c-format
msgid "Binding annotations with members"
-msgstr ""
+msgstr "Annotations de liaisons avec membres"
#. Tag: para
#: injection.xml:127
#, no-c-format
msgid "Binding annotations may have members:"
-msgstr ""
+msgstr "Les annotations de liaison peuvent avoir des membres:"
#. Tag: programlisting
#: injection.xml:129
@@ -370,12 +380,18 @@
" PaymentType value();\n"
"}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayBy {\n"
+" PaymentType value();\n"
+"}]]>"
#. Tag: para
#: injection.xml:131
#, no-c-format
msgid "In which case, the member value is significant:"
-msgstr ""
+msgstr "Dans ce cas, la valeur du membre est importante:"
#. Tag: programlisting
#: injection.xml:133
@@ -384,53 +400,50 @@
"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
msgstr ""
+"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
#. Tag: para
#: injection.xml:135
#, no-c-format
-msgid ""
-"You can tell the Web Bean manager to ignore a member of a binding annotation "
-"type by annotating the member <literal>@NonBinding</literal>."
-msgstr ""
+msgid "You can tell the Web Bean manager to ignore a member of a binding annotation type by annotating the member <literal>@NonBinding</literal>."
+msgstr "Vous pouvez dire au gestionnaire de Web Bean d'ignorer un membre d'un type d'annotation de liaison en annotant le membre <literal>@NonBinding</literal>."
#. Tag: title
#: injection.xml:141
#, no-c-format
msgid "Combinations of binding annnotations"
-msgstr ""
+msgstr "Combinaison d'annotations de liaison"
#. Tag: para
#: injection.xml:143
#, no-c-format
msgid "An injection point may even specify multiple binding annotations:"
-msgstr ""
+msgstr "Un point d'injection peut même spécifier plusieurs annotations de liaison:"
#. Tag: programlisting
#: injection.xml:145
#, no-c-format
-msgid ""
-"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr ""
+msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
#: injection.xml:147
#, no-c-format
-msgid ""
-"In this case, only a Web Bean which has <emphasis>both</emphasis> binding "
-"annotations would be eligible for injection."
-msgstr ""
+msgid "In this case, only a Web Bean which has <emphasis>both</emphasis> binding annotations would be eligible for injection."
+msgstr "Dans ce cas, seul un Web Bean qui a <emphasis>les deux</emphasis> annotations de liaison serait éligible pour l'injection."
#. Tag: title
#: injection.xml:153
#, no-c-format
msgid "Binding annotations and producer methods"
-msgstr ""
+msgstr "Annotations de liaison et méthodes productrices"
#. Tag: para
#: injection.xml:155
#, no-c-format
msgid "Even producer methods may specify binding annotations:"
-msgstr ""
+msgstr "Même les méthodes productrices peuvent spécifier des annotations de liaison:"
#. Tag: programlisting
#: injection.xml:157
@@ -438,74 +451,63 @@
msgid ""
"<![CDATA[@Produces \n"
"@Asynchronous @PayByCheque \n"
-"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
-"processor) {\n"
+"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
" return new AsynchronousPaymentProcessor(processor);\n"
"}]]>"
msgstr ""
+"<![CDATA[@Produces \n"
+"@Asynchronous @PayByCheque \n"
+"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor processor) {\n"
+" return new AsynchronousPaymentProcessor(processor);\n"
+"}]]>"
#. Tag: title
#: injection.xml:162
#, no-c-format
msgid "The default binding type"
-msgstr ""
+msgstr "Le type de liaison par défaut "
#. Tag: para
#: injection.xml:164
#, no-c-format
-msgid ""
-"Web Beans defines a binding type <literal>@Current</literal> that is the "
-"default binding type for any injection point or Web Bean that does not "
-"explicitly specify a binding type."
-msgstr ""
+msgid "Web Beans defines a binding type <literal>@Current</literal> that is the default binding type for any injection point or Web Bean that does not explicitly specify a binding type."
+msgstr "Les Web Beans définissent un type de liaison<literal>@Current</literal> qui est le type de liaison par défaut pour tout point d'injection ou pour un Web Bean qui ne spécifie par explicitement un type de liaison."
#. Tag: para
#: injection.xml:168
#, no-c-format
-msgid ""
-"There are two common circumstances in which it is necessary to explicitly "
-"specify <literal>@Current</literal>:"
-msgstr ""
+msgid "There are two common circumstances in which it is necessary to explicitly specify <literal>@Current</literal>:"
+msgstr "Il y a deux cas où il peut être nécessaire de spécifier explicitement <literal>@Current</literal>:"
#. Tag: para
#: injection.xml:173
#, no-c-format
-msgid ""
-"on a field, in order to declare it as an injected field with the default "
-"binding type, and"
-msgstr ""
+msgid "on a field, in order to declare it as an injected field with the default binding type, and"
+msgstr "sur un champ, pour le déclarer en tant que champ injecté avec le type de liaison par défaut, et"
#. Tag: para
#: injection.xml:177
#, no-c-format
-msgid ""
-"on a Web Bean which has another binding type in addition to the default "
-"binding type."
-msgstr ""
+msgid "on a Web Bean which has another binding type in addition to the default binding type."
+msgstr "sur un Web Bean qui a un autre type de liaison en plus du type de liaison par défaut."
#. Tag: title
#: injection.xml:187
#, no-c-format
msgid "Deployment types"
-msgstr ""
+msgstr "Types de déploiement"
#. Tag: para
#: injection.xml:189
#, no-c-format
-msgid ""
-"All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment "
-"type identifies a set of Web Beans that should be conditionally installed in "
-"some deployments of the system."
-msgstr ""
+msgid "All Web Beans have a <emphasis>deployment type</emphasis>. Each deployment type identifies a set of Web Beans that should be conditionally installed in some deployments of the system."
+msgstr "Tous les Web Beans ont un <emphasis>type de déploiement</emphasis>. Chaque type de déploiement identifie un ensemble de Web Beans qui doivent être installés conditionnellement à certains déploiement du système."
#. Tag: para
#: injection.xml:193
#, no-c-format
-msgid ""
-"For example, we could define a deployment type named <literal>@Mock</"
-"literal>, which would identify Web Beans that should only be installed when "
-"the system executes inside an integration testing environment:"
-msgstr ""
+msgid "For example, we could define a deployment type named <literal>@Mock</literal>, which would identify Web Beans that should only be installed when the system executes inside an integration testing environment:"
+msgstr "Par exemple, nous pourriont définir un type de déploiement nommé <literal>@Mock</literal>, qui identifierait les Web Beans qui devraient être installés uniquement lorsque le système s'exécute dans un environnement de test d'intégration:"
#. Tag: programlisting
#: injection.xml:197
@@ -516,14 +518,16 @@
" @DeploymentType\n"
" public @interface Mock {}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+" @Target({TYPE, METHOD})\n"
+" @DeploymentType\n"
+" public @interface Mock {}]]>"
#. Tag: para
#: injection.xml:199
#, no-c-format
-msgid ""
-"Suppose we had some Web Bean that interacted with an external system to "
-"process payments:"
-msgstr ""
+msgid "Suppose we had some Web Bean that interacted with an external system to process payments:"
+msgstr "Supposons que nous ayons un Web Bean qui a interagit avec un sytème externe afin de traiter les paiements:"
#. Tag: programlisting
#: injection.xml:202
@@ -537,22 +541,25 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public class ExternalPaymentProcessor {\n"
+" \n"
+" public void process(Payment p) {\n"
+" ...\n"
+" }\n"
+" \n"
+"}]]>"
#. Tag: para
#: injection.xml:204
#, no-c-format
-msgid ""
-"Since this Web Bean does not explicitly specify a deployment type, it has "
-"the default deployment type <literal>@Production</literal>."
-msgstr ""
+msgid "Since this Web Bean does not explicitly specify a deployment type, it has the default deployment type <literal>@Production</literal>."
+msgstr "Puisque ce Web Bean ne spécifie pas explicitement un type de déploiement, il a le type de déploiement par défaut <literal>@Production</literal>."
#. Tag: para
#: injection.xml:207
#, no-c-format
-msgid ""
-"For integration or unit testing, the external system is slow or unavailable. "
-"So we would create a mock object:"
-msgstr ""
+msgid "For integration or unit testing, the external system is slow or unavailable. So we would create a mock object:"
+msgstr "Pour l'intégration ou le test unitaire, le système de paiement externe est lent ou indisponible. Donc nous créerions un objet bouchon:"
#. Tag: programlisting
#: injection.xml:210
@@ -568,39 +575,39 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[@Mock \n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"\n"
+" @Override\n"
+" public void process(Payment p) {\n"
+" p.setSuccessful(true);\n"
+" }\n"
+"\n"
+"}]]>"
#. Tag: para
#: injection.xml:212
#, no-c-format
-msgid ""
-"But how does the Web Bean manager determine which implementation to use in a "
-"particular deployment?"
-msgstr ""
+msgid "But how does the Web Bean manager determine which implementation to use in a particular deployment?"
+msgstr "Mais comment le gestionnaire de Web Beans détermine-t-il quelle implémentation utiliser dans un déploiement particulier?"
#. Tag: title
#: injection.xml:216
#, no-c-format
msgid "Enabling deployment types"
-msgstr ""
+msgstr "Activer les types de déploiement"
#. Tag: para
#: injection.xml:218
#, no-c-format
-msgid ""
-"Web Beans defines two built-in deployment types: <literal>@Production</"
-"literal> and <literal>@Standard</literal>. By default, only Web Beans with "
-"the built-in deployment types are enabled when the system is deployed. We "
-"can identify additional deployment types to be enabled in a particular "
-"deployment by listing them in <literal>web-beans.xml</literal>."
-msgstr ""
+msgid "Web Beans defines two built-in deployment types: <literal>@Production</literal> and <literal>@Standard</literal>. By default, only Web Beans with the built-in deployment types are enabled when the system is deployed. We can identify additional deployment types to be enabled in a particular deployment by listing them in <literal>web-beans.xml</literal>."
+msgstr "Les Web Beans définissent deux types de déploiement: <literal>@Production</literal> et <literal>@Standard</literal>. Par défaut, seuls les Web Beans avec les types de déploiement prédéfinis sont activés lorsque le système est déployé. Nous pouvons identifier des types de déploiement comme étant activés dans une déploiement particulier en les listant dans <literal>web-beans.xml</literal>."
#. Tag: para
#: injection.xml:224
#, no-c-format
-msgid ""
-"Going back to our example, when we deploy our integration tests, we want all "
-"our <literal>@Mock</literal> objects to be installed:"
-msgstr ""
+msgid "Going back to our example, when we deploy our integration tests, we want all our <literal>@Mock</literal> objects to be installed:"
+msgstr "Revenons à notre exemple, lorsque nous déployons nos tests d'intégration, nous voulons que tous nos objets <literal>@Mock</literal> soient installés:"
#. Tag: programlisting
#: injection.xml:227
@@ -614,208 +621,150 @@
" </Deploy>\n"
"</WebBeans>]]>"
msgstr ""
+"<![CDATA[<WebBeans>\n"
+" <Deploy>\n"
+" <Standard/>\n"
+" <Production/>\n"
+" <test:Mock/>\n"
+" </Deploy>\n"
+"</WebBeans>]]>"
#. Tag: para
#: injection.xml:229
#, no-c-format
-msgid ""
-"Now the Web Bean manager will identify and install all Web Beans annotated "
-"<literal>@Production</literal>, <literal>@Standard</literal> or "
-"<literal>@Mock</literal> at deployment time."
-msgstr ""
+msgid "Now the Web Bean manager will identify and install all Web Beans annotated <literal>@Production</literal>, <literal>@Standard</literal> or <literal>@Mock</literal> at deployment time."
+msgstr "A partir de maintenant le gestionnaire de Web Beans va identifier et installer tous les Web Beans annotés <literal>@Production</literal>, <literal>@Standard</literal> ou <literal>@Mock</literal> au déploiement."
#. Tag: para
#: injection.xml:233
#, no-c-format
-msgid ""
-"The deployment type <literal>@Standard</literal> is used only for certain "
-"special Web Beans defined by the Web Beans specification. We can't use it "
-"for our own Web Beans, and we can't disable it."
-msgstr ""
+msgid "The deployment type <literal>@Standard</literal> is used only for certain special Web Beans defined by the Web Beans specification. We can't use it for our own Web Beans, and we can't disable it."
+msgstr "Le type de déploiement <literal>@Standard</literal> est utilisé uniquement pour certains Web Beans spéciaux définis par la spécification Web Beans. Nous ne pouvons pas l'utiliser pour nos propres Web Beans, et nous ne pouvons pas le désactiver."
#. Tag: para
#: injection.xml:237
#, no-c-format
-msgid ""
-"The deployment type <literal>@Production</literal> is the default deployment "
-"type for Web Beans which don't explicitly declare a deployment type, and may "
-"be disabled."
-msgstr ""
+msgid "The deployment type <literal>@Production</literal> is the default deployment type for Web Beans which don't explicitly declare a deployment type, and may be disabled."
+msgstr "Le type de déploiement <literal>@Production</literal> est le type de déploiement par défaut pour les Web Beans qui n'ont pas déclaré explicitement de type de déploiement, et peuvent être désactivés."
#. Tag: title
#: injection.xml:244
#, no-c-format
msgid "Deployment type precedence"
-msgstr ""
+msgstr "Précédence des type de déploiement"
#. Tag: para
#: injection.xml:246
#, no-c-format
-msgid ""
-"If you've been paying attention, you're probably wondering how the Web Bean "
-"manager decides which implementation — <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> — to choose. Consider "
-"what happens when the manager encounters this injection point:"
-msgstr ""
+msgid "If you've been paying attention, you're probably wondering how the Web Bean manager decides which implementation — <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> — to choose. Consider what happens when the manager encounters this injection point:"
+msgstr "Si vous avez fait attention, vous vous demandez probablement comment le gestionnaire de Web Beans décide quelle implémentation — <literal>ExternalPaymentProcessor</literal> ou <literal>MockPaymentProcessor</literal>— choisir. Considérez ce qui se passe lorsque le gestionnaire rencontre un point d'injection:"
#. Tag: programlisting
#: injection.xml:251
#, no-c-format
msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr ""
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
#: injection.xml:253
#, no-c-format
-msgid ""
-"There are now two Web Beans which satisfy the <literal>PaymentProcessor</"
-"literal> contract. Of course, we can't use a binding annotation to "
-"disambiguate, since binding annotations are hard-coded into the source at "
-"the injection point, and we want the manager to be able to decide at "
-"deployment time!"
-msgstr ""
+msgid "There are now two Web Beans which satisfy the <literal>PaymentProcessor</literal> contract. Of course, we can't use a binding annotation to disambiguate, since binding annotations are hard-coded into the source at the injection point, and we want the manager to be able to decide at deployment time!"
+msgstr "Il y a maintenant deux Web Beans qui satisfont le contrat <literal>PaymentProcessor</literal>. Bien sur, nous ne pouvons pas utiliser d'annotation de liaison pour résoudre l'ambiguïté, puisque le annotations de liaison sont codées en dur dans le source au point d'injection, et nous voulons que le gestionnaire puisse décider de cela au déploiement!"
#. Tag: para
#: injection.xml:258
#, no-c-format
-msgid ""
-"The solution to this problem is that each deployment type has a different "
-"<emphasis>precedence</emphasis>. The precedence of the deployment types is "
-"determined by the order in which they appear in <literal>web-beans.xml</"
-"literal>. In our example, <literal>@Mock</literal> appears later than "
-"<literal>@Production</literal> so it has a higher precedence."
-msgstr ""
+msgid "The solution to this problem is that each deployment type has a different <emphasis>precedence</emphasis>. The precedence of the deployment types is determined by the order in which they appear in <literal>web-beans.xml</literal>. In our example, <literal>@Mock</literal> appears later than <literal>@Production</literal> so it has a higher precedence."
+msgstr "La solution à ce problème est que chaque type de déploiement a une <emphasis>précédence</emphasis> différente. La précédence des types de déploiement est déterminée par l'ordre dans lequel ils apparaissent dans <literal>web-beans.xml</literal>. Dans notre exemple, <literal>@Mock</literal> apparaît après <literal>@Production</literal> donc il a une précédence plus haute."
#. Tag: para
#: injection.xml:264
#, no-c-format
-msgid ""
-"Whenever the manager discovers that more than one Web Bean could satisfy the "
-"contract (API type plus binding annotations) specified by an injection "
-"point, it considers the relative precedence of the Web Beans. If one has a "
-"higher precedence than the others, it chooses the higher precedence Web Bean "
-"to inject. So, in our example, the Web Bean manager will inject "
-"<literal>MockPaymentProcessor</literal> when executing in our integration "
-"testing environment (which is exactly what we want)."
-msgstr ""
+msgid "Whenever the manager discovers that more than one Web Bean could satisfy the contract (API type plus binding annotations) specified by an injection point, it considers the relative precedence of the Web Beans. If one has a higher precedence than the others, it chooses the higher precedence Web Bean to inject. So, in our example, the Web Bean manager will inject <literal>MockPaymentProcessor</literal> when executing in our integration testing environment (which is exactly what we want)."
+msgstr "Dés que le gestionnaire découvre qu'il y a plus d'un Web Bean satisfaisant le contrat (API plus annotation de liaison) spécifié à un point d'injection, il considère la précédence relative des Web Beans. S'il y en a un ayant une plus grande précédence que les autres, il choisit le Web Bean de plus grande précédence pour l'injection. Donc, dans notre exemple, le gestionnaire de Web Bean va injecter <literal>MockPaymentProcessor</literal> lorsqu'il s'exécute dans notre environnement de test d'intégration (ce qui est exactement ce que nous voulons)."
#. Tag: para
#: injection.xml:271
#, no-c-format
-msgid ""
-"It's interesting to compare this facility to today's popular manager "
-"architectures. Various \"lightweight\" containers also allow conditional "
-"deployment of classes that exist in the classpath, but the classes that are "
-"to be deployed must be explicity, individually, listed in configuration code "
-"or in some XML configuration file. Web Beans does support Web Bean "
-"definition and configuration via XML, but in the common case where no "
-"complex configuration is required, deployment types allow a whole set of Web "
-"Beans to be enabled with a single line of XML. Meanwhile, a developer "
-"browsing the code can easily identify what deployment scenarios the Web Bean "
-"will be used in."
-msgstr ""
+msgid "It's interesting to compare this facility to today's popular manager architectures. Various \"lightweight\" containers also allow conditional deployment of classes that exist in the classpath, but the classes that are to be deployed must be explicity, individually, listed in configuration code or in some XML configuration file. Web Beans does support Web Bean definition and configuration via XML, but in the common case where no complex configuration is required, deployment types allow a whole set of Web Beans to be enabled with a single line of XML. Meanwhile, a developer browsing the code can easily identify what deployment scenarios the Web Bean will be used in."
+msgstr "Il est intéressant de comparer cette manière de faire aux architectures des gestionnaires populaire d'aujourd'hui. Différents conteneurs \"légers\" permettent également un déploiement conditionnel de classes qui existent dans le classpath, mais les classes qui sont déployées doivent être explicitement, individuellement, listées dans du code de configuration ou dans un fichier de configuration XML. Les Web Beans supportent la définition du Web Bean et la configuration par XML, mais dans le cas courant où aucune configuration complexe n'est requise, les types de déploiement permettent à tout un ensemble de Web Beans d'être activés avec une seule ligne en XML. En même temps, un développeur parcourant le code peut facilement identifier dans quels scénarios de déploiement un Web Bean sera utilisé."
#. Tag: title
#: injection.xml:284
#, no-c-format
msgid "Example deployment types"
-msgstr ""
+msgstr "Exemple de types de déploiement"
#. Tag: para
#: injection.xml:286
#, no-c-format
-msgid ""
-"Deployment types are useful for all kinds of things, here's some examples:"
-msgstr ""
+msgid "Deployment types are useful for all kinds of things, here's some examples:"
+msgstr "Les types de déploiement sont utiles pour tous un tas de choses, en voici quelques exemples:"
#. Tag: para
#: injection.xml:290
#, no-c-format
-msgid ""
-"<literal>@Mock</literal> and <literal>@Staging</literal> deployment types "
-"for testing"
-msgstr ""
+msgid "<literal>@Mock</literal> and <literal>@Staging</literal> deployment types for testing"
+msgstr "<literal>@Mock</literal> and <literal>@Staging</literal> deployment types for testing"
#. Tag: para
#: injection.xml:294
#, no-c-format
msgid "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
-msgstr ""
+msgstr "<literal>@AustralianTaxLaw</literal> for site-specific Web Beans"
#. Tag: para
#: injection.xml:297
#, no-c-format
-msgid ""
-"<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party "
-"frameworks which build on Web Beans"
-msgstr ""
+msgid "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party frameworks which build on Web Beans"
+msgstr "<literal>@SeamFramework</literal>, <literal>@Guice</literal> for third-party frameworks which build on Web Beans"
#. Tag: para
#: injection.xml:301
#, no-c-format
-msgid ""
-"<literal>@Standard</literal> for standard Web Beans defined by the Web Beans "
-"specification"
-msgstr ""
+msgid "<literal>@Standard</literal> for standard Web Beans defined by the Web Beans specification"
+msgstr "<literal>@Standard</literal> for standard Web Beans defined by the Web Beans specification"
#. Tag: para
#: injection.xml:306
#, no-c-format
msgid "I'm sure you can think of more applications..."
-msgstr ""
+msgstr "Je suis sûr que vous pouvez penser à d'autres applications..."
#. Tag: title
#: injection.xml:313
#, no-c-format
msgid "Fixing unsatisfied dependencies"
-msgstr ""
+msgstr "Résoudre les dépendances insatisfaites"
#. Tag: para
#: injection.xml:315
#, no-c-format
-msgid ""
-"The typesafe resolution algorithm fails when, after considering the binding "
-"annotations and and deployment types of all Web Beans that implement the API "
-"type of an injection point, the Web Bean manager is unable to identify "
-"exactly one Web Bean to inject."
-msgstr ""
+msgid "The typesafe resolution algorithm fails when, after considering the binding annotations and and deployment types of all Web Beans that implement the API type of an injection point, the Web Bean manager is unable to identify exactly one Web Bean to inject."
+msgstr "L'algorithme de résolution typesafe échoue lorsque, après avoir analysé les annotations de liaison et les types de déploiement de tous les Web Beans qui implémentent l'API d'un point d'injection, le gestionnaire de Web Bean est incapable d'identifier exactement un Web Bean à injecter."
#. Tag: para
#: injection.xml:320
#, no-c-format
-msgid ""
-"It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
-"literal> or <literal>AmbiguousDependencyException</literal>."
-msgstr ""
+msgid "It's usually easy to fix an <literal>UnsatisfiedDependencyException</literal> or <literal>AmbiguousDependencyException</literal>."
+msgstr "Il est d'habitude facile de résoudre une <literal>UnsatisfiedDependencyException</literal> ou une <literal>AmbiguousDependencyException</literal>."
#. Tag: para
#: injection.xml:323
#, no-c-format
-msgid ""
-"To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide "
-"a Web Bean which implements the API type and has the binding types of the "
-"injection point — or enable the deployment type of a Web Bean that "
-"already implements the API type and has the binding types."
+msgid "To fix an <literal>UnsatisfiedDependencyException</literal>, simply provide a Web Bean which implements the API type and has the binding types of the injection point — or enable the deployment type of a Web Bean that already implements the API type and has the binding types."
msgstr ""
#. Tag: para
#: injection.xml:328
#, no-c-format
-msgid ""
-"To fix an <literal>AmbiguousDependencyException</literal>, introduce a "
-"binding type to distinguish between the two implementations of the API type, "
-"or change the deployment type of one of the implementations so that the Web "
-"Bean manager can use deployment type precedence to choose between them. An "
-"<literal>AmbiguousDependencyException</literal> can only occur if two Web "
-"Beans share a binding type and have exactly the same deployment type."
+msgid "To fix an <literal>AmbiguousDependencyException</literal>, introduce a binding type to distinguish between the two implementations of the API type, or change the deployment type of one of the implementations so that the Web Bean manager can use deployment type precedence to choose between them. An <literal>AmbiguousDependencyException</literal> can only occur if two Web Beans share a binding type and have exactly the same deployment type."
msgstr ""
#. Tag: para
#: injection.xml:335
#, no-c-format
-msgid ""
-"There's one more issue you need to be aware of when using dependency "
-"injection in Web Beans."
+msgid "There's one more issue you need to be aware of when using dependency injection in Web Beans."
msgstr ""
#. Tag: title
@@ -827,54 +776,31 @@
#. Tag: para
#: injection.xml:343
#, no-c-format
-msgid ""
-"Clients of an injected Web Bean do not usually hold a direct reference to a "
-"Web Bean instance."
+msgid "Clients of an injected Web Bean do not usually hold a direct reference to a Web Bean instance."
msgstr ""
#. Tag: para
#: injection.xml:346
#, no-c-format
-msgid ""
-"Imagine that a Web Bean bound to the application scope held a direct "
-"reference to a Web Bean bound to the request scope. The application scoped "
-"Web Bean is shared between many different requests. However, each request "
-"should see a different instance of the request scoped Web bean!"
+msgid "Imagine that a Web Bean bound to the application scope held a direct reference to a Web Bean bound to the request scope. The application scoped Web Bean is shared between many different requests. However, each request should see a different instance of the request scoped Web bean!"
msgstr ""
#. Tag: para
#: injection.xml:351
#, no-c-format
-msgid ""
-"Now imagine that a Web Bean bound to the session scope held a direct "
-"reference to a Web Bean bound to the application scope. From time to time, "
-"the session context is serialized to disk in order to use memory more "
-"efficiently. However, the application scoped Web Bean instance should not be "
-"serialized along with the session scoped Web Bean!"
+msgid "Now imagine that a Web Bean bound to the session scope held a direct reference to a Web Bean bound to the application scope. From time to time, the session context is serialized to disk in order to use memory more efficiently. However, the application scoped Web Bean instance should not be serialized along with the session scoped Web Bean!"
msgstr ""
#. Tag: para
#: injection.xml:357
#, no-c-format
-msgid ""
-"Therefore, unless a Web Bean has the default scope <literal>@Dependent</"
-"literal>, the Web Bean manager must indirect all injected references to the "
-"Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is "
-"responsible for ensuring that the Web Bean instance that receives a method "
-"invocation is the instance that is associated with the current context. The "
-"client proxy also allows Web Beans bound to contexts such as the session "
-"context to be serialized to disk without recursively serializing other "
-"injected Web Beans."
+msgid "Therefore, unless a Web Bean has the default scope <literal>@Dependent</literal>, the Web Bean manager must indirect all injected references to the Web Bean through a proxy object. This <emphasis>client proxy</emphasis> is responsible for ensuring that the Web Bean instance that receives a method invocation is the instance that is associated with the current context. The client proxy also allows Web Beans bound to contexts such as the session context to be serialized to disk without recursively serializing other injected Web Beans."
msgstr ""
#. Tag: para
#: injection.xml:365
#, no-c-format
-msgid ""
-"Unfortunately, due to limitations of the Java language, some Java types "
-"cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager "
-"throws an <literal>UnproxyableDependencyException</literal> if the type of "
-"an injection point cannot be proxied."
+msgid "Unfortunately, due to limitations of the Java language, some Java types cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager throws an <literal>UnproxyableDependencyException</literal> if the type of an injection point cannot be proxied."
msgstr ""
#. Tag: para
@@ -886,9 +812,7 @@
#. Tag: para
#: injection.xml:374
#, no-c-format
-msgid ""
-"classes which are declared <literal>final</literal> or have a "
-"<literal>final</literal> method,"
+msgid "classes which are declared <literal>final</literal> or have a <literal>final</literal> method,"
msgstr ""
#. Tag: para
@@ -906,11 +830,7 @@
#. Tag: para
#: injection.xml:385
#, no-c-format
-msgid ""
-"It's usually very easy to fix an <literal>UnproxyableDependencyException</"
-"literal>. Simply add a constructor with no parameters to the injected class, "
-"introduce an interface, or change the scope of the injected Web Bean to "
-"<literal>@Dependent</literal>."
+msgid "It's usually very easy to fix an <literal>UnproxyableDependencyException</literal>. Simply add a constructor with no parameters to the injected class, introduce an interface, or change the scope of the injected Web Bean to <literal>@Dependent</literal>."
msgstr ""
#. Tag: title
@@ -922,9 +842,7 @@
#. Tag: para
#: injection.xml:394
#, no-c-format
-msgid ""
-"The application may obtain an instance of the interface <literal>Manager</"
-"literal> by injection:"
+msgid "The application may obtain an instance of the interface <literal>Manager</literal> by injection:"
msgstr ""
#. Tag: programlisting
@@ -936,45 +854,33 @@
#. Tag: para
#: injection.xml:399
#, no-c-format
-msgid ""
-"The <literal>Manager</literal> object provides a set of methods for "
-"obtaining a Web Bean instance programatically."
+msgid "The <literal>Manager</literal> object provides a set of methods for obtaining a Web Bean instance programatically."
msgstr ""
#. Tag: programlisting
#: injection.xml:402
#, no-c-format
-msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class);]]>"
+msgid "<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class);]]>"
msgstr ""
#. Tag: para
#: injection.xml:404
#, no-c-format
-msgid ""
-"Binding annotations may be specified by subclassing the helper class "
-"<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
-"instantiate an annotation type in Java."
+msgid "Binding annotations may be specified by subclassing the helper class <literal>AnnotationLiteral</literal>, since it is otherwise difficult to instantiate an annotation type in Java."
msgstr ""
#. Tag: programlisting
#: injection.xml:408
#, no-c-format
msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
-" new "
-"AnnotationLiteral<CreditCard>(){});]]>"
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
+" new AnnotationLiteral<CreditCard>(){});]]>"
msgstr ""
#. Tag: para
#: injection.xml:410
#, no-c-format
-msgid ""
-"If the binding type has an annotation member, we can't use an anonymous "
-"subclass of <literal>AnnotationLiteral</literal> — instead we'll need to "
-"create a named subclass:"
+msgid "If the binding type has an annotation member, we can't use an anonymous subclass of <literal>AnnotationLiteral</literal> — instead we'll need to create a named subclass:"
msgstr ""
#. Tag: programlisting
@@ -990,57 +896,40 @@
#: injection.xml:415
#, no-c-format
msgid ""
-"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
-"class, \n"
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor.class, \n"
" new CreditCardBinding() { \n"
-" public void value() "
-"{ return paymentType; } \n"
+" public void value() { return paymentType; } \n"
" } );]]>"
msgstr ""
#. Tag: title
#: injection.xml:419
#, no-c-format
-msgid ""
-"Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
-"and <literal>@PersistenceContext</literal>"
+msgid "Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal>"
msgstr ""
#. Tag: para
#: injection.xml:422
#, no-c-format
-msgid ""
-"Enterprise Web Beans support all the lifecycle callbacks defined by the EJB "
-"specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
-"literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</"
-"literal>."
+msgid "Enterprise Web Beans support all the lifecycle callbacks defined by the EJB specification: <literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</literal>."
msgstr ""
#. Tag: para
#: injection.xml:426
#, no-c-format
-msgid ""
-"Simple Web Beans support only the <literal>@PostConstruct</literal> and "
-"<literal>@PreDestroy</literal> callbacks."
+msgid "Simple Web Beans support only the <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> callbacks."
msgstr ""
#. Tag: para
#: injection.xml:429
#, no-c-format
-msgid ""
-"Both enterprise and simple Web Beans support the use of <literal>@Resource</"
-"literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> "
-"for injection of Java EE resources, EJBs and JPA persistence contexts, "
-"respectively. Simple Web Beans do not support the use of "
-"<literal>@PersistenceContext(type=EXTENDED)</literal>."
+msgid "Both enterprise and simple Web Beans support the use of <literal>@Resource</literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> for injection of Java EE resources, EJBs and JPA persistence contexts, respectively. Simple Web Beans do not support the use of <literal>@PersistenceContext(type=EXTENDED)</literal>."
msgstr ""
#. Tag: para
#: injection.xml:434
#, no-c-format
-msgid ""
-"The <literal>@PostConstruct</literal> callback always occurs after all "
-"dependencies have been injected."
+msgid "The <literal>@PostConstruct</literal> callback always occurs after all dependencies have been injected."
msgstr ""
#. Tag: title
@@ -1052,52 +941,37 @@
#. Tag: para
#: injection.xml:442
#, no-c-format
-msgid ""
-"There are certain kinds of dependent objects — Web Beans with scope "
-"<literal>@Dependent</literal> — that need to know something about the "
-"object or injection point into which they are injected in order to be able "
-"to do what they do. For example:"
+msgid "There are certain kinds of dependent objects — Web Beans with scope <literal>@Dependent</literal> — that need to know something about the object or injection point into which they are injected in order to be able to do what they do. For example:"
msgstr ""
#. Tag: para
#: injection.xml:448
#, no-c-format
-msgid ""
-"The log category for a <literal>Logger</literal> depends upon the class of "
-"the object that owns it."
+msgid "The log category for a <literal>Logger</literal> depends upon the class of the object that owns it."
msgstr ""
#. Tag: para
#: injection.xml:452
#, no-c-format
-msgid ""
-"Injection of a HTTP parameter or header value depends upon what parameter or "
-"header name was specified at the injection point."
+msgid "Injection of a HTTP parameter or header value depends upon what parameter or header name was specified at the injection point."
msgstr ""
#. Tag: para
#: injection.xml:456
#, no-c-format
-msgid ""
-"Injection of the result of an EL expression evaluation depends upon the "
-"expression that was specified at the injection point."
+msgid "Injection of the result of an EL expression evaluation depends upon the expression that was specified at the injection point."
msgstr ""
#. Tag: para
#: injection.xml:461
#, no-c-format
-msgid ""
-"A Web Bean with scope <literal>@Dependent</literal> may inject an instance "
-"of <literal>InjectionPoint</literal> and access metadata relating to the "
-"injection point to which it belongs."
+msgid "A Web Bean with scope <literal>@Dependent</literal> may inject an instance of <literal>InjectionPoint</literal> and access metadata relating to the injection point to which it belongs."
msgstr ""
#. Tag: para
#: injection.xml:465
#, no-c-format
-msgid ""
-"Let's look at an example. The following code is verbose, and vulnerable to "
-"refactoring problems:"
+msgid "Let's look at an example. The following code is verbose, and vulnerable to refactoring problems:"
msgstr ""
#. Tag: programlisting
@@ -1109,9 +983,7 @@
#. Tag: para
#: injection.xml:470
#, no-c-format
-msgid ""
-"This clever little producer method lets you inject a JDK <literal>Logger</"
-"literal> without explicitly specifying the log category:"
+msgid "This clever little producer method lets you inject a JDK <literal>Logger</literal> without explicitly specifying the log category:"
msgstr ""
#. Tag: programlisting
@@ -1121,8 +993,7 @@
"<![CDATA[class LogFactory {\n"
"\n"
" @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
-" return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
-"getName()); \n"
+" return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); \n"
" }\n"
"\n"
"}]]>"
@@ -1143,9 +1014,7 @@
#. Tag: para
#: injection.xml:479
#, no-c-format
-msgid ""
-"Not convinced? Then here's a second example. To inject HTTP parameters, we "
-"need to define a binding type:"
+msgid "Not convinced? Then here's a second example. To inject HTTP parameters, we need to define a binding type:"
msgstr ""
#. Tag: programlisting
@@ -1188,8 +1057,7 @@
"\n"
" @Produces @HttpParam(\"\")\n"
" String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
-" return request.getParameter(ip.getAnnotation(HttpParam.class).value"
-"());\n"
+" return request.getParameter(ip.getAnnotation(HttpParam.class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1198,18 +1066,13 @@
#. Tag: para
#: injection.xml:492
#, no-c-format
-msgid ""
-"(Note that the <literal>value()</literal> member of the <literal>HttpParam</"
-"literal> annotation is ignored by the Web Bean manager since it is annotated "
-"<literal>@NonBinding.</literal>)"
+msgid "(Note that the <literal>value()</literal> member of the <literal>HttpParam</literal> annotation is ignored by the Web Bean manager since it is annotated <literal>@NonBinding.</literal>)"
msgstr ""
#. Tag: para
#: injection.xml:495
#, no-c-format
-msgid ""
-"The Web Bean manager provides a built-in Web Bean that implements the "
-"<literal>InjectionPoint</literal> interface:"
+msgid "The Web Bean manager provides a built-in Web Bean that implements the <literal>InjectionPoint</literal> interface:"
msgstr ""
#. Tag: programlisting
@@ -1224,3 +1087,4 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
msgstr ""
+
Modified: doc/trunk/reference/fr-FR/master.po
===================================================================
--- doc/trunk/reference/fr-FR/master.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/master.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-02-01 21:16+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-05 00:03+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,40 +17,35 @@
#: master.xml:10
#, no-c-format
msgid "Note"
-msgstr ""
+msgstr "Note"
#. Tag: para
#: master.xml:11
#, no-c-format
-msgid ""
-"JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts "
-"and Dependency Injection\". The reference guide still refers to JSR-299 as "
-"\"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI"
-"\". Other documentation, blogs, forum posts etc. may use the new "
-"nomenclature, including the new name for the JSR-299 Reference "
-"Implementation - \"Web Beans\"."
-msgstr ""
+msgid "JSR-299 has recently changed it's name from \"Web Beans\" to \"Java Contexts and Dependency Injection\". The reference guide still refers to JSR-299 as \"Web Beans\" and the JSR-299 Reference Implementation as the \"Web Beans RI\". Other documentation, blogs, forum posts etc. may use the new nomenclature, including the new name for the JSR-299 Reference Implementation - \"Web Beans\"."
+msgstr "La JSR-299 a récemment été renommée de \"Web Beans\" vers \"Java Contexts and Dependency Injection\". Ce guide de référence réfère toujours la JSR-299 comme \"Web Beans\" et l'implémentation de référence de la JSR-299 comme \"Web Beans RI\". D'autres documentations, blogs, articles de forums etc. peuvent utiliser la nouvelle nomenclature, y compris le nouveau nom pour l'implémentation de référence de la JSR-299 - \"Web Beans\"."
#. Tag: title
#: master.xml:24
#, no-c-format
msgid "Using contextual objects"
-msgstr ""
+msgstr "Utiliser des objets contextuels"
#. Tag: title
#: master.xml:37
#, no-c-format
msgid "Developing loosely-coupled code"
-msgstr ""
+msgstr "Développer du code faiblement couplé"
#. Tag: title
#: master.xml:47
#, no-c-format
msgid "Making the most of strong typing"
-msgstr ""
+msgstr "Tirer meilleur parti du typage fort"
#. Tag: title
#: master.xml:58
#, no-c-format
msgid "Web Beans and the Java EE ecosystem"
-msgstr ""
+msgstr "Web Beans et l'écosystème Java EE"
+
Modified: doc/trunk/reference/fr-FR/next.po
===================================================================
--- doc/trunk/reference/fr-FR/next.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/next.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-02 23:32+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,33 +17,23 @@
#: next.xml:4
#, no-c-format
msgid "Next steps"
-msgstr ""
+msgstr "Etapes suivantes"
#. Tag: para
#: next.xml:6
#, no-c-format
-msgid ""
-"Because Web Beans is so new, there's not yet a lot of information available "
-"online."
-msgstr ""
+msgid "Because Web Beans is so new, there's not yet a lot of information available online."
+msgstr "Comme les Web Beans sont très récents, il n'y a pas encore beaucoup d'informations disponibles en ligne à leur sujet."
#. Tag: para
#: next.xml:9
#, no-c-format
-msgid ""
-"Of course, the Web Beans specification is the best source of more "
-"information about Web Beans. The spec is about 100 pages long, only twice "
-"the length of this article, and almost as readable. But, of course, it "
-"covers many details that we've skipped over. The spec is available from "
-"<literal>http://jcp.org/en/jsr/detail?id=299</literal>."
-msgstr ""
+msgid "Of course, the Web Beans specification is the best source of more information about Web Beans. The spec is about 100 pages long, only twice the length of this article, and almost as readable. But, of course, it covers many details that we've skipped over. The spec is available from <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
+msgstr "Evidemment, la spécification des Web Beans est la meilleure source d'information supplémentaire à propos des Web Beans. La spec fait environ 100 pages de long, seulement deux fois la longueur de cet article et presque aussi lisible. Mais, bien sûr, elle couvre beaucoup de détails que nous avons évités. La spec est disponible sur <literal>http://jcp.org/en/jsr/detail?id=299</literal>."
#. Tag: para
#: next.xml:15
#, no-c-format
-msgid ""
-"The Web Beans Reference implementation is being developed at <literal>http://"
-"seamframework.org/WebBeans</literal>. The RI development team and the Web "
-"Beans spec lead blog at <literal>http://in.relation.to</literal>. This "
-"article is substantially based upon a series of blog entries published there."
-msgstr ""
+msgid "The Web Beans Reference implementation is being developed at <literal>http://seamframework.org/WebBeans</literal>. The RI development team and the Web Beans spec lead blog at <literal>http://in.relation.to</literal>. This article is substantially based upon a series of blog entries published there."
+msgstr "L'implémentation de référence des Web Beans est en train d'être développée sur <literal>http://seamframework.org/WebBeans</literal>. L'équipe de développement de l'implémentation de référence et le blog du chef de spec des Web Beans est disponible sur <literal>http://in.relation.to</literal>. Cet article se base en grande partie sur une série de billets publiées là."
+
Modified: doc/trunk/reference/fr-FR/part3.po
===================================================================
--- doc/trunk/reference/fr-FR/part3.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/part3.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-07 15:15+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -16,135 +16,102 @@
#. Tag: para
#: part3.xml:5
#, no-c-format
-msgid ""
-"The second major theme of Web Beans is <emphasis>strong typing</emphasis>. "
-"The information about the dependencies, interceptors and decorators of a Web "
-"Bean, and the information about event consumers for an event producer, is "
-"contained in typesafe Java constructs that may be validated by the compiler."
-msgstr ""
+msgid "The second major theme of Web Beans is <emphasis>strong typing</emphasis>. The information about the dependencies, interceptors and decorators of a Web Bean, and the information about event consumers for an event producer, is contained in typesafe Java constructs that may be validated by the compiler."
+msgstr "Le second thème majeur des Web Beans est <emphasis>le typage fort</emphasis>. L'information sur les dépendances, les intercepteurs et les décorateurs d'un Web Bean, et l'information sur les consommateurs évènements pour un producteur d'évènements, est contenue dans des constructions Java typesafe qui peuvent être validées par le compilateur."
#. Tag: para
#: part3.xml:10
#, no-c-format
-msgid ""
-"You don't see string-based identifiers in Web Beans code, not because the "
-"framework is hiding them from you using clever defaulting rules — so-"
-"called \"configuration by convention\" — but because there are simply no "
-"strings there to begin with!"
-msgstr ""
+msgid "You don't see string-based identifiers in Web Beans code, not because the framework is hiding them from you using clever defaulting rules — so-called \"configuration by convention\" — but because there are simply no strings there to begin with!"
+msgstr "Vous ne voyez pas d'identifiants basés sur des chaînes de caractères dans un code Web Bean, pas parce que le framework vous les cache en utilisant des règles par défaut intelligentes — les soit-disant \"configuration par convention\" — mais parce qu'il n'y a même pas de chaînes de caractères pour commencer!"
#. Tag: para
#: part3.xml:15
#, no-c-format
-msgid ""
-"The obvious benefit of this approach is that <emphasis>any</emphasis> IDE "
-"can provide autocompletion, validation and refactoring without the need for "
-"special tooling. But there is a second, less-immediately-obvious, benefit. "
-"It turns out that when you start thinking of identifying objects, events or "
-"interceptors via annotations instead of names, you have an opportunity to "
-"lift the semantic level of your code."
-msgstr ""
+msgid "The obvious benefit of this approach is that <emphasis>any</emphasis> IDE can provide autocompletion, validation and refactoring without the need for special tooling. But there is a second, less-immediately-obvious, benefit. It turns out that when you start thinking of identifying objects, events or interceptors via annotations instead of names, you have an opportunity to lift the semantic level of your code."
+msgstr "Le bénéfice évident de cette approche est que <emphasis>tout<emphasis> EDI peuvet fournir de l'autocomplétion, de la validation et du refactoring sans avoir besoin d'une outillage spécial. Mais il y a un second bénéfice, moins évident. Quand vous pensez à identifier des objets, des évènements ou des intercepteurs via annotations à la place de noms, vous avez l'opportunité d'élever le niveau sémantique de votre code."
#. Tag: para
#: part3.xml:21
#, no-c-format
-msgid ""
-"Web Beans encourages you develop annotations that model concepts, for "
-"example,"
-msgstr ""
+msgid "Web Beans encourages you develop annotations that model concepts, for example,"
+msgstr "Les Web Beans vous encouragent à développer des annotaions qui modélisent des concepts, par exemple,"
#. Tag: para
#: part3.xml:26
#, no-c-format
msgid "<literal>@Asynchronous</literal>,"
-msgstr ""
+msgstr "<literal>@Asynchronous</literal>,"
#. Tag: para
#: part3.xml:29
#, no-c-format
msgid "<literal>@Mock</literal>,"
-msgstr ""
+msgstr "<literal>@Mock</literal>,"
#. Tag: para
#: part3.xml:32
#, no-c-format
msgid "<literal>@Secure</literal> or"
-msgstr ""
+msgstr "<literal>@Secure</literal> or"
#. Tag: para
#: part3.xml:35
#, no-c-format
msgid "<literal>@Updated</literal>,"
-msgstr ""
+msgstr "<literal>@Updated</literal>,"
#. Tag: para
#: part3.xml:39
#, no-c-format
msgid "instead of using compound names like"
-msgstr ""
+msgstr "au lieu d'utiliser des noms composés comme"
#. Tag: para
#: part3.xml:43
#, no-c-format
msgid "<literal>asyncPaymentProcessor</literal>,"
-msgstr ""
+msgstr "<literal>asyncPaymentProcessor</literal>,"
#. Tag: para
#: part3.xml:46
#, no-c-format
msgid "<literal>mockPaymentProcessor</literal>,"
-msgstr ""
+msgstr "<literal>mockPaymentProcessor</literal>,"
#. Tag: para
#: part3.xml:49
#, no-c-format
msgid "<literal>SecurityInterceptor</literal> or"
-msgstr ""
+msgstr "<literal>SecurityInterceptor</literal> or"
#. Tag: para
#: part3.xml:52
#, no-c-format
msgid "<literal>DocumentUpdatedEvent</literal>."
-msgstr ""
+msgstr "<literal>DocumentUpdatedEvent</literal>."
#. Tag: para
#: part3.xml:56
#, no-c-format
-msgid ""
-"The annotations are reusable. They help describe common qualities of "
-"disparate parts of the system. They help us categorize and understand our "
-"code. They help us deal with common concerns in a common way. They make our "
-"code more literate and more understandable."
-msgstr ""
+msgid "The annotations are reusable. They help describe common qualities of disparate parts of the system. They help us categorize and understand our code. They help us deal with common concerns in a common way. They make our code more literate and more understandable."
+msgstr "Les annotations sont réutilisables. Ils aident à décrire des qualités communes de parties disparates du système. Elles nous aident à catégoriser et à comprendre notre code. Elles nous aident à traiter des problèmes communs d'une manière commune. Elles rendent notre code plus litéral et plus compréhensible."
#. Tag: para
#: part3.xml:61
#, no-c-format
-msgid ""
-"Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A "
-"stereotype models a common <emphasis>role</emphasis> in your application "
-"architecture. It encapsulates various properties of the role, including "
-"scope, interceptor bindings, deployment type, etc, into a single reusable "
-"package."
-msgstr ""
+msgid "Web Beans <emphasis>stereotypes</emphasis> take this idea a step further. A stereotype models a common <emphasis>role</emphasis> in your application architecture. It encapsulates various properties of the role, including scope, interceptor bindings, deployment type, etc, into a single reusable package."
+msgstr "Les <emphasis>stéréotypes</emphasis> Web Beans poussent cette idée d'une étape supplémentaire. Un stéréotype modélise un <emphasis>role</emphasis> commun dans votre architecture d'application. Il encapsule des propriétés variées du rôle, comme la portée, les liaisions d'intercepteurs, le type de déploiement, etc, dans un seul paquetage réutilisable."
#. Tag: para
#: part3.xml:66
#, no-c-format
-msgid ""
-"Even Web Beans XML metadata is strongly typed! There's no compiler for XML, "
-"so Web Beans takes advantage of XML schemas to validate the Java types and "
-"attributes that appear in XML. This approach turns out to make the XML more "
-"literate, just like annotations made our Java code more literate."
-msgstr ""
+msgid "Even Web Beans XML metadata is strongly typed! There's no compiler for XML, so Web Beans takes advantage of XML schemas to validate the Java types and attributes that appear in XML. This approach turns out to make the XML more literate, just like annotations made our Java code more literate."
+msgstr "Même les métadonnées XML des Web Beans sont fortement typées! Il n'y a pas de compilateur XML, donc les Web Beans utilisent des schémas XML pour valider les types Java et les attributs qui apparaissent dans le XML. Cette approche permet de rendre le XML plus litéral, tout comme les annotations rendent notre code Java plus litéral."
#. Tag: para
#: part3.xml:71
#, no-c-format
-msgid ""
-"We're now ready to meet some more advanced features of Web Beans. Bear in "
-"mind that these features exist to make our code both easier to validate and "
-"more understandable. Most of the time you don't ever really <emphasis>need</"
-"emphasis> to use these features, but if you use them wisely, you'll come to "
-"appreciate their power."
-msgstr ""
+msgid "We're now ready to meet some more advanced features of Web Beans. Bear in mind that these features exist to make our code both easier to validate and more understandable. Most of the time you don't ever really <emphasis>need</emphasis> to use these features, but if you use them wisely, you'll come to appreciate their power."
+msgstr "Nous commes maintenant prêts à découvrir quelques fonctionnalités plus avancées des Web Beans. Gardez à l'esprit que ces fonctionnalités existent pour rendre notre code à la fois plus facile à valider et plus compréhensible. La plupart du temps nous n'avons pas réellement <emphasis>besoin</emphaiss> d'utiliser ces fonctionnalités, mais si vous les utilisez sagement, vous en viendrez à apprécier leur pouvoir."
+
Modified: doc/trunk/reference/fr-FR/part4.po
===================================================================
--- doc/trunk/reference/fr-FR/part4.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/part4.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-07 15:02+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -16,37 +16,18 @@
#. Tag: para
#: part4.xml:5
#, no-c-format
-msgid ""
-"The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans "
-"was designed to work in concert with other technologies, helping the "
-"application developer fit the other technologies together. Web Beans is an "
-"open technology. It forms a part of the Java EE ecosystem, and is itself the "
-"foundation for a new ecosystem of portable extensions and integration with "
-"existing frameworks and technologies."
-msgstr ""
+msgid "The third theme of Web Beans is <emphasis>integration</emphasis>. Web Beans was designed to work in concert with other technologies, helping the application developer fit the other technologies together. Web Beans is an open technology. It forms a part of the Java EE ecosystem, and is itself the foundation for a new ecosystem of portable extensions and integration with existing frameworks and technologies."
+msgstr "Le troisième thème des Web Beans est l'<emphasis>intégration</emphasis>. Les Web Beans ont été conçus pour travailler de concert avec d'autres technologies, en aidant le développeur d'application à emboîter les autres technologies les une dans les autres. Les Web Beans sont une technologie ouverte. Ils font parti de l'écosystème Java EE, et ils sont la fondation d'un nouvel écosystème d'extensions portables et d'intégrations avec des frameworks et technologies existantes."
#. Tag: para
#: part4.xml:12
#, no-c-format
-msgid ""
-"We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs "
-"to be bound directly to JSF pages. That's just the beginning. Web Beans "
-"offers the same potential to diverse other technologies, such as Business "
-"Process Management engines, other Web Frameworks, and third-party component "
-"models. The Java EE platform will never be able to standardize all the "
-"interesting technologies that are used in the world of Java application "
-"development, but Web Beans makes it easier to use the technologies which are "
-"not yet part of the platform seamlessly within the Java EE environment."
-msgstr ""
+msgid "We've already seen how Web Beans helps integrate EJB and JSF, allowing EJBs to be bound directly to JSF pages. That's just the beginning. Web Beans offers the same potential to diverse other technologies, such as Business Process Management engines, other Web Frameworks, and third-party component models. The Java EE platform will never be able to standardize all the interesting technologies that are used in the world of Java application development, but Web Beans makes it easier to use the technologies which are not yet part of the platform seamlessly within the Java EE environment."
+msgstr "Nous avons déjà vu comment les Web Beans aident à intégrer les EJB et JSF, en permettant aux EJB d'être directement liés aux pages JSF. Mais c'est juste le début. Les Web Beans offrent le même potentiel pour intégrer d'autres technologies, telles que des moteurs de gestion de processus métiers, d'autres Frameworks Web, et des modèles à composants tiers. La plateforme Java EE ne sera jamais capable de standardiser toutes les technologies intéressantes utilisées dans le monde Java, mais les Web Beans rendent plus facile l'utilisation de technologies qui ne font pas encore parti de la plateforme de manière transparente dans un environnement Java EE."
#. Tag: para
#: part4.xml:21
#, no-c-format
-msgid ""
-"We're about to see how to take full advantage of the Java EE platform in an "
-"application that uses Web Beans. We'll also briefly meet a set of SPIs that "
-"are provided to support portable extensions to Web Beans. You might not ever "
-"need to use these SPIs directly, but it's nice to know they are there if you "
-"need them. Most importantly, you'll take advantage of them indirectly, every "
-"time you use a third-party extension."
-msgstr ""
+msgid "We're about to see how to take full advantage of the Java EE platform in an application that uses Web Beans. We'll also briefly meet a set of SPIs that are provided to support portable extensions to Web Beans. You might not ever need to use these SPIs directly, but it's nice to know they are there if you need them. Most importantly, you'll take advantage of them indirectly, every time you use a third-party extension."
+msgstr "Nous sommes sur le point de tirer plein avantage de la plateforme Java EE dans une application utilisant les Web Beans. Nous rencontrerons aussi brièvement un ensemble de SPIs qui sont fournies pour supporter des extensions portables à Web Beans. Vous pouvez ne pas avoir besoin d'utiliser ces SPIs directement, mais il est bon de savoir qu'elles sont là si vous avez besoin d'elles. Et plus important , vous en tirerez avantage indirectement chaque fois que vous utilisez une extension tierce."
+
Modified: doc/trunk/reference/fr-FR/xml.po
===================================================================
--- doc/trunk/reference/fr-FR/xml.po 2009-02-07 13:57:07 UTC (rev 1447)
+++ doc/trunk/reference/fr-FR/xml.po 2009-02-07 14:17:44 UTC (rev 1448)
@@ -3,11 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2009-02-07 14:53+0100\n"
+"Last-Translator: Vincent Latombe <vincent.latombe(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -17,105 +17,79 @@
#: xml.xml:4
#, no-c-format
msgid "Defining Web Beans using XML"
-msgstr ""
+msgstr "Définir des Web Beans en utilisant XML"
#. Tag: para
#: xml.xml:6
#, no-c-format
-msgid ""
-"So far, we've seen plenty of examples of Web Beans declared using "
-"annotations. However, there are a couple of occasions when we can't use "
-"annotations to define the Web Bean:"
-msgstr ""
+msgid "So far, we've seen plenty of examples of Web Beans declared using annotations. However, there are a couple of occasions when we can't use annotations to define the Web Bean:"
+msgstr "Jusqu'ici, nous avons vu plein d'exemples de Web Beans déclarés à l'aide d'annotations. Cependant, il y a quelques cas où nous ne pouvons pas utiliser les annotations pour définir un Web Bean:"
#. Tag: para
#: xml.xml:12
#, no-c-format
msgid "when the implementation class comes from some preexisting library, or"
-msgstr ""
+msgstr "quand la class d'implémentation provient d'une librairie existante, ou"
#. Tag: para
#: xml.xml:15
#, no-c-format
-msgid ""
-"when there should be multiple Web Beans with the same implementation class."
-msgstr ""
+msgid "when there should be multiple Web Beans with the same implementation class."
+msgstr "quand il y aurait plusieurs Web Beans ayant la même classe d'implémentation."
#. Tag: para
#: xml.xml:20
#, no-c-format
msgid "In either of these cases, Web Beans gives us two options:"
-msgstr ""
+msgstr "Dans tous ces cas, les Web Beans nous offrent deux possibilités:"
#. Tag: para
#: xml.xml:23
#, no-c-format
msgid "write a producer method, or"
-msgstr ""
+msgstr "écrire une méthode productrice, ou"
#. Tag: para
#: xml.xml:24
#, no-c-format
msgid "declare the Web Bean using XML."
-msgstr ""
+msgstr "déclarer le Web Bean en utilisant XML."
#. Tag: para
#: xml.xml:27
#, no-c-format
-msgid ""
-"Many frameworks use XML to provide metadata relating to Java classes. "
-"However, Web Beans uses a very different approach to specifying the names of "
-"Java classes, fields or methods to most other frameworks. Instead of writing "
-"class and member names as the string values of XML elements and attributes, "
-"Web Beans lets you use the class or member name as the name of the XML "
-"element."
-msgstr ""
+msgid "Many frameworks use XML to provide metadata relating to Java classes. However, Web Beans uses a very different approach to specifying the names of Java classes, fields or methods to most other frameworks. Instead of writing class and member names as the string values of XML elements and attributes, Web Beans lets you use the class or member name as the name of the XML element."
+msgstr "De nombreux frameworks utilisent XML pour fournir des métadonnées relatives aux classes Java. Cependant, les Web Beans utilisent une approche très différente pour spécifier les noms des classes, champs ou méthodes Java aux autres frameworks. Au lieu d'écrire les noms des classes et des membres dans des éléments et attributs XML, les Web Beans vous permettent d'utiliser le nom de class ou de membre comme nom de l'élément XML."
#. Tag: para
#: xml.xml:33
#, no-c-format
-msgid ""
-"The advantage of this approach is that you can write an XML schema that "
-"prevents spelling errors in your XML document. It's even possible for a tool "
-"to generate the XML schema automatically from the compiled Java code. Or, an "
-"integrated development environment could perform the same validation without "
-"the need for the explicit intermediate generation step."
-msgstr ""
+msgid "The advantage of this approach is that you can write an XML schema that prevents spelling errors in your XML document. It's even possible for a tool to generate the XML schema automatically from the compiled Java code. Or, an integrated development environment could perform the same validation without the need for the explicit intermediate generation step."
+msgstr "L'avantage de cette méthode est que vous pouvez écrire une schéma XML qui empêche les erreurs de saisies dans votre document XML. Il est même possible de générer le schéma XML automatiquement à partir du code Java compilé, grâce à un outil. Ou, un environnement de développement intégré pourrait effectuer la même validation sans avoir besoin d'une étape de génération explicite."
#. Tag: title
#: xml.xml:40
#, no-c-format
msgid "Declaring Web Bean classes"
-msgstr ""
+msgstr "Déclarer des classes Web Beans"
#. Tag: para
#: xml.xml:42
#, no-c-format
-msgid ""
-"For each Java package, Web Beans defines a corresponding XML namespace. The "
-"namespace is formed by prepending <literal>urn:java:</literal> to the Java "
-"package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
-"namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr ""
+msgid "For each Java package, Web Beans defines a corresponding XML namespace. The namespace is formed by prepending <literal>urn:java:</literal> to the Java package name. For the package <literal>com.mydomain.myapp</literal>, the XML namespace is <literal>urn:java:com.mydomain.myapp</literal>."
+msgstr "Pour chaque paquetage Java, les Web Beans définissent un espace de nom XML correspondant. L'espace de nom est fabriqué en préfixant le nom du paquetage Java par <literal>urn:java:</literal>. Pour le paquetage <literal>com.mydomain.myapp</literal>, l'espace de nom XML est <literal>urn:java:com.mydomain.myapp</literal>."
#. Tag: para
#: xml.xml:47
#, no-c-format
-msgid ""
-"Java types belonging to a package are referred to using an XML element in "
-"the namespace corresponding to the package. The name of the element is the "
-"name of the Java type. Fields and methods of the type are specified by child "
-"elements in the same namespace. If the type is an annotation, members are "
-"specified by attributes of the element."
-msgstr ""
+msgid "Java types belonging to a package are referred to using an XML element in the namespace corresponding to the package. The name of the element is the name of the Java type. Fields and methods of the type are specified by child elements in the same namespace. If the type is an annotation, members are specified by attributes of the element."
+msgstr "Les types Java appartenant à un paquetage sont référencés dans un élément XML du namespace correspondant au paquetage. Le nom de l'élément est le nom du type Java. Les champs et méthodes du type sont spécifiés par des éléments enfants dans le même espace de noms. Si le type est une annotation, les membres sont spécifiés par des attributs de l'élément."
#. Tag: para
#: xml.xml:53
#, no-c-format
-msgid ""
-"For example, the element <literal><util:Date/></literal> in the "
-"following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr ""
+msgid "For example, the element <literal><util:Date/></literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr "Par exemple, l'élément <literal><util:Date/></literal> dans le fragment XML suivant référencela class <literal>java.util.Date</literal>:"
#. Tag: programlisting
#: xml.xml:56
@@ -128,35 +102,36 @@
"\n"
"</WebBeans>]]>"
msgstr ""
+"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
+" xmlns:util=\"urn:java:java.util\">\n"
+"\n"
+" <util:Date/>\n"
+"\n"
+"</WebBeans>]]>"
#. Tag: para
#: xml.xml:58
#, no-c-format
-msgid ""
-"And this is all the code we need to declare that <literal>Date</literal> is "
-"a simple Web Bean! An instance of <literal>Date</literal> may now be "
-"injected by any other Web Bean:"
-msgstr ""
+msgid "And this is all the code we need to declare that <literal>Date</literal> is a simple Web Bean! An instance of <literal>Date</literal> may now be injected by any other Web Bean:"
+msgstr "Et ceci est tout le code dont nous avons besoin pour déclarer que <literal>Date</literal> est un simple Web Bean! Un instance de <literal>Date</literal> peut maintenant être injectée par n'importe quel autre Web Bean:"
#. Tag: programlisting
#: xml.xml:62
#, no-c-format
msgid "<![CDATA[@Current Date date]]>"
-msgstr ""
+msgstr "<![CDATA[@Current Date date]]>"
#. Tag: title
#: xml.xml:67
#, no-c-format
msgid "Declaring Web Bean metadata"
-msgstr ""
+msgstr "Déclarer les métadonnées d'un Web Bean"
#. Tag: para
#: xml.xml:69
#, no-c-format
-msgid ""
-"We can declare the scope, deployment type and interceptor binding types "
-"using direct child elements of the Web Bean declaration:"
-msgstr ""
+msgid "We can declare the scope, deployment type and interceptor binding types using direct child elements of the Web Bean declaration:"
+msgstr "Nous pouvons déclarer la portée, le type de déploiement et les types de liaison d'intercepteurs en utilisant les éléments enfants directs de la déclaration du Web Bean:"
#. Tag: programlisting
#: xml.xml:72
@@ -168,12 +143,17 @@
" <myfwk:Secure/>\n"
"</myapp:ShoppingCart>]]>"
msgstr ""
+"<![CDATA[<myapp:ShoppingCart>\n"
+" <SessionScoped/>\n"
+" <myfwk:Transactional requiresNew=\"true\"/>\n"
+" <myfwk:Secure/>\n"
+"</myapp:ShoppingCart>]]>"
#. Tag: para
#: xml.xml:74
#, no-c-format
msgid "We use exactly the same approach to specify names and binding type:"
-msgstr ""
+msgstr "Nous utilisons exactement la même approche pour spécifier les noms et les types de liaison:"
#. Tag: programlisting
#: xml.xml:76
@@ -195,14 +175,27 @@
" <Named>systemStartTime</Named>\n"
"</util:Date>]]>"
msgstr ""
+"<![CDATA[<util:Date>\n"
+" <Named>currentTime</Named>\n"
+"</util:Date>\n"
+"\n"
+"<util:Date>\n"
+" <SessionScoped/>\n"
+" <myapp:Login/>\n"
+" <Named>loginTime</Named>\n"
+"</util:Date>\n"
+"\n"
+"<util:Date>\n"
+" <ApplicationScoped/>\n"
+" <myapp:SystemStart/>\n"
+" <Named>systemStartTime</Named>\n"
+"</util:Date>]]>"
#. Tag: para
#: xml.xml:78
#, no-c-format
-msgid ""
-"Where <literal>@Login</literal> and <literal>@SystemStart</literal> are "
-"binding annotations types."
-msgstr ""
+msgid "Where <literal>@Login</literal> and <literal>@SystemStart</literal> are binding annotations types."
+msgstr "Où <literal>@Login</literal> et <literal>@SystemStart</literal> sont des types d'annotations de liaison."
#. Tag: programlisting
#: xml.xml:81
@@ -212,12 +205,15 @@
"@Login Date loginTime;\n"
"@SystemStart Date systemStartTime;]]>"
msgstr ""
+"<![CDATA[@Current Date currentTime;\n"
+"@Login Date loginTime;\n"
+"@SystemStart Date systemStartTime;]]>"
#. Tag: para
#: xml.xml:83
#, no-c-format
msgid "As usual, a Web Bean may support multiple binding types:"
-msgstr ""
+msgstr "Comme d'habitude, un Web Bean supporte plusieurs types de liaison:"
#. Tag: programlisting
#: xml.xml:85
@@ -228,14 +224,16 @@
" <myapp:Asynchronous/>\n"
"</myapp:AsynchronousChequePaymentProcessor>]]>"
msgstr ""
+"<![CDATA[<myapp:AsynchronousChequePaymentProcessor>\n"
+" <myapp:PayByCheque/>\n"
+" <myapp:Asynchronous/>\n"
+"</myapp:AsynchronousChequePaymentProcessor>]]>"
#. Tag: para
#: xml.xml:87
#, no-c-format
-msgid ""
-"Interceptors and decorators are just simple Web Beans, so they may be "
-"declared just like any other simple Web Bean:"
-msgstr ""
+msgid "Interceptors and decorators are just simple Web Beans, so they may be declared just like any other simple Web Bean:"
+msgstr "Les intercepteurs et les décorateurs sont juste de Web Beans simples, donc ils peuvent être déclarés comme n'importe quel Web Bean simple:"
#. Tag: programlisting
#: xml.xml:90
@@ -246,30 +244,34 @@
" <myfwk:Transactional/>\n"
"</myfwk:TransactionInterceptor>]]>"
msgstr ""
+"<![CDATA[<myfwk:TransactionInterceptor>\n"
+" <Interceptor/>\n"
+" <myfwk:Transactional/>\n"
+"</myfwk:TransactionInterceptor>]]>"
#. Tag: title
#: xml.xml:95
#, no-c-format
msgid "Declaring Web Bean members"
-msgstr ""
+msgstr "Déclarer des membres de Web Beans"
#. Tag: para
#: xml.xml:97
#, no-c-format
msgid "TODO!"
-msgstr ""
+msgstr "TODO!"
#. Tag: title
#: xml.xml:104
#, no-c-format
msgid "Declaring inline Web Beans"
-msgstr ""
+msgstr "Déclarer des Web Beans à la volée"
#. Tag: para
#: xml.xml:106
#, no-c-format
msgid "Web Beans lets us define a Web Bean at an injection point. For example:"
-msgstr ""
+msgstr "Les Web Beans nous permettent de définir un Web Bean à un point d'injection. Par exemple:"
#. Tag: programlisting
#: xml.xml:108
@@ -286,42 +288,40 @@
" </myapp:admin>\n"
"</myapp:System>]]>"
msgstr ""
+"<![CDATA[<myapp:System>\n"
+" <ApplicationScoped/>\n"
+" <myapp:admin>\n"
+" <myapp:Name>\n"
+" <myapp:firstname>Gavin</myapp:firstname>\n"
+" <myapp:lastname>King</myapp:lastname>\n"
+" <myapp:email>gavin(a)hibernate.org</myapp:email>\n"
+" </myapp:Name>\n"
+" </myapp:admin>\n"
+"</myapp:System>]]>"
#. Tag: para
#: xml.xml:110
#, no-c-format
-msgid ""
-"The <literal><Name></literal> element declares a simple Web Bean of "
-"scope <literal>@Dependent</literal> and class <literal>Name</literal>, with "
-"a set of initial field values. This Web Bean has a special, container-"
-"generated binding and is therefore injectable only to the specific injection "
-"point at which it is declared."
-msgstr ""
+msgid "The <literal><Name></literal> element declares a simple Web Bean of scope <literal>@Dependent</literal> and class <literal>Name</literal>, with a set of initial field values. This Web Bean has a special, container-generated binding and is therefore injectable only to the specific injection point at which it is declared."
+msgstr "L'élément <literal><Name></literal> déclare un Web Bean simple de portée <literal>@Dependant</literal> et la classe <literal>Name</literal>, avec un ensembl de valeurs initials sur ses champs. Ce Web Bean a une liaison spéciale générée par le conteneur, et est par conséquent injectable seulement au point d'injection spécifique où il a été déclaré."
#. Tag: para
#: xml.xml:116
#, no-c-format
-msgid ""
-"This simple but powerful feature allows the Web Beans XML format to be used "
-"to specify whole graphs of Java objects. It's not quite a full databinding "
-"solution, but it's close!"
-msgstr ""
+msgid "This simple but powerful feature allows the Web Beans XML format to be used to specify whole graphs of Java objects. It's not quite a full databinding solution, but it's close!"
+msgstr "Cette fonctionnalité simple, mais puissante permet au format XML des Web Beans d'être utilisé pour spécifier des graphes entiers d'objets Java. Ce n'est pas une solution intégrale pour la liaison de données, mais cela s'en approche!"
#. Tag: title
#: xml.xml:123
#, no-c-format
msgid "Using a schema"
-msgstr ""
+msgstr "Utiliser un schéma"
#. Tag: para
#: xml.xml:125
#, no-c-format
-msgid ""
-"If we want our XML document format to be authored by people who aren't Java "
-"developers, or who don't have access to our code, we need to provide a "
-"schema. There's nothing specific to Web Beans about writing or using the "
-"schema."
-msgstr ""
+msgid "If we want our XML document format to be authored by people who aren't Java developers, or who don't have access to our code, we need to provide a schema. There's nothing specific to Web Beans about writing or using the schema."
+msgstr "Si nous voulons que le format de notre document XML soit écrit par des gens qui ne sont pas des développeurs Java, ou qui n'ont pas accès à notre code, nous devons fournir un schéma. Ecrire ou utiliser le schéma n'a rien de spécifique aux Web Beans."
#. Tag: programlisting
#: xml.xml:130
@@ -330,10 +330,8 @@
"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
" xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/"
-"jee/web-beans-1.0.xsd\n"
-" urn:java:com.mydomain.myapp http://mydomain."
-"com/xsd/myapp-1.2.xsd\">\n"
+" xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
+" urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
"\n"
" <myapp:System>\n"
" ...\n"
@@ -341,12 +339,21 @@
"\n"
"</WebBeans>]]>"
msgstr ""
+"<![CDATA[<WebBeans xmlns=\"urn:java:javax.webbeans\"\n"
+" xmlns:myapp=\"urn:java:com.mydomain.myapp\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd\n"
+" urn:java:com.mydomain.myapp http://mydomain.com/xsd/myapp-1.2.xsd\">\n"
+"\n"
+" <myapp:System>\n"
+" ...\n"
+" </myapp:System>\n"
+"\n"
+"</WebBeans>]]>"
#. Tag: para
#: xml.xml:132
#, no-c-format
-msgid ""
-"Writing an XML schema is quite tedious. Therefore, the Web Beans RI project "
-"will provide a tool which automatically generates the XML schema from "
-"compiled Java code."
-msgstr ""
+msgid "Writing an XML schema is quite tedious. Therefore, the Web Beans RI project will provide a tool which automatically generates the XML schema from compiled Java code."
+msgstr "Ecrire un schéma XML est assez ennuyeux. C'est pour cela que le projet Web Beans RI fournira un outil qui génèrera automatiquement le schéma XML à partir du code Java compilé."
+
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1447 - in ri/trunk: porting-package and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-07 08:57:07 -0500 (Sat, 07 Feb 2009)
New Revision: 1447
Modified:
ri/trunk/jboss-tck-runner/pom.xml
ri/trunk/porting-package/pom.xml
Log:
minor
Modified: ri/trunk/jboss-tck-runner/pom.xml
===================================================================
--- ri/trunk/jboss-tck-runner/pom.xml 2009-02-07 13:54:08 UTC (rev 1446)
+++ ri/trunk/jboss-tck-runner/pom.xml 2009-02-07 13:57:07 UTC (rev 1447)
@@ -40,11 +40,6 @@
<artifactId>webbeans-tck-impl</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>javax.el</groupId>
- <artifactId>el-ri</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
Modified: ri/trunk/porting-package/pom.xml
===================================================================
--- ri/trunk/porting-package/pom.xml 2009-02-07 13:54:08 UTC (rev 1446)
+++ ri/trunk/porting-package/pom.xml 2009-02-07 13:57:07 UTC (rev 1447)
@@ -28,6 +28,11 @@
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-ri</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1446 - ri/trunk/jboss-tck-runner/src/test/java and 12 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-07 08:54:08 -0500 (Sat, 07 Feb 2009)
New Revision: 1446
Added:
ri/trunk/jboss-tck-runner/src/test/java/org/
ri/trunk/jboss-tck-runner/src/test/java/org/jboss/
ri/trunk/jboss-tck-runner/src/test/java/org/jboss/webbeans/
Removed:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/
ri/trunk/webbeans-ri/src/test/resources/META-INF/web-beans-tck.properties
Modified:
ri/trunk/jboss-tck-runner/pom.xml
ri/trunk/porting-package/pom.xml
ri/trunk/webbeans-ri-spi/pom.xml
ri/trunk/webbeans-ri/pom.xml
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/NormalContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DefaultDeploymentTypeTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ResolutionByNameTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/ClientProxyTest.java
Log:
Switch to a separate TCK runner, tidy up dependencies a bit
Modified: ri/trunk/jboss-tck-runner/pom.xml
===================================================================
--- ri/trunk/jboss-tck-runner/pom.xml 2009-02-07 12:24:53 UTC (rev 1445)
+++ ri/trunk/jboss-tck-runner/pom.xml 2009-02-07 13:54:08 UTC (rev 1446)
@@ -6,9 +6,10 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.webbeans</groupId>
- <artifactId>jboss-tck-runner</artifactId>
+ <artifactId>webbeans-jboss-tck-runner</artifactId>
<name>JSR-299 TCK runner for JBoss AS</name>
<description>Aggregates dependencies and run's the JSR-299 TCK on JBoss AS</description>
+
<dependencies>
<dependency>
@@ -19,13 +20,88 @@
<dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-ri</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-porting-package</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ <classifier>jdk15</classifier>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.webbeans.tck</groupId>
- <artifactId>webbeans-tck-api</artifactId>
+ <artifactId>webbeans-tck-impl</artifactId>
+ <scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-ri</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.jboss.webbeans.tck</groupId>
+ <artifactId>webbeans-tck-impl</artifactId>
+ <version>${webbeans.tck.version}</version>
+ <type>xml</type>
+ <classifier>suite</classifier>
+ <overWrite>true</overWrite>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <suiteXmlFiles>
+ <suiteXmlFile>${project.build.directory}/dependency/webbeans-tck-impl-${webbeans.tck.version}-suite.xml</suiteXmlFile>
+ </suiteXmlFiles>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generate-test-report</id>
+ <phase>test</phase>
+ <goals>
+ <goal>report-only</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <outputDirectory>${project.build.directory}/surefire-reports</outputDirectory>
+ <outputName>test-report</outputName>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
Modified: ri/trunk/porting-package/pom.xml
===================================================================
--- ri/trunk/porting-package/pom.xml 2009-02-07 12:24:53 UTC (rev 1445)
+++ ri/trunk/porting-package/pom.xml 2009-02-07 13:54:08 UTC (rev 1446)
@@ -6,7 +6,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.webbeans</groupId>
- <artifactId>porting-package</artifactId>
+ <artifactId>webbeans-porting-package</artifactId>
<name>Web Beans Porting Package for JSR-299 TCK</name>
<dependencies>
@@ -24,6 +24,10 @@
<groupId>org.jboss.webbeans.tck</groupId>
<artifactId>webbeans-tck-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-api</artifactId>
+ </dependency>
</dependencies>
Modified: ri/trunk/webbeans-ri/pom.xml
===================================================================
--- ri/trunk/webbeans-ri/pom.xml 2009-02-07 12:24:53 UTC (rev 1445)
+++ ri/trunk/webbeans-ri/pom.xml 2009-02-07 13:54:08 UTC (rev 1446)
@@ -7,7 +7,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-ri</artifactId>
- <name>Web Beans core</name>
+ <name>Web Beans Core</name>
<dependencies>
<dependency>
@@ -28,30 +28,35 @@
</dependency>
<dependency>
- <groupId>org.jboss.webbeans.tck</groupId>
- <artifactId>webbeans-tck-api</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.webbeans.tck</groupId>
- <artifactId>webbeans-tck-impl</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
<groupId>org.jboss.ejb3</groupId>
<artifactId>jboss-ejb3-api</artifactId>
+ <optional>true</optional>
+ <exclusions>
+ <exclusion>
+ <artifactId>jboss-jaxrpc</artifactId>
+ <groupId>jbossws</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jboss-transaction-api</artifactId>
+ <groupId>org.jboss.javaee</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jboss-jaxrpc</artifactId>
+ <groupId>jboss.jbossws</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
+ <optional>true</optional>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
+ <optional>true</optional>
</dependency>
<dependency>
@@ -79,16 +84,19 @@
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
+ <optional>true</optional>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-ri</artifactId>
+ <optional>true</optional>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
+ <optional>true</optional>
</dependency>
<dependency>
@@ -103,36 +111,10 @@
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy</id>
- <phase>generate-test-sources</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.jboss.webbeans.tck</groupId>
- <artifactId>webbeans-tck-impl</artifactId>
- <version>${webbeans.tck.version}</version>
- <type>xml</type>
- <classifier>suite</classifier>
- <overWrite>true</overWrite>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<suiteXmlFiles>
- <suiteXmlFile>unit-tests.xml,</suiteXmlFile>
- <suiteXmlFile>${project.build.directory}/dependency/webbeans-tck-impl-${webbeans.tck.version}-suite.xml</suiteXmlFile>
+ <suiteXmlFile>unit-tests.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
@@ -156,4 +138,4 @@
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>
Deleted: ri/trunk/webbeans-ri/src/test/resources/META-INF/web-beans-tck.properties
===================================================================
--- ri/trunk/webbeans-ri/src/test/resources/META-INF/web-beans-tck.properties 2009-02-07 12:24:53 UTC (rev 1445)
+++ ri/trunk/webbeans-ri/src/test/resources/META-INF/web-beans-tck.properties 2009-02-07 13:54:08 UTC (rev 1446)
@@ -1,4 +0,0 @@
-org.jboss.webbeans.tck.spi.Managers=org.jboss.webbeans.test.tck.ManagersImpl
-org.jboss.webbeans.tck.spi.Beans=org.jboss.webbeans.test.tck.BeansImpl
-org.jboss.webbeans.tck.spi.Contexts=org.jboss.webbeans.test.tck.ContextsImpl
-org.jboss.webbeans.tck.spi.Containers=org.jboss.webbeans.test.tck.ContainersImpl
\ No newline at end of file
Modified: ri/trunk/webbeans-ri-spi/pom.xml
===================================================================
--- ri/trunk/webbeans-ri-spi/pom.xml 2009-02-07 12:24:53 UTC (rev 1445)
+++ ri/trunk/webbeans-ri-spi/pom.xml 2009-02-07 13:54:08 UTC (rev 1446)
@@ -7,7 +7,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-ri-spi</artifactId>
- <name>Web Beans RI Service Provider Interfaces</name>
+ <name>Web Beans Service Provider Interfaces</name>
<dependencies>
<dependency>
@@ -39,4 +39,4 @@
<defaultGoal>install</defaultGoal>
</build>
-</project>
\ No newline at end of file
+</project>
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/NormalContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/NormalContextTest.java 2009-02-07 12:24:53 UTC (rev 1445)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/NormalContextTest.java 2009-02-07 13:54:08 UTC (rev 1446)
@@ -75,6 +75,7 @@
@SpecAssertion(section = "8.1", id = "unknown")
public void testGetWithCreationalContextReturnsNewInstance()
{
+ deployBeans();
MyContextual bean = new MyContextual(manager);
bean.setShouldReturnNullInstances(false);
manager.addBean(bean);
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DefaultDeploymentTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DefaultDeploymentTypeTest.java 2009-02-07 12:24:53 UTC (rev 1445)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DefaultDeploymentTypeTest.java 2009-02-07 13:54:08 UTC (rev 1446)
@@ -8,6 +8,8 @@
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.SpecAssertion;
import org.jboss.webbeans.tck.SpecAssertions;
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.Classes;
import org.testng.annotations.Test;
/**
@@ -15,6 +17,8 @@
* Spec version: PRD2
*
*/
+@Artifact(addCurrentPackage=false)
+(a)Classes(DefaultDeploymentTypeTest.class)
public class DefaultDeploymentTypeTest extends AbstractTest
{
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java 2009-02-07 12:24:53 UTC (rev 1445)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java 2009-02-07 13:54:08 UTC (rev 1446)
@@ -173,6 +173,7 @@
@SpecAssertion(section = "7.3", id = "unknown")
public void testManagerAddObserver()
{
+ deployBeans();
Observer<AnEventType> observer = new AnObserver();
// First test with the Class<T> of the event type
@@ -917,6 +918,7 @@
@SpecAssertion(section = "7.7", id = "unknown")
public void testResolvingChecksEventType()
{
+ deployBeans();
Observer<AnEventType> observer = new AnObserver();
manager.addObserver(observer, AnEventType.class);
Set<Observer<AnEventType>> resolvedObservers = manager.resolveObservers(new AnEventType());
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ResolutionByNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ResolutionByNameTest.java 2009-02-07 12:24:53 UTC (rev 1445)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ResolutionByNameTest.java 2009-02-07 13:54:08 UTC (rev 1446)
@@ -80,7 +80,7 @@
}
}
- @Test @SpecAssertion(section="5.11", id = "unknown")
+ @Test(groups="broken") @SpecAssertion(section="5.11", id = "unknown")
public void testNamedBasedResolution()
{
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/ClientProxyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/ClientProxyTest.java 2009-02-07 12:24:53 UTC (rev 1445)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/ClientProxyTest.java 2009-02-07 13:54:08 UTC (rev 1446)
@@ -34,9 +34,8 @@
@SpecAssertion(section = "5.4", id = "unknown")
public void testClientProxyUsedForNormalScope()
{
- Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
- manager.addBean(tunaBean);
- Tuna tuna = manager.getInstance(tunaBean);
+ deployBeans(Tuna.class);
+ Tuna tuna = manager.getInstanceByType(Tuna.class);
assert configuration().getBeans().isProxy(tuna);
}
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1445 - ri/trunk/webbeans-api and 3 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-07 07:24:53 -0500 (Sat, 07 Feb 2009)
New Revision: 1445
Modified:
ri/trunk/porting-package/
ri/trunk/webbeans-api/pom.xml
ri/trunk/webbeans-ri/pom.xml
tck/trunk/api/pom.xml
tck/trunk/impl/pom.xml
Log:
minor
Property changes on: ri/trunk/porting-package
___________________________________________________________________
Name: svn:ignore
+ .settings
target
.project
.classpath
Modified: ri/trunk/webbeans-api/pom.xml
===================================================================
--- ri/trunk/webbeans-api/pom.xml 2009-02-07 12:24:15 UTC (rev 1444)
+++ ri/trunk/webbeans-api/pom.xml 2009-02-07 12:24:53 UTC (rev 1445)
@@ -10,7 +10,7 @@
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-api</artifactId>
<packaging>jar</packaging>
- <name>Web Beans API</name>
+ <name>JSR-299 API</name>
<url>http://www.seamframework.org/WebBeans</url>
Modified: ri/trunk/webbeans-ri/pom.xml
===================================================================
--- ri/trunk/webbeans-ri/pom.xml 2009-02-07 12:24:15 UTC (rev 1444)
+++ ri/trunk/webbeans-ri/pom.xml 2009-02-07 12:24:53 UTC (rev 1445)
@@ -7,7 +7,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-ri</artifactId>
- <name>Web Beans RI</name>
+ <name>Web Beans core</name>
<dependencies>
<dependency>
Modified: tck/trunk/api/pom.xml
===================================================================
--- tck/trunk/api/pom.xml 2009-02-07 12:24:15 UTC (rev 1444)
+++ tck/trunk/api/pom.xml 2009-02-07 12:24:53 UTC (rev 1445)
@@ -29,7 +29,7 @@
<groupId>org.jboss.webbeans.tck</groupId>
<artifactId>webbeans-tck-api</artifactId>
<packaging>jar</packaging>
- <name>Web Beans TCK API</name>
+ <name>JSR-299 TCK API</name>
<url>http://www.seamframework.org/WebBeans</url>
<dependencies>
Modified: tck/trunk/impl/pom.xml
===================================================================
--- tck/trunk/impl/pom.xml 2009-02-07 12:24:15 UTC (rev 1444)
+++ tck/trunk/impl/pom.xml 2009-02-07 12:24:53 UTC (rev 1445)
@@ -8,7 +8,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.webbeans.tck</groupId>
<artifactId>webbeans-tck-impl</artifactId>
- <name>Web Beans TCK</name>
+ <name>JSR-299 TCK tests and harness</name>
<dependencies>
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1444 - in ri/trunk: jboss-tck-runner and 5 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-07 07:24:15 -0500 (Sat, 07 Feb 2009)
New Revision: 1444
Added:
ri/trunk/jboss-tck-runner/
ri/trunk/jboss-tck-runner/pom.xml
ri/trunk/jboss-tck-runner/src/
ri/trunk/jboss-tck-runner/src/main/
ri/trunk/jboss-tck-runner/src/main/java/
ri/trunk/jboss-tck-runner/src/main/resources/
ri/trunk/jboss-tck-runner/src/main/resources/META-INF/
ri/trunk/jboss-tck-runner/src/test/
ri/trunk/jboss-tck-runner/src/test/java/
ri/trunk/jboss-tck-runner/src/test/resources/
ri/trunk/jboss-tck-runner/src/test/resources/META-INF/
Log:
Add tck-runner for JBoss AS
Property changes on: ri/trunk/jboss-tck-runner
___________________________________________________________________
Name: svn:ignore
+ .classpath
target
.project
.settings
Added: ri/trunk/jboss-tck-runner/pom.xml
===================================================================
--- ri/trunk/jboss-tck-runner/pom.xml (rev 0)
+++ ri/trunk/jboss-tck-runner/pom.xml 2009-02-07 12:24:15 UTC (rev 1444)
@@ -0,0 +1,31 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>parent</artifactId>
+ <groupId>org.jboss.webbeans</groupId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>jboss-tck-runner</artifactId>
+ <name>JSR-299 TCK runner for JBoss AS</name>
+ <description>Aggregates dependencies and run's the JSR-299 TCK on JBoss AS</description>
+ <dependencies>
+
+ <dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-ri</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.webbeans.tck</groupId>
+ <artifactId>webbeans-tck-api</artifactId>
+ </dependency>
+
+ </dependencies>
+
+</project>
Property changes on: ri/trunk/jboss-tck-runner/pom.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1443 - tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-07 06:51:06 -0500 (Sat, 07 Feb 2009)
New Revision: 1443
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/SessionScopedHornedMammalStereotype.java
Log:
fix build
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/SessionScopedHornedMammalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/SessionScopedHornedMammalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/SessionScopedHornedMammalStereotype.java 2009-02-07 11:51:06 UTC (rev 1443)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.annotation.Stereotype;
+import javax.context.SessionScoped;
+
+@Stereotype
+@SessionScoped
+@Target( { TYPE })
+@Retention(RUNTIME)
+@HornedAnimalDeploymentType
+@interface SessionScopedHornedMammalStereotype
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/SessionScopedHornedMammalStereotype.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
17 years, 2 months