You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/07/10 07:36:21 UTC

svn commit: r1144778 [3/13] - /openejb/site/trunk/content/

Added: openejb/site/trunk/content/configuring-persistenceunits-in-tests.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/configuring-persistenceunits-in-tests.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/configuring-persistenceunits-in-tests.cwiki (added)
+++ openejb/site/trunk/content/configuring-persistenceunits-in-tests.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,92 @@
+h1. Overriding the persistence.xml
+
+The most common situation in EJB related testing by far is the need to alter your persistence.xml for a test environment.
+
+h2. Overriding the <jta-data-source> and <non-jta-data-source>
+
+OpenEJB will automatically use the DataSources you have setup in your test environment, we're pretty good at guessing the right DataSources you intend even if the names don't match exactly -- or in some cases at all.  If there is only one DataSource configured, it's very easy for us to guess the DataSource to use.
+
+This allows you to keep your persistence.xml configured for your production environment and helps eliminate the need for a "test" persistence.xml (though we do have that functionality).  A log line will be printed saying if we had to adjust the DataSources of your persistence.xml.
+
+h2.  Overriding the persistence-unit <properties>
+
+You can override any property in your test setup via either system properties or the initial context properties.  The format is:
+
+{quote}<unit-name>.<property>=<value>{quote}
+
+So for example with the following persistence.xml:
+
+{code:xml|title=persistence.xml}
+<persistence>
+  <persistence-unit name="movie-unit">
+    <provider>org.hibernate.ejb.HibernatePersistence</provider>
+    <jta-data-source>movieDatabase</jta-data-source>
+    <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
+    <properties>
+      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+      <property name="hibernate.max_fetch_depth" value="3"/>
+    </properties>
+  </persistence-unit>
+</persistence>
+{code}
+
+You can override and add persistence unit properties in your test case.  There are currently no facilities for removing them (if you have a need for that let us know -- it hasn't really come up so far).
+
+{code}
+Properties p = new Properties();
+p.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.LocalInitialContextFactory");
+
+p.put("movie-unit.hibernate.hbm2ddl.auto", "update");
+p.put("movie-unit.hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
+
+context = new InitialContext(p);
+{code}
+
+The overriding order is as follows: 1 = highest, 4 = lowest.
+
+# InitialContext properties
+# jndi.properties from the classpath
+# System properties
+# persistence.xml properties
+ 
+By default there are no overrides in 1-3, so #4 is the only source of information.  
+
+In the above example there would be exactly three properties for the "movie-unit" persistence unit:
+- hibernate.hbm2ddl.auto = update
+- hibernate.max_fetch_depth = 3
+- hibernate.dialect = org.hibernate.dialect.HSQLDialect
+
+These properties would be passed by OpenEJB directly to the persistence provider (in this case Hibernate).  With one exception OpenEJB does not understand or modify these properties.  Details on that one exception below.
+
+h3.  No need to specify a "transaction lookup" property
+
+All vendors have such a property for getting a reference to the container's TransactionManager and nothing works if this is not set correctly to the OpenEJB specific class.  To make the lives of users easier, OpenEJB will take the liberty of setting it for you.
+
+Here are the persistence provider classes we understand and the defaults we will set for you:
+
+h4. Provider org.hibernate.ejb.HibernatePersistence
+
+When using this provider, the *hibernate.transaction.manager_lookup_class* will be automatically set by OpenEJB to _org.apache.openejb.hibernate.TransactionManagerLookup_.  If the property is already set in the persistence unit it will be overwritten if it starts with the standard "org.hibernate.transaction." prefix.  
+
+Custom lookup implementations will never be overwritten.
+
+h4. Provider oracle.toplink.essentials.PersistenceProvider
+
+Or _oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider_.
+
+When using this provider, the *toplink.target-server* will be automatically set by OpenEJB to _org.apache.openejb.toplink.JTATransactionController_.  If the property is already set in the persistence unit it will be overwritten if it starts with the standard "oracle.toplink.transaction." prefix.  
+
+Custom transaction controller implementations will never be overwritten.
+
+h4. Provider org.eclipse.persistence.jpa.PersistenceProvider
+
+Or _org.eclipse.persistence.jpa.osgi.PersistenceProvider_.
+
+When using this provider, the *eclipselink.target-server* will be automatically set by OpenEJB to _org.apache.openejb.eclipselink.JTATransactionController_.  If the property is already set in the persistence unit it will be overwritten if it starts with the standard "org.eclipse.persistence.transaction." prefix.  
+
+Custom transaction controller implementations will never be overwritten.
+
+h4. Provider org.apache.openjpa.persistence.PersistenceProviderImpl
+
+OpenJPA is capable of discovering the correct method for locating the TransactionManager without the need for users to specify the specific strategy.  Therefore no specific "magic" is required.
+

Propchange: openejb/site/trunk/content/configuring-persistenceunits-in-tests.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/configuring-persistenceunits-in-tests.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/configuring-persistenceunits-in-tests.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/configuring-persistenceunits-in-tests.mdtext (added)
+++ openejb/site/trunk/content/configuring-persistenceunits-in-tests.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,130 @@
+Title: Configuring PersistenceUnits in Tests
+<a name="ConfiguringPersistenceUnitsinTests-Overridingthepersistence.xml"></a>
+# Overriding the persistence.xml
+
+The most common situation in EJB related testing by far is the need to
+alter your persistence.xml for a test environment.
+
+<a name="ConfiguringPersistenceUnitsinTests-Overridingthe<jta-data-source>and<non-jta-data-source>"></a>
+## Overriding the <jta-data-source> and <non-jta-data-source>
+
+OpenEJB will automatically use the DataSources you have setup in your test
+environment, we're pretty good at guessing the right DataSources you intend
+even if the names don't match exactly -- or in some cases at all.  If there
+is only one DataSource configured, it's very easy for us to guess the
+DataSource to use.
+
+This allows you to keep your persistence.xml configured for your production
+environment and helps eliminate the need for a "test" persistence.xml
+(though we do have that functionality).  A log line will be printed saying
+if we had to adjust the DataSources of your persistence.xml.
+
+<a name="ConfiguringPersistenceUnitsinTests-Overridingthepersistence-unit<properties>"></a>
+##  Overriding the persistence-unit <properties>
+
+You can override any property in your test setup via either system
+properties or the initial context properties.  The format is:
+
+{quote}<unit-name>.<property>=<value>{quote}
+
+So for example with the following persistence.xml:
+
+{code:xml|title=persistence.xml}
+<persistence>
+  <persistence-unit name="movie-unit">
+    <provider>org.hibernate.ejb.HibernatePersistence</provider>
+    <jta-data-source>movieDatabase</jta-data-source>
+    <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
+    <properties>
+      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+      <property name="hibernate.max_fetch_depth" value="3"/>
+    </properties>
+  </persistence-unit>
+</persistence>
+
+    
+    You can override and add persistence unit properties in your test case. 
+There are currently no facilities for removing them (if you have a need for
+that let us know -- it hasn't really come up so far).
+    
+
+Properties p = new Properties();
+p.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.LocalInitialContextFactory");
+
+p.put("movie-unit.hibernate.hbm2ddl.auto", "update");
+p.put("movie-unit.hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
+
+context = new InitialContext(p);
+
+    
+    The overriding order is as follows: 1 = highest, 4 = lowest.
+    
+    # InitialContext properties
+    # jndi.properties from the classpath
+    # System properties
+    # persistence.xml properties
+     
+    By default there are no overrides in 1-3, so #4 is the only source of
+information.  
+    
+    In the above example there would be exactly three properties for the
+"movie-unit" persistence unit:
+    - hibernate.hbm2ddl.auto = update
+    - hibernate.max_fetch_depth = 3
+    - hibernate.dialect = org.hibernate.dialect.HSQLDialect
+    
+    These properties would be passed by OpenEJB directly to the persistence
+provider (in this case Hibernate).  With one exception OpenEJB does not
+understand or modify these properties.	Details on that one exception
+below.
+    
+    h3.  No need to specify a "transaction lookup" property
+    
+    All vendors have such a property for getting a reference to the container's
+TransactionManager and nothing works if this is not set correctly to the
+OpenEJB specific class.  To make the lives of users easier, OpenEJB will
+take the liberty of setting it for you.
+    
+    Here are the persistence provider classes we understand and the defaults we
+will set for you:
+    
+    h4. Provider org.hibernate.ejb.HibernatePersistence
+    
+    When using this provider, the *hibernate.transaction.manager_lookup_class*
+will be automatically set by OpenEJB to
+_org.apache.openejb.hibernate.TransactionManagerLookup_.  If the property
+is already set in the persistence unit it will be overwritten if it starts
+with the standard "org.hibernate.transaction." prefix.	
+    
+    Custom lookup implementations will never be overwritten.
+    
+    h4. Provider oracle.toplink.essentials.PersistenceProvider
+    
+    Or _oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider_.
+    
+    When using this provider, the *toplink.target-server* will be automatically
+set by OpenEJB to _org.apache.openejb.toplink.JTATransactionController_. 
+If the property is already set in the persistence unit it will be
+overwritten if it starts with the standard "oracle.toplink.transaction."
+prefix.  
+    
+    Custom transaction controller implementations will never be overwritten.
+    
+    h4. Provider org.eclipse.persistence.jpa.PersistenceProvider
+    
+    Or _org.eclipse.persistence.jpa.osgi.PersistenceProvider_.
+    
+    When using this provider, the *eclipselink.target-server* will be
+automatically set by OpenEJB to
+_org.apache.openejb.eclipselink.JTATransactionController_.  If the property
+is already set in the persistence unit it will be overwritten if it starts
+with the standard "org.eclipse.persistence.transaction." prefix.  
+    
+    Custom transaction controller implementations will never be overwritten.
+    
+    h4. Provider org.apache.openjpa.persistence.PersistenceProviderImpl
+    
+    OpenJPA is capable of discovering the correct method for locating the
+TransactionManager without the need for users to specify the specific
+strategy.  Therefore no specific "magic" is required.
+    

Added: openejb/site/trunk/content/constructor-injection.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/constructor-injection.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/constructor-injection.cwiki (added)
+++ openejb/site/trunk/content/constructor-injection.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,80 @@
+For those of you who would like to use final fields, wish to avoid numerous setters, or dislike private field injection and would like nothing more than to just use plan old java constructors, your wish has come true.  This is a feature we intended to add to OpenEJB 3.0 but didn't have time for.  We're happy to bring it to the OpenEJB 3.1 release and with a bit of luck and support from people like yourself, we'll see this as an EJB 3.1 feature as well.
+
+{code}
+@Stateless
+public class WidgetBean implements Widget {
+
+    @EJB(beanName = "FooBean")
+    private final Foo foo;
+
+    @Resource(name = "count")
+    private final int count;
+
+    @Resource
+    private final DataSource ds;
+
+    public WidgetBean(Integer count, Foo foo, DataSource ds) {
+        this.count = count;
+        this.foo = foo;
+        this.ds = ds;
+    }
+
+    public int getCount() {
+        return count;
+    }
+
+    public Foo getFoo() {
+        return foo;
+    }
+}
+{code}
+
+The @EJB, @Resource, @PersistenceUnit, and @PersistenceContext annotations can be placed at the class-level instead such as:
+
+{code}
+@Stateless
+@EJB(name = "foo", beanInterface = Foo.class, beanName = "FooBean")
+@Resource(name = "count", type = int.class)
+@Resource(name = "ds", type = DataSource.class)
+public class WidgetBean implements Widget {
+
+    public WidgetBean(Integer count, Foo foo, DataSource ds) {
+       // do something
+    }
+
+    public int getCount() {
+        return count;
+    }
+
+    public Foo getFoo() {
+        return foo;
+    }
+}
+{code}
+
+
+Currently this functionality relies on classes being compiled with debug symbols (the default compile setting for javac) as we use the debug table in the byte code to discover the constructor arg names.  Additionally, you must not have a no-arg constructor.  If a no-arg constructor is present, that constructor will be used instead.
+
+Ideally, we would like the annotations to be used on the parameters directly as shown below.  Unfortunately, this does not work as the Java EE annotation classes do not permit usage on parameters.  If you'd like to see that change as much as we do, definitely voice your support by sending note to [jsr-316-comments@jcp.org|mailto:jsr-316-comments@jcp.org]
+
+
+{code:title=Not yet possible}
+@Stateless
+
+public class WidgetBean implements Widget {
+
+    public WidgetBean(@Resource(name = "count") Integer count, @EJB Foo foo, @Resource DataSource ds) {
+       // do something
+    }
+
+    public int getCount() {
+        return count;
+    }
+
+    public Foo getFoo() {
+        return foo;
+    }
+}
+{code}
+
+

Propchange: openejb/site/trunk/content/constructor-injection.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/constructor-injection.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/constructor-injection.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/constructor-injection.mdtext (added)
+++ openejb/site/trunk/content/constructor-injection.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,97 @@
+Title: Constructor Injection
+For those of you who would like to use final fields, wish to avoid numerous
+setters, or dislike private field injection and would like nothing more
+than to just use plan old java constructors, your wish has come true.  This
+is a feature we intended to add to OpenEJB 3.0 but didn't have time for. 
+We're happy to bring it to the OpenEJB 3.1 release and with a bit of luck
+and support from people like yourself, we'll see this as an EJB 3.1 feature
+as well.
+
+
+    @Stateless
+    public class WidgetBean implements Widget {
+    
+        @EJB(beanName = "FooBean")
+        private final Foo foo;
+    
+        @Resource(name = "count")
+        private final int count;
+    
+        @Resource
+        private final DataSource ds;
+    
+        public WidgetBean(Integer count, Foo foo, DataSource ds) {
+    	this.count = count;
+    	this.foo = foo;
+    	this.ds = ds;
+        }
+    
+        public int getCount() {
+    	return count;
+        }
+    
+        public Foo getFoo() {
+    	return foo;
+        }
+    }
+
+
+The @EJB, @Resource, @PersistenceUnit, and @PersistenceContext annotations
+can be placed at the class-level instead such as:
+
+
+    @Stateless
+    @EJB(name = "foo", beanInterface = Foo.class, beanName = "FooBean")
+    @Resource(name = "count", type = int.class)
+    @Resource(name = "ds", type = DataSource.class)
+    public class WidgetBean implements Widget {
+    
+        public WidgetBean(Integer count, Foo foo, DataSource ds) {
+           // do something
+        }
+    
+        public int getCount() {
+    	return count;
+        }
+    
+        public Foo getFoo() {
+    	return foo;
+        }
+    }
+
+
+
+Currently this functionality relies on classes being compiled with debug
+symbols (the default compile setting for javac) as we use the debug table
+in the byte code to discover the constructor arg names.  Additionally, you
+must not have a no-arg constructor.  If a no-arg constructor is present,
+that constructor will be used instead.
+
+Ideally, we would like the annotations to be used on the parameters
+directly as shown below.  Unfortunately, this does not work as the Java EE
+annotation classes do not permit usage on parameters.  If you'd like to see
+that change as much as we do, definitely voice your support by sending note
+to [jsr-316-comments@jcp.org](mailto:jsr-316-comments@jcp.org.html)
+
+
+<DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><B>Not yet possible</B></DIV><DIV class="codeContent panelContent">
+    @Stateless
+    
+    public class WidgetBean implements Widget {
+    
+        public WidgetBean(@Resource(name = "count") Integer count, @EJB Foo
+foo, @Resource DataSource ds) {
+           // do something
+        }
+    
+        public int getCount() {
+    	return count;
+        }
+    
+        public Foo getFoo() {
+    	return foo;
+        }
+    }
+
+
+

Added: openejb/site/trunk/content/containers-and-resources.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/containers-and-resources.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/containers-and-resources.cwiki (added)
+++ openejb/site/trunk/content/containers-and-resources.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,218 @@
+{anchor: containers}
+h1. Containers
+{anchor:Default CMP Container-container}
+h2. CMP_ENTITY
+Declarable in openejb.xml via
+{code:xml}
+<Container id="Foo" type="CMP_ENTITY">
+</Container>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Container?type=CMP_ENTITY
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | CmpEngineFactory | Default value is _org.apache.openejb.core.cmp.jpa.JpaCmpEngineFactory_.||
+
+{anchor:Default BMP Container-container}
+h2. BMP_ENTITY
+Declarable in openejb.xml via
+{code:xml}
+<Container id="Foo" type="BMP_ENTITY">
+</Container>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Container?type=BMP_ENTITY
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | PoolSize | Specifies the size of the bean pools for this\\ bmp entity container.\\ \\ Default value is _10_.||
+
+{anchor:Default Stateless Container-container}
+h2. STATELESS
+Declarable in openejb.xml via
+{code:xml}
+<Container id="Foo" type="STATELESS">
+</Container>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Container?type=STATELESS
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | TimeOut | Specifies the time to wait between invocations. This\\ value is measured in milliseconds. A value of 5 would\\ result in a time\-out of 5 milliseconds between invocations.\\ A value of zero would mean no timeout.\\ \\ Default value is _0_.||
+    | PoolSize | Specifies the size of the bean pools for this\\ stateless SessionBean container.\\ \\ Default value is _10_.||
+    | StrictPooling | StrictPooling tells the container what to do when the pool\\ reaches it's maximum size and there are incoming requests\\ that need instances.\\ \\ With strict pooling, requests will have to wait for instances\\ to become available. The pool size will never grow beyond the\\ the set PoolSize value.\\ \\ Without strict pooling, the container will create temporary\\ instances to meet demand. The instances will last for just one\\ method invocation and then are removed.\\ \\ Default value is _true_.||
+
+{anchor:Default Stateful Container-container}
+h2. STATEFUL
+Declarable in openejb.xml via
+{code:xml}
+<Container id="Foo" type="STATEFUL">
+</Container>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Container?type=STATEFUL
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | Passivator | The passivator is responsible for writing beans to disk\\ at passivation time. Different passivators can be used\\ by setting this property to the fully qualified class name\\ of the PassivationStrategy implementation. The passivator\\ is not responsible for invoking any callbacks or other\\ processing, its only responsibly is to write the bean state\\ to disk.\\ \\ Known implementations:\\ org.apache.openejb.core.stateful.RAFPassivater\\ org.apache.openejb.core.stateful.SimplePassivater\\ \\ Default value is _org.apache.openejb.core.stateful.SimplePassivater_.||
+    | TimeOut | Specifies the time to wait between invocations. This\\ value is measured in minutes. A value of 5 would\\ result in a time\-out of 5 minutes between invocations.\\ A value of zero would mean no timeout.\\ \\ Default value is _20_.||
+    | PoolSize | Specifies the size of the bean pools for this\\ stateful SessionBean container.\\ \\ Default value is _1000_.||
+    | BulkPassivate | Property name that specifies the number of instances\\ to passivate at one time when doing bulk passivation.\\ \\ Default value is _100_.||
+
+{anchor:Default MDB Container-container}
+h2. MESSAGE
+Declarable in openejb.xml via
+{code:xml}
+<Container id="Foo" type="MESSAGE">
+</Container>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Container?type=MESSAGE
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | ResourceAdapter | The resource adapter delivers messages to the container\\ \\ Default value is _Default JMS Resource Adapter_.||
+    | MessageListenerInterface | Specifies the message listener interface handled by this container\\ \\ Default value is _javax.jms.MessageListener_.||
+    | ActivationSpecClass | Specifies the activation spec class\\ \\ Default value is _org.apache.activemq.ra.ActiveMQActivationSpec_.||
+    | InstanceLimit | Specifies the maximum number of bean instances that are\\ allowed to exist for each MDB deployment.\\ \\ Default value is _10_.||
+
+
+{anchor: resources}
+h1. Resources
+{anchor:Default JDBC Database-resource}
+h2. javax.sql.DataSource
+Declarable in openejb.xml via
+{code:xml}
+<Resource id="Foo" type="javax.sql.DataSource">
+</Resource>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.sql.DataSource
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | JtaManaged | Determines wether or not this data source should be JTA managed\\ or user managed.{html}&nbsp;&nbsp;{html}If set to 'true' it will automatically be enrolled\\ in any ongoing transactions.{html}&nbsp;&nbsp;{html}Calling begin/commit/rollback or setAutoCommit\\ on the datasource or connection will not be allowed.{html}&nbsp;&nbsp;{html}If you need to perform\\ these functions yourself, set JtaManaged to 'false'\\ \\ In terms of JPA persistence.xml:\\ "JtaManaged=true" can be used as a 'jta\-data\-source'\\ "JtaManaged=false" can be used as a 'non\-jta\-data\-source'\\ \\ Default value is _true_.||
+    | JdbcDriver | Driver class name\\ \\ Default value is _org.hsqldb.jdbcDriver_.||
+    | JdbcUrl | Url for creating connections\\ \\ Default value is _jdbc:hsqldb:{html}file:{html}data/hsqldb/hsqldb_.||
+    | UserName | Default user name\\ \\ Default value is _sa_.||
+    | Password | Default password|
+    | ConnectionProperties | The connection properties that will be sent to the JDBC\\ driver when establishing new connections\\ \\ Format of the string must be \[propertyName=property;\]\*\\ \\ NOTE \- The "user" and "password" properties will be passed\\ explicitly, so they do not need to be included here.|
+    | DefaultAutoCommit | The default auto\-commit state of new connections\\ \\ Default value is _true_.||
+    | DefaultReadOnly | The default read\-only state of new connections\\ If not set then the setReadOnly method will not be called.\\ \(Some drivers don't support read only mode, ex: Informix\)|
+    | DefaultTransactionIsolation | The default TransactionIsolation state of new connections\\ If not set then the setTransactionIsolation method will not\\ be called. The allowed values for this property are:\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} NONE\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} READ\_COMMITTED\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} READ\_UNCOMMITTED\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} REPEATABLE\_READ\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} SERIALIZABLE\\ \\ Note: Most JDBC drivers do not support all isolation levels|
+    | InitialSize | The initial number of connections that are created when the\\ pool is started\\ \\ Default value is _0_.||
+    | MaxActive | The maximum number of active connections that can be\\ allocated from this pool at the same time, or a negative\\ number for no limit.\\ \\ Default value is _20_.||
+    | MaxIdle | The maximum number of connections that can remain idle in\\ the pool, without extra ones being released, or a negative\\ number for no limit.\\ \\ Default value is _20_.||
+    | MinIdle | The minimum number of connections that can remain idle in\\ the pool, without extra ones being created, or zero to\\ create none.\\ \\ Default value is _0_.||
+    | MaxWait | The maximum number of milliseconds that the pool will wait\\ \(when there are no available connections\) for a connection\\ to be returned before throwing an exception, or \-1 to wait\\ indefinitely.\\ \\ Default value is _\-1_.||
+    | ValidationQuery | The SQL query that will be used to validate connections from\\ this pool before returning them to the caller. If specified,\\ this query MUST be an SQL SELECT statement that returns at\\ least one row.|
+    | TestOnBorrow | If true connections will be validated before being returned\\ from the pool. If the validation fails, the connection is\\ destroyed, and a new conection will be retrieved from the\\ pool \(and validated\).\\ \\ NOTE \- for a true value to have any effect, the\\ ValidationQuery parameter must be set.\\ \\ Default value is _true_.||
+    | TestOnReturn | If true connections will be validated before being returned\\ to the pool.{html}&nbsp;&nbsp;{html}If the validation fails, the connection is\\ destroyed instead of being returned to the pool.\\ \\ NOTE \- for a true value to have any effect, the\\ ValidationQuery parameter must be set.\\ \\ Default value is _false_.||
+    | TestWhileIdle | If true connections will be validated by the idle connection\\ evictor \(if any\). If the validation fails, the connection is\\ destroyed and removed from the pool\\ \\ NOTE \- for a true value to have any effect, the\\ timeBetweenEvictionRunsMillis property must be a positive\\ number and the ValidationQuery parameter must be set.\\ \\ Default value is _false_.||
+    | TimeBetweenEvictionRunsMillis | The number of milliseconds to sleep between runs of the idle\\ connection evictor thread. When set to a negative number, no\\ idle connection evictor thread will be run.\\ \\ Default value is _\-1_.||
+    | NumTestsPerEvictionRun | The number of connectionss to examine during each run of the\\ idle connection evictor thread \(if any\).\\ \\ Default value is _3_.||
+    | MinEvictableIdleTimeMillis | The minimum amount of time a connection may sit idle in the\\ pool before it is eligable for eviction by the idle\\ connection evictor \(if any\).\\ \\ Default value is _1800000_.||
+    | PoolPreparedStatements | If true, a statement pool is created for each Connection and\\ PreparedStatements created by one of the following methods are\\ pooled:\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html}public PreparedStatement prepareStatement\(String sql\);\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html}public PreparedStatement prepareStatement\(String sql,\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html}{html}&nbsp;&nbsp;&nbsp;&nbsp;{html}{html}&nbsp;&nbsp;&nbsp;&nbsp;{html}int resultSetType,\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html}{html}&nbsp;&nbsp;&nbsp;&nbsp;{html}{html}&nbsp;&nbsp;&nbsp;&nbsp;{html}int resultSetConcurrency\)\\ \\ Default value is _false_.||
+    | MaxOpenPreparedStatements | The maximum number of open statements that can be allocated\\ from the statement pool at the same time, or zero for no\\ limit.\\ \\ NOTE \- Some drivers have limits on the number of open\\ statements, so make sure there are some resources left\\ for the other \(non\-prepared\) statements.\\ \\ Default value is _0_.||
+    | AccessToUnderlyingConnectionAllowed | If true the raw physical connection to the database can be\\ accessed using the following construct:\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} Connection conn = ds.getConnection\(\);\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} Connection rawConn = \(\(DelegatingConnection\) conn\).getInnermostDelegate\(\);\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} ...\\{html}&nbsp;&nbsp;&nbsp;&nbsp;{html} conn.close\(\)\\ \\ Default is false, because misbehaving programs can do harmfull\\ things to the raw connection shuch as closing the raw\\ connection or continuing to use the raw connection after it\\ has been assigned to another logical connection.{html}&nbsp;&nbsp;{html}Be carefull\\ and only use when you need direct access to driver specific\\ extentions.\\ \\ NOTE: Do NOT close the underlying connection, only the\\ original logical connection wrapper.\\ \\ Default value is _false_.||
+
+{anchor:Default JMS Resource Adapter-resource}
+h2. ActiveMQResourceAdapter
+Declarable in openejb.xml via
+{code:xml}
+<Resource id="Foo" type="ActiveMQResourceAdapter">
+</Resource>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=ActiveMQResourceAdapter
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | BrokerXmlConfig | Broker configuration\\ \\ Default value is _broker:\(tcp://localhost:61616\)\?useJmx=false_.||
+    | ServerUrl | Broker address\\ \\ Default value is _vm://localhost\?async=true_.||
+    | DataSource | DataSource for persistence messages\\ \\ Default value is _Default Unmanaged JDBC Database_.||
+
+{anchor:Default JMS Connection Factory-resource}
+h2. javax.jms.ConnectionFactory
+Declarable in openejb.xml via
+{code:xml}
+<Resource id="Foo" type="javax.jms.ConnectionFactory">
+</Resource>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.jms.ConnectionFactory
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | ResourceAdapter | Default value is _Default JMS Resource Adapter_.||
+    | TransactionSupport | Specifies if the connection is enrolled in global transaction\\ allowed values: xa, local or none\\ \\ Default value is _xa_.||
+    | PoolMaxSize | Maximum number of physical connection to the ActiveMQ broker\\ \\ Default value is _10_.||
+    | PoolMinSize | Minimum number of physical connection to the ActiveMQ broker\\ \\ Default value is _0_.||
+    | ConnectionMaxWaitMilliseconds | Maximum amount of time to wait for a connection\\ \\ Default value is _5000_.||
+    | ConnectionMaxIdleMinutes | Maximum amount of time a connection can be idle before being reclaimed\\ \\ Default value is _15_.||
+
+{anchor:Default Queue-resource}
+h2. javax.jms.Queue
+Declarable in openejb.xml via
+{code:xml}
+<Resource id="Foo" type="javax.jms.Queue">
+</Resource>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.jms.Queue
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | destination | Specifies the name of the queue|
+
+{anchor:Default Topic-resource}
+h2. javax.jms.Topic
+Declarable in openejb.xml via
+{code:xml}
+<Resource id="Foo" type="javax.jms.Topic">
+</Resource>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.jms.Topic
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | destination | Specifies the name of the topic|
+
+{anchor:Default ORB-resource}
+h2. org.omg.CORBA.ORB
+Declarable in openejb.xml via
+{code:xml}
+<Resource id="Foo" type="org.omg.CORBA.ORB">
+</Resource>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=org.omg.CORBA.ORB
+{panel}
+No properties.
+
+{anchor:Default Mail Session-resource}
+h2. javax.mail.Session
+Declarable in openejb.xml via
+{code:xml}
+<Resource id="Foo" type="javax.mail.Session">
+</Resource>
+{code}
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.mail.Session
+{panel}
+No properties.
\ No newline at end of file

Propchange: openejb/site/trunk/content/containers-and-resources.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/containers-and-resources.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/containers-and-resources.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/containers-and-resources.mdtext (added)
+++ openejb/site/trunk/content/containers-and-resources.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,277 @@
+Title: Containers and Resources
+{anchor: containers}
+<a name="ContainersandResources-Containers"></a>
+# Containers
+{anchor:Default CMP Container-container}
+<a name="ContainersandResources-CMP_ENTITY"></a>
+## CMP_ENTITY
+Declarable in openejb.xml via
+
+    <Container id="Foo" type="CMP_ENTITY">
+    </Container>
+
+Declarable in properties via
+{panel}
+Foo = new://Container?type=CMP_ENTITY
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | CmpEngineFactory | Default value is
+_org.apache.openejb.core.cmp.jpa.JpaCmpEngineFactory_.||
+
+{anchor:Default BMP Container-container}
+<a name="ContainersandResources-BMP_ENTITY"></a>
+## BMP_ENTITY
+Declarable in openejb.xml via
+
+    <Container id="Foo" type="BMP_ENTITY">
+    </Container>
+
+Declarable in properties via
+{panel}
+Foo = new://Container?type=BMP_ENTITY
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+  
+  
+
+{anchor:Default Stateless Container-container}
+<a name="ContainersandResources-STATELESS"></a>
+## STATELESS
+Declarable in openejb.xml via
+
+    <Container id="Foo" type="STATELESS">
+    </Container>
+
+Declarable in properties via
+{panel}
+Foo = new://Container?type=STATELESS
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+  
+  
+  
+  
+  
+  
+
+{anchor:Default Stateful Container-container}
+<a name="ContainersandResources-STATEFUL"></a>
+## STATEFUL
+Declarable in openejb.xml via
+
+    <Container id="Foo" type="STATEFUL">
+    </Container>
+
+Declarable in properties via
+{panel}
+Foo = new://Container?type=STATEFUL
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+  
+  
+  
+  
+  
+  
+  
+  
+
+{anchor:Default MDB Container-container}
+<a name="ContainersandResources-MESSAGE"></a>
+## MESSAGE
+Declarable in openejb.xml via
+
+    <Container id="Foo" type="MESSAGE">
+    </Container>
+
+Declarable in properties via
+{panel}
+Foo = new://Container?type=MESSAGE
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+  
+  
+  
+  
+  
+  
+  
+  
+
+
+{anchor: resources}
+<a name="ContainersandResources-Resources"></a>
+# Resources
+{anchor:Default JDBC Database-resource}
+<a name="ContainersandResources-javax.sql.DataSource"></a>
+## javax.sql.DataSource
+Declarable in openejb.xml via
+
+    <Resource id="Foo" type="javax.sql.DataSource">
+    </Resource>
+
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.sql.DataSource
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+  
+  
+  
+  
+  
+  
+  
+  
+    | Password | Default password|
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+
+{anchor:Default JMS Resource Adapter-resource}
+<a name="ContainersandResources-ActiveMQResourceAdapter"></a>
+## ActiveMQResourceAdapter
+Declarable in openejb.xml via
+
+    <Resource id="Foo" type="ActiveMQResourceAdapter">
+    </Resource>
+
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=ActiveMQResourceAdapter
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+  
+  
+  
+  
+  
+  
+
+{anchor:Default JMS Connection Factory-resource}
+<a name="ContainersandResources-javax.jms.ConnectionFactory"></a>
+## javax.jms.ConnectionFactory
+Declarable in openejb.xml via
+
+    <Resource id="Foo" type="javax.jms.ConnectionFactory">
+    </Resource>
+
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.jms.ConnectionFactory
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | ResourceAdapter | Default value is _Default JMS Resource Adapter_.||
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+
+{anchor:Default Queue-resource}
+<a name="ContainersandResources-javax.jms.Queue"></a>
+## javax.jms.Queue
+Declarable in openejb.xml via
+
+    <Resource id="Foo" type="javax.jms.Queue">
+    </Resource>
+
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.jms.Queue
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | destination | Specifies the name of the queue|
+
+{anchor:Default Topic-resource}
+<a name="ContainersandResources-javax.jms.Topic"></a>
+## javax.jms.Topic
+Declarable in openejb.xml via
+
+    <Resource id="Foo" type="javax.jms.Topic">
+    </Resource>
+
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.jms.Topic
+{panel}
+Supports the following properties
+    || Property Name || Description ||
+    | destination | Specifies the name of the topic|
+
+{anchor:Default ORB-resource}
+<a name="ContainersandResources-org.omg.CORBA.ORB"></a>
+## org.omg.CORBA.ORB
+Declarable in openejb.xml via
+
+    <Resource id="Foo" type="org.omg.CORBA.ORB">
+    </Resource>
+
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=org.omg.CORBA.ORB
+{panel}
+No properties.
+
+{anchor:Default Mail Session-resource}
+<a name="ContainersandResources-javax.mail.Session"></a>
+## javax.mail.Session
+Declarable in openejb.xml via
+
+    <Resource id="Foo" type="javax.mail.Session">
+    </Resource>
+
+Declarable in properties via
+{panel}
+Foo = new://Resource?type=javax.mail.Session
+{panel}
+No properties.

Added: openejb/site/trunk/content/custom-injection.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/custom-injection.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/custom-injection.cwiki (added)
+++ openejb/site/trunk/content/custom-injection.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,78 @@
+h1. Overview
+
+As noted in the [Injection of env-entry Example], the EJB 3.0 supported env-entry types are fairly limited.  Also the use of several <env-entry> tags in an ejb-jar.xml can get a bit verbose.
+
+OpenEJB does not restrict you to just these data types or require you to use an ejb-jar.xml to declare them.
+
+ - *@Resource* can be used on any type for which there is *java.beans.PropertyEditor*
+ - You may *install your own* PropertyEditors and package them with your app.
+ - Java *Generics* are supported (e.g. List<URI> myURIs) 
+ - You may use a *META-INF/env-entries.properties* file as an alternative to an ejb-jar.xml
+
+See [Built-in Type Converters] for a full list of supported env-entry types.
+
+_The source for this example is the "custom-injection" directory located in the [openejb-examples.zip|OPENEJB:Download] available on the download page._
+
+h1. The Code
+
+h2. Bean Class
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/main/java/org/superbiz/enventries/StratocasterImpl.java|lang=java}
+
+h2. The META-INF/env-entries.properties file
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/main/resources/META-INF/env-entries.properties|id=props|lang=none}
+
+h2. The Custom Type and Editor
+
+Support for java.lang.Enum types is already built-in, but we've decided we'd like to allow abbreviated versions of the enum constants to be usable.  We do this by creating a custom PropertyEditor for our Pickup enum like so:
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/main/java/org/superbiz/enventries/PickupEditor.java|lang=java}
+
+We cleverly install this PropertyEditor in a static block in the Pickup class that will be executed should someone actually reference the Pickup type.
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/main/java/org/superbiz/enventries/Pickup.java|lang=java}
+
+h1. Test Case
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/test/java/org/superbiz/enventries/StratocasterTest.java|lang=java}
+
+h1. Running it
+
+Running the example is fairly simple.  In the "custom-injection" directory of the [examples zip|OPENEJB:Download], just run:
+
+{quote}
+$ mvn clean install
+{quote}
+
+Which should create output like the following.
+
+{noformat}
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.enventries.StratocasterTest
+Apache OpenEJB 3.1-SNAPSHOT    build: 20080409-12:05
+http://openejb.apache.org/
+INFO - openejb.home = /Users/dblevins/work/openejb3/examples/custom-injection
+INFO - openejb.base = /Users/dblevins/work/openejb3/examples/custom-injection
+INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
+INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+INFO - Configuring Service(id=Default JDK 1.3 ProxyFactory, type=ProxyFactory, provider-id=Default JDK 1.3 ProxyFactory)
+INFO - Found EjbModule in classpath: /Users/dblevins/work/openejb3/examples/custom-injection/target/classes
+INFO - Configuring app: /Users/dblevins/work/openejb3/examples/custom-injection/target/classes
+INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container)
+INFO - Auto-creating a container for bean StratocasterImpl: Container(type=STATELESS, id=Default Stateless Container)
+INFO - Loaded Module: /Users/dblevins/work/openejb3/examples/custom-injection/target/classes
+INFO - Assembling app: /Users/dblevins/work/openejb3/examples/custom-injection/target/classes
+INFO - Jndi(name=StratocasterImplLocal) --> Ejb(deployment-id=StratocasterImpl)
+INFO - Created Ejb(deployment-id=StratocasterImpl, ejb-name=StratocasterImpl, container=Default Stateless Container)
+INFO - Deployed Application(path=/Users/dblevins/work/openejb3/examples/custom-injection/target/classes)
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.705 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+{noformat}
+
+

