title: What does the @EJBs annotation do?
body: <p>I know roughly what this construction does:  it creates a SomeType EJB and injects the object into another EJB.</p>
  
  <pre><code> @EJB(name="name1")
   SomeType someVariable
  </code></pre>
  
  <p>Now I have a class which starts like this: (I give all class-level annotations, even though I think only the <code>@EJBs</code> is relevant)</p>
  
  <pre><code>@Remote(SomeClass.class)
  @Stateless(name="someName")
  @EJBs({@EJB(name="name1",beanInterface=Type1.class),
         @EJB(name="name2",beanInterface=Type2.class)})
  @TransactionAttribute(TransactionAttributeType.REQUIRED)
  @TransactionManagement(TransactionManagementType.CONTAINER)
  public class X extends Y{ 
    //code
  </code></pre>
  
  <p>What do the <code>@EJB</code> s do here? They probably get or create the "name1" ... objects from JNDI, but where do they put the result?  I don't see a <code>.lookup</code> call anywhere near, but the codebase is huge so I'm not very sure about this.</p>
  
  <p>Bonus question: I presume the two <code>@Transaction</code> annotations simply repeat defaults?</p>
  
  <p><em>UPDATE:</em> Multiple persons claimed at this point that <code>@EJBs</code> is a proprietary extension.  It is not. It is a core part of java EE5. See <a href="http://docs.oracle.com/javaee/5/api/javax/ejb/EJBs.html" rel="noreferrer">the JavaDoc for details.</a>.  It is simply a container for the individual <code>@EJB</code> annotations.</p>
  
  <p>I believe everyone who claims these EJB annotations do a lookup.  I just want to know what happens with the result of this lookup.</p>