Author: ppoddar
Date: Wed Sep 29 17:40:31 2010
New Revision: 1002780
URL: http://svn.apache.org/viewvc?rev=1002780&view=rev
Log:
Adding an example of query target policy. A service URI support. And comments
Added:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorBasedQueryTargetPolicy.java
(with props)
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/LoginDialog.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/OpenTrader.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ServerLogPanel.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapter.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapterAsync.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ui/ProgressMonitor.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/ExceptionAdapter.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/TradingServiceAdapterImpl.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/Exchange.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/MockTradingService.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/TradingService.java
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorDistributionPolicy.java
openjpa/trunk/openjpa-examples/opentrader/src/main/resources/META-INF/persistence.xml
openjpa/trunk/openjpa-examples/opentrader/src/main/resources/WEB-INF/web.xml
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/LoginDialog.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/LoginDialog.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/LoginDialog.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/LoginDialog.java
Wed Sep 29 17:40:31 2010
@@ -52,6 +52,7 @@ import com.google.gwt.user.client.ui.Tex
*/
public class LoginDialog extends PopupPanel {
private Trader trader;
+ private String serverURI;
private final OpenTrader session;
public LoginDialog(final OpenTrader session) {
@@ -117,9 +118,25 @@ public class LoginDialog extends PopupPa
public void onSuccess(Trader result) {
trader = result;
+ session.getService().getServiceURI(new GetServerURI());
+ }
+ }
+
+ /**
+ * Initializes the server URI.
+ *
+ */
+ public class GetServerURI implements AsyncCallback<String> {
+ public void onFailure(Throwable caught) {
+ session.handleError(caught);
+ }
+
+ public void onSuccess(String uri) {
+ serverURI = uri;
session.getService().getStocks(new InitializeStocks());
}
}
+
/**
* Initializes the tradable stocks followed by the main application.
@@ -132,7 +149,7 @@ public class LoginDialog extends PopupPa
public void onSuccess(List<Stock> stocks) {
ProgressMonitor.stop();
- session.init(trader, stocks);
+ session.init(trader, serverURI, stocks);
}
}
}
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/OpenTrader.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/OpenTrader.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/OpenTrader.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/OpenTrader.java
Wed Sep 29 17:40:31 2010
@@ -101,6 +101,7 @@ public class OpenTrader implements Entry
// Server-State variables as Session Identifier
private Trader trader;
+ private String _serviceURI;
// The handle to the remote service.
private TradingServiceAdapterAsync tradingService;
@@ -153,13 +154,18 @@ public class OpenTrader implements Entry
return stockPanel.getModel();
}
+ String getServiceURI() {
+ return _serviceURI;
+ }
+
/**
* Builds up the widgets once the login is complete i.e. the server has
supplied
* the initialization data.
*
*/
- void init(Trader trader, List<Stock> stocks) {
+ void init(Trader trader, String uri, List<Stock> stocks) {
this.trader = trader;
+ _serviceURI = uri;
Window.setTitle(trader.getName());
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ServerLogPanel.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ServerLogPanel.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ServerLogPanel.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ServerLogPanel.java
Wed Sep 29 17:40:31 2010
@@ -56,7 +56,7 @@ public class ServerLogPanel extends Scro
public ServerLogPanel(final OpenTrader session, final int w, final int h) {
- super("Server Logs", w,h, false);
+ super("Server Log (" + session.getServiceURI() + ")", w,h, false);
this.session = session;
session.registerHandler(ServiceEvent.TradableAdded.TYPE, this);
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapter.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapter.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapter.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapter.java
Wed Sep 29 17:40:31 2010
@@ -103,4 +103,6 @@ public interface TradingServiceAdapter e
throws RuntimeException;
List<LogStatement> getLog()
throws RuntimeException;
+ String getServiceURI()
+ throws RuntimeException;
}
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapterAsync.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapterAsync.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapterAsync.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/TradingServiceAdapterAsync.java
Wed Sep 29 17:40:31 2010
@@ -68,4 +68,6 @@ public interface TradingServiceAdapterAs
void withdraw(Tradable t, AsyncCallback<Tradable> callback);
void refresh(Tradable t, AsyncCallback<Tradable> callback);
+
+ void getServiceURI(AsyncCallback<String> callback);
}
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ui/ProgressMonitor.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ui/ProgressMonitor.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ui/ProgressMonitor.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/client/ui/ProgressMonitor.java
Wed Sep 29 17:40:31 2010
@@ -53,12 +53,13 @@ public class ProgressMonitor extends Tim
header = new HTML();
bar = new FlexTable();
- bar.setCellSpacing(1);
+ bar.setCellSpacing(0);
+ bar.setCellPadding(0);
bar.setWidget(0, 0, header);
header.addStyleName("progressMonitor-caption");
for (int i = 0; i < N; i++) {
Label box = new Label();
- box.setSize("10px", "20px");
+ box.setSize("30px", "20px");
DOM.setStyleAttribute(box.getElement(), "backgroundColor",
"black");
DOM.setStyleAttribute(box.getElement(), OPACITY, lowOpacity);
bar.setWidget(1, i, box);
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/ExceptionAdapter.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/ExceptionAdapter.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/ExceptionAdapter.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/ExceptionAdapter.java
Wed Sep 29 17:40:31 2010
@@ -21,20 +21,28 @@ package org.apache.openjpa.trader.server
import java.util.Arrays;
import java.util.List;
-
-
/**
* Adapts a server-side exception to a RuntimeException.
+ * This implementation a GWT compiler aware and hence any package dependency
will require the
+ * source code for this dependent packages. The purpose of this translator is
to translate
+ * the stack trace of those exceptions, such as
<code>org.apache.openjpa.persistence.PersistenceException</code>
+ * <em>without</em> bringing in that dependency.
*
* @author Pinaki Poddar
*
*/
public class ExceptionAdapter {
- static List<String> exceptionTypes = Arrays.asList(
- "org.apache.openjpa.persistence.PersistenceException");
+ static List<String> exceptionTypes =
Arrays.asList("org.apache.openjpa.persistence.PersistenceException");
-
- RuntimeException translate(Throwable t) {
+ private boolean _printStackTrace;
+
+ public void setPrintServerSideStackTrace(boolean flag) {
+ _printStackTrace = flag;
+ }
+
+ public RuntimeException translate(Throwable t) {
+ if (_printStackTrace)
+ t.printStackTrace();
Throwable cause = searchForKnownButNonTranslatableException(t);
if (cause != null) {
t = cause;
@@ -63,5 +71,4 @@ public class ExceptionAdapter {
}
return false;
}
-
}
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/TradingServiceAdapterImpl.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/TradingServiceAdapterImpl.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/TradingServiceAdapterImpl.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/server/TradingServiceAdapterImpl.java
Wed Sep 29 17:40:31 2010
@@ -41,18 +41,33 @@ import org.apache.openjpa.trader.service
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
- * The server side implementation of the RPC service.
+ * The server side implementation of the GWT RPC service.
+ * <p>
+ * This implementation delegates to original implementation, thereby blocking
the GWT Servlet
+ * dependency to the original implementation of the service. This
implementation being a
+ * servlet allows us to switch the delegate during {...@#init(ServletConfig)
initialization}
+ * to either a {...@link Exchange real JPA-based } implementation or a
{...@link MockTradingService simple in-memory}
+ * implementation of the {...@link TradingService service interface}.
+ * <p>
+ * The other important advantage of such delegation is to translate exception.
The underlying service
+ * exceptions are translated by an {...@link ExceptionAdapter exception
translator} that ensures that
+ * the translated exceptions are serializable and hence accessible to the
browser-based client.
+ *
+ * @author Pinaki Poddar
*/
@SuppressWarnings("serial")
public class TradingServiceAdapterImpl extends RemoteServiceServlet implements
TradingServiceAdapter {
- TradingService _del;
+ private TradingService _del;
+ private ExceptionAdapter _translator = new ExceptionAdapter();
public void init(ServletConfig config) throws ServletException {
super.init(config);
String unit = config.getInitParameter("persistence.unit");
String mock = config.getInitParameter("mock");
+ String serverTrace = config.getInitParameter("server-side-stacktrace");
_del = ("true".equalsIgnoreCase(mock)) ? new MockTradingService() :
new Exchange(unit);
+
_translator.setPrintServerSideStackTrace("true".equalsIgnoreCase(serverTrace));
}
public void destroy() {
@@ -164,9 +179,17 @@ public class TradingServiceAdapterImpl e
throw translate(e);
}
}
+
+ public String getServiceURI() {
+ try {
+ return _del.getServiceURI();
+ } catch (Throwable e) {
+ throw translate(e);
+ }
+ }
+
RuntimeException translate(Throwable t) {
- t.printStackTrace();
- return new ExceptionAdapter().translate(t);
+ return _translator.translate(t);
}
}
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/Exchange.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/Exchange.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/Exchange.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/Exchange.java
Wed Sep 29 17:40:31 2010
@@ -20,6 +20,7 @@ package org.apache.openjpa.trader.servic
import java.sql.Timestamp;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -261,4 +262,17 @@ public class Exchange extends Persistenc
config.put("openjpa.Log", BufferedLog.class.getName());
return config;
}
+
+ public String getServiceURI() {
+ Map<String,Object> props = getUnit().getProperties();
+ Object url = props.get("openjpa.ConnectionURL");
+ try {
+ if (url == null) {
+ url =
Arrays.toString((String[])props.get("openjpa.slice.Names"));
+ }
+ } catch (Exception ex) {
+ url = "?";
+ }
+ return "jpa:" + props.get("openjpa.Id") + "@" + url;
+ }
}
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/MockTradingService.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/MockTradingService.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/MockTradingService.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/MockTradingService.java
Wed Sep 29 17:40:31 2010
@@ -171,5 +171,9 @@ public class MockTradingService implemen
@Override
public void close() {
}
+
+ public String getServiceURI() {
+ return "Mock";
+ }
}
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/TradingService.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/TradingService.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/TradingService.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/TradingService.java
Wed Sep 29 17:40:31 2010
@@ -41,12 +41,12 @@ public interface TradingService {
/**
* A query to find symbols of all stocks.
*/
- String GET_ALL_STOCKS = "select s from Stock s";
+ public static final String GET_ALL_STOCKS = "select s from Stock s";
/**
* A query to match asks to a given bid.
*/
- String MATCH_BID = "select new Match(a,b) from Ask a, Bid b "
+ public static final String MATCH_BID = "select new Match(a,b) from Ask a,
Bid b "
+ "where b = :bid and a.stock.symbol = b.stock.symbol "
+ "and a.price <= b.price and a.volume >= b.volume "
+ "and NOT(a.seller = b.buyer) and a.trade is NULL and
b.trade is NULL";
@@ -55,7 +55,7 @@ public interface TradingService {
/**
* A query to match bids of a given ask.
*/
- String MATCH_ASK = "select new Match(a,b) from Ask a, Bid b "
+ public static final String MATCH_ASK = "select new Match(a,b) from Ask a,
Bid b "
+ "where a = :ask and a.stock.symbol = b.stock.symbol "
+ "and a.price <= b.price and a.volume >= b.volume "
+ "and NOT(a.seller = b.buyer) and a.trade is NULL and
b.trade is NULL";
@@ -64,16 +64,16 @@ public interface TradingService {
/**
* A query to find a trader by his/her name.
*/
- String QUERY_TRADER_BY_NAME = "select t from Trader t where t.name=:name";
+ public static final String QUERY_TRADER_BY_NAME = "select t from Trader t
where t.name=:name";
/**
* A query to find all trades in a given period.
*/
- String QUERY_TRADE_BY_PERIOD = "select t from Trade t where t.id between
(:from, :to)";
+ public static final String QUERY_TRADE_BY_PERIOD = "select t from Trade t
where t.id between (:from, :to)";
- public static final String DEFAULT_UNIT_NAME = "exchange";
+ public static final String DEFAULT_UNIT_NAME = "exchange-local";
/**
* Gets the list of stocks registered with this service.
@@ -161,4 +161,11 @@ public interface TradingService {
* @return
*/
List<LogStatement> getLog();
+
+ /**
+ * Get a descriptive URI-like string for this service.
+ *
+ * @return
+ */
+ String getServiceURI();
}
Added:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorBasedQueryTargetPolicy.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorBasedQueryTargetPolicy.java?rev=1002780&view=auto
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorBasedQueryTargetPolicy.java
(added)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorBasedQueryTargetPolicy.java
Wed Sep 29 17:40:31 2010
@@ -0,0 +1,32 @@
+package org.apache.openjpa.trader.service.slice;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.openjpa.slice.QueryTargetPolicy;
+import org.apache.openjpa.trader.domain.Stock;
+import org.apache.openjpa.trader.domain.Tradable;
+import org.apache.openjpa.trader.service.TradingService;
+
+/**
+ * An example of a {...@link QueryTargetPolicy query target policy} that
directs the query based
+ * on its parameters.
+ *
+ * @author Pinaki Poddar
+ *
+ */
+public class SectorBasedQueryTargetPolicy implements QueryTargetPolicy {
+
+ @Override
+ public String[] getTargets(String query, Map<Object, Object> params,
+ String language, List<String> slices, Object context) {
+ Stock stock = null;
+ if (TradingService.MATCH_ASK.equals(query)) {
+ stock = ((Tradable)params.get("ask")).getStock();
+ } else if (TradingService.MATCH_BID.equals(query)) {
+ stock = ((Tradable)params.get("bid")).getStock();
+ }
+ return stock != null ? new
String[]{slices.get(stock.getSector().ordinal())} : null;
+ }
+
+}
Propchange:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorBasedQueryTargetPolicy.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorBasedQueryTargetPolicy.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorDistributionPolicy.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorDistributionPolicy.java?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorDistributionPolicy.java
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/java/org/apache/openjpa/trader/service/slice/SectorDistributionPolicy.java
Wed Sep 29 17:40:31 2010
@@ -21,13 +21,17 @@ package org.apache.openjpa.trader.servic
import java.util.List;
import org.apache.openjpa.slice.DistributionPolicy;
+import org.apache.openjpa.trader.domain.Sector;
import org.apache.openjpa.trader.domain.Stock;
import org.apache.openjpa.trader.domain.Tradable;
+import org.apache.openjpa.trader.domain.Trade;
import org.apache.openjpa.trader.domain.Trader;
/**
- * Distributes each persistent domain instances of OpenTrader model into
specific slice
- * based on the sector.
+ * An example of {...@link DistributionPolicy distribution policy} that
distributes each persistent
+ * domain instances of OpenTrader model into specific slice based on the
{...@link Sector} to which
+ * a {...@link Stock} belongs. This policy demonstrates the use case where
data is distributed by
+ * a related property of the instance.
*
* @author Pinaki Poddar
*
@@ -44,12 +48,11 @@ public class SectorDistributionPolicy im
stock = ((Tradable)pc).getStock();
} else if (pc instanceof Stock) {
stock = (Stock)pc;
+ } else if (pc instanceof Trade) {
+ stock = ((Trade)pc).getStock();
} else if (pc instanceof Trader) {
throw new IllegalArgumentException("Trader should have been
replicated");
}
-// if (stock == null) {
-// throw new IllegalStateException(pc + "(" + pc.getClass() + ") is
not associated with a Stock");
-// }
return stock != null ? slices.get(stock.getSector().ordinal()) : null;
}
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/resources/META-INF/persistence.xml
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/resources/META-INF/persistence.xml?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/resources/META-INF/persistence.xml
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/resources/META-INF/persistence.xml
Wed Sep 29 17:40:31 2010
@@ -20,7 +20,7 @@
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0">
- <persistence-unit name="slice-exchange">
+ <persistence-unit name="exchange-slice">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>org.apache.openjpa.trader.domain.Tradable</class>
<class>org.apache.openjpa.trader.domain.Ask</class>
@@ -35,13 +35,14 @@
<property name="openjpa.ConnectionUserName" value="demo"/>
<property name="openjpa.ConnectionPassword" value="pwd"/>
- <property name="openjpa.slice.Names"
value="slice1,slice2,slice3"/>
+ <property name="openjpa.slice.Names" value="sector1,
sector2, sector3"/>
<property name="openjpa.slice.DistributionPolicy"
value="org.apache.openjpa.trader.service.slice.SectorDistributionPolicy"/>
<property name="openjpa.slice.ReplicatedTypes"
value="org.apache.openjpa.trader.domain.Trader"/>
+ <property name="openjpa.slice.QueryTargetPolicy"
value="org.apache.openjpa.trader.service.slice.SectorBasedQueryTargetPolicy"/>
- <property name="openjpa.slice.slice1.ConnectionURL"
value="jdbc:mysql://localhost/sector1"/>
- <property name="openjpa.slice.slice2.ConnectionURL"
value="jdbc:mysql://localhost/sector2"/>
- <property name="openjpa.slice.slice3.ConnectionURL"
value="jdbc:mysql://localhost/sector3"/>
+ <property name="openjpa.slice.sector1.ConnectionURL"
value="jdbc:mysql://localhost/sector1"/>
+ <property name="openjpa.slice.sector2.ConnectionURL"
value="jdbc:mysql://localhost/sector2"/>
+ <property name="openjpa.slice.sector3.ConnectionURL"
value="jdbc:mysql://localhost/sector3"/>
@@ -58,7 +59,7 @@
</persistence-unit>
- <persistence-unit name="exchange">
+ <persistence-unit name="exchange-local">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>org.apache.openjpa.trader.domain.Tradable</class>
<class>org.apache.openjpa.trader.domain.Ask</class>
@@ -80,4 +81,26 @@
</properties>
</persistence-unit>
+ <persistence-unit name="exchange">
+
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+ <class>org.apache.openjpa.trader.domain.Tradable</class>
+ <class>org.apache.openjpa.trader.domain.Ask</class>
+ <class>org.apache.openjpa.trader.domain.Bid</class>
+ <class>org.apache.openjpa.trader.domain.Trader</class>
+ <class>org.apache.openjpa.trader.domain.Trade</class>
+ <class>org.apache.openjpa.trader.domain.Stock</class>
+ <properties>
+ <property name="openjpa.ConnectionDriverName"
value="com.mysql.jdbc.Driver"/>
+ <property name="openjpa.ConnectionURL"
value="jdbc:mysql://opentrader.cxlsv2qt7orp.us-east-1.rds.amazonaws.com:3306/exchange"/>
+ <property name="openjpa.ConnectionUserName" value="ppoddar"/>
+ <property name="openjpa.ConnectionPassword" value="password"/>
+ <property name="openjpa.Multithreaded" value="true"/>
+ <property name="openjpa.DynamicEnhancementAgent" value="false"/>
+ <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/>
+ <property name="openjpa.ConnectionFactoryProperties"
value="PrintParameters=true"/>
+
+ <property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=True)"/>
+ </properties>
+ </persistence-unit>
+
</persistence>
Modified:
openjpa/trunk/openjpa-examples/opentrader/src/main/resources/WEB-INF/web.xml
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-examples/opentrader/src/main/resources/WEB-INF/web.xml?rev=1002780&r1=1002779&r2=1002780&view=diff
==============================================================================
---
openjpa/trunk/openjpa-examples/opentrader/src/main/resources/WEB-INF/web.xml
(original)
+++
openjpa/trunk/openjpa-examples/opentrader/src/main/resources/WEB-INF/web.xml
Wed Sep 29 17:40:31 2010
@@ -32,11 +32,11 @@
<servlet-class>org.apache.openjpa.trader.server.TradingServiceAdapterImpl</servlet-class>
<init-param>
<param-name>persistence.unit</param-name>
- <param-value>exchange</param-value>
- </init-param>
- <init-param>
+ <param-value>exchange-slice</param-value>
<param-name>mock</param-name>
<param-value>false</param-value>
+ <param-name>server-side-stacktrace</param-name>
+ <param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>