Skip to content

Commit f3f7fd1

Browse files
committed
Merge branch 'master' of github.com:javaee-samples/javaee7-samples
2 parents 939c56f + f107ad2 commit f3f7fd1

File tree

6 files changed

+58
-29
lines changed

6 files changed

+58
-29
lines changed

concurrency/managedscheduledexecutor/src/main/java/org/javaee7/concurrency/managedscheduledexecutor/MyTrigger.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,32 @@
3939
*/
4040
package org.javaee7.concurrency.managedscheduledexecutor;
4141

42-
import java.util.Date;
4342
import javax.enterprise.concurrent.LastExecution;
4443
import javax.enterprise.concurrent.Trigger;
44+
import java.util.Date;
4545

4646
/**
4747
* @author Arun Gupta
4848
*/
4949
public class MyTrigger implements Trigger {
5050

51+
private final Date firetime;
52+
53+
public MyTrigger(Date firetime) {
54+
this.firetime = firetime;
55+
}
56+
5157
@Override
52-
public Date getNextRunTime(LastExecution le, Date date) {
53-
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
58+
public Date getNextRunTime(LastExecution le, Date taskScheduledTime) {
59+
if (firetime.before(taskScheduledTime)) {
60+
return null;
61+
}
62+
return firetime;
5463
}
5564

5665
@Override
57-
public boolean skipRun(LastExecution le, Date date) {
58-
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
66+
public boolean skipRun(LastExecution le, Date scheduledRunTime) {
67+
return firetime.before(scheduledRunTime);
5968
}
6069

6170
}

concurrency/managedscheduledexecutor/src/main/java/org/javaee7/concurrency/managedscheduledexecutor/TestTriggerServlet.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,16 @@
3939
*/
4040
package org.javaee7.concurrency.managedscheduledexecutor;
4141

42-
import java.io.IOException;
43-
import java.io.PrintWriter;
4442
import javax.annotation.Resource;
4543
import javax.enterprise.concurrent.ManagedScheduledExecutorService;
4644
import javax.servlet.ServletException;
4745
import javax.servlet.annotation.WebServlet;
4846
import javax.servlet.http.HttpServlet;
4947
import javax.servlet.http.HttpServletRequest;
5048
import javax.servlet.http.HttpServletResponse;
49+
import java.io.IOException;
50+
import java.io.PrintWriter;
51+
import java.util.Date;
5152

5253
/**
5354
* @author Arun Gupta
@@ -81,7 +82,7 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse re
8182
out.println("<body>");
8283
out.println("<h1>Schedule tasks with a trigger</h1>");
8384
for (int i=0; i<5; i++) {
84-
executor.schedule(new MyRunnableTask(i), new MyTrigger());
85+
executor.schedule(new MyRunnableTask(i), new MyTrigger(new Date(System.currentTimeMillis() + 30000)));
8586
}
8687
out.println("<br><br>Check server.log for output");
8788

ejb/stateless/src/test/java/org/javaee7/ejb/stateless/AccountSessionStatelessnessTest.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212

1313
import javax.ejb.EJB;
1414

15-
import static org.hamcrest.MatcherAssert.*;
16-
import static org.hamcrest.Matchers.*;
15+
import static org.hamcrest.MatcherAssert.assertThat;
16+
import static org.hamcrest.Matchers.equalTo;
17+
import static org.hamcrest.Matchers.is;
1718

1819
/**
1920
* @author Jakub Marchwicki
@@ -35,7 +36,7 @@ public static Archive<?> deployment() {
3536
.addClass(AccountSessionBean.class)
3637
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
3738
}
38-
39+
3940
/**
4041
* JSR 318: Enterprise JavaBeans, Version 3.1
4142
* 3.4.7.2 Session Object Identity / Stateless Session Beans
@@ -54,17 +55,17 @@ public void should_be_identical_beans() {
5455
@Test
5556
@InSequence(2)
5657
public void should_deposit_amount_on_first_account() {
57-
assertThat(account1.getAmount(), is(equalTo(0f)));
58+
assertThat(account1.getAmount(), equalTo(0f));
5859

5960
String actual = account1.deposit(deposit_amount);
6061

6162
assertThat(actual, is(equalTo("Deposited: " + deposit_amount)));
62-
assertThat(account1.getAmount(), is(equalTo(deposit_amount)));
63+
assertThat(account1.getAmount(), equalTo(0f));
6364
}
6465

6566
@Test
6667
@InSequence(3)
6768
public void should_contain_already_deposited_amount_on_second_account() {
68-
assertThat(account2.getAmount(), is(equalTo(deposit_amount)));
69+
assertThat(account2.getAmount(), equalTo(account1.getAmount()));
6970
}
70-
}
71+
}

websocket/whiteboard/src/main/java/org/javaee7/websocket/whiteboard/FigureDecoder.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@
4040
package org.javaee7.websocket.whiteboard;
4141

4242
import java.io.StringReader;
43+
import java.lang.invoke.MethodHandles;
44+
import java.util.logging.Logger;
45+
4346
import javax.json.Json;
4447
import javax.json.JsonException;
4548
import javax.json.JsonObject;
@@ -51,9 +54,12 @@
5154
* @author Arun Gupta
5255
*/
5356
public class FigureDecoder implements Decoder.Text<Figure> {
57+
58+
private static final Logger LOGGER = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());
59+
5460
@Override
5561
public Figure decode(String string) throws DecodeException {
56-
System.out.println("decoding: " + string);
62+
LOGGER.info("decoding: " + string);
5763
JsonObject jsonObject = Json.createReader(new StringReader(string)).readObject();
5864
return new Figure(jsonObject);
5965
}
@@ -71,11 +77,11 @@ public boolean willDecode(String string) {
7177

7278
@Override
7379
public void init(EndpointConfig ec) {
74-
System.out.println("init");
80+
LOGGER.info("init");
7581
}
7682

7783
@Override
7884
public void destroy() {
79-
System.out.println("desroy");
85+
LOGGER.info("destroy");
8086
}
8187
}

websocket/whiteboard/src/main/java/org/javaee7/websocket/whiteboard/FigureEncoder.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939
*/
4040
package org.javaee7.websocket.whiteboard;
4141

42+
import java.lang.invoke.MethodHandles;
43+
import java.util.logging.Logger;
44+
4245
import javax.websocket.EncodeException;
4346
import javax.websocket.Encoder;
4447
import javax.websocket.EndpointConfig;
@@ -47,18 +50,21 @@
4750
* @author Arun Gupta
4851
*/
4952
public class FigureEncoder implements Encoder.Text<Figure> {
53+
54+
private static final Logger LOGGER = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());
55+
5056
@Override
5157
public String encode(Figure figure) throws EncodeException {
5258
return figure.getJson().toString();
5359
}
5460

5561
@Override
5662
public void init(EndpointConfig ec) {
57-
System.out.println("init");
63+
LOGGER.info("init");
5864
}
5965

6066
@Override
6167
public void destroy() {
62-
System.out.println("desroy");
68+
LOGGER.info("destroy");
6369
}
6470
}

websocket/whiteboard/src/main/java/org/javaee7/websocket/whiteboard/Whiteboard.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,12 @@
4040
package org.javaee7.websocket.whiteboard;
4141

4242
import java.io.IOException;
43+
import java.lang.invoke.MethodHandles;
4344
import java.nio.ByteBuffer;
44-
import java.util.Collections;
45-
import java.util.HashSet;
46-
import java.util.Set;
45+
import java.util.concurrent.ConcurrentHashMap;
46+
import java.util.concurrent.ConcurrentMap;
47+
import java.util.logging.Logger;
48+
4749
import javax.websocket.EncodeException;
4850
import javax.websocket.OnClose;
4951
import javax.websocket.OnMessage;
@@ -59,11 +61,15 @@
5961
decoders = {FigureDecoder.class})
6062
public class Whiteboard {
6163

62-
private static final Set<Session> peers = Collections.synchronizedSet(new HashSet<Session>());
64+
private static final Logger LOGGER = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());
65+
66+
private static final Object PRESENT = new Object();
67+
68+
private static final ConcurrentMap<Session, Object> peers = new ConcurrentHashMap<>();
6369