Propchange: openejb/site/trunk/content/custom-injection.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/custom-injection.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/custom-injection.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/custom-injection.mdtext (added)
+++ openejb/site/trunk/content/custom-injection.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,116 @@
+Title: Custom Injection
+<a name="CustomInjection-Overview"></a>
+# Overview
+
+As noted in the [Injection of env-entry Example](injection-of-env-entry-example.html)
+, the EJB 3.0 supported env-entry types are fairly limited.  Also the use
+of several <env-entry> tags in an ejb-jar.xml can get a bit verbose.
+
+OpenEJB does not restrict you to just these data types or require you to
+use an ejb-jar.xml to declare them.
+
+ - *@Resource* can be used on any type for which there is
+*java.beans.PropertyEditor*
+ - You may *install your own* PropertyEditors and package them with your
+app.
+ - Java *Generics* are supported (e.g. List<URI> myURIs) 
+ - You may use a *META-INF/env-entries.properties* file as an alternative
+to an ejb-jar.xml
+
+See [Built-in Type Converters](built-in-type-converters.html)
+ for a full list of supported env-entry types.
+
+_The source for this example is the "custom-injection" directory located in
+the [openejb-examples.zip](openejb:download.html)
+ available on the download page._
+
+<a name="CustomInjection-TheCode"></a>
+# The Code
+
+<a name="CustomInjection-BeanClass"></a>
+## Bean Class
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/main/java/org/superbiz/enventries/StratocasterImpl.java|lang=java}
+
+<a name="CustomInjection-TheMETA-INF/env-entries.propertiesfile"></a>
+## The META-INF/env-entries.properties file
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/main/resources/META-INF/env-entries.properties|id=props|lang=none}
+
+<a name="CustomInjection-TheCustomTypeandEditor"></a>
+## The Custom Type and Editor
+
+Support for java.lang.Enum types is already built-in, but we've decided
+we'd like to allow abbreviated versions of the enum constants to be usable.
+ We do this by creating a custom PropertyEditor for our Pickup enum like
+so:
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/main/java/org/superbiz/enventries/PickupEditor.java|lang=java}
+
+We cleverly install this PropertyEditor in a static block in the Pickup
+class that will be executed should someone actually reference the Pickup
+type.
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/main/java/org/superbiz/enventries/Pickup.java|lang=java}
+
+<a name="CustomInjection-TestCase"></a>
+# Test Case
+
+{snippet:id=code|url=openejb3/examples/custom-injection/src/test/java/org/superbiz/enventries/StratocasterTest.java|lang=java}
+
+<a name="CustomInjection-Runningit"></a>
+# Running it
+
+Running the example is fairly simple.  In the "custom-injection" directory
+of the [examples zip](openejb:download.html)
+, just run:
+
+{quote}
+$ mvn clean install
+{quote}
+
+Which should create output like the following.
+
+
+    -------------------------------------------------------
+     T E S T S
+    -------------------------------------------------------
+    Running org.superbiz.enventries.StratocasterTest
+    Apache OpenEJB 3.1-SNAPSHOT    build: 20080409-12:05
+    http://openejb.apache.org/
+    INFO - openejb.home =
+/Users/dblevins/work/openejb3/examples/custom-injection
+    INFO - openejb.base =
+/Users/dblevins/work/openejb3/examples/custom-injection
+    INFO - Configuring Service(id=Default Security Service,
+type=SecurityService, provider-id=Default Security Service)
+    INFO - Configuring Service(id=Default Transaction Manager,
+type=TransactionManager, provider-id=Default Transaction Manager)
+    INFO - Configuring Service(id=Default JDK 1.3 ProxyFactory,
+type=ProxyFactory, provider-id=Default JDK 1.3 ProxyFactory)
+    INFO - Found EjbModule in classpath:
+/Users/dblevins/work/openejb3/examples/custom-injection/target/classes
+    INFO - Configuring app:
+/Users/dblevins/work/openejb3/examples/custom-injection/target/classes
+    INFO - Configuring Service(id=Default Stateless Container, type=Container,
+provider-id=Default Stateless Container)
+    INFO - Auto-creating a container for bean StratocasterImpl:
+Container(type=STATELESS, id=Default Stateless Container)
+    INFO - Loaded Module:
+/Users/dblevins/work/openejb3/examples/custom-injection/target/classes
+    INFO - Assembling app:
+/Users/dblevins/work/openejb3/examples/custom-injection/target/classes
+    INFO - Jndi(name=StratocasterImplLocal) -->
+Ejb(deployment-id=StratocasterImpl)
+    INFO - Created Ejb(deployment-id=StratocasterImpl,
+ejb-name=StratocasterImpl, container=Default Stateless Container)
+    INFO - Deployed
+Application(path=/Users/dblevins/work/openejb3/examples/custom-injection/target/classes)
+    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.705 sec
+    
+    Results :
+    
+    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+
+
+

