You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@tomee.apache.org by bu...@apache.org on 2012/03/12 11:16:34 UTC
svn commit: r808376 - in /websites/staging/openejb/trunk: cgi-bin/ content/
content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/api/
content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command...
Author: buildbot
Date: Mon Mar 12 10:16:33 2012
New Revision: 808376
Log:
Staging update by buildbot for openejb
Added:
websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/impl/SwitchClientCommand.java
websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/util/ClientNameHolder.java
Modified:
websites/staging/openejb/trunk/cgi-bin/ (props changed)
websites/staging/openejb/trunk/content/ (props changed)
websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/api/AbstractCommand.java
websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-core/src/main/java/jug/dao/SubjectDao.java
websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-web/src/main/java/jug/routing/PollingRouter.java
websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-web/src/main/java/jug/routing/RoutingFilter.java
Propchange: websites/staging/openejb/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Mar 12 10:16:33 2012
@@ -1 +1 @@
-1299307
+1299612
Propchange: websites/staging/openejb/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Mar 12 10:16:33 2012
@@ -1 +1 @@
-1299307
+1299612
Modified: websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/api/AbstractCommand.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/api/AbstractCommand.java (original)
+++ websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/api/AbstractCommand.java Mon Mar 12 10:16:33 2012
@@ -1,5 +1,6 @@
package jug.client.command.api;
+import jug.client.util.ClientNameHolder;
import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.client.WebClient;
import org.codehaus.jettison.util.StringIndenter;
@@ -51,6 +52,9 @@ public abstract class AbstractCommand {
public void setUrl(String url) {
this.url = url;
client = WebClient.create(url).accept(MediaType.APPLICATION_JSON);
+ if (ClientNameHolder.getCurrent() != null) {
+ client.query("client", ClientNameHolder.getCurrent());
+ }
}
public static String slurp(final InputStream from) throws IOException {
Added: websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/impl/SwitchClientCommand.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/impl/SwitchClientCommand.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/command/impl/SwitchClientCommand.java Mon Mar 12 10:16:33 2012
@@ -0,0 +1,30 @@
+package jug.client.command.impl;
+
+import jug.client.command.api.AbstractCommand;
+import jug.client.command.api.Command;
+import jug.client.util.ClientNameHolder;
+
+import javax.ws.rs.core.Response;
+import java.util.Map;
+
+@Command(name = "client", usage = "client <name>", description = "change client")
+public class SwitchClientCommand extends AbstractCommand {
+ private Map<String, Class<?>> commands;
+
+ @Override
+ public void execute(final String cmd) {
+ if (cmd.length() <= "client ".length()) {
+ System.err.println("please specify a client name (client1 or client2)");
+ return;
+ }
+
+ final String client = cmd.substring(7);
+ ClientNameHolder.setCurrent(client);
+ }
+
+ @Override
+ protected Response invoke(String cmd) {
+ return null;
+ }
+}
+
Added: websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/util/ClientNameHolder.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/util/ClientNameHolder.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-client/src/main/java/jug/client/util/ClientNameHolder.java Mon Mar 12 10:16:33 2012
@@ -0,0 +1,13 @@
+package jug.client.util;
+
+public class ClientNameHolder {
+ private static String current = null;
+
+ public static String getCurrent() {
+ return current;
+ }
+
+ public static void setCurrent(String current) {
+ ClientNameHolder.current = current;
+ }
+}
Modified: websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-core/src/main/java/jug/dao/SubjectDao.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-core/src/main/java/jug/dao/SubjectDao.java (original)
+++ websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-core/src/main/java/jug/dao/SubjectDao.java Mon Mar 12 10:16:33 2012
@@ -4,6 +4,7 @@ import jug.domain.Subject;
import jug.domain.Value;
import jug.domain.Vote;
+import javax.ejb.EJB;
import javax.ejb.Lock;
import javax.ejb.LockType;
import javax.ejb.Singleton;
@@ -17,6 +18,9 @@ public class SubjectDao {
@PersistenceContext(unitName = "polling")
private EntityManager em;
+ @EJB
+ private ReadSubjectDao readDao;
+
public Subject create(final String name, final String question) {
final Subject subject = new Subject();
subject.setName(name);
@@ -35,9 +39,11 @@ public class SubjectDao {
}
public Subject findByName(final String name) {
- return em.createNamedQuery(Subject.FIND_BY_NAME_QUERY, Subject.class)
- .setParameter("name", name)
- .getSingleResult();
+ return readDao.findByName(name);
+ }
+
+ public Collection<Subject> findAll() {
+ return readDao.findAll();
}
public int subjectLikeVoteNumber(final String subjectName) {
@@ -67,10 +73,6 @@ public class SubjectDao {
return t;
}
- public Collection<Subject> findAll() {
- return em.createNamedQuery(Subject.FIND_ALL, Subject.class).getResultList();
- }
-
public Subject bestSubject() {
int bestScore = 0;
Subject best = null;
@@ -83,4 +85,12 @@ public class SubjectDao {
}
return best;
}
+
+ @Singleton
+ @Lock(LockType.READ)
+ @PersistenceContext(name = "polling")
+ public static interface ReadSubjectDao {
+ Subject findByName(final String name);
+ Collection<Subject> findAll();
+ }
}
Modified: websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-web/src/main/java/jug/routing/PollingRouter.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-web/src/main/java/jug/routing/PollingRouter.java (original)
+++ websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-web/src/main/java/jug/routing/PollingRouter.java Mon Mar 12 10:16:33 2012
@@ -7,7 +7,6 @@ import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-import java.util.logging.Logger;
public class PollingRouter extends AbstractRouter {
private Map<String, DataSource> dataSources = null;
@@ -35,7 +34,11 @@ public class PollingRouter extends Abstr
currentDataSource.set(ds);
}
- private void init() {
+ private synchronized void init() {
+ if (dataSources != null) {
+ return;
+ }
+
dataSources = new HashMap<String, DataSource>();
for (String ds : Arrays.asList("jdbc/client1", "jdbc/client2")) {
try {
Modified: websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-web/src/main/java/jug/routing/RoutingFilter.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-web/src/main/java/jug/routing/RoutingFilter.java (original)
+++ websites/staging/openejb/trunk/content/examples-trunk/polling-parent/polling-web/src/main/java/jug/routing/RoutingFilter.java Mon Mar 12 10:16:33 2012
@@ -31,7 +31,10 @@ public class RoutingFilter implements Fi
@Override
public void doFilter(final ServletRequest servletRequest, final ServletResponse servletResponse, final FilterChain filterChain) throws IOException, ServletException {
- final String client = getClient();
+ String client = servletRequest.getParameter("client");
+ if (client == null) {
+ client = getRandomClient();
+ }
LOGGER.info("using client " + client);
router.setDataSource(client);
try {
@@ -41,7 +44,7 @@ public class RoutingFilter implements Fi
}
}
- private String getClient() {
+ private String getRandomClient() {
return "client" + (1 + COUNTER.getAndIncrement() % 2); // 2 clients
}