6470
@OnOpen
6571
public void onOpen(Session peer) {
66-
peers.add(peer);
72+
peers.put(peer, PRESENT);
6773
}
6874

6975
@OnClose
@@ -73,8 +79,8 @@ public void onClose(Session peer) {
7379

7480
@OnMessage
7581
public void broadcastFigure(Figure figure, Session session) throws IOException, EncodeException {
76-
System.out.println("boradcastFigure: " + figure);
77-
for (Session peer : peers) {
82+
LOGGER.info("boradcastFigure: " + figure);
83+
for (Session peer : peers.keySet()) {
7884
if (!peer.equals(session)) {
7985
peer.getBasicRemote().sendObject(figure);
8086
}
@@ -83,8 +89,8 @@ public void broadcastFigure(Figure figure, Session session) throws IOException,
8389

8490
@OnMessage
8591
public void broadcastSnapshot(ByteBuffer data, Session session) throws IOException {
86-
System.out.println("broadcastBinary: " + data);
87-
for (Session peer : peers) {
92+
LOGGER.info("broadcastBinary: " + data);
93+
for (Session peer : peers.keySet()) {
8894
if (!peer.equals(session)) {
8995
peer.getBasicRemote().sendBinary(data);
9096
}

0 commit comments

Comments
 (0)