Added: openejb/site/trunk/content/datasource-password-encryption.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/datasource-password-encryption.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/datasource-password-encryption.cwiki (added)
+++ openejb/site/trunk/content/datasource-password-encryption.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,96 @@
+{note}Apache OpenEJB 3.1.2 or later required{note}
+h1. Ciphering passwords
+Apache OpenEJB now provides an easy and extensible way to cipher databases passwords. Not that by default, this feature is not activated so plain passwords are used.
+
+h2. Usage
+
+* Default Plain text password example:
+{code:xml}
+<Resource id="MySQL Database" type="DataSource">
+    #  MySQL example
+    #
+    #  This connector will not work until you download the driver at:
+    #  http://www.mysql.com/downloads/api-jdbc-stable.html
+
+    JdbcDriver  com.mysql.jdbc.Driver
+    JdbcUrl     jdbc:mysql://localhost/test
+    UserName    test
+    Password    Passw0rd
+</Resource>
+{code}
+
+* 3DES ciphered password example:
+Note that the built in 3DES implementation uses *a static key* to encode/decode your password.
+{code:xml}
+<Resource id="MySQL Database" type="DataSource">
+    #  MySQL example
+    #
+    #  This connector will not work until you download the driver at:
+    #  http://www.mysql.com/downloads/api-jdbc-stable.html
+
+    JdbcDriver  com.mysql.jdbc.Driver
+    JdbcUrl     jdbc:mysql://localhost/test
+    UserName    test
+
+    # ciphered value for Passw0rd using Static3DES codec is xMH5uM1V9vQzVUv5LG7YLA==
+    Password    xMH5uM1V9vQzVUv5LG7YLA==
+    PasswordCipher Static3DES
+</Resource>
+{code}
+
+{tip:title=Hint}
+You can plug your own algorithm to extend Apache OpenEJB built in ones. To do such, you just need to implement the 
+{noformat}org.apache.openejb.resource.jdbc.PasswordCipher{noformat} interface and push a file in {noformat}META-INF/org.apache.openejb.resource.jdbc.PasswordCipher/<your cipher algorithm alias>{noformat} containing the fully qualified name of your implementation.
+{tip}
+
+h2. Command line tool
+Apache OpenEJB also provides a command line tool allowing password cipher algorithm. Actually, it's useful to get the ciphered value of a plain text value using a given algorithm.
+
+h3. NAME
+
+openejb cipher - OpenEJB Cypher Tool
+
+h3. SYNOPSIS
+
+openejb cipher [#options] <value>
+
+h3. DESCRIPTION
+
+The OpenEJB Cipher tool is an OPTIONAL tool that allows you to use {{PasswordCipher}} algorithm to encode/decode values.
+
+It can be used to deploy into an offline server, however in this scenario it simply copies the archive into the openejb.base/apps directory which is something that can be done manually with a simple copy command or drag and drop.
+
+The OpenEJB Cipher tool can be executed from any directory as long as <OPENEJB_HOME>/bin is in the system PATH. Before running this tool you need to set the environment variable OPENEJB_HOME to the path of the directory where you unpacked the OpenEJB installation. For for the remainder of this document we will assume you unpacked OpenEJB into the directory C:\openejb-3.1.2.
+
+In Windows, the cipher tool can be executed as follows:
+
+{{C:\openejb-3.1.2> bin\openejb cipher --help}}
+
+In UNIX, Linux, or Mac OS X, the cipher tool can be executed as follows:
+
+{{\[user@host openejb-3.1.2]# bin/openejb cipher --help}}
+
+Depending on your OpenEJB version, you may need to change execution bits to make the scripts executable.  You can do this with the following command.
+
+{{\[user@host openejb-3.1.2]# chmod 755 bin/openejb}}
+
+From here on out, it will be assumed that you know how to execute the right openejb script for your operating system and commands will appear in shorthand as show below.
+
+{{openejb cipher --help}}
+
+h3. OPTIONS
+
+|-h, --_help_ |Lists these options and exit.|
+|-c, --_cipher_ |Specifies the password cipher implementation to use (default is Static3DES).|
+|-d, --_decrypt_ |Switches command line tool to decrypt.|
+|-e, --_encrypt_ |Switches command line tool to encrypt (default).|
+
+h3. EXAMPLES
+
+Encrypt a plain password using the default algorithm. 
+{{openejb cipher Passw0rd}}
+
+Output
+{code}
+xMH5uM1V9vQzVUv5LG7YLA==
+{code}

Propchange: openejb/site/trunk/content/datasource-password-encryption.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/datasource-password-encryption.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/datasource-password-encryption.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/datasource-password-encryption.mdtext (added)
+++ openejb/site/trunk/content/datasource-password-encryption.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,122 @@
+Title: DataSource Password Encryption
+{note}Apache OpenEJB 3.1.2 or later required{note}
+<a name="DataSourcePasswordEncryption-Cipheringpasswords"></a>
+# Ciphering passwords
+Apache OpenEJB now provides an easy and extensible way to cipher databases
+passwords. Not that by default, this feature is not activated so plain
+passwords are used.
+
+<a name="DataSourcePasswordEncryption-Usage"></a>
+## Usage
+
+* Default Plain text password example:
+
+    <Resource id="MySQL Database" type="DataSource">
+        #  MySQL example
+        #
+        #  This connector will not work until you download the driver at:
+        #  http://www.mysql.com/downloads/api-jdbc-stable.html
+    
+        JdbcDriver	com.mysql.jdbc.Driver
+        JdbcUrl	jdbc:mysql://localhost/test
+        UserName	test
+        Password	Passw0rd
+    </Resource>
+
+
+* 3DES ciphered password example:
+Note that the built in 3DES implementation uses *a static key* to
+encode/decode your password.
+
+    <Resource id="MySQL Database" type="DataSource">
+        #  MySQL example
+        #
+        #  This connector will not work until you download the driver at:
+        #  http://www.mysql.com/downloads/api-jdbc-stable.html
+    
+        JdbcDriver	com.mysql.jdbc.Driver
+        JdbcUrl	jdbc:mysql://localhost/test
+        UserName	test
+    
+        # ciphered value for Passw0rd using Static3DES codec is
+xMH5uM1V9vQzVUv5LG7YLA==
+        Password	xMH5uM1V9vQzVUv5LG7YLA==
+        PasswordCipher Static3DES
+    </Resource>
+
+
+{tip:title=Hint}
+You can plug your own algorithm to extend Apache OpenEJB built in ones. To
+do such, you just need to implement the 
+
+    {tip}
+    
+    h2. Command line tool
+    Apache OpenEJB also provides a command line tool allowing password cipher
+algorithm. Actually, it's useful to get the ciphered value of a plain text
+value using a given algorithm.
+    
+    h3. NAME
+    
+    openejb cipher - OpenEJB Cypher Tool
+    
+    h3. SYNOPSIS
+    
+    openejb cipher [#options]
+ <value>
+    
+    h3. DESCRIPTION
+    
+    The OpenEJB Cipher tool is an OPTIONAL tool that allows you to use
+{{PasswordCipher}} algorithm to encode/decode values.
+    
+    It can be used to deploy into an offline server, however in this scenario
+it simply copies the archive into the openejb.base/apps directory which is
+something that can be done manually with a simple copy command or drag and
+drop.
+    
+    The OpenEJB Cipher tool can be executed from any directory as long as
+<OPENEJB_HOME>/bin is in the system PATH. Before running this tool you need
+to set the environment variable OPENEJB_HOME to the path of the directory
+where you unpacked the OpenEJB installation. For for the remainder of this
+document we will assume you unpacked OpenEJB into the directory
+C:\openejb-3.1.2.
+    
+    In Windows, the cipher tool can be executed as follows:
+    
+    {{C:\openejb-3.1.2> bin\openejb cipher --help}}
+    
+    In UNIX, Linux, or Mac OS X, the cipher tool can be executed as follows:
+    
+    {{\[user@host openejb-3.1.2]
+# bin/openejb cipher --help}}
+    
+    Depending on your OpenEJB version, you may need to change execution bits to
+make the scripts executable.  You can do this with the following command.
+    
+    {{\[user@host openejb-3.1.2]
+# chmod 755 bin/openejb}}
+    
+    From here on out, it will be assumed that you know how to execute the right
+openejb script for your operating system and commands will appear in
+shorthand as show below.
+    
+    {{openejb cipher --help}}
+    
+    h3. OPTIONS
+    
+    |-h, --_help_ |Lists these options and exit.|
+    |-c, --_cipher_ |Specifies the password cipher implementation to use
+(default is Static3DES).|
+    |-d, --_decrypt_ |Switches command line tool to decrypt.|
+    |-e, --_encrypt_ |Switches command line tool to encrypt (default).|
+    
+    h3. EXAMPLES
+    
+    Encrypt a plain password using the default algorithm. 
+    {{openejb cipher Passw0rd}}
+    
+    Output
+    {code}
+    xMH5uM1V9vQzVUv5LG7YLA==
+    {code}

Added: openejb/site/trunk/content/deploy-tool.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/deploy-tool.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/deploy-tool.cwiki (added)
+++ openejb/site/trunk/content/deploy-tool.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,97 @@
+h1. NAME
+
+
+openejb deploy - OpenEJB Deploy Tool
+
+h1. SYNOPSIS
+
+
+openejb deploy [#options] <file> \[<file>...\]
+
+h1. NOTE
+
+
+The OpenEJB Deploy tool is an OPTIONAL tool that allows you to deploy into a running server and get feedback as if the app was deployed and how it was deployed (deploymentIds, jndi names, etc.).  
+
+It can be used to deploy into an offline server, however in this scenario it simply copies the archive into the openejb.base/apps directory which is something that can be done manually with a simple copy command or drag and drop.
+
+The OpenEJB Deploy tool can be executed from any directory as long as <OPENEJB_HOME>/bin is in the system PATH. <OPENEJB_HOME> is the directory where OpenEJB was installed or unpacked. For for the remainder of this document we will assume you unpacked OpenEJB into the directory C:\openejb-3.0.
+
+In Windows, the deploy tool can be executed as follows:
+
+{{C:\openejb-3.0> bin\openejb deploy --help}}
+
+In UNIX, Linux, or Mac OS X, the deploy tool can be executed as follows:
+
+{{\[user@host openejb-3.0]# bin/openejb deploy --help}}
+
+Depending on your OpenEJB version, you may need to change execution bits to make the scripts executable.  You can do this with the following command.
+
+{{\[user@host openejb-3.0]# chmod 755 bin/openejb}}
+
+From here on out, it will be assumed that you know how to execute the right openejb script for your operating system and commands will appear in shorthand as show below.
+
+{{openejb deploy --help}}
+
+
+h1. DESCRIPTION
+
+The files passed to the Deploy Tool can be any combination of the following:
+  - ejb 1.1, 2.0, 2.1 or 3.0 jar
+  - application client jar 
+  - ear file containing only libraries, ejbs and application clients -- everything else will be ignored.
+
+Archives ending in *.ear* or containing a META-INF/application.xml are assumed to be ear files.
+
+Archives containing a META-INF/ejb-jar.xml file or any classes annotated with @Stateless, @Stateful or @MessageDriven, are assumed to be *EJB* applications.  EJB applications older that EJB 3.0 should contain a complete META-INF/ejb-jar.xml inside the jar, however we do not strictly enforce that -- the act of it being incomplete makes it an EJB 3.0 application by nature.
+
+Archives containing a META-INF/application-client.xml or with a META-INF/MANIFEST.MF containing the "Main-Class" attribute, are assumed to be *Application Client* archives.
+
+
+h1. OPTIONS
+
+
+|-d, --_debug_ |Increases the level of detail on validation errors and deployment summary.|
+|--_dir_ |Sets the destination directory where the app will be deployed.  The default is <OPENEJB_HOME>/apps/ directory.  Note when changing this setting make sure the directory is listed in the openejb.xml via a <Deployments dir=""/> tag or the app will not be picked up again on restart.
+|-_conf_ _file_ |Sets the OpenEJB configuration to the specified file.|
+|-h, --_help_ |Lists these options and exit.|
+|-o, --_offline_|Deploys the app to an offline server by copying the archive into the server's apps/ directory.  The app will be deployed when the server is started.  The default is online.|
+|-q, --_quiet_  | Decreases the level of detail on validation and skips the deployment summary.|
+|-s, --_server-url <url>_ |   Sets the url of the OpenEJB server to which the app will be deployed.  The value should be the same as the JNDI Provider URL used to lookup EJBs.  The default is 'ejbd://localhost:4201'. |
+|-v, --_version_  |   Prints the OpenEJB version and exits. |
+
+
+h1. EXAMPLES
+
+
+h2. Deploying multiple jar files
+
+
+ {{openejb deploy myapp\fooEjbs.jar myapp\barEjbs.jar}}
+
+
+Deploys the beans in the fooEjbs.jar first, then deploys the beans in the barEjbs.jar. Wildcards can be used as well.
+
+  {{openejb deploy myapp\*.jar}}
+
+
+h1. OUTPUT
+
+On running the deploy tool with a valid EJB jar the following output is printed on the console
+
+{code}
+Application deployed successfully at {0}
+App(id=C:\samples\Calculator-new\hello-addservice.jar)
+    EjbJar(id=hello-addservice.jar, path=C:\samples\Calculator-new\hello-addservice.jar)
+        Ejb(ejb-name=HelloBean, id=HelloBean)
+            Jndi(name=HelloBean)
+            Jndi(name=HelloBeanLocal)
+
+        Ejb(ejb-name=AddServiceBean, id=AddServiceBean)
+            Jndi(name=AddServiceBean)
+            Jndi(name=AddServiceBeanLocal)
+{code}
+
+Note: In the above case the command used is {{C:\samples\Calculator-new>openejb deploy hello-addservice.jar}}.
+This contains two EJBs AddServiceBean and HelloBean.
+

Propchange: openejb/site/trunk/content/deploy-tool.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/deploy-tool.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/deploy-tool.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/deploy-tool.mdtext (added)
+++ openejb/site/trunk/content/deploy-tool.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,149 @@
+Title: Deploy Tool
+<a name="DeployTool-NAME"></a>
+# NAME
+
+
+openejb deploy - OpenEJB Deploy Tool
+
+<a name="DeployTool-SYNOPSIS"></a>
+# SYNOPSIS
+
+
+openejb deploy [#options](#options.html)
+ <file> \[<file>...\]
+
+<a name="DeployTool-NOTE"></a>
+# NOTE
+
+
+The OpenEJB Deploy tool is an OPTIONAL tool that allows you to deploy into
+a running server and get feedback as if the app was deployed and how it was
+deployed (deploymentIds, jndi names, etc.).  
+
+It can be used to deploy into an offline server, however in this scenario
+it simply copies the archive into the openejb.base/apps directory which is
+something that can be done manually with a simple copy command or drag and
+drop.
+
+The OpenEJB Deploy tool can be executed from any directory as long as
+<OPENEJB_HOME>/bin is in the system PATH. <OPENEJB_HOME> is the directory
+where OpenEJB was installed or unpacked. For for the remainder of this
+document we will assume you unpacked OpenEJB into the directory
+C:\openejb-3.0.
+
+In Windows, the deploy tool can be executed as follows:
+
+*C:\openejb-3.0> bin\openejb deploy --help*
+
+In UNIX, Linux, or Mac OS X, the deploy tool can be executed as follows:
+
+{{\[user@host openejb-3.0](user@host-openejb-3.0.html)
+# bin/openejb deploy --help}}
+
+Depending on your OpenEJB version, you may need to change execution bits to
+make the scripts executable.  You can do this with the following command.
+
+{{\[user@host openejb-3.0](user@host-openejb-3.0.html)
+# chmod 755 bin/openejb}}
+
+From here on out, it will be assumed that you know how to execute the right
+openejb script for your operating system and commands will appear in
+shorthand as show below.
+
+*openejb deploy --help*
+
+
+<a name="DeployTool-DESCRIPTION"></a>
+# DESCRIPTION
+
+The files passed to the Deploy Tool can be any combination of the
+following:
+  - ejb 1.1, 2.0, 2.1 or 3.0 jar
+  - application client jar 
+  - ear file containing only libraries, ejbs and application clients --
+everything else will be ignored.
+
+Archives ending in *.ear* or containing a META-INF/application.xml are
+assumed to be ear files.
+
+Archives containing a META-INF/ejb-jar.xml file or any classes annotated
+with @Stateless, @Stateful or @MessageDriven, are assumed to be *EJB*
+applications.  EJB applications older that EJB 3.0 should contain a
+complete META-INF/ejb-jar.xml inside the jar, however we do not strictly
+enforce that -- the act of it being incomplete makes it an EJB 3.0
+application by nature.
+
+Archives containing a META-INF/application-client.xml or with a
+META-INF/MANIFEST.MF containing the "Main-Class" attribute, are assumed to
+be *Application Client* archives.
+
+
+<a name="DeployTool-OPTIONS"></a>
+# OPTIONS
+
+
+<table>
+<tr><td>-d, --_debug_ </td><td>Increases the level of detail on validation errors and
+deployment summary.</td></tr>
+<tr><td>--_dir_ </td><td>Sets the destination directory where the app will be deployed. 
+The default is <OPENEJB_HOME>/apps/ directory.	Note when changing this
+setting make sure the directory is listed in the openejb.xml via a
+<Deployments dir=""/> tag or the app will not be picked up again on
+restart.
+</tr>
+<tr><td>-_conf_ _file_ </td><td>Sets the OpenEJB configuration to the specified file.</td></tr>
+<tr><td>-h, --_help_ </td><td>Lists these options and exit.</td></tr>
+<tr><td>-o, --_offline_</td><td>Deploys the app to an offline server by copying the
+archive into the server's apps/ directory.  The app will be deployed when
+the server is started.	The default is online.</td></tr>
+<tr><td>-q, --_quiet_	</td><td> Decreases the level of detail on validation and skips the
+deployment summary.</td></tr>
+<tr><td>-s, --_server-url <url>_ </td><td>   Sets the url of the OpenEJB server to which
+the app will be deployed.  The value should be the same as the JNDI
+Provider URL used to lookup EJBs.  The default is 'ejbd://localhost:4201'.
+</td></tr>
+<tr><td>-v, --_version_  </td><td>   Prints the OpenEJB version and exits. </td></tr>
+</table>
+
+
+<a name="DeployTool-EXAMPLES"></a>
+# EXAMPLES
+
+
+<a name="DeployTool-Deployingmultiplejarfiles"></a>
+## Deploying multiple jar files
+
+
+ *openejb deploy myapp\fooEjbs.jar myapp\barEjbs.jar*
+
+
+Deploys the beans in the fooEjbs.jar first, then deploys the beans in the
+barEjbs.jar. Wildcards can be used as well.
+
+  *openejb deploy myapp\*.jar*
+
+
+<a name="DeployTool-OUTPUT"></a>
+# OUTPUT
+
+On running the deploy tool with a valid EJB jar the following output is
+printed on the console
+
+
+    Application deployed successfully at {0}
+    App(id=C:\samples\Calculator-new\hello-addservice.jar)
+        EjbJar(id=hello-addservice.jar,
+path=C:\samples\Calculator-new\hello-addservice.jar)
+    	Ejb(ejb-name=HelloBean, id=HelloBean)
+    	    Jndi(name=HelloBean)
+    	    Jndi(name=HelloBeanLocal)
+    
+    	Ejb(ejb-name=AddServiceBean, id=AddServiceBean)
+    	    Jndi(name=AddServiceBean)
+    	    Jndi(name=AddServiceBeanLocal)
+
+
+Note: In the above case the command used is
+*C:\samples\Calculator-new>openejb deploy hello-addservice.jar*.
+This contains two EJBs AddServiceBean and HelloBean.
+

Added: openejb/site/trunk/content/deployments.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/deployments.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/deployments.cwiki (added)
+++ openejb/site/trunk/content/deployments.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,108 @@
+h1.  The 'Deployments' element in openejb.xml
+
+h2.  A single jar
+
+To include a single jar by name, just declare a 'Deployments' element with a 'jar' attribute pointing to the jar file on the file system.
+
+{code:xml|title=openejb.conf}
+<openejb>
+...
+<Deployments jar="c:\my\app\superEjbs.jar" />
+<Deployments jar="c:\someplace\purchasing.jar" />
+<Deployments jar="timeTrack.jar" />
+</openejb>
+{code}
+
+The last element in the example uses a relative path to point to the ejb jar.  This path will be resolved relative to the openejb.base property.  So, for example, of the value of openejb.base was 'c:\timeapp\' then OpenEJB would look for the jar 'c:\timeapp\timeTrack.jar'.  See the [OPENEJB:Configuration] guide for more details.
+
+h2.  A directory of jars
+
+To point to a directory that contains several jar files that OpenEJB should load, simply declare a 'Deployments' element with a 'dir' attribute pointing to the directory containing the jar files.
+
+{code:xml|title=openejb.conf}
+<openejb>
+...
+
+<Deployments dir="c:\my\app\beans\" />
+<Deployments dir="c:\crimestopper\lib" />
+<Deployments dir="ejbs" />
+<Deployments dir="beans" />
+</openejb>
+{code}
+
+The directories listed will be searched for jars containing 'META-INF/ejb-jar.xml' files and will be added to the list of jars to load if they do.  Better said, it's completely save to point to a directory containing a mix of ejbs and regular jar files.  OpenEJB will simply skip over jars that do contain the required 'META-INF/ejb-jar.xml' file.
+
+The last Deployments element declares a 'beans' directory relative to openejb.base for holding ejb jars.  This declaration is simply convention and not required.
+
+h2.  An unpacked jar
+
+As of 1.0 beta1, OpenEJB supports unpacked ejb jars.  Simply meaning that you don't need to pack your ejb's into a jar file in order to use them in OpenEJB.  You still need to follow the ejb jar layout and include an "META-INF/ejb-jar.xml" in the directory that contains your ejbs.
+
+For example, if you have a directory structure like this:
+
+{quote}
+C:\myapp\
+C:\myapp\acmeEjbs\
+C:\myapp\acmeEjbs\META-INF\ejb-jar.xml
+C:\myapp\acmeEjbs\org\acme\Foo.class
+C:\myapp\acmeEjbs\org\acme\FooBean.class
+C:\myapp\acmeEjbs\org\acme\FooHome.class
+C:\myapp\acmeEjbs\org\acme\Bar.class
+C:\myapp\acmeEjbs\org\acme\BarBean.class
+C:\myapp\acmeEjbs\org\acme\BarHome.class
+{quote}
+
+Then you would delcare a 'Deployments' element with the 'dir' attribute set to 'C:\myapp\acmeEjbs' as shown below.
+
+{code:xml|title=openejb.conf}
+<openejb>
+...
+
+<Deployments dir="c:\myapp\acmeEjbs" />
+</openejb>
+{code}
+
+Note that this syntax is the same as the directory syntax above.  If OpenEJB finds a META-INF directory with an 'ejb-jar.xml' fine inside, then OpenEJB will treat the directory as an unpacked ejb jar.  Otherwise OpenEJB will look for ejb jar files to load as detailed in the above section.
+
+h1.  Log file 
+
+When trying to figure out if your ejbs were loaded, the openejb.log file is an incredible asset.
+
+If your ejbs were loaded successfully you should see entries like the following (1.x and higher only):
+
+{panel:title=openejb.log}
+INFO :  Loaded EJBs from /usr/local/openejb-1.0-beta1/beans/openejb-itests-beans.jar
+INFO :  Loaded EJBs from /usr/local/openejb-1.0-beta1/beans/openejb-webadmin-clienttools.jar
+{panel}
+
+If your ejbs failed to load, you will see an entry similar to the following.
+
+{panel:title=openejb.log}
+WARN :  Jar not loaded. /usr/local/openejb-1.0-beta1/beans/helloworld.jar.  Jar failed validation.  Use the validation tool for more details
+{panel}
+
+Additionally, all the successfully loaded ejbs are individually listed in the log file at startup.  The Deployment ID listed is the JNDI name used to lookup the ejb from a client of the Local or Remote Servers.  The beans listed below are from our test suite.
+
+{noformat}
+DEBUG:  Deployments       : 19
+DEBUG:  Type        Deployment ID
+DEBUG:     CMP_ENTITY  client/tests/entity/cmp/RMI-over-IIOP/EJBHome
+DEBUG:     STATEFUL    client/tests/stateful/EncBean
+DEBUG:     STATELESS   client/tests/stateless/BeanManagedBasicStatelessHome
+DEBUG:     STATEFUL    client/tests/stateful/BasicStatefulHome
+DEBUG:     STATELESS   client/tests/stateless/EncBean
+DEBUG:     STATEFUL    client/tests/stateful/BeanManagedTransactionTests/EJBHome
+DEBUG:     BMP_ENTITY  client/tests/entity/bmp/RMI-over-IIOP/EJBHome
+DEBUG:     STATEFUL    client/tests/stateful/RMI-over-IIOP/EJBHome
+DEBUG:     STATELESS   client/tests/stateless/BeanManagedTransactionTests/EJBHome
+DEBUG:     BMP_ENTITY  client/tests/entity/bmp/allowed_operations/EntityHome
+DEBUG:     CMP_ENTITY  client/tests/entity/cmp/EncBean
+DEBUG:     STATEFUL    client/tests/stateful/BeanManagedBasicStatefulHome
+DEBUG:     BMP_ENTITY  client/tests/entity/bmp/BasicBmpHome
+DEBUG:     STATELESS   client/tests/stateless/BasicStatelessHome
+DEBUG:     CMP_ENTITY  client/tests/entity/cmp/BasicCmpHome
+DEBUG:     STATELESS   client/tools/DatabaseHome
+DEBUG:     CMP_ENTITY  client/tests/entity/cmp/allowed_operations/EntityHome
+DEBUG:     BMP_ENTITY  client/tests/entity/bmp/EncBean
+DEBUG:     STATELESS   client/tests/stateless/RMI-over-IIOP/EJBHome
+{noformat}

Propchange: openejb/site/trunk/content/deployments.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/deployments.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/deployments.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/deployments.mdtext (added)
+++ openejb/site/trunk/content/deployments.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,145 @@
+Title: Deployments
+<a name="Deployments-The'Deployments'elementinopenejb.xml"></a>
+#  The 'Deployments' element in openejb.xml
+
+<a name="Deployments-Asinglejar"></a>
+##  A single jar
+
+To include a single jar by name, just declare a 'Deployments' element with
+a 'jar' attribute pointing to the jar file on the file system.
+
+{code:xml|title=openejb.conf}
+<openejb>
+...
+<Deployments jar="c:\my\app\superEjbs.jar" />
+<Deployments jar="c:\someplace\purchasing.jar" />
+<Deployments jar="timeTrack.jar" />
+</openejb>
+
+    
+    The last element in the example uses a relative path to point to the ejb
+jar.  This path will be resolved relative to the openejb.base property. 
+So, for example, of the value of openejb.base was 'c:\timeapp\' then
+OpenEJB would look for the jar 'c:\timeapp\timeTrack.jar'.  See the [OPENEJB:Configuration]
+ guide for more details.
+    
+    h2.  A directory of jars
+    
+    To point to a directory that contains several jar files that OpenEJB should
+load, simply declare a 'Deployments' element with a 'dir' attribute
+pointing to the directory containing the jar files.
+    
+    {code:xml|title=openejb.conf}
+    <openejb>
+    ...
+    
+    <Deployments dir="c:\my\app\beans\" />
+    <Deployments dir="c:\crimestopper\lib" />
+    <Deployments dir="ejbs" />
+    <Deployments dir="beans" />
+    </openejb>
+
+
+The directories listed will be searched for jars containing
+'META-INF/ejb-jar.xml' files and will be added to the list of jars to load
+if they do.  Better said, it's completely save to point to a directory
+containing a mix of ejbs and regular jar files.  OpenEJB will simply skip
+over jars that do contain the required 'META-INF/ejb-jar.xml' file.
+
+The last Deployments element declares a 'beans' directory relative to
+openejb.base for holding ejb jars.  This declaration is simply convention
+and not required.
+
+<a name="Deployments-Anunpackedjar"></a>
+##  An unpacked jar
+
+As of 1.0 beta1, OpenEJB supports unpacked ejb jars.  Simply meaning that
+you don't need to pack your ejb's into a jar file in order to use them in
+OpenEJB.  You still need to follow the ejb jar layout and include an
+"META-INF/ejb-jar.xml" in the directory that contains your ejbs.
+
+For example, if you have a directory structure like this:
+
+{quote}
+C:\myapp\
+C:\myapp\acmeEjbs\
+C:\myapp\acmeEjbs\META-INF\ejb-jar.xml
+C:\myapp\acmeEjbs\org\acme\Foo.class
+C:\myapp\acmeEjbs\org\acme\FooBean.class
+C:\myapp\acmeEjbs\org\acme\FooHome.class
+C:\myapp\acmeEjbs\org\acme\Bar.class
+C:\myapp\acmeEjbs\org\acme\BarBean.class
+C:\myapp\acmeEjbs\org\acme\BarHome.class
+{quote}
+
+Then you would delcare a 'Deployments' element with the 'dir' attribute set
+to 'C:\myapp\acmeEjbs' as shown below.
+
+{code:xml|title=openejb.conf}
+<openejb>
+...
+
+<Deployments dir="c:\myapp\acmeEjbs" />
+</openejb>
+
+    
+    Note that this syntax is the same as the directory syntax above.  If
+OpenEJB finds a META-INF directory with an 'ejb-jar.xml' fine inside, then
+OpenEJB will treat the directory as an unpacked ejb jar.  Otherwise OpenEJB
+will look for ejb jar files to load as detailed in the above section.
+    
+    h1.  Log file 
+    
+    When trying to figure out if your ejbs were loaded, the openejb.log file is
+an incredible asset.
+    
+    If your ejbs were loaded successfully you should see entries like the
+following (1.x and higher only):
+    
+    {panel:title=openejb.log}
+    INFO :	Loaded EJBs from
+/usr/local/openejb-1.0-beta1/beans/openejb-itests-beans.jar
+    INFO :	Loaded EJBs from
+/usr/local/openejb-1.0-beta1/beans/openejb-webadmin-clienttools.jar
+    {panel}
+    
+    If your ejbs failed to load, you will see an entry similar to the
+following.
+    
+    {panel:title=openejb.log}
+    WARN :	Jar not loaded. /usr/local/openejb-1.0-beta1/beans/helloworld.jar. 
+Jar failed validation.	Use the validation tool for more details
+    {panel}
+    
+    Additionally, all the successfully loaded ejbs are individually listed in
+the log file at startup.  The Deployment ID listed is the JNDI name used to
+lookup the ejb from a client of the Local or Remote Servers.  The beans
+listed below are from our test suite.
+    
+    {noformat}
+    DEBUG:	Deployments	  : 19
+    DEBUG:	Type	    Deployment ID
+    DEBUG:	   CMP_ENTITY  client/tests/entity/cmp/RMI-over-IIOP/EJBHome
+    DEBUG:	   STATEFUL    client/tests/stateful/EncBean
+    DEBUG:	   STATELESS   client/tests/stateless/BeanManagedBasicStatelessHome
+    DEBUG:	   STATEFUL    client/tests/stateful/BasicStatefulHome
+    DEBUG:	   STATELESS   client/tests/stateless/EncBean
+    DEBUG:	   STATEFUL   
+client/tests/stateful/BeanManagedTransactionTests/EJBHome
+    DEBUG:	   BMP_ENTITY  client/tests/entity/bmp/RMI-over-IIOP/EJBHome
+    DEBUG:	   STATEFUL    client/tests/stateful/RMI-over-IIOP/EJBHome
+    DEBUG:	   STATELESS  
+client/tests/stateless/BeanManagedTransactionTests/EJBHome
+    DEBUG:	   BMP_ENTITY 
+client/tests/entity/bmp/allowed_operations/EntityHome
+    DEBUG:	   CMP_ENTITY  client/tests/entity/cmp/EncBean
+    DEBUG:	   STATEFUL    client/tests/stateful/BeanManagedBasicStatefulHome
+    DEBUG:	   BMP_ENTITY  client/tests/entity/bmp/BasicBmpHome
+    DEBUG:	   STATELESS   client/tests/stateless/BasicStatelessHome
+    DEBUG:	   CMP_ENTITY  client/tests/entity/cmp/BasicCmpHome
+    DEBUG:	   STATELESS   client/tools/DatabaseHome
+    DEBUG:	   CMP_ENTITY 
+client/tests/entity/cmp/allowed_operations/EntityHome
+    DEBUG:	   BMP_ENTITY  client/tests/entity/bmp/EncBean
+    DEBUG:	   STATELESS   client/tests/stateless/RMI-over-IIOP/EJBHome
+    {noformat}

Added: openejb/site/trunk/content/design---application-server.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/design---application-server.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/design---application-server.cwiki (added)
+++ openejb/site/trunk/content/design---application-server.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,26 @@
+h2. Application Server
+
+Sub-component of [OpenEJB|Design]
+
+
+h2. Definition
+
+Any component wishing to serve or deliver Enterprise JavaBeans.
+
+h2. Also Known As
+ * Server Adapter
+ * Server Provider
+
+h2. Responsibilities
+ * Remote client access to OpenEJB
+ * Implement the bean's remote and home interfaces.
+ * Distribute its implementation of the remote and home interfaces.
+ * Provide clients with a JNDI name space for looking up beans.
+ * Delegate method invocations to the container.
+
+h2. Related Classes
+ * org.apache.openejb.spi.ApplicationServer
+
+h2. Implementations
+ * [Local Server|Design - Local Server]
+ * [Remote Server|Design - Remote Server]

Propchange: openejb/site/trunk/content/design---application-server.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/design---application-server.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/design---application-server.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/design---application-server.mdtext (added)
+++ openejb/site/trunk/content/design---application-server.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,33 @@
+Title: Design - Application Server
+<a name="Design-ApplicationServer-ApplicationServer"></a>
+## Application Server
+
+Sub-component of [OpenEJB](design.html)
+
+
+<a name="Design-ApplicationServer-Definition"></a>
+## Definition
+
+Any component wishing to serve or deliver Enterprise JavaBeans.
+
+<a name="Design-ApplicationServer-AlsoKnownAs"></a>
+## Also Known As
+ * Server Adapter
+ * Server Provider
+
+<a name="Design-ApplicationServer-Responsibilities"></a>
+## Responsibilities
+ * Remote client access to OpenEJB
+ * Implement the bean's remote and home interfaces.
+ * Distribute its implementation of the remote and home interfaces.
+ * Provide clients with a JNDI name space for looking up beans.
+ * Delegate method invocations to the container.
+
+<a name="Design-ApplicationServer-RelatedClasses"></a>
+## Related Classes
+ * org.apache.openejb.spi.ApplicationServer
+
+<a name="Design-ApplicationServer-Implementations"></a>
+## Implementations
+ * [Local Server](design---local-server.html)
+ * [Remote Server](design---remote-server.html)

Added: openejb/site/trunk/content/design---application-serverlinks.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/design---application-serverlinks.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/design---application-serverlinks.cwiki (added)
+++ openejb/site/trunk/content/design---application-serverlinks.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1 @@
+!http://openejb.apache.org/images/figure-appserver.gif!
\ No newline at end of file

Propchange: openejb/site/trunk/content/design---application-serverlinks.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/design---application-serverlinks.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/design---application-serverlinks.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/design---application-serverlinks.mdtext (added)
+++ openejb/site/trunk/content/design---application-serverlinks.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,2 @@
+Title: Design - Application ServerLinks
+!http://openejb.apache.org/images/figure-appserver.gif!

Added: openejb/site/trunk/content/design---assembler.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/design---assembler.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/design---assembler.cwiki (added)
+++ openejb/site/trunk/content/design---assembler.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,23 @@
+
+h2. Assembler
+
+Sub-component of [OpenEJB|Design]
+
+h2. Definition
+
+Instantiates and assembles a configured, runnable, instance of the container system and all sub-components. Vendors needing extreme control over the construction of the container system can get it by implementing this class. Doing this comes with large amounts of resposibility and complexity and should not be done without a deep understanding of OpenEJB.
+
+h2. Responsibilities
+ * Instantiate and initialize all Container implementations
+ * Instantiate and initialize TransactionService implementation
+ * Instantiate and initialize SecurityService implementation
+ * Instantiate and initialize all ResourceManagers
+ * Load all deployed beans
+ * Populate each deployment's JNDI ENC
+ * Populate the IntraVM Server's global, client, JNDI namespace
+
+h2. Related Packages
+ * org.apache.openejb.spi.Assembler
+
+h2. Implementations
+ * [Classic Assembler|Design - Classic Assembler]
\ No newline at end of file

Propchange: openejb/site/trunk/content/design---assembler.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/site/trunk/content/design---assembler.mdtext
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/design---assembler.mdtext?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/design---assembler.mdtext (added)
+++ openejb/site/trunk/content/design---assembler.mdtext Sun Jul 10 05:36:12 2011
@@ -0,0 +1,33 @@
+Title: Design - Assembler
+
+<a name="Design-Assembler-Assembler"></a>
+## Assembler
+
+Sub-component of [OpenEJB](design.html)
+
+<a name="Design-Assembler-Definition"></a>
+## Definition
+
+Instantiates and assembles a configured, runnable, instance of the
+container system and all sub-components. Vendors needing extreme control
+over the construction of the container system can get it by implementing
+this class. Doing this comes with large amounts of resposibility and
+complexity and should not be done without a deep understanding of OpenEJB.
+
+<a name="Design-Assembler-Responsibilities"></a>
+## Responsibilities
+ * Instantiate and initialize all Container implementations
+ * Instantiate and initialize TransactionService implementation
+ * Instantiate and initialize SecurityService implementation
+ * Instantiate and initialize all ResourceManagers
+ * Load all deployed beans
+ * Populate each deployment's JNDI ENC
+ * Populate the IntraVM Server's global, client, JNDI namespace
+
+<a name="Design-Assembler-RelatedPackages"></a>
+## Related Packages
+ * org.apache.openejb.spi.Assembler
+
+<a name="Design-Assembler-Implementations"></a>
+## Implementations
+ * [Classic Assembler](design---classic-assembler.html)

Added: openejb/site/trunk/content/design---bmp-entitybean-container.cwiki
URL: http://svn.apache.org/viewvc/openejb/site/trunk/content/design---bmp-entitybean-container.cwiki?rev=1144778&view=auto
==============================================================================
--- openejb/site/trunk/content/design---bmp-entitybean-container.cwiki (added)
+++ openejb/site/trunk/content/design---bmp-entitybean-container.cwiki Sun Jul 10 05:36:12 2011
@@ -0,0 +1,17 @@
+
+h2. BMP EntityBean Container
+
+Implementation of [Container|Design - Container]
+
+
+h2. Description
+
+Container that implements the EJB defined bean-container contract for EntityBeans with bean-managed persistence.
+
+h2. Also Known As
+ * BMP Entity Container
+ * BMP Container
+
+h2. Related Classes
+ * org.apache.openejb.core.entity.EntityContainer
+

Propchange: openejb/site/trunk/content/design---bmp-entitybean-container.cwiki
------------------------------------------------------------------------------
    svn:eol-style = native