Added: websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch
==============================================================================
--- websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch (added)
+++ websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch Sun Dec 9 13:13:35 2012
@@ -0,0 +1,449 @@
+Index: pom.xml
+===================================================================
+--- pom.xml (revision 952663)
++++ pom.xml (working copy)
+@@ -189,6 +189,18 @@
+ </exclusion>
+ </exclusions>
+ </dependency>
++
++ <dependency>
++ <groupId>org.apache.geronimo.specs</groupId>
++ <artifactId>geronimo-jpa_2.0_spec</artifactId>
++ <version>1.0</version>
++ </dependency>
++
++ <dependency>
++ <groupId>org.apache.openjpa</groupId>
++ <artifactId>openjpa</artifactId>
++ <version>2.0.0</version>
++ </dependency>
+
+ <dependency>
+ <groupId>org.apache.activemq</groupId>
+Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java
+===================================================================
+--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (revision 952663)
++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (working copy)
+@@ -18,10 +18,15 @@
+ package org.apache.geronimo.samples.daytrader.ejb3;
+
+ import org.apache.geronimo.samples.daytrader.AccountDataBean;
++import org.apache.geronimo.samples.daytrader.AccountDataBean_;
+ import org.apache.geronimo.samples.daytrader.AccountProfileDataBean;
++import org.apache.geronimo.samples.daytrader.AccountProfileDataBean_;
+ import org.apache.geronimo.samples.daytrader.HoldingDataBean;
++import org.apache.geronimo.samples.daytrader.HoldingDataBean_;
+ import org.apache.geronimo.samples.daytrader.OrderDataBean;
++import org.apache.geronimo.samples.daytrader.OrderDataBean_;
+ import org.apache.geronimo.samples.daytrader.QuoteDataBean;
++import org.apache.geronimo.samples.daytrader.QuoteDataBean_;
+ import org.apache.geronimo.samples.daytrader.TradeConfig;
+ import org.apache.geronimo.samples.daytrader.TradeAction;
+ import org.apache.geronimo.samples.daytrader.RunStatsDataBean;
+@@ -43,6 +48,13 @@
+ import javax.persistence.EntityManager;
+ import javax.persistence.PersistenceContext;
+ import javax.persistence.Query;
++import javax.persistence.TypedQuery;
++import javax.persistence.criteria.CriteriaBuilder;
++import javax.persistence.criteria.CriteriaQuery;
++import javax.persistence.criteria.ParameterExpression;
++import javax.persistence.criteria.Path;
++import javax.persistence.criteria.Predicate;
++import javax.persistence.criteria.Root;
+ import javax.transaction.HeuristicMixedException;
+ import javax.transaction.HeuristicRollbackException;
+ import javax.transaction.NotSupportedException;
+@@ -51,6 +63,8 @@
+ import org.apache.geronimo.samples.daytrader.util.FinancialUtils;
+ import org.apache.geronimo.samples.daytrader.util.Log;
+ import org.apache.geronimo.samples.daytrader.util.MDBStats;
++import org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery;
++import org.apache.openjpa.persistence.query.QueryBuilder;
+
+ @Stateless
+ @TransactionAttribute(TransactionAttributeType.REQUIRED)
+@@ -89,8 +103,14 @@
+ // ordered by their change in value
+ Collection<QuoteDataBean> quotes;
+
+- Query query = entityManager.createNamedQuery("quoteejb.quotesByChange");
+- quotes = query.getResultList();
++ // Demonstration of the JPA criteria query API for the following JPQL:
++ // SELECT q FROM quoteejb q WHERE q.symbol LIKE 's:1__' ORDER BY q.change1 DESC
++ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
++ CriteriaQuery<QuoteDataBean> c = cb.createQuery(QuoteDataBean.class);
++ Root<QuoteDataBean> qdb = c.from(QuoteDataBean.class);
++ c.where(cb.like(qdb.get(QuoteDataBean_.symbol), "s:1__"));
++ c.orderBy(cb.desc(qdb.get(QuoteDataBean_.change1)));
++ quotes = entityManager.createQuery(c).getResultList();
+
+ QuoteDataBean[] quoteArray = (QuoteDataBean[]) quotes.toArray(new QuoteDataBean[quotes.size()]);
+ ArrayList<QuoteDataBean> topGainers = new ArrayList<QuoteDataBean>(5);
+@@ -356,12 +376,25 @@
+
+ // Get the primary keys for all the closed Orders for this
+ // account.
+- Query query = entityManager.createNamedQuery("orderejb.closedOrders");
+- query.setParameter("userID", userID);
+- Collection results = query.getResultList();
+- Iterator itr = results.iterator();
+-
+- // Spin through the orders to populate the lazy quote fields
++
++ // Demonstration of the JPA criteria query API for the following JPQL:
++ // SELECT o FROM orderejb o WHERE o.orderStatus = 'closed' AND o.account.profile.userID = :userID
++ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
++ CriteriaQuery<OrderDataBean> c = cb.createQuery(OrderDataBean.class);
++ Root<OrderDataBean> odb = c.from(OrderDataBean.class);
++ ParameterExpression<String> uidParm = cb.parameter(String.class);
++ Path<AccountDataBean> acct = odb.get(OrderDataBean_.account);
++ Path<AccountProfileDataBean> profile = acct.get(AccountDataBean_.profile);
++ Path<String> uid = profile.get(AccountProfileDataBean_.userID);
++ Predicate closedCondition = cb.equal(odb.get(OrderDataBean_.orderStatus), "closed");
++ Predicate uidCondition = cb.equal(uid, uidParm);
++ Predicate condition = cb.and(closedCondition, uidCondition);
++ c.where(condition);
++ TypedQuery<OrderDataBean> q = entityManager.createQuery(c);
++ Collection<OrderDataBean> results = q.setParameter(uidParm, userID).getResultList();
++
++ Iterator itr = results.iterator();
++ // Spin through the orders to populate the lazy quote fields
+ while (itr.hasNext()){
+ OrderDataBean thisOrder = (OrderDataBean)itr.next();
+ thisOrder.getQuote();
+@@ -427,8 +460,13 @@
+ if (Log.doTrace())
+ Log.trace("TradeSLSBBean:getAllQuotes");
+
+- Query query = entityManager.createNamedQuery("quoteejb.allQuotes");
+- return query.getResultList();
++ // Demonstration of the JPA criteria query API for the following JPQL:
++ // SELECT q FROM quoteejb q
++ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
++ CriteriaQuery<QuoteDataBean> c = cb.createQuery(QuoteDataBean.class);
++ Root<QuoteDataBean> qbd = c.from(QuoteDataBean.class);
++ TypedQuery<QuoteDataBean> q = entityManager.createQuery(c);
++ return q.getResultList();
+ }
+
+ public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded) {
+@@ -463,6 +501,7 @@
+
+ quote.setPrice(newPrice);
+ quote.setVolume(quote.getVolume() + sharesTraded);
++ quote.setChange(newPrice.subtract(quote.getOpen()).doubleValue());
+ entityManager.merge(quote);
+
+ // TODO find out if requires new here is really intended -- it is backwards,
+@@ -477,9 +516,22 @@
+ if (Log.doTrace())
+ Log.trace("TradeSLSBBean:getHoldings", userID);
+
+- Query query = entityManager.createNamedQuery("holdingejb.holdingsByUserID");
+- query.setParameter("userID", userID);
+- Collection<HoldingDataBean> holdings = query.getResultList();
++ // Demonstration of the JPA criteria query API for the following JPQL:
++ // SELECT h FROM holdingejb h where h.account.profile.userID = :userID
++ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
++ CriteriaQuery<HoldingDataBean> c = cb.createQuery(HoldingDataBean.class);
++ Root<HoldingDataBean> hdb = c.from(HoldingDataBean.class);
++ ParameterExpression<String> uidParm = cb.parameter(String.class);
++ Path<AccountDataBean> account = hdb.get(HoldingDataBean_.account);
++ Path<AccountProfileDataBean> profile = account.get(AccountDataBean_.profile);
++ Path<String> uid = profile.get(AccountProfileDataBean_.userID);
++ // The following 'select' method is not needed, since it is the default. It is just shown for
++ // illustrative purposes.
++ c.select(hdb);
++ c.where(cb.equal(uid, uidParm));
++ TypedQuery<HoldingDataBean> q = entityManager.createQuery(c);
++ Collection<HoldingDataBean> holdings = q.setParameter(uidParm, userID).getResultList();
++
+ /*
+ * Inflate the lazy data memebers
+ */
+Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java
+===================================================================
+--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (revision 952663)
++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (working copy)
+@@ -18,8 +18,6 @@
+
+
+ import java.math.BigDecimal;
+-import java.rmi.Remote;
+-import java.rmi.RemoteException;
+ import java.util.Collection;
+
+ /**
+@@ -33,7 +31,7 @@
+ * @see TradeDirect
+ *
+ */
+-public interface TradeServices extends Remote {
++public interface TradeServices {
+
+ /**
+ * Compute and return a snapshot of the current market conditions
+@@ -44,7 +42,7 @@
+ *
+ * @return A snapshot of the current market summary
+ */
+- public MarketSummaryDataBean getMarketSummary() throws Exception, RemoteException;
++ public MarketSummaryDataBean getMarketSummary() throws Exception;
+
+
+ /**
+@@ -61,7 +59,7 @@
+ */
+
+
+- public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception, RemoteException;
++ public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception;
+
+ /**
+ * Sell a stock holding and removed the holding for the given user.
+@@ -72,7 +70,7 @@
+ * @param holdingID the users holding to be sold
+ * @return OrderDataBean providing the status of the newly created sell order
+ */
+- public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception, RemoteException;
++ public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception;
+
+
+ /**
+@@ -87,7 +85,7 @@
+ * @param orderID the Order being queued for processing
+ * @return OrderDataBean providing the status of the completed order
+ */
+- public void queueOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException;
++ public void queueOrder(Integer orderID, boolean twoPhase) throws Exception;
+
+ /**
+ * Complete the Order identefied by orderID
+@@ -102,7 +100,7 @@
+ * @param orderID the Order to complete
+ * @return OrderDataBean providing the status of the completed order
+ */
+- public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException;
++ public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception;
+
+ /**
+ * Cancel the Order identefied by orderID
+@@ -113,7 +111,7 @@
+ * @param orderID the Order to complete
+ * @return OrderDataBean providing the status of the completed order
+ */
+- public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException;
++ public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception;
+
+
+ /**
+@@ -123,7 +121,7 @@
+ * @param orderID the order which has completed
+ *
+ */
+- public void orderCompleted(String userID, Integer orderID) throws Exception, RemoteException;
++ public void orderCompleted(String userID, Integer orderID) throws Exception;
+
+
+ /**
+@@ -132,7 +130,7 @@
+ * @param userID the customer account to retrieve orders for
+ * @return Collection OrderDataBeans providing detailed order information
+ */
+- public Collection getOrders(String userID) throws Exception, RemoteException;
++ public Collection getOrders(String userID) throws Exception;
+
+ /**
+ * Get the collection of completed orders for a given account that need to be alerted to the user
+@@ -140,7 +138,7 @@
+ * @param userID the customer account to retrieve orders for
+ * @return Collection OrderDataBeans providing detailed order information
+ */
+- public Collection getClosedOrders(String userID) throws Exception, RemoteException;
++ public Collection getClosedOrders(String userID) throws Exception;
+
+
+ /**
+@@ -151,7 +149,7 @@
+ * @param details a short description of the stock or company
+ * @return a new QuoteDataBean or null if Quote could not be created
+ */
+- public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception, RemoteException;
++ public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception;
+
+ /**
+ * Return a {@link QuoteDataBean} describing a current quote for the given stock symbol
+@@ -159,14 +157,14 @@
+ * @param symbol the stock symbol to retrieve the current Quote
+ * @return the QuoteDataBean
+ */
+- public QuoteDataBean getQuote(String symbol) throws Exception, RemoteException;
++ public QuoteDataBean getQuote(String symbol) throws Exception;
+
+ /**
+ * Return a {@link java.util.Collection} of {@link QuoteDataBean}
+ * describing all current quotes
+ * @return A collection of QuoteDataBean
+ */
+- public Collection getAllQuotes() throws Exception, RemoteException;
++ public Collection getAllQuotes() throws Exception;
+
+ /**
+ * Update the stock quote price and volume for the specified stock symbol
+@@ -175,7 +173,7 @@
+ * @param price the updated quote price
+ * @return the QuoteDataBean describing the stock
+ */
+- public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception, RemoteException;
++ public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception;
+
+
+ /**
+@@ -185,7 +183,7 @@
+ * @param userID the customer requesting the portfolio
+ * @return Collection of the users portfolio of stock holdings
+ */
+- public Collection getHoldings(String userID) throws Exception, RemoteException;
++ public Collection getHoldings(String userID) throws Exception;
+
+ /**
+ * Return a specific user stock holding identifed by the holdingID
+@@ -193,7 +191,7 @@
+ * @param holdingID the holdingID to return
+ * @return a HoldingDataBean describing the holding
+ */
+- public HoldingDataBean getHolding(Integer holdingID) throws Exception, RemoteException;
++ public HoldingDataBean getHolding(Integer holdingID) throws Exception;
+
+ /**
+ * Return an AccountDataBean object for userID describing the account
+@@ -202,7 +200,7 @@
+ * @return User account data in AccountDataBean
+ */
+ public AccountDataBean getAccountData(String userID)
+- throws Exception, RemoteException;
++ throws Exception;
+
+ /**
+ * Return an AccountProfileDataBean for userID providing the users profile
+@@ -210,7 +208,7 @@
+ * @param userID the account userID to lookup
+ * @param User account profile data in AccountProfileDataBean
+ */
+- public AccountProfileDataBean getAccountProfileData(String userID) throws Exception, RemoteException;
++ public AccountProfileDataBean getAccountProfileData(String userID) throws Exception;
+
+ /**
+ * Update userID's account profile information using the provided AccountProfileDataBean object
+@@ -218,7 +216,7 @@
+ * @param userID the account userID to lookup
+ * @param User account profile data in AccountProfileDataBean
+ */
+- public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception, RemoteException;
++ public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception;
+
+
+ /**
+@@ -228,7 +226,7 @@
+ * @param password the password entered by the customer for authentication
+ * @return User account data in AccountDataBean
+ */
+- public AccountDataBean login(String userID, String password) throws Exception, RemoteException;
++ public AccountDataBean login(String userID, String password) throws Exception;
+
+ /**
+ * Logout the given user
+@@ -237,7 +235,7 @@
+ * @return the login status
+ */
+
+- public void logout(String userID) throws Exception, RemoteException;
++ public void logout(String userID) throws Exception;
+
+ /**
+ * Register a new Trade customer.
+@@ -259,7 +257,7 @@
+ String address,
+ String email,
+ String creditcard,
+- BigDecimal openBalance) throws Exception, RemoteException;
++ BigDecimal openBalance) throws Exception;
+
+
+ /**
+@@ -271,6 +269,6 @@
+ *
+ * return statistics for this benchmark run
+ */
+- public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception, RemoteException;
++ public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception;
+ }
+
+Index: modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java
+===================================================================
+--- modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (revision 952663)
++++ modules/ejb/src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (working copy)
+@@ -38,7 +38,7 @@
+ public static final int EJB3 = 0;
+ public static final int DIRECT = 1;
+ public static final int SESSION3 = 2;
+- public static int runTimeMode = DIRECT;
++ public static int runTimeMode = EJB3;
+
+ /* Trade JPA Layer parameters */
+ public static String[] jpaLayerNames = {"OpenJPA", "Hibernate"};
+Index: modules/ejb/src/main/resources/META-INF/ejb-jar.xml
+===================================================================
+--- modules/ejb/src/main/resources/META-INF/ejb-jar.xml (revision 952663)
++++ modules/ejb/src/main/resources/META-INF/ejb-jar.xml (working copy)
+@@ -25,4 +25,13 @@
+ entity, session and message driven beans using annotations. The inline annotations
+ can be overriden by modifing this file.
+ -->
++ <assembly-descriptor>
++ <message-destination>
++ <message-destination-name>TradeBrokerQueue</message-destination-name>
++ </message-destination>
++ <message-destination>
++ <message-destination-name>TradeStreamerTopic</message-destination-name>
++ </message-destination>
++ </assembly-descriptor>
++
+ </ejb-jar>
+Index: modules/ejb/pom.xml
+===================================================================
+--- modules/ejb/pom.xml (revision 952663)
++++ modules/ejb/pom.xml (working copy)
+@@ -54,7 +54,8 @@
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+- <artifactId>geronimo-jpa_3.0_spec</artifactId>
++ <artifactId>geronimo-jpa_2.0_spec</artifactId>
++ <version>1.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+@@ -80,6 +81,7 @@
+ <dependency>
+ <groupId>org.apache.openjpa</groupId>
+ <artifactId>openjpa</artifactId>
++ <version>2.0.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <!-- OpenJPA PCEnhancer ant task failed without these packages -->
+Index: modules/web/src/main/webapp/WEB-INF/web.xml
+===================================================================
+--- modules/web/src/main/webapp/WEB-INF/web.xml (revision 952663)
++++ modules/web/src/main/webapp/WEB-INF/web.xml (working copy)
+@@ -82,7 +82,7 @@
+ <init-param>
+ <description>Sets the default RuntimeMode. Legal values include EJB and Direct</description>
+ <param-name>runTimeMode</param-name>
+- <param-value>DIRECT</param-value>
++ <param-value>Full EJB3</param-value>
+ </init-param>
+ <init-param>
+ <description>Sets the default Order Processing Mode. Legal values include Synchronous, Asynchronous_1-Phase and Asynchronous_2-Phase</description>
Propchange: websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere.patch
------------------------------------------------------------------------------
svn:executable = *
Added: websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere_eclipse.patch
==============================================================================
--- websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere_eclipse.patch (added)
+++ websites/staging/openjpa/trunk/content/artifacts/daytrader_websphere_eclipse.patch Sun Dec 9 13:13:35 2012
@@ -0,0 +1,691 @@
+### Eclipse Workspace Patch 1.0
+#P daytrader-ejb
+Index: src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java
+===================================================================
+--- src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java (revision 0)
++++ src/main/java/org/apache/geronimo/samples/daytrader/OrderDataBean_.java (revision 0)
+@@ -0,0 +1,26 @@
++/**
++ * Generated by OpenJPA MetaModel Generator Tool.
++**/
++
++package org.apache.geronimo.samples.daytrader;
++
++import java.math.BigDecimal;
++import java.util.Date;
++import javax.persistence.metamodel.SingularAttribute;
++
++@javax.persistence.metamodel.StaticMetamodel
++(value=org.apache.geronimo.samples.daytrader.OrderDataBean.class)
++@javax.annotation.Generated
++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:26:18 CDT 2010")
++public class OrderDataBean_ {
++ public static volatile SingularAttribute<OrderDataBean,AccountDataBean> account;
++ public static volatile SingularAttribute<OrderDataBean,Date> completionDate;
++ public static volatile SingularAttribute<OrderDataBean,Date> openDate;
++ public static volatile SingularAttribute<OrderDataBean,BigDecimal> orderFee;
++ public static volatile SingularAttribute<OrderDataBean,Integer> orderID;
++ public static volatile SingularAttribute<OrderDataBean,String> orderStatus;
++ public static volatile SingularAttribute<OrderDataBean,String> orderType;
++ public static volatile SingularAttribute<OrderDataBean,BigDecimal> price;
++ public static volatile SingularAttribute<OrderDataBean,Double> quantity;
++ public static volatile SingularAttribute<OrderDataBean,QuoteDataBean> quote;
++}
+
+Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\OrderDataBean_.java
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+Index: src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java
+===================================================================
+--- src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java (revision 0)
++++ src/main/java/org/apache/geronimo/samples/daytrader/AccountProfileDataBean_.java (revision 0)
+@@ -0,0 +1,21 @@
++/**
++ * Generated by OpenJPA MetaModel Generator Tool.
++**/
++
++package org.apache.geronimo.samples.daytrader;
++
++import javax.persistence.metamodel.SingularAttribute;
++
++@javax.persistence.metamodel.StaticMetamodel
++(value=org.apache.geronimo.samples.daytrader.AccountProfileDataBean.class)
++@javax.annotation.Generated
++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 10:10:27 CDT 2010")
++public class AccountProfileDataBean_ {
++ public static volatile SingularAttribute<AccountProfileDataBean,AccountDataBean> account;
++ public static volatile SingularAttribute<AccountProfileDataBean,String> address;
++ public static volatile SingularAttribute<AccountProfileDataBean,String> creditCard;
++ public static volatile SingularAttribute<AccountProfileDataBean,String> email;
++ public static volatile SingularAttribute<AccountProfileDataBean,String> fullName;
++ public static volatile SingularAttribute<AccountProfileDataBean,String> passwd;
++ public static volatile SingularAttribute<AccountProfileDataBean,String> userID;
++}
+
+Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\AccountProfileDataBean_.java
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+Index: src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java
+===================================================================
+--- src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (revision 935418)
++++ src/main/java/org/apache/geronimo/samples/daytrader/TradeServices.java (working copy)
+@@ -18,8 +18,6 @@
+
+
+ import java.math.BigDecimal;
+-import java.rmi.Remote;
+-import java.rmi.RemoteException;
+ import java.util.Collection;
+
+ /**
+@@ -33,7 +31,7 @@
+ * @see TradeDirect
+ *
+ */
+-public interface TradeServices extends Remote {
++public interface TradeServices {
+
+ /**
+ * Compute and return a snapshot of the current market conditions
+@@ -44,7 +42,7 @@
+ *
+ * @return A snapshot of the current market summary
+ */
+- public MarketSummaryDataBean getMarketSummary() throws Exception, RemoteException;
++ public MarketSummaryDataBean getMarketSummary() throws Exception;
+
+
+ /**
+@@ -61,7 +59,7 @@
+ */
+
+
+- public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception, RemoteException;
++ public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception;
+
+ /**
+ * Sell a stock holding and removed the holding for the given user.
+@@ -72,7 +70,7 @@
+ * @param holdingID the users holding to be sold
+ * @return OrderDataBean providing the status of the newly created sell order
+ */
+- public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception, RemoteException;
++ public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception;
+
+
+ /**
+@@ -87,7 +85,7 @@
+ * @param orderID the Order being queued for processing
+ * @return OrderDataBean providing the status of the completed order
+ */
+- public void queueOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException;
++ public void queueOrder(Integer orderID, boolean twoPhase) throws Exception;
+
+ /**
+ * Complete the Order identefied by orderID
+@@ -102,7 +100,7 @@
+ * @param orderID the Order to complete
+ * @return OrderDataBean providing the status of the completed order
+ */
+- public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException;
++ public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception;
+
+ /**
+ * Cancel the Order identefied by orderID
+@@ -113,7 +111,7 @@
+ * @param orderID the Order to complete
+ * @return OrderDataBean providing the status of the completed order
+ */
+- public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception, RemoteException;
++ public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception;
+
+
+ /**
+@@ -123,7 +121,7 @@
+ * @param orderID the order which has completed
+ *
+ */
+- public void orderCompleted(String userID, Integer orderID) throws Exception, RemoteException;
++ public void orderCompleted(String userID, Integer orderID) throws Exception;
+
+
+ /**
+@@ -132,7 +130,7 @@
+ * @param userID the customer account to retrieve orders for
+ * @return Collection OrderDataBeans providing detailed order information
+ */
+- public Collection getOrders(String userID) throws Exception, RemoteException;
++ public Collection getOrders(String userID) throws Exception;
+
+ /**
+ * Get the collection of completed orders for a given account that need to be alerted to the user
+@@ -140,7 +138,7 @@
+ * @param userID the customer account to retrieve orders for
+ * @return Collection OrderDataBeans providing detailed order information
+ */
+- public Collection getClosedOrders(String userID) throws Exception, RemoteException;
++ public Collection getClosedOrders(String userID) throws Exception;
+
+
+ /**
+@@ -151,7 +149,7 @@
+ * @param details a short description of the stock or company
+ * @return a new QuoteDataBean or null if Quote could not be created
+ */
+- public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception, RemoteException;
++ public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception;
+
+ /**
+ * Return a {@link QuoteDataBean} describing a current quote for the given stock symbol
+@@ -159,14 +157,14 @@
+ * @param symbol the stock symbol to retrieve the current Quote
+ * @return the QuoteDataBean
+ */
+- public QuoteDataBean getQuote(String symbol) throws Exception, RemoteException;
++ public QuoteDataBean getQuote(String symbol) throws Exception;
+
+ /**
+ * Return a {@link java.util.Collection} of {@link QuoteDataBean}
+ * describing all current quotes
+ * @return A collection of QuoteDataBean
+ */
+- public Collection getAllQuotes() throws Exception, RemoteException;
++ public Collection getAllQuotes() throws Exception;
+
+ /**
+ * Update the stock quote price and volume for the specified stock symbol
+@@ -175,7 +173,7 @@
+ * @param price the updated quote price
+ * @return the QuoteDataBean describing the stock
+ */
+- public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception, RemoteException;
++ public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal newPrice, double sharesTraded) throws Exception;
+
+
+ /**
+@@ -185,7 +183,7 @@
+ * @param userID the customer requesting the portfolio
+ * @return Collection of the users portfolio of stock holdings
+ */
+- public Collection getHoldings(String userID) throws Exception, RemoteException;
++ public Collection getHoldings(String userID) throws Exception;
+
+ /**
+ * Return a specific user stock holding identifed by the holdingID
+@@ -193,7 +191,7 @@
+ * @param holdingID the holdingID to return
+ * @return a HoldingDataBean describing the holding
+ */
+- public HoldingDataBean getHolding(Integer holdingID) throws Exception, RemoteException;
++ public HoldingDataBean getHolding(Integer holdingID) throws Exception;
+
+ /**
+ * Return an AccountDataBean object for userID describing the account
+@@ -202,7 +200,7 @@
+ * @return User account data in AccountDataBean
+ */
+ public AccountDataBean getAccountData(String userID)
+- throws Exception, RemoteException;
++ throws Exception;
+
+ /**
+ * Return an AccountProfileDataBean for userID providing the users profile
+@@ -210,7 +208,7 @@
+ * @param userID the account userID to lookup
+ * @param User account profile data in AccountProfileDataBean
+ */
+- public AccountProfileDataBean getAccountProfileData(String userID) throws Exception, RemoteException;
++ public AccountProfileDataBean getAccountProfileData(String userID) throws Exception;
+
+ /**
+ * Update userID's account profile information using the provided AccountProfileDataBean object
+@@ -218,7 +216,7 @@
+ * @param userID the account userID to lookup
+ * @param User account profile data in AccountProfileDataBean
+ */
+- public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception, RemoteException;
++ public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception;
+
+
+ /**
+@@ -228,7 +226,7 @@
+ * @param password the password entered by the customer for authentication
+ * @return User account data in AccountDataBean
+ */
+- public AccountDataBean login(String userID, String password) throws Exception, RemoteException;
++ public AccountDataBean login(String userID, String password) throws Exception;
+
+ /**
+ * Logout the given user
+@@ -237,7 +235,7 @@
+ * @return the login status
+ */
+
+- public void logout(String userID) throws Exception, RemoteException;
++ public void logout(String userID) throws Exception;
+
+ /**
+ * Register a new Trade customer.
+@@ -259,7 +257,7 @@
+ String address,
+ String email,
+ String creditcard,
+- BigDecimal openBalance) throws Exception, RemoteException;
++ BigDecimal openBalance) throws Exception;
+
+
+ /**
+@@ -271,6 +269,6 @@
+ *
+ * return statistics for this benchmark run
+ */
+- public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception, RemoteException;
++ public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception;
+ }
+
+Index: src/main/resources/META-INF/ibm-ejb-jar-bnd.xml
+===================================================================
+--- src/main/resources/META-INF/ibm-ejb-jar-bnd.xml (revision 0)
++++ src/main/resources/META-INF/ibm-ejb-jar-bnd.xml (revision 0)
+@@ -0,0 +1,28 @@
++<ejb-jar-bnd
++ xmlns="http://websphere.ibm.com/xml/ns/javaee"
++ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
++ xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd"
++ version="1.0">
++
++ <session name="TradeSLSBBean">
++ <resource-ref name="jms/QueueConnectionFactory" binding-name="jms/TradeBrokerQCF">
++ <authentication-alias name="TradeAdminAuthData"/>
++ </resource-ref>
++ <resource-ref name="jms/TopicConnectionFactory" binding-name="jms/TradeStreamerTCF">
++ <authentication-alias name="TradeAdminAuthData"/>
++ </resource-ref>
++ <message-destination-ref name="jms/TradeStreamerTopic" binding-name="jms/TradeStreamerTopic"/>
++ <message-destination-ref name="jms/TradeBrokerQueue" binding-name="jms/TradeBrokerQueue"/>
++ </session>
++
++ <message-destination name="TradeBrokerQueue" binding-name="jms/TradeBrokerQueue"/>
++ <message-destination name="TradeStreamerTopic" binding-name="jms/TradeStreamerTopic"/>
++
++ <message-driven name="DTBroker3MDB">
++ <jca-adapter activation-spec-binding-name="eis/TradeBrokerMDB" destination-binding-name="jms/TradeBrokerQueue" activation-spec-auth-alias="TradeAdminAuthData" />
++ </message-driven>
++ <message-driven name="DTStreamer3MDB">
++ <jca-adapter activation-spec-binding-name="eis/TradeStreamerMDB" destination-binding-name="jms/TradeStreamerTopic" activation-spec-auth-alias="TradeAdminAuthData" />
++ </message-driven>
++
++</ejb-jar-bnd>
+\ No newline at end of file
+
+Property changes on: src\main\resources\META-INF\ibm-ejb-jar-bnd.xml
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+Index: src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java
+===================================================================
+--- src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java (revision 0)
++++ src/main/java/org/apache/geronimo/samples/daytrader/AccountDataBean_.java (revision 0)
+@@ -0,0 +1,27 @@
++/**
++ * Generated by OpenJPA MetaModel Generator Tool.
++**/
++
++package org.apache.geronimo.samples.daytrader;
++
++import java.math.BigDecimal;
++import java.util.Date;
++import javax.persistence.metamodel.CollectionAttribute;
++import javax.persistence.metamodel.SingularAttribute;
++
++@javax.persistence.metamodel.StaticMetamodel
++(value=org.apache.geronimo.samples.daytrader.AccountDataBean.class)
++@javax.annotation.Generated
++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:48:10 CDT 2010")
++public class AccountDataBean_ {
++ public static volatile SingularAttribute<AccountDataBean,Integer> accountID;
++ public static volatile SingularAttribute<AccountDataBean,BigDecimal> balance;
++ public static volatile SingularAttribute<AccountDataBean,Date> creationDate;
++ public static volatile CollectionAttribute<AccountDataBean,HoldingDataBean> holdings;
++ public static volatile SingularAttribute<AccountDataBean,Date> lastLogin;
++ public static volatile SingularAttribute<AccountDataBean,Integer> loginCount;
++ public static volatile SingularAttribute<AccountDataBean,Integer> logoutCount;
++ public static volatile SingularAttribute<AccountDataBean,BigDecimal> openBalance;
++ public static volatile CollectionAttribute<AccountDataBean,OrderDataBean> orders;
++ public static volatile SingularAttribute<AccountDataBean,AccountProfileDataBean> profile;
++}
+
+Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\AccountDataBean_.java
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+Index: src/main/resources/META-INF/ejb-jar.xml
+===================================================================
+--- src/main/resources/META-INF/ejb-jar.xml (revision 935418)
++++ src/main/resources/META-INF/ejb-jar.xml (working copy)
+@@ -25,4 +25,13 @@
+ entity, session and message driven beans using annotations. The inline annotations
+ can be overriden by modifing this file.
+ -->
++ <assembly-descriptor>
++ <message-destination>
++ <message-destination-name>TradeBrokerQueue</message-destination-name>
++ </message-destination>
++ <message-destination>
++ <message-destination-name>TradeStreamerTopic</message-destination-name>
++ </message-destination>
++ </assembly-descriptor>
++
+ </ejb-jar>
+Index: src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java
+===================================================================
+--- src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java (revision 0)
++++ src/main/java/org/apache/geronimo/samples/daytrader/HoldingDataBean_.java (revision 0)
+@@ -0,0 +1,22 @@
++/**
++ * Generated by OpenJPA MetaModel Generator Tool.
++**/
++
++package org.apache.geronimo.samples.daytrader;
++
++import java.math.BigDecimal;
++import java.util.Date;
++import javax.persistence.metamodel.SingularAttribute;
++
++@javax.persistence.metamodel.StaticMetamodel
++(value=org.apache.geronimo.samples.daytrader.HoldingDataBean.class)
++@javax.annotation.Generated
++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:50:36 CDT 2010")
++public class HoldingDataBean_ {
++ public static volatile SingularAttribute<HoldingDataBean,AccountDataBean> account;
++ public static volatile SingularAttribute<HoldingDataBean,Integer> holdingID;
++ public static volatile SingularAttribute<HoldingDataBean,Date> purchaseDate;
++ public static volatile SingularAttribute<HoldingDataBean,BigDecimal> purchasePrice;
++ public static volatile SingularAttribute<HoldingDataBean,Double> quantity;
++ public static volatile SingularAttribute<HoldingDataBean,QuoteDataBean> quote;
++}
+
+Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\HoldingDataBean_.java
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+Index: src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java
+===================================================================
+--- src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (revision 935418)
++++ src/main/java/org/apache/geronimo/samples/daytrader/ejb3/TradeSLSBBean.java (working copy)
+@@ -18,10 +18,15 @@
+ package org.apache.geronimo.samples.daytrader.ejb3;
+
+ import org.apache.geronimo.samples.daytrader.AccountDataBean;
++import org.apache.geronimo.samples.daytrader.AccountDataBean_;
+ import org.apache.geronimo.samples.daytrader.AccountProfileDataBean;
++import org.apache.geronimo.samples.daytrader.AccountProfileDataBean_;
+ import org.apache.geronimo.samples.daytrader.HoldingDataBean;
++import org.apache.geronimo.samples.daytrader.HoldingDataBean_;
+ import org.apache.geronimo.samples.daytrader.OrderDataBean;
++import org.apache.geronimo.samples.daytrader.OrderDataBean_;
+ import org.apache.geronimo.samples.daytrader.QuoteDataBean;
++import org.apache.geronimo.samples.daytrader.QuoteDataBean_;
+ import org.apache.geronimo.samples.daytrader.TradeConfig;
+ import org.apache.geronimo.samples.daytrader.TradeAction;
+ import org.apache.geronimo.samples.daytrader.RunStatsDataBean;
+@@ -43,6 +48,13 @@
+ import javax.persistence.EntityManager;
+ import javax.persistence.PersistenceContext;
+ import javax.persistence.Query;
++import javax.persistence.TypedQuery;
++import javax.persistence.criteria.CriteriaBuilder;
++import javax.persistence.criteria.CriteriaQuery;
++import javax.persistence.criteria.ParameterExpression;
++import javax.persistence.criteria.Path;
++import javax.persistence.criteria.Predicate;
++import javax.persistence.criteria.Root;
+ import javax.transaction.HeuristicMixedException;
+ import javax.transaction.HeuristicRollbackException;
+ import javax.transaction.NotSupportedException;
+@@ -51,6 +63,8 @@
+ import org.apache.geronimo.samples.daytrader.util.FinancialUtils;
+ import org.apache.geronimo.samples.daytrader.util.Log;
+ import org.apache.geronimo.samples.daytrader.util.MDBStats;
++import org.apache.openjpa.persistence.criteria.OpenJPACriteriaQuery;
++import org.apache.openjpa.persistence.query.QueryBuilder;
+
+ @Stateless
+ @TransactionAttribute(TransactionAttributeType.REQUIRED)
+@@ -89,8 +103,14 @@
+ // ordered by their change in value
+ Collection<QuoteDataBean> quotes;
+
+- Query query = entityManager.createNamedQuery("quoteejb.quotesByChange");
+- quotes = query.getResultList();
++ // Demonstration of the JPA criteria query API for the following JPQL:
++ // SELECT q FROM quoteejb q WHERE q.symbol LIKE 's:1__' ORDER BY q.change1 DESC
++ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
++ CriteriaQuery<QuoteDataBean> c = cb.createQuery(QuoteDataBean.class);
++ Root<QuoteDataBean> qdb = c.from(QuoteDataBean.class);
++ c.where(cb.like(qdb.get(QuoteDataBean_.symbol), "s:1__"));
++ c.orderBy(cb.desc(qdb.get(QuoteDataBean_.change1)));
++ quotes = entityManager.createQuery(c).getResultList();
+
+ QuoteDataBean[] quoteArray = (QuoteDataBean[]) quotes.toArray(new QuoteDataBean[quotes.size()]);
+ ArrayList<QuoteDataBean> topGainers = new ArrayList<QuoteDataBean>(5);
+@@ -356,12 +376,25 @@
+
+ // Get the primary keys for all the closed Orders for this
+ // account.
+- Query query = entityManager.createNamedQuery("orderejb.closedOrders");
+- query.setParameter("userID", userID);
+- Collection results = query.getResultList();
+- Iterator itr = results.iterator();
+-
+- // Spin through the orders to populate the lazy quote fields
++
++ // Demonstration of the JPA criteria query API for the following JPQL:
++ // SELECT o FROM orderejb o WHERE o.orderStatus = 'closed' AND o.account.profile.userID = :userID
++ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
++ CriteriaQuery<OrderDataBean> c = cb.createQuery(OrderDataBean.class);
++ Root<OrderDataBean> odb = c.from(OrderDataBean.class);
++ ParameterExpression<String> uidParm = cb.parameter(String.class);
++ Path<AccountDataBean> acct = odb.get(OrderDataBean_.account);
++ Path<AccountProfileDataBean> profile = acct.get(AccountDataBean_.profile);
++ Path<String> uid = profile.get(AccountProfileDataBean_.userID);
++ Predicate closedCondition = cb.equal(odb.get(OrderDataBean_.orderStatus), "closed");
++ Predicate uidCondition = cb.equal(uid, uidParm);
++ Predicate condition = cb.and(closedCondition, uidCondition);
++ c.where(condition);
++ TypedQuery<OrderDataBean> q = entityManager.createQuery(c);
++ Collection<OrderDataBean> results = q.setParameter(uidParm, userID).getResultList();
++
++ Iterator itr = results.iterator();
++ // Spin through the orders to populate the lazy quote fields
+ while (itr.hasNext()){
+ OrderDataBean thisOrder = (OrderDataBean)itr.next();
+ thisOrder.getQuote();
+@@ -427,8 +460,13 @@
+ if (Log.doTrace())
+ Log.trace("TradeSLSBBean:getAllQuotes");
+
+- Query query = entityManager.createNamedQuery("quoteejb.allQuotes");
+- return query.getResultList();
++ // Demonstration of the JPA criteria query API for the following JPQL:
++ // SELECT q FROM quoteejb q
++ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
++ CriteriaQuery<QuoteDataBean> c = cb.createQuery(QuoteDataBean.class);
++ Root<QuoteDataBean> qbd = c.from(QuoteDataBean.class);
++ TypedQuery<QuoteDataBean> q = entityManager.createQuery(c);
++ return q.getResultList();
+ }
+
+ public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded) {
+@@ -463,6 +501,7 @@
+
+ quote.setPrice(newPrice);
+ quote.setVolume(quote.getVolume() + sharesTraded);
++ quote.setChange(newPrice.subtract(quote.getOpen()).doubleValue());
+ entityManager.merge(quote);
+
+ // TODO find out if requires new here is really intended -- it is backwards,
+@@ -477,9 +516,22 @@
+ if (Log.doTrace())
+ Log.trace("TradeSLSBBean:getHoldings", userID);
+
+- Query query = entityManager.createNamedQuery("holdingejb.holdingsByUserID");
+- query.setParameter("userID", userID);
+- Collection<HoldingDataBean> holdings = query.getResultList();
++ // Demonstration of the JPA criteria query API for the following JPQL:
++ // SELECT h FROM holdingejb h where h.account.profile.userID = :userID
++ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
++ CriteriaQuery<HoldingDataBean> c = cb.createQuery(HoldingDataBean.class);
++ Root<HoldingDataBean> hdb = c.from(HoldingDataBean.class);
++ ParameterExpression<String> uidParm = cb.parameter(String.class);
++ Path<AccountDataBean> account = hdb.get(HoldingDataBean_.account);
++ Path<AccountProfileDataBean> profile = account.get(AccountDataBean_.profile);
++ Path<String> uid = profile.get(AccountProfileDataBean_.userID);
++ // The following 'select' method is not needed, since it is the default. It is just shown for
++ // illustrative purposes.
++ c.select(hdb);
++ c.where(cb.equal(uid, uidParm));
++ TypedQuery<HoldingDataBean> q = entityManager.createQuery(c);
++ Collection<HoldingDataBean> holdings = q.setParameter(uidParm, userID).getResultList();
++
+ /*
+ * Inflate the lazy data memebers
+ */
+Index: src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java
+===================================================================
+--- src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (revision 935418)
++++ src/main/java/org/apache/geronimo/samples/daytrader/TradeConfig.java (working copy)
+@@ -38,7 +38,7 @@
+ public static final int EJB3 = 0;
+ public static final int DIRECT = 1;
+ public static final int SESSION3 = 2;
+- public static int runTimeMode = DIRECT;
++ public static int runTimeMode = EJB3;
+
+ /* Trade JPA Layer parameters */
+ public static String[] jpaLayerNames = {"OpenJPA", "Hibernate"};
+Index: pom.xml
+===================================================================
+--- pom.xml (revision 935418)
++++ pom.xml (working copy)
+@@ -54,7 +54,8 @@
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+- <artifactId>geronimo-jpa_3.0_spec</artifactId>
++ <artifactId>geronimo-jpa_2.0_spec</artifactId>
++ <version>1.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+@@ -80,6 +81,7 @@
+ <dependency>
+ <groupId>org.apache.openjpa</groupId>
+ <artifactId>openjpa</artifactId>
++ <version>2.0.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <!-- OpenJPA PCEnhancer ant task failed without these packages -->
+Index: src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java
+===================================================================
+--- src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java (revision 0)
++++ src/main/java/org/apache/geronimo/samples/daytrader/QuoteDataBean_.java (revision 0)
+@@ -0,0 +1,23 @@
++/**
++ * Generated by OpenJPA MetaModel Generator Tool.
++**/
++
++package org.apache.geronimo.samples.daytrader;
++
++import java.math.BigDecimal;
++import javax.persistence.metamodel.SingularAttribute;
++
++@javax.persistence.metamodel.StaticMetamodel
++(value=org.apache.geronimo.samples.daytrader.QuoteDataBean.class)
++@javax.annotation.Generated
++(value="org.apache.openjpa.persistence.meta.AnnotationProcessor6",date="Mon May 03 09:51:22 CDT 2010")
++public class QuoteDataBean_ {
++ public static volatile SingularAttribute<QuoteDataBean,Double> change1;
++ public static volatile SingularAttribute<QuoteDataBean,String> companyName;
++ public static volatile SingularAttribute<QuoteDataBean,BigDecimal> high;
++ public static volatile SingularAttribute<QuoteDataBean,BigDecimal> low;
++ public static volatile SingularAttribute<QuoteDataBean,BigDecimal> open1;
++ public static volatile SingularAttribute<QuoteDataBean,BigDecimal> price;
++ public static volatile SingularAttribute<QuoteDataBean,String> symbol;
++ public static volatile SingularAttribute<QuoteDataBean,Double> volume;
++}
+
+Property changes on: src\main\java\org\apache\geronimo\samples\daytrader\QuoteDataBean_.java
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+#P daytrader-web
+Index: src/main/webapp/WEB-INF/web.xml
+===================================================================
+--- src/main/webapp/WEB-INF/web.xml (revision 935418)
++++ src/main/webapp/WEB-INF/web.xml (working copy)
+@@ -82,7 +82,7 @@
+ <init-param>
+ <description>Sets the default RuntimeMode. Legal values include EJB and Direct</description>
+ <param-name>runTimeMode</param-name>
+- <param-value>DIRECT</param-value>
++ <param-value>Full EJB3</param-value>
+ </init-param>
+ <init-param>
+ <description>Sets the default Order Processing Mode. Legal values include Synchronous, Asynchronous_1-Phase and Asynchronous_2-Phase</description>
+Index: src/main/webapp/WEB-INF/ibm-web-bnd.xml
+===================================================================
+--- src/main/webapp/WEB-INF/ibm-web-bnd.xml (revision 0)
++++ src/main/webapp/WEB-INF/ibm-web-bnd.xml (revision 0)
+@@ -0,0 +1,16 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<web-bnd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
++ xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-bnd_1_0.xsd" version="1.0">
++ <virtual-host name="default_host"/>
++ <ejb-ref name="ejb/TradeSLSBBean" binding-name="org.apache.geronimo.samples.daytrader.ejb3.TradeSLSBRemote"/>
++ <ejb-ref name="ejb/DirectSLSBBean" binding-name="org.apache.geronimo.samples.daytrader.ejb3.DirectSLSBRemote"/>
++ <resource-ref name="jdbc/TradeDataSource" binding-name="jdbc/TradeDataSource">
++ <authentication-alias name="TradeDataSourceAuthData"/>
++ </resource-ref>
++
++ <resource-ref name="jms/QueueConnectionFactory" binding-name="jms/TradeBrokerQCF"/>
++ <resource-ref name="jms/TopicConnectionFactory" binding-name="jms/TradeStreamerTCF"/>
++ <message-destination-ref binding-name="jms/TradeBrokerQueue" name="jms/TradeBrokerQueue"/>
++ <message-destination-ref binding-name="jms/TradeStreamerTopic" name="jms/TradeStreamerTopic"/>
++</web-bnd>
++
+
+Property changes on: src\main\webapp\WEB-INF\ibm-web-bnd.xml
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
+Index: src/main/webapp/WEB-INF/ibm-web-ext.xml
+===================================================================
+--- src/main/webapp/WEB-INF/ibm-web-ext.xml (revision 0)
++++ src/main/webapp/WEB-INF/ibm-web-ext.xml (revision 0)
+@@ -0,0 +1,10 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<web-ext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
++ xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" version="1.0">
++ <jsp-attribute name="reloadEnabled" value="false"/>
++ <jsp-attribute name="reloadInterval" value="10"/>
++ <resource-ref name="jdbc/TradeDataSource" isolation-level="TRANSACTION_REPEATABLE_READ"/>
++ <resource-ref name="jms/QueueConnectionFactory" isolation-level="TRANSACTION_READ_COMMITTED"/>
++ <resource-ref name="jms/TopicConnectionFactory" isolation-level="TRANSACTION_READ_COMMITTED"/>
++</web-ext>
++
+
+Property changes on: src\main\webapp\WEB-INF\ibm-web-ext.xml
+___________________________________________________________________
+Added: svn:eol-style
+ + native
+
Added: websites/staging/openjpa/trunk/content/artifacts/enhance.xml
==============================================================================
--- websites/staging/openjpa/trunk/content/artifacts/enhance.xml (added)
+++ websites/staging/openjpa/trunk/content/artifacts/enhance.xml Sun Dec 9 13:13:35 2012
@@ -0,0 +1,27 @@
+<project name="jpa_enhance_builder">
+ <path id="enhance.cp">
+ <pathelement location="${basedir}${file.separator}${build.dir}"/>
+
+ <fileset dir="${basedir}${file.separator}${openjpa.libs}">
+ <include name="**/*.jar"/>
+ </fileset>
+ </path>
+ <property name="cp" refid="enhance.cp"/>
+
+ <target name="openjpa.libs.check" unless="openjpa.libs">
+ <fail message="Please set -Dopenjpa.libs in your builder configuration!"/>
+ </target>
+ <target name="build.dir.check" unless="build.dir">
+ <fail message="Please set -Dbuild.dir in your builder configuration!"/>
+ </target>
+
+ <target name="enhance" depends="openjpa.libs.check, build.dir.check">
+ <echo message="${cp}"/>
+ <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
+ <classpath refid="enhance.cp"/>
+ </taskdef>
+ <openjpac>
+ <classpath refid="enhance.cp"/>
+ </openjpac>
+ </target>
+</project>
\ No newline at end of file
Added: websites/staging/openjpa/trunk/content/artifacts/pom.xml
==============================================================================
Binary file - no diff available.
Propchange: websites/staging/openjpa/trunk/content/artifacts/pom.xml
------------------------------------------------------------------------------
svn:mime-type = application/xml
Added: websites/staging/openjpa/trunk/content/automated-builds.html
==============================================================================
--- websites/staging/openjpa/trunk/content/automated-builds.html (added)
+++ websites/staging/openjpa/trunk/content/automated-builds.html Sun Dec 9 13:13:35 2012
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<html lang="en">
+ <head>
+ <META http-equiv="Content-Type" content="text/html;charset=UTF-8" />
+ <link href="http://openjpa.apache.org/styles/site.css" rel="stylesheet" type="text/css"/>
+ <!-- <link href="http://openjpa.apache.org/styles/type-settings.css" rel="stylesheet" type="text/css"/> -->
+ <link href="./css/type-settings.css" rel="stylesheet" type="text/css"/>
+ <LINK rel="schema.DC" href="http://purl.org/DC/elements/1.0/">
+ <META name="Description" content="Apache OpenJPA -- Automated Builds
" />
+ <META name="Keywords" content="Apache OpenJPA, JPA, JPA 1.0, JSR-220, JPA2, JPA 2.0, JSR-317, " />
+ <META name="Owner" content="dev@openjpa.apache.org" />
+ <META name="Robots" content="index, follow" />
+ <META name="Security" content="Public" />
+ <META name="Source" content="wiki template" />
+ <META name="DC.Date" scheme="iso8601" content="2010-08-11" />
+ <META name="DC.Language" scheme="rfc1766" content="en" />
+ <META name="DC.Rights" content="Copyright © 2006,2010 The Apache Software Foundation" />
+ <META http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))'/>
+
+ <title>
+ Apache OpenJPA --
+ </title>
+ </head>
+ <body>
+ <div class="white_box">
+ <div class="header">
+ <div class="header_l">
+ <div class="header_r">
+ </div>
+ </div>
+ </div>
+ <div class="content">
+ <div class="content_l">
+ <div class="content_r">
+ <div>
+ <!-- Banner -->
+ <TABLE valign="top" border="0" cellspacing="0" cellpadding="5" width="100%" background="images/header-bg3.png">
+ <TR>
+ <TD valing="top" align="left">
+ <A href="http://openjpa.apache.org/"><IMG src="images/openjpa-logo.png" border="0" alt="OpenJPA Logo"></A>
+ </TD>
+ <TD width="100%">
+
+ </TD>
+ <TD valing="top" align="right">
+ <A href="http://www.apache.org/"><IMG src="images/asf_logo_wide2.png" border="0" alt="ASF Logo"></A>
+ </TD>
+ </TR>
+ </TABLE>
+
+ <!-- Navigation Bar -->
+ <div class="bottom_red_bar">
+ <div id="site-breadcrumbs">
+ <!-- Breadcrumbs --
+ <a href="/">Home</a> » <a href="/automated-builds.html">Automated Builds
</a>
+ -- Breadcrumbs -->
+ </div>
+ </div>
+
+ <!-- Content -->
+ <table border="0">
+ <tbody>
+ <tr>
+ <td valign="top">
+ <div class="navigation">
+ <div class="navigation_top">
+ <div class="navigation_bottom">
+ <!-- NavigationBar -->
+ <h3><a name="SideNav-Overview"></a><a href="overview.html" title="Overview">Overview</a></h3>
+
+ <ul class="alternate" type="square">
+ <li><a href="quick-start.html" title="Quick Start">Quick Start</a></li>
+ <li><a href="documentation.html" title="Documentation">Documentation</a></li>
+ <li><a href="downloads.html" title="Downloads">Downloads</a></li>
+ <li><a href="site-index.html" title="Site Index">Site Index</a></li>
+ <li><a href="license.html" title="License">License</a></li>
+ <li><a href="privacy-policy.html" title="Privacy Policy">Privacy Policy</a></li>
+ </ul>
+
+ <h3><a name="SideNav-Community"></a><a href="community.html" title="Community">Community</a></h3>
+
+ <ul class="alternate" type="square">
+ <li><a href="index.html#Index-eventsandnews" title="Events and News">Events and News</a></li>
+ <li><a href="found-a-bug.html" title="Found a Bug">Found a Bug</a>?</li>
+ <li><a href="get-involved.html" title="Get Involved">Get Involved</a></li>
+ <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+ <li><a href="committers.html" title="Committers">Committers</a></li>
+ <li><a href="integration.html" title="Integration">Integration</a></li>
+ <li><a href="powered-by.html" title="Powered By">Powered By</a></li>
+ <li><a href="thanks.html" title="Thanks">Thanks</a></li>
+ </ul>
+
+
+ <h3><a name="SideNav-Development"></a><a href="development.html" title="Development">Development</a></h3>
+
+ <ul class="alternate" type="square">
+ <li><a href="http://issues.apache.org/jira/browse/OPENJPA" class="external-link" rel="nofollow">Issue Tracker</a></li>
+ <li><a href="source-code.html" title="Source Code">Source Code</a></li>
+ <li><a href="testing.html" title="Testing">Testing</a></li>
+ <li><a href="tools.html" title="Tools">Tools</a></li>
+ <li><a href="samples.html" title="Samples">Samples</a></li>
+ <li><a href="release-management.html" title="Release Management">Release Management</a></li>
+ </ul>
+
+ <h3>Search</h3>
+
+ <div style="padding: 5px 5px 0px 25px;">
+ <form action="http://www.google.com/search" method="get" style="font-size: 10px;">
+ <input name="ie" type="hidden" value="UTF-8">
+ <input name="oe" type="hidden" value="UTF-8">
+ <input maxlength="255" name="q" size="9" type="text" value=""><br><br>
+ <input name="btnG" type="submit" value="Google">
+ <input name="domains" type="hidden" value="openjpa.apache.org">
+ <input name="sitesearch" type="hidden" value="openjpa.apache.org">
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td valign="top" width="100%" style="overflow:hidden;">
+ <div class="wiki-content">
+ <p><a name="Automated-Builds"></a></p>
+<p>We're using the Jenkins build server for continuous builds for several of
+the OpenJPA code streams and some of the artifacts in the Tools subproject.</p>
+<p><a name="AutomatedBuilds-JenkinsJobs-OpenJPA"></a></p>
+<h3 id="jenkins-jobs-openjpa">Jenkins Jobs - OpenJPA</h3>
+<p><a href="https://builds.apache.org/job/OpenJPA-12x/">OpenJPA 1.2.x build and deploy</a>
+ - This build runs on the Ubuntu build agents and is set up to check SVN
+for updates once every hour at 45 minutes past the hour and deploy
+artifacts.</p>
+<p><a href="https://builds.apache.org/job/OpenJPA-13x/">OpenJPA 1.3.0-SNAPSHOT build and deploy</a>
+ - This build runs on the Ubuntu build agents and is set up to check SVN
+for updates once every hour at 30 minutes past the hour and deploy
+artifacts.</p>
+<p><a href="https://builds.apache.org/job/OpenJPA-20x-deploy/">OpenJPA 2.0.x build and deploy</a>
+ - This build runs on the Ubuntu build agents and is set up to check SVN
+for updates once a day at 07:45 (UTC) and deploy artifacts.</p>
+<p><a href="https://builds.apache.org/job/OpenJPA-trunk/">OpenJPA trunk build</a>
+ - This build runs on the Windows build agent and is set up to check SVN
+for updates twice every hour at 0 and 30 minutes past the hour.</p>
+<p><a href="https://builds.apache.org/job/OpenJPA-trunk-deploy/">OpenJPA trunk build and deploy</a>
+ - This build runs on the Ubuntu build agents and is set up to check SVN
+for updates once a day at 06:45 (UTC) and deploy artifacts.</p>
+<p><a name="AutomatedBuilds-JenkinsJobs-OpenJPATools"></a></p>
+<h3 id="jenkins-jobs-openjpa-tools">Jenkins Jobs - OpenJPA Tools</h3>
+<p><a href="https://builds.apache.org/job/OpenJPA-tools-trunk/">OpenJPA Tools trunk build and deploy</a>
+ - This build runs on the Ubuntu build agents and is set up to check SVN
+for updates once every hour at 55 minutes past the hour and deploy
+artifacts.</p>
+<p><a name="AutomatedBuilds-EmailNotifications"></a></p>
+<h3 id="email-notifications">Email Notifications</h3>
+<p>Email notifications to commits@openjpa are generated by Jenkins for build
+failures and when builds are back to normal.</p>
+<p><a name="AutomatedBuilds-JenkinsInfo"></a></p>
+<h3 id="jenkins-info">Jenkins Info</h3>
+<p>If you're interested in the Jenkins services or would like to request an
+account on the server, checkout the <a href="http://wiki.apache.org/general/Hudson">Jenkins wiki</a>
+ for more information. The builds.apache.org server uses the Apache LDAP
+for authentication, just like repository.apache.org and issues.apache.org.</p>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="bottom_red_bar"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="black_box">
+ <div class="footer">
+ <div class="footer_l">
+ <div class="footer_r">
+ <div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="design_attribution">
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.<br />
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.<br />
+ Other names may be trademarks of their respective owners.<br />
+ </div>
+
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </script>
+ <script type="text/javascript">
+ _uacct = "UA-1940143-1";
+ urchinTracker();
+ </script>
+
+ </body>
+</html>
Added: websites/staging/openjpa/trunk/content/banner.html
==============================================================================
--- websites/staging/openjpa/trunk/content/banner.html (added)
+++ websites/staging/openjpa/trunk/content/banner.html Sun Dec 9 13:13:35 2012
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<html lang="en">
+ <head>
+ <META http-equiv="Content-Type" content="text/html;charset=UTF-8" />
+ <link href="http://openjpa.apache.org/styles/site.css" rel="stylesheet" type="text/css"/>
+ <!-- <link href="http://openjpa.apache.org/styles/type-settings.css" rel="stylesheet" type="text/css"/> -->
+ <link href="./css/type-settings.css" rel="stylesheet" type="text/css"/>
+ <LINK rel="schema.DC" href="http://purl.org/DC/elements/1.0/">
+ <META name="Description" content="Apache OpenJPA -- Banner
" />
+ <META name="Keywords" content="Apache OpenJPA, JPA, JPA 1.0, JSR-220, JPA2, JPA 2.0, JSR-317, " />
+ <META name="Owner" content="dev@openjpa.apache.org" />
+ <META name="Robots" content="index, follow" />
+ <META name="Security" content="Public" />
+ <META name="Source" content="wiki template" />
+ <META name="DC.Date" scheme="iso8601" content="2010-08-11" />
+ <META name="DC.Language" scheme="rfc1766" content="en" />
+ <META name="DC.Rights" content="Copyright © 2006,2010 The Apache Software Foundation" />
+ <META http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))'/>
+
+ <title>
+ Apache OpenJPA --
+ </title>
+ </head>
+ <body>
+ <div class="white_box">
+ <div class="header">
+ <div class="header_l">
+ <div class="header_r">
+ </div>
+ </div>
+ </div>
+ <div class="content">
+ <div class="content_l">
+ <div class="content_r">
+ <div>
+ <!-- Banner -->
+ <TABLE valign="top" border="0" cellspacing="0" cellpadding="5" width="100%" background="images/header-bg3.png">
+ <TR>
+ <TD valing="top" align="left">
+ <A href="http://openjpa.apache.org/"><IMG src="images/openjpa-logo.png" border="0" alt="OpenJPA Logo"></A>
+ </TD>
+ <TD width="100%">
+
+ </TD>
+ <TD valing="top" align="right">
+ <A href="http://www.apache.org/"><IMG src="images/asf_logo_wide2.png" border="0" alt="ASF Logo"></A>
+ </TD>
+ </TR>
+ </TABLE>
+
+ <!-- Navigation Bar -->
+ <div class="bottom_red_bar">
+ <div id="site-breadcrumbs">
+ <!-- Breadcrumbs --
+ <a href="/">Home</a> » <a href="/banner.html">Banner
</a>
+ -- Breadcrumbs -->
+ </div>
+ </div>
+
+ <!-- Content -->
+ <table border="0">
+ <tbody>
+ <tr>
+ <td valign="top">
+ <div class="navigation">
+ <div class="navigation_top">
+ <div class="navigation_bottom">
+ <!-- NavigationBar -->
+ <h3><a name="SideNav-Overview"></a><a href="overview.html" title="Overview">Overview</a></h3>
+
+ <ul class="alternate" type="square">
+ <li><a href="quick-start.html" title="Quick Start">Quick Start</a></li>
+ <li><a href="documentation.html" title="Documentation">Documentation</a></li>
+ <li><a href="downloads.html" title="Downloads">Downloads</a></li>
+ <li><a href="site-index.html" title="Site Index">Site Index</a></li>
+ <li><a href="license.html" title="License">License</a></li>
+ <li><a href="privacy-policy.html" title="Privacy Policy">Privacy Policy</a></li>
+ </ul>
+
+ <h3><a name="SideNav-Community"></a><a href="community.html" title="Community">Community</a></h3>
+
+ <ul class="alternate" type="square">
+ <li><a href="index.html#Index-eventsandnews" title="Events and News">Events and News</a></li>
+ <li><a href="found-a-bug.html" title="Found a Bug">Found a Bug</a>?</li>
+ <li><a href="get-involved.html" title="Get Involved">Get Involved</a></li>
+ <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+ <li><a href="committers.html" title="Committers">Committers</a></li>
+ <li><a href="integration.html" title="Integration">Integration</a></li>
+ <li><a href="powered-by.html" title="Powered By">Powered By</a></li>
+ <li><a href="thanks.html" title="Thanks">Thanks</a></li>
+ </ul>
+
+
+ <h3><a name="SideNav-Development"></a><a href="development.html" title="Development">Development</a></h3>
+
+ <ul class="alternate" type="square">
+ <li><a href="http://issues.apache.org/jira/browse/OPENJPA" class="external-link" rel="nofollow">Issue Tracker</a></li>
+ <li><a href="source-code.html" title="Source Code">Source Code</a></li>
+ <li><a href="testing.html" title="Testing">Testing</a></li>
+ <li><a href="tools.html" title="Tools">Tools</a></li>
+ <li><a href="samples.html" title="Samples">Samples</a></li>
+ <li><a href="release-management.html" title="Release Management">Release Management</a></li>
+ </ul>
+
+ <h3>Search</h3>
+
+ <div style="padding: 5px 5px 0px 25px;">
+ <form action="http://www.google.com/search" method="get" style="font-size: 10px;">
+ <input name="ie" type="hidden" value="UTF-8">
+ <input name="oe" type="hidden" value="UTF-8">
+ <input maxlength="255" name="q" size="9" type="text" value=""><br><br>
+ <input name="btnG" type="submit" value="Google">
+ <input name="domains" type="hidden" value="openjpa.apache.org">
+ <input name="sitesearch" type="hidden" value="openjpa.apache.org">
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td valign="top" width="100%" style="overflow:hidden;">
+ <div class="wiki-content">
+ <p><a name="Banner"></a></p>
+<div id="header_background">
+ <div id="openjpa_logo">
+ <a style="float:left;
+width:280px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px;
+margin-top:10px; margin-left:100px;"
+href="http://openjpa.apache.org">OpenJPA</a>
+ </div>
+ <div id="copyright" style="text-align: center;">
+ Apache, Apache OpenJPA, and the Apache feather are trademarks
+of The Apache Software Foundation.
+ </div>
+</div>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="bottom_red_bar"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="black_box">
+ <div class="footer">
+ <div class="footer_l">
+ <div class="footer_r">
+ <div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="design_attribution">
+ Copyright (C) 2006,2012 The Apache Software Foundation. Licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.<br />
+ Apache, the Apache feather logo and OpenJPA are trademarks of The Apache Software Foundation.<br />
+ Other names may be trademarks of their respective owners.<br />
+ </div>
+
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </script>
+ <script type="text/javascript">
+ _uacct = "UA-1940143-1";
+ urchinTracker();
+ </script>
+
+ </body>
+</html>
|