Repository: tomee Updated Branches: refs/heads/master 9f8a299bd -> ce2998f78
TOMEE-2345 Add to all annotations outside codeblocks Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/62db64ba Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/62db64ba Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/62db64ba Branch: refs/heads/master Commit: 62db64ba35c8cd51c3a96f5ec00c66c1f7e839dd Parents: 64ed418 Author: Carlos Chacin <ccha...@gmail.com> Authored: Sun Dec 16 15:08:12 2018 -0800 Committer: Carlos Chacin <ccha...@gmail.com> Committed: Sun Dec 16 15:08:12 2018 -0800 ---------------------------------------------------------------------- docs/app-clients-and-jndi.adoc | 4 +- docs/application-composer/getting-started.adoc | 2 +- ...application-discovery-via-the-classpath.adoc | 2 +- docs/application-resources.adoc | 4 +- docs/basics---getting-things.adoc | 2 +- docs/basics---transactions.adoc | 2 +- docs/configuring-datasources.adoc | 4 +- docs/constructor-injection.adoc | 2 +- docs/datasource-config.adoc | 2 +- docs/developer/json/index.adoc | 4 +- .../testing/applicationcomposer/index.adoc | 26 ++++++------ docs/developer/testing/arquillian/index.adoc | 2 +- docs/documentation.adoc | 2 +- docs/documentation.old.adoc | 2 +- docs/ejb-local-ref.adoc | 2 +- docs/ejb-ref.adoc | 2 +- docs/ejb-refs.adoc | 4 +- docs/embedded-and-remotable.adoc | 10 ++--- docs/generating-ejb-3-annotations.adoc | 4 +- docs/hello-world.adoc | 2 +- docs/jndi-names.adoc | 4 +- docs/jpa-concepts.adoc | 4 +- docs/local-client-injection.adoc | 20 ++++----- docs/lookup-of-other-ejbs-example.adoc | 8 ++-- docs/new-in-openejb-3.0.adoc | 6 +-- docs/persistence-context.adoc | 2 +- docs/persistence-unit-ref.adoc | 6 +-- docs/resource-injection.adoc | 6 +-- docs/resource-ref-for-datasource.adoc | 2 +- docs/security-annotations.adoc | 8 ++-- docs/singleton-beans.adoc | 44 ++++++++++---------- docs/spring-and-openejb-3.0.adoc | 4 +- docs/spring-ejb-and-jpa.adoc | 10 ++--- docs/tomcat-object-factory.adoc | 2 +- docs/tomee-and-security.adoc | 2 +- docs/transaction-annotations.adoc | 6 +-- 36 files changed, 109 insertions(+), 109 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/app-clients-and-jndi.adoc ---------------------------------------------------------------------- diff --git a/docs/app-clients-and-jndi.adoc b/docs/app-clients-and-jndi.adoc index d8548fd..d9d61a9 100644 --- a/docs/app-clients-and-jndi.adoc +++ b/docs/app-clients-and-jndi.adoc @@ -18,8 +18,8 @@ Internally, we bind each EJB proxy under essentially a hardcoded and predictable format and then again using the user supplied format.  So there are at minimum two JNDI trees with every EJB proxy.  It used to be two at least.  Now we have quite a few because of Java EE 6 global JNDI -and the support we added for @LocalClient and allowing the same -interface to be used as both @Local and @Remote. +and the support we added for `@LocalClient` and allowing the same +interface to be used as both `@Local` and `@Remote`. Basically we have: http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/application-composer/getting-started.adoc ---------------------------------------------------------------------- diff --git a/docs/application-composer/getting-started.adoc b/docs/application-composer/getting-started.adoc index 2a7e3da..337a6c6 100644 --- a/docs/application-composer/getting-started.adoc +++ b/docs/application-composer/getting-started.adoc @@ -161,7 +161,7 @@ the ApplicationComposer: @RunWith(ApplicationComposer.class) public class MyTest \{ // ... } * using `ApplicationComposerRule` rule: + -public class MyTest \{ @Rule // or @ClassRule if you want the +public class MyTest \{ `@Rule` // or `@ClassRule` if you want the container/application lifecycle be bound to the class and not test methods public final ApplicationComposerRule rule = new ApplicationComposerRule(this); } http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/application-discovery-via-the-classpath.adoc ---------------------------------------------------------------------- diff --git a/docs/application-discovery-via-the-classpath.adoc b/docs/application-discovery-via-the-classpath.adoc index 850be56..4c22c5a 100644 --- a/docs/application-discovery-via-the-classpath.adoc +++ b/docs/application-discovery-via-the-classpath.adoc @@ -32,7 +32,7 @@ complicate builds. If you do not like the idea of having the ejb-jar.xml in your app or an openejb.xml, we can search the classpath for annotated beans -(@Stateless, @Stateful, @MessageDriven) and load them automatically just +(`@Stateless`, `@Stateful`, `@MessageDriven`) and load them automatically just as if they contained an ejb-jar.xml. This form of searching, however, is very expensive as it involves http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/application-resources.adoc ---------------------------------------------------------------------- diff --git a/docs/application-resources.adoc b/docs/application-resources.adoc index 92262b7..9242118 100644 --- a/docs/application-resources.adoc +++ b/docs/application-resources.adoc @@ -335,11 +335,11 @@ public class Factory { === @PostConstruct / @PreDestroy As an alternative to using a factory method or a constructor, you can -use @PostConstruct and @PreDestroy methods within your resource class +use `@PostConstruct` and `@PreDestroy` methods within your resource class (note that you cannot use this within a different factory class) to manage any additional creation or cleanup activities. TomEE will automatically call these methods when the application is started and -destroyed. Using @PostConstruct will effectively force a lazily loaded +destroyed. Using `@PostConstruct` will effectively force a lazily loaded resource to be instantiated when the application is starting - in the same way that the `InitializeAfterDeployment` property does. http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/basics---getting-things.adoc ---------------------------------------------------------------------- diff --git a/docs/basics---getting-things.adoc b/docs/basics---getting-things.adoc index 821432f..7dc75ec 100644 --- a/docs/basics---getting-things.adoc +++ b/docs/basics---getting-things.adoc @@ -76,7 +76,7 @@ See rule 2 and the above. Just creating an EJB doesn't cause it to be added to java:comp/env. If a link:container-managed-component.html[Container-Managed Component] wants to lookup the EJB they must [Declare a Reference|Declaring References] -to it via the @EJB annotionation or <ejb-local-ref> or <ejb-ref> in xml. +to it via the `@EJB` annotionation or <ejb-local-ref> or <ejb-ref> in xml. In Java EE 6, however, EJBs will be automatically bound to "java:global[/<app-name>]/<module-name>/<bean-name>[!<fully-qualified-interface-name>]" and can be looked up without declaring a reference first. http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/basics---transactions.adoc ---------------------------------------------------------------------- diff --git a/docs/basics---transactions.adoc b/docs/basics---transactions.adoc index 0a4eeba..43f98c7 100644 --- a/docs/basics---transactions.adoc +++ b/docs/basics---transactions.adoc @@ -37,7 +37,7 @@ same transaction as the calling bean. You can configure your beans in a variety of ways. Generally speaking, a transaction is started when a method is called, but can be configured -using @TransactionAttribute(value = TransactionAttributeType.X), where X +using `@TransactionAttribute`(value = TransactionAttributeType.X), where X is one of... [arabic] http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/configuring-datasources.adoc ---------------------------------------------------------------------- diff --git a/docs/configuring-datasources.adoc b/docs/configuring-datasources.adoc index 63929ff..e3bbaed 100644 --- a/docs/configuring-datasources.adoc +++ b/docs/configuring-datasources.adoc @@ -9,7 +9,7 @@ The __ element is used to configure a _javax.sql.DataSource_. It is also used to configure other resources like Timers, Topics, Queues. We will see some examples of using to configure a DataSource. -The element is designed after @Resource annotation and has similar +The element is designed after `@Resource` annotation and has similar attributes. For example, this annotation in your bean: @@ -109,7 +109,7 @@ reference name matches a Resource in your openejb.xml, that's the one you get_. Essentially, the rules for mapping are as follows. [arabic] -. Name Attribute Match - @Resource with a name attribute matching the +. Name Attribute Match - `@Resource` with a name attribute matching the resource name gets that resource injected . Injected Name Match - variable name matching the resource name gets that resource injected http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/constructor-injection.adoc ---------------------------------------------------------------------- diff --git a/docs/constructor-injection.adoc b/docs/constructor-injection.adoc index 4f59f6d..d654a8f 100644 --- a/docs/constructor-injection.adoc +++ b/docs/constructor-injection.adoc @@ -42,7 +42,7 @@ public class WidgetBean implements Widget { } ---- -The @EJB, @Resource, @PersistenceUnit, and @PersistenceContext +The `@EJB`, `@Resource`, `@PersistenceUnit`, and `@PersistenceContext` annotations can be placed at the class-level instead such as: [source,java] http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/datasource-config.adoc ---------------------------------------------------------------------- diff --git a/docs/datasource-config.adoc b/docs/datasource-config.adoc index dbcc8a8..a376049 100644 --- a/docs/datasource-config.adoc +++ b/docs/datasource-config.adoc @@ -492,7 +492,7 @@ Note: in this case for Oracle for instance you'll define UserName for the pool and User for the datasource which can look weird if you don't know properties are used for 2 instances (pool and datasource). -Note: this solution uses the same logic than @DataSourceDefinition +Note: this solution uses the same logic than `@DataSourceDefinition` factory mecanism. === Two resources definition http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/developer/json/index.adoc ---------------------------------------------------------------------- diff --git a/docs/developer/json/index.adoc b/docs/developer/json/index.adoc index a18fe18..4d0cbbf 100644 --- a/docs/developer/json/index.adoc +++ b/docs/developer/json/index.adoc @@ -104,7 +104,7 @@ If you need a more advanced use case and modify the structure of the json (wrapp you will likely need Reader/Writer or a Codec. Then once your converter developed you can either register globally on the MapperBuilder or simply decorate -the field you want to convert with @JohnzonConverter: +the field you want to convert with `@JohnzonConverter`: [source,java] ---- @@ -202,4 +202,4 @@ TomEE uses by default Johnzon as JAX-RS provider for versions 7.x. If you want h ---- Note: as you can see you mainly just need to define a service with the id johnzon (same as in openejb-jar.xml) -and you can reference other instances using $id for services and @id for resources. +and you can reference other instances using $id for services and `@id` for resources. http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/developer/testing/applicationcomposer/index.adoc ---------------------------------------------------------------------- diff --git a/docs/developer/testing/applicationcomposer/index.adoc b/docs/developer/testing/applicationcomposer/index.adoc index 2fdd22b..5a49960 100644 --- a/docs/developer/testing/applicationcomposer/index.adoc +++ b/docs/developer/testing/applicationcomposer/index.adoc @@ -50,8 +50,8 @@ An ApplicationComposer needs at minimum a module (the application you need to de To do so you have two cases: -before TomEE 7.x: you can only write method(s) decorated with @Module -since TomEE 7.x: you can skip it and use @Classes directly on the ApplicationComposer class as a shortcut for: +before TomEE 7.x: you can only write method(s) decorated with `@Module` +since TomEE 7.x: you can skip it and use `@Classes` directly on the ApplicationComposer class as a shortcut for: [source,java] ---- @@ -70,7 +70,7 @@ The expected returned type of these methods are in org.apache.openejb.jee packag - Beans: a CDI module, - Class[] or Class: a set of classes scanned to discover annotations -Note that for easiness @Classes was added to be able to describe a module and some scanned classes. For instance the following snippet will create a web application with classes C1, C2 as CDI beans and E1 as an EJB automatically: +Note that for easiness `@Classes` was added to be able to describe a module and some scanned classes. For instance the following snippet will create a web application with classes C1, C2 as CDI beans and E1 as an EJB automatically: [source,java] ---- @@ -101,7 +101,7 @@ public Properties configuration() { } ---- -Since TomEE 7.x you can also put properties on ApplicationComposer class using @ContainerProperties API: +Since TomEE 7.x you can also put properties on ApplicationComposer class using `@ContainerProperties` API: [source,java] ---- @@ -117,9 +117,9 @@ public class MyAppComposer() { === @Component Sometimes you need to customize a container component. The most common use case is the security service to mock a little bit authorization if you don't care in your test. -To do so just write a method decorated with @Component returning the instance you desire. +To do so just write a method decorated with `@Component` returning the instance you desire. -Components in TomEE are stored in a container Map and the key needs to be a Class. This one is deduced from the returned type of the @Component method: +Components in TomEE are stored in a container Map and the key needs to be a Class. This one is deduced from the returned type of the `@Component` method: [source,java] ---- @@ -130,7 +130,7 @@ public SecurityService mockSecurity() { ---- === @Descriptors -You can reuse existing file descriptors using @Descriptors. The name is the file name and the path either a classpath path or a file path: +You can reuse existing file descriptors using `@Descriptors`. The name is the file name and the path either a classpath path or a file path: [source,java] ---- @@ -141,12 +141,12 @@ public class MyTest { } ---- -Note: this can be put in a @Module method as well. +Note: this can be put in a `@Module` method as well. === Services If you want to test a JAXRS or JAXWS service you need to activate these services. -To do so just add the needed dependency and use @EnableServices: +To do so just add the needed dependency and use `@EnableServices`: [source,java] ---- @@ -160,7 +160,7 @@ public class MyTest { === Random port Services like JAXRS and JAXWS relies on HTTP. Often it is nice to have a random port to be able to deploy multiple tests/projects on the same CI platform at the same time. -To shortcut all the needed logic you can use @RandomPort. It is simply an injection giving you either the port (int) or the root context (URL): +To shortcut all the needed logic you can use `@RandomPort`. It is simply an injection giving you either the port (int) or the root context (URL): [source,java] ---- @@ -177,7 +177,7 @@ Note: you can generate this way multiple ports. The value is the name of the ser @SimpleLog annotation allows you to have one liner logs === @JaxrsProvider -@JaxrsProvider allows you to specify on a @Module method the list of JAXRS provider you want to use. +@JaxrsProvider allows you to specify on a `@Module` method the list of JAXRS provider you want to use. === Dependencies without hacky code @Jars allows you to add dependencies (scanned) to your application automatically (like CDI libraries): @@ -225,7 +225,7 @@ using ApplicationComposer runner: ---- using ApplicationComposerRule rule: -public class MyTest { @Rule // or @ClassRule if you want the container/application lifecycle be bound to the class and not test methods public final ApplicationComposerRule rule = new ApplicationComposerRule(this); } +public class MyTest { `@Rule` // or `@ClassRule` if you want the container/application lifecycle be bound to the class and not test methods public final ApplicationComposerRule rule = new ApplicationComposerRule(this); } Tip: since TomEE 7.x ApplicationComposerRule is decomposed in 2 rules if you need: ContainerRule and DeployApplication. Using JUnit RuleChain you can chain them to get the samebehavior as ApplicationComposerRule or better deploy multiple ApplicationComposer models and controlling their deployment ordering (to mock a remote service for instance). @@ -234,7 +234,7 @@ Finally just write `@Test` method using test class injections as if the test cla === TestNG TestNG integration is quite simple today and mainly ApplicationComposerListener class you can configure as a listener to get ApplicationComposer features. -Finally just write TestNG @Test method using test class injections as if the test class was a managed bean! +Finally just write TestNG `@Test` method using test class injections as if the test class was a managed bean! === Standalone Since TomEE 7.x you can also use ApplicationComposers to directly run you ApplicationComposer model as a standalone application: http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/developer/testing/arquillian/index.adoc ---------------------------------------------------------------------- diff --git a/docs/developer/testing/arquillian/index.adoc b/docs/developer/testing/arquillian/index.adoc index 25be323..085fbee 100644 --- a/docs/developer/testing/arquillian/index.adoc +++ b/docs/developer/testing/arquillian/index.adoc @@ -47,7 +47,7 @@ NOTE: all configurations have defaults |Name|Description |properties|container properties, as in conf/system.properties (not in xml format) |preloadClasses|some class to load (ie enforce static block initialization) -|startDefaultScopes|should CDI default scopes be started (includes @RequestScoped) +|startDefaultScopes|should CDI default scopes be started (includes `@RequestScoped`) |singleDeploymentByArchiveName |names of archives (or true for all) to dploy a single time |=== http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/documentation.adoc ---------------------------------------------------------------------- diff --git a/docs/documentation.adoc b/docs/documentation.adoc index d7c7bf9..65e9eb5 100644 --- a/docs/documentation.adoc +++ b/docs/documentation.adoc @@ -57,7 +57,7 @@ link:alternate-descriptors.html[Alternate Descriptors] + link:unit-testing-transactions.html[Unit Testing Transactions] + link:testcase-with-testbean-inner-class.html[TestCase with TestBean inner-class] + -[TestCase Injection (@LocalClient)](local-client-injection.html) + +[TestCase Injection (`@LocalClient`)](local-client-injection.html) + } } \{row \{span-one-third ###Discovery and Failover http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/documentation.old.adoc ---------------------------------------------------------------------- diff --git a/docs/documentation.old.adoc b/docs/documentation.old.adoc index 41c447c..6dce6b3 100644 --- a/docs/documentation.old.adoc +++ b/docs/documentation.old.adoc @@ -52,7 +52,7 @@ link:alternate-descriptors.html[Alternate Descriptors] + link:unit-testing-transactions.html[Unit Testing Transactions] + link:testcase-with-testbean-inner-class.html[TestCase with TestBean inner-class] + -[TestCase Injection (@LocalClient)](local-client-injection.html) + +[TestCase Injection (`@LocalClient`)](local-client-injection.html) + } } \{row \{span-one-third ###Discovery and Failover http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/ejb-local-ref.adoc ---------------------------------------------------------------------- diff --git a/docs/ejb-local-ref.adoc b/docs/ejb-local-ref.adoc index 0eeb512..2dc2a26 100644 --- a/docs/ejb-local-ref.adoc +++ b/docs/ejb-local-ref.adoc @@ -36,7 +36,7 @@ public class MyEjbLocalRefBean implements MyBeanInterface { = Via xml -The above @EJB annotation usage is 100% equivalent to the following xml. +The above `@EJB` annotation usage is 100% equivalent to the following xml. [source,xml] ---- http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/ejb-ref.adoc ---------------------------------------------------------------------- diff --git a/docs/ejb-ref.adoc b/docs/ejb-ref.adoc index f7a867c..48fd1f0 100644 --- a/docs/ejb-ref.adoc +++ b/docs/ejb-ref.adoc @@ -35,7 +35,7 @@ public class MyEjbRemoteRefBean implements MyBeanInterface { = Via xml -The above @EJB annotation usage is 100% equivalent to the following xml. +The above `@EJB` annotation usage is 100% equivalent to the following xml. [source,xml] ---- http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/ejb-refs.adoc ---------------------------------------------------------------------- diff --git a/docs/ejb-refs.adoc b/docs/ejb-refs.adoc index a976852..cbf053e 100644 --- a/docs/ejb-refs.adoc +++ b/docs/ejb-refs.adoc @@ -10,7 +10,7 @@ type="javax.naming.InitialContext" and it worked (mostly). ## Referencing a bean in another jar (with annotations) When using annotations to reference a bean from another ejb in your ear -you have to supplement the @EJB reference with a small chunk of xml in +you have to supplement the `@EJB` reference with a small chunk of xml in the ejb-jar.xml of the referring bean. So in ejb app A colorsApp.jar you have this bean: @@ -80,7 +80,7 @@ public class OrangeBean implements OrangeRemote { } ---- -Then in ejb app B shapesApp.jar -- note there is no @EJB annotation: +Then in ejb app B shapesApp.jar -- note there is no `@EJB` annotation: [source,java] ---- http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/embedded-and-remotable.adoc ---------------------------------------------------------------------- diff --git a/docs/embedded-and-remotable.adoc b/docs/embedded-and-remotable.adoc index ace1613..fc3a2ad 100644 --- a/docs/embedded-and-remotable.adoc +++ b/docs/embedded-and-remotable.adoc @@ -66,16 +66,16 @@ you call _listen_ to get your answer. \{snippet:id=code|url=openejb3/examples/telephone-stateful/src/main/java/org/superbiz/telephone/Telephone.java|lang=java} -{title= EJB3 Notes} The bean class uses the annotation _@Remote_ but +{title= EJB3 Notes} The bean class uses the annotation _`@Remote_` but does not specify a list of interfaces as is normally required. Per EJB3 rules, if the bean implements exactly _one business interface_ it may -use @Remote with no other values and that business interface is then +use `@Remote` with no other values and that business interface is then implied to be a remote business interface. The same rule applies to -identical usage of @Local. +identical usage of `@Local`. The critical thing to know is that if you add another interface the -rules change and require that you specify both interfaces in the @Remote -annotation as in @Remote(\{Telephone.class, SecondInterface.class}). +rules change and require that you specify both interfaces in the `@Remote` +annotation as in `@Remote`(\{Telephone.class, SecondInterface.class}). \{tip} = Embedding http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/generating-ejb-3-annotations.adoc ---------------------------------------------------------------------- diff --git a/docs/generating-ejb-3-annotations.adoc b/docs/generating-ejb-3-annotations.adoc index 5005ac6..01b24fd 100644 --- a/docs/generating-ejb-3-annotations.adoc +++ b/docs/generating-ejb-3-annotations.adoc @@ -54,8 +54,8 @@ Options: implement your remote / local interfaces as opposed to javax.ejb.SessionBean, and stops your remote / local interfaces -extending javax.ejb.EJBObject. * Add @Remote and @RemoteHome annotations -- This adds @Remote and @RemoteHome annotations appropriately * Convert +extending javax.ejb.EJBObject. * Add `@Remote` and `@RemoteHome` annotations +- This adds `@Remote` and `@RemoteHome` annotations appropriately * Convert entity beans to POJOs - This options converts abstract CMP classes to POJOs generating simple getters and setters. http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/hello-world.adoc ---------------------------------------------------------------------- diff --git a/docs/hello-world.adoc b/docs/hello-world.adoc index f8a9214..b4a5b4e 100644 --- a/docs/hello-world.adoc +++ b/docs/hello-world.adoc @@ -10,7 +10,7 @@ steps or rely on special build tools or IDEs and is about the most stripped down you can get. _See the link:examples.html[Examples] page for a full list of examples -that range from [@Stateles|Simple Stateless Example] and +that range from [`@Stateles`|Simple Stateless Example] and [@Stateful|Simple Stateful Example] beans, to [Dependency Injection|Injection of env-entry Example] , JDBC [DataSources|Injection of DataSource Example] , JPA [EntityManagers|Injection of EntityManager http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/jndi-names.adoc ---------------------------------------------------------------------- diff --git a/docs/jndi-names.adoc b/docs/jndi-names.adoc index 09d54d2..403d581 100644 --- a/docs/jndi-names.adoc +++ b/docs/jndi-names.adoc @@ -61,7 +61,7 @@ org.acme.superfun ejbName The ejb-name as specified in xml or via the 'name' attribute in an -@Stateful, @Stateless, or @MessageDriven annotation +@Stateful, `@Stateless`, or `@MessageDriven` annotation deploymentId @@ -74,7 +74,7 @@ see interfaceType.annotationName interfaceType.annotationName -Following the EJB 3 annotations @RemoteHome, @LocalHome, @Remote and +Following the EJB 3 annotations `@RemoteHome`, `@LocalHome`, `@Remote` and @Local RemoteHome (EJB 2 EJBHome) LocalHome (EJB 2 EJBLocalHome) Remote (EJB 3 Business Remote) Local (EJB 3 Business Local) Endpoint (EJB webservice endpoint) http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/jpa-concepts.adoc ---------------------------------------------------------------------- diff --git a/docs/jpa-concepts.adoc b/docs/jpa-concepts.adoc index f169c74..3cb5e78 100644 --- a/docs/jpa-concepts.adoc +++ b/docs/jpa-concepts.adoc @@ -34,7 +34,7 @@ tracking... * You *must* use the *EntityManagerFactory* to get an EntityManager * The resulting *EntityManager* instance *is* a PersistenceContext/Cache * An *EntityManagerFactory* can be injected via the *@PersistenceUnit* -annotation only (not @PersistenceContext) +annotation only (not `@PersistenceContext`) * You are *not* allowed to use @PersistenceContext to refer to a unit of type RESOURCE_LOCAL * You *must* use the *EntityTransaction* API to begin/commit around @@ -52,7 +52,7 @@ EntityManager (PersistenceContext/Cache) creating and tracking... * You *cannot* use the *EntityManagerFactory* to get an EntityManager * You can only get an *EntityManager* supplied by the *container* * An *EntityManager* can be injected via the *@PersistenceContext* -annotation only (not @PersistenceUnit) +annotation only (not `@PersistenceUnit`) * You are *not* allowed to use @PersistenceUnit to refer to a unit of type JTA * The *EntityManager* given by the container is a *reference* to the http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/local-client-injection.adoc ---------------------------------------------------------------------- diff --git a/docs/local-client-injection.adoc b/docs/local-client-injection.adoc index 51220bd..2ab5ac4 100644 --- a/docs/local-client-injection.adoc +++ b/docs/local-client-injection.adoc @@ -4,14 +4,14 @@ :jbake-type: page :jbake-status: published -The _@LocalClient_ annotation (org.apache.openejb.api.LocalClient) is an +The _`@LocalClient_` annotation (org.apache.openejb.api.LocalClient) is an innovation that crosses concepts of an Java EE Application Client with a plain Java SE client. This particular annotation is focused on clients of an Embeddable EJB container, i.e. local clients. There is another -annotation in development called @RemoteClient that will be focused on +annotation in development called `@RemoteClient` that will be focused on remote clients; clients running outside the vm the container runs. -Any clients annotated with @LocalClient will be scanned at deployment +Any clients annotated with `@LocalClient` will be scanned at deployment time for usage of injection-related annotations. The references in the @LocalClient will be processed with the application just as if the class was a Java EE Application Client module, but with a few slight @@ -19,16 +19,16 @@ differences: [arabic] . Declaring field/method injection points as 'static' is not required -. References to EntityManagers via @PersistenceContext are allowed -. References to local business interfaces via @EJB is allowed -. References to UserTransaction via @Resource is allowed +. References to EntityManagers via `@PersistenceContext` are allowed +. References to local business interfaces via `@EJB` is allowed +. References to UserTransaction via `@Resource` is allowed As well since this is not a heavyweight Java EE Application Client, you are not required to use any special packaging or command-line parameters to run the client. Your client can be a Unit Test or any plain java code that needs to pull objects from the Embedded EJB container. Classes with @LocalClient can be placed in a Client module or an EJB module. A given -module may have as many classes annotated with @LocalClient as it +module may have as many classes annotated with `@LocalClient` as it wishes. = Injection @@ -64,20 +64,20 @@ public class MoviesTest extends TestCase { = Discovery -All EJB modules are scanned for @LocalClient classes, even if those EJB +All EJB modules are scanned for `@LocalClient` classes, even if those EJB Modules are inside .war files as with the link:collapsed-ear.html[Collapsed EAR] . As well any modules that contain a META-INF/application-client.xml file will be scanned for @LocalClient classes. If you see the following error message and are absolutely sure the -module containing your @LocalClient class is being properly identified +module containing your `@LocalClient` class is being properly identified as an EJB module or a Client module, than it is possible you are seeing some classloading issues. \{panel} javax.naming.NamingException: Unable to find injection meta-data for org.superbiz.MyClient. Ensure that class was annotated -with @org.apache.openejb.api.LocalClient and was successfully discovered +with `@org`.apache.openejb.api.LocalClient and was successfully discovered and deployed. \{panel} If you encounter this try setting this openejb-specific boot flag so http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/lookup-of-other-ejbs-example.adoc ---------------------------------------------------------------------- diff --git a/docs/lookup-of-other-ejbs-example.adoc b/docs/lookup-of-other-ejbs-example.adoc index f299123..9491c2f 100644 --- a/docs/lookup-of-other-ejbs-example.adoc +++ b/docs/lookup-of-other-ejbs-example.adoc @@ -7,7 +7,7 @@ = Overview This example shows how to configure JNDI to lookup other EJBs using -either the _@EJB_ annotation or the _ejb-jar.xml_ deployment descriptor. +either the _`@EJB_` annotation or the _ejb-jar.xml_ deployment descriptor. There are a couple interesting aspects in this example intended to flush out some of the more confusing, and perhaps frustrating, aspects of @@ -56,7 +56,7 @@ to EJBs: does not necessarily identify the exact bean * circular references are possible -To illustrate all of this, we have two simple @Stateless beans, +To illustrate all of this, we have two simple `@Stateless` beans, _RedBean_ and _BlueBean_. Both implement the same business local interface, _Friend_. Both _RedBean_ and _BlueBean_ define _java:comp/env/myFriend_ differently which is allowed as _java:comp_ is @@ -71,10 +71,10 @@ business local interface _Friend_. \{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/main/java/org/superbiz/ejblookup/BlueBean.java|lang=java} \{snippet:id=code|url=openejb3/examples/lookup-of-ejbs/src/main/java/org/superbiz/ejblookup/Friend.java|lang=java} -The key items in the above are the following: - _@EJB_ has been used at +The key items in the above are the following: - _`@EJB_` has been used at the _class level_ to declare _myFriend_ in the _java:comp/env_ namespace of each EJB - because both beans share the _same interface_, _Friend_, -we need to add *beanName* to the _@EJB_ usage to specify the exact EJB +we need to add *beanName* to the _`@EJB_` usage to specify the exact EJB we want - for _BlueBean_ the _java:comp/env/myFriend_ name has been configured to point to _RedBean_ - for _RedBean_ the _java:comp/env/myFriend_ name has been configured to point to _BlueBean_ http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/new-in-openejb-3.0.adoc ---------------------------------------------------------------------- diff --git a/docs/new-in-openejb-3.0.adoc b/docs/new-in-openejb-3.0.adoc index 7fec8da..eedc4ed 100644 --- a/docs/new-in-openejb-3.0.adoc +++ b/docs/new-in-openejb-3.0.adoc @@ -40,7 +40,7 @@ against the same data. Everything is ultimately JPA in the end. == Extended Dependency Injection -Dependency Injection in EJB 3.0 via @Resource is largely limited to +Dependency Injection in EJB 3.0 via `@Resource` is largely limited to objects provided by the container, such as DataSources, JMS Topics and Queues. It is possible for you to supply your own configuration information for injection, but standard rules allow for only data of @@ -79,7 +79,7 @@ Integer, etc. This is a very big burden as each env-entry is going to cost you 5 lines of xml and the complication of having to figure out how to add you bean declaration in xml as an override of an existing bean and not accidentally as a new bean. All this can be very painful when -all you want is to supply the value of a few @Resource String fields in +all you want is to supply the value of a few `@Resource` String fields in you bean class. To fix this, OpenEJB supports the idea of a @@ -124,7 +124,7 @@ failures. As usual validation failures (non-compliant issues with your application) are printed out in complier-style "all-at-once" output allowing you to see and fix all your issues in one go. For example, if -you have 10 @PersistenceContext annotations that reference an invalid +you have 10 `@PersistenceContext` annotations that reference an invalid persistence unit, you get all 10 errors on the _first_ deploy rather than one failure on the first deploy with 9 more failed deployments to go. http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/persistence-context.adoc ---------------------------------------------------------------------- diff --git a/docs/persistence-context.adoc b/docs/persistence-context.adoc index 91e456e..52b4cb6 100644 --- a/docs/persistence-context.adoc +++ b/docs/persistence-context.adoc @@ -38,7 +38,7 @@ public class MyBean implements MyInterface { = Via xml -The above @PersistenceContext annotation usage is 100% equivalent to the +The above `@PersistenceContext` annotation usage is 100% equivalent to the following xml. [source,xml] http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/persistence-unit-ref.adoc ---------------------------------------------------------------------- diff --git a/docs/persistence-unit-ref.adoc b/docs/persistence-unit-ref.adoc index 6da6447..d6233e2 100644 --- a/docs/persistence-unit-ref.adoc +++ b/docs/persistence-unit-ref.adoc @@ -5,7 +5,7 @@ :jbake-status: published Both lookup and injection of an -EntityManagerFactory can be configured via the @PersistenceUnit +EntityManagerFactory can be configured via the `@PersistenceUnit` annotation or in xml. Annotations and xml have equal function in both lookup and injection. @@ -40,7 +40,7 @@ public class MyBean implements MyInterface { == Via xml -The above @PersistenceUnit annotation usage is 100% equivalent to the +The above `@PersistenceUnit` annotation usage is 100% equivalent to the following xml. [source,xml] @@ -82,7 +82,7 @@ public class MyBean implements MyInterface { = Via xml -The above @PersistenceUnit annotation usage is 100% equivalent to the +The above `@PersistenceUnit` annotation usage is 100% equivalent to the following xml. [source,xml] http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/resource-injection.adoc ---------------------------------------------------------------------- diff --git a/docs/resource-injection.adoc b/docs/resource-injection.adoc index 4e709b0..316eb1c 100644 --- a/docs/resource-injection.adoc +++ b/docs/resource-injection.adoc @@ -8,7 +8,7 @@ Overview This example demonstrates the use of the injection of environment -entries using *@Resource* annotation. +entries using *`@Resource`* annotation. The EJB 3.0 specification (_EJB Core Contracts and Requirements_) section 16.2.2 reads: @@ -25,10 +25,10 @@ annotation is applied to the set method for the property, which is the method that is called to inject the environment entry. The JavaBeans property name (not the method name) is used as the default JNDI name._ -The _PurchaseOrderBean_ class shows use of field-level *@Resource* +The _PurchaseOrderBean_ class shows use of field-level *`@Resource`* annotation. -The _InvoiceBean_ class shows the use of method-level *@Resource* +The _InvoiceBean_ class shows the use of method-level *`@Resource`* annotation. The source for this example can be checked out from svn: http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/resource-ref-for-datasource.adoc ---------------------------------------------------------------------- diff --git a/docs/resource-ref-for-datasource.adoc b/docs/resource-ref-for-datasource.adoc index 4112c62..b400cb6 100644 --- a/docs/resource-ref-for-datasource.adoc +++ b/docs/resource-ref-for-datasource.adoc @@ -35,7 +35,7 @@ public class MyDataSourceRefBean implements MyBeanInterface { == Via xml -The above @Resource annotation usage is 100% equivalent to the following +The above `@Resource` annotation usage is 100% equivalent to the following xml. [source,xml] http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/security-annotations.adoc ---------------------------------------------------------------------- diff --git a/docs/security-annotations.adoc b/docs/security-annotations.adoc index ca44e5c..b31f7e6 100644 --- a/docs/security-annotations.adoc +++ b/docs/security-annotations.adoc @@ -90,7 +90,7 @@ public class OpenSourceProjectBean implements Project { == DeclareRoles -You need to update the @DeclareRoles when referencing roles via +You need to update the `@DeclareRoles` when referencing roles via isCallerInRole(roleName). [source,java] @@ -178,7 +178,7 @@ public class OpenSourceProjectBean implements Project { == PermitAll -When annotating a bean class with @RolesAllowed, the @PermitAll +When annotating a bean class with `@RolesAllowed`, the `@PermitAll` annotation becomes very useful on individual methods to open them back up again. @@ -213,7 +213,7 @@ public class OpenSourceProjectBean implements Project { == DenyAll -The @DenyAll annotation can be used to restrict business interface +The `@DenyAll` annotation can be used to restrict business interface access from anyone, logged in or not. The method is still invokable from within the bean class itself. @@ -257,7 +257,7 @@ public class OpenSourceProjectBean implements Project { Generally, security restrictions cannot be made on AroundInvoke methods and most callbacks. -The following usages of @RolesAllowed have no effect. +The following usages of `@RolesAllowed` have no effect. [source,java] ---- http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/singleton-beans.adoc ---------------------------------------------------------------------- diff --git a/docs/singleton-beans.adoc b/docs/singleton-beans.adoc index cdde70e..5f7cb3e 100644 --- a/docs/singleton-beans.adoc +++ b/docs/singleton-beans.adoc @@ -5,8 +5,8 @@ :jbake-status: published = Singleton Overview For the first time in years EJB has a new -bean type, the _@Singleton_. In my opinion, the javax.ejb.Singleton will -replace a lot of what people are using @Stateless for today. +bean type, the _`@Singleton_`. In my opinion, the javax.ejb.Singleton will +replace a lot of what people are using `@Stateless` for today. The Singleton is essentially what you get if you take a Stateless bean and adjust the pool size to be exactly 1 resulting in there being @@ -14,13 +14,13 @@ exactly one instance of the Singleton bean in the application which can be invoked concurrently by multiple threads, like a servlet. It can do everything a Stateless can do such as support local and remote business interfaces, web services, security, transactions, and more. -Additionally, the Singleton can have its @PostConstruct method called -with the application starts up and its @PreDestroy method called when +Additionally, the Singleton can have its `@PostConstruct` method called +with the application starts up and its `@PreDestroy` method called when the application shuts down. This allows it to serve as an application lifecycle listener which is something only Servlets could do before. It -has an _@Startup_ annotation which is similar in concept to the servlet +has an _`@Startup_` annotation which is similar in concept to the servlet , but unlike servlets it doesn't take a number as an argument. Instead, -you can use an _@DependsOn_ annotation to say which other Singletons you +you can use an _`@DependsOn_` annotation to say which other Singletons you need and the container will ensure they start before you. See the link:singleton-example.html[Singleton Example] for sample bean @@ -54,15 +54,15 @@ _@Lock(WRITE)_. Essentially, with a write lock the caller holds an exclusive lock on the bean for the duration of the method call and all other threads for that or any other method must wait. -The second option is a "read" lock, annotated as _@Lock(READ)_. The read +The second option is a "read" lock, annotated as _`@Lock`(READ)_. The read lock allows full concurrent access to the methods (assuming no write locks are held). The default mode of "write" essentially makes your bean a single-threaded bean, which is very slow. The more conservative @Lock(WRITE) was chosen as the default as this is how all the other bean types work (only a single thread may access a bean instance at any given time). Those that are aware of how to handle concurrent access can -easily put @Lock(READ) on their bean class, thus changing the default, -and then @Lock(WRITE) on specific methods if needed. +easily put `@Lock`(READ) on their bean class, thus changing the default, +and then `@Lock`(WRITE) on specific methods if needed. The locking modes of Container-Managed Concurrency map directly to the _http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/ReadWriteLock.html[java.util.concurrent.ReadWriteLock] @@ -107,7 +107,7 @@ downgrading, and ==== Acquiring the Lock -The _@AccessTimetout_ annotation can configure how long a thread will +The _`@AccessTimetout_` annotation can configure how long a thread will wait to acquire the read or write lock. This annotation can be used on the bean class or individual methods. The annotation maps directly to the @@ -148,7 +148,7 @@ _javax.ejb.ConcurrentAccessTimeoutException_ will be thrown. ==== Default Timeout -The default value of _@AccessTimeout_ annotation is vendor specific. In +The default value of _`@AccessTimeout_` annotation is vendor specific. In OpenEJB it defaults to the value of the _AccessTimeout_ property which can be configured in many different scopes. Here is the order of preference: @@ -167,16 +167,16 @@ link:configuring-durations.html[Configuring Durations] for details. == Startup and Startup Ordering -Singletons have an _@Startup_ annotation which can be applied to the +Singletons have an _`@Startup_` annotation which can be applied to the bean class. When used, the Container will instantiate the Singleton instance _eagerly_ when the application starts up, otherwise the Container will instantiate the Singleton instance _lazily_ when the bean is first accessed. -If one Singleton refers to another Singleton in the @PostConstruct or +If one Singleton refers to another Singleton in the `@PostConstruct` or @PreDestroy method, there must be some measure taken to ensure the other Singleton exists and is started. This sort of ordering is achieved with -the _@DependsOn_ annotation which can be used to list the names of +the _`@DependsOn_` annotation which can be used to list the names of Singleton beans that must be started before the Singleton bean using the annotation. @@ -189,22 +189,22 @@ public class SingletonA { } ---- -Circular references are not supported. If BeanA uses @DependsOn to point -to BeanB and BeanB also uses @DependsOn to point at BeanA, the result is +Circular references are not supported. If BeanA uses `@DependsOn` to point +to BeanB and BeanB also uses `@DependsOn` to point at BeanA, the result is a deployment exception. Be aware that circular references can happen in less trivial ways such as A referring to B which refers to C which refers to D which refers back to A. We will detect and print all circular dependencies (called circuits) at deploy time. -Note that @DependsOn is only required (and should only be used) if a -Singleton _uses_ another Singleton in its @PostConstruct method or +Note that `@DependsOn` is only required (and should only be used) if a +Singleton _uses_ another Singleton in its `@PostConstruct` method or @PreDestroy method. Simply having a reference to another Singleton and -using it in other business methods does not require an @DependsOn -declaration. The @DependsOn allows the Container to calculate the +using it in other business methods does not require an `@DependsOn` +declaration. The `@DependsOn` allows the Container to calculate the correct startup order and shutdown order so that it can guarantee the -Singletons you need are available in your @PostConstruct or @PreDestroy +Singletons you need are available in your `@PostConstruct` or `@PreDestroy` methods. All Singletons will automatically be available to your business -methods regardless if @DependsOn is used. Because of the greater chance +methods regardless if `@DependsOn` is used. Because of the greater chance of creating circular dependencies, it is better not to use the @DependsOn annotation "just in case" and should only be used when truly needed. http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/spring-and-openejb-3.0.adoc ---------------------------------------------------------------------- diff --git a/docs/spring-and-openejb-3.0.adoc b/docs/spring-and-openejb-3.0.adoc index fcbae1c..19d89b3 100644 --- a/docs/spring-and-openejb-3.0.adoc +++ b/docs/spring-and-openejb-3.0.adoc @@ -82,8 +82,8 @@ that Spring creates, here's one technique.... Let's say you have a persistence unit called "_OrangeUnit_" declared in a persistence.xml file. One way to get the related _EntityManager_ -created by OpenEJB is to do as follows. Create an @Stateless bean with -an @PersistenceContext ref in it, then use a factory bean to look it up, +created by OpenEJB is to do as follows. Create an `@Stateless` bean with +an `@PersistenceContext` ref in it, then use a factory bean to look it up, pull the EntityManager out and return it OrangeUnitBean.java http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/spring-ejb-and-jpa.adoc ---------------------------------------------------------------------- diff --git a/docs/spring-ejb-and-jpa.adoc b/docs/spring-ejb-and-jpa.adoc index e97f434..1d52ee4 100644 --- a/docs/spring-ejb-and-jpa.adoc +++ b/docs/spring-ejb-and-jpa.adoc @@ -26,7 +26,7 @@ http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/spring-integration/sr @Stateless -Shows the use of @Resource to have Spring beans injected. Specifically, +Shows the use of `@Resource` to have Spring beans injected. Specifically, the _Theaters_ Spring bean http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/spring-integration/src/main/java/org/superbiz/spring/Theaters.java[Theaters] @@ -96,10 +96,10 @@ And finally our Spring beans. {title= Don't forget} \{snippet:id=annotations|url=openejb3/examples/spring-integration/src/main/resources/movies.xml|lang=xml} It allows various annotations to be detected in bean classes: Spring's -@Required and @Autowired, as well as JSR 250's @PostConstruct, -@PreDestroy and @Resource (if available), JAX-WS's @WebServiceRef (if -available), EJB3's @EJB (if available), and JPA's @PersistenceContext -and @PersistenceUnit (if available). Alternatively, you may choose to +@Required and `@Autowired`, as well as JSR 250's `@PostConstruct`, +@PreDestroy and `@Resource` (if available), JAX-WS's `@WebServiceRef` (if +available), EJB3's `@EJB` (if available), and JPA's `@PersistenceContext` +and `@PersistenceUnit` (if available). Alternatively, you may choose to activate the individual BeanPostProcessors for those annotations. \{note} http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/tomcat-object-factory.adoc ---------------------------------------------------------------------- diff --git a/docs/tomcat-object-factory.adoc b/docs/tomcat-object-factory.adoc index 1cb071c..e1ac873 100644 --- a/docs/tomcat-object-factory.adoc +++ b/docs/tomcat-object-factory.adoc @@ -9,7 +9,7 @@ http://www.onjava.com/pub/a/onjava/2003/02/12/ejb_tomcat.html[OnJava article "OpenEJB: EJB for Tomcat"] is no longer required._ As of OpenEJB 3.0 references from Servlets to EJBs happen automatically -with usage of the [@EJB +with usage of the [`@EJB` annotation](openejbx30:injection-of-other-ejbs-example.html) in the Servlet, Filter or Listener or with the or declared in the web.xml. http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/tomee-and-security.adoc ---------------------------------------------------------------------- diff --git a/docs/tomee-and-security.adoc b/docs/tomee-and-security.adoc index e33ee35..4887b55 100644 --- a/docs/tomee-and-security.adoc +++ b/docs/tomee-and-security.adoc @@ -28,7 +28,7 @@ application] , all we would need to do is: [arabic] . Add some users to the tomcat-users.xml file + -. Add the necessary @DefineRoles and @RolesAllowed annotations on +. Add the necessary `@DefineRoles` and `@RolesAllowed` annotations on MoviesImpl + . Add some security config to do HTTP Basic authentication to web.xml Webservice security is also looked after â username/password based http://git-wip-us.apache.org/repos/asf/tomee/blob/62db64ba/docs/transaction-annotations.adoc ---------------------------------------------------------------------- diff --git a/docs/transaction-annotations.adoc b/docs/transaction-annotations.adoc index dab330a..17aa163 100644 --- a/docs/transaction-annotations.adoc +++ b/docs/transaction-annotations.adoc @@ -8,10 +8,10 @@ _Also see link:testing-transactions-example.html[Testing Transactions] for an example of how to use and test EJB transaction attributes_ -The _javax.ejb.TransactionAttribute_ annotation (@TransactionAttribute) +The _javax.ejb.TransactionAttribute_ annotation (`@TransactionAttribute`) can be applied to a bean class or it's methods. -Usage of the @TransactionAttribute requires you to specify one of six +Usage of the `@TransactionAttribute` requires you to specify one of six different transaction attribute types defined via the javax.ejb.TransactionAttributeType enum. @@ -190,7 +190,7 @@ public static class MyBean implements MyBusinessInterface { Generally, transaction annotationss cannot be made on AroundInvoke methods and most callbacks. -The following usages of @TransactionAttribute have no effect. +The following usages of `@TransactionAttribute` have no effect. [source,java] ----