1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.fosstrak.epcis.queryclient;
22
23 import java.net.URL;
24 import java.util.List;
25
26
27
28
29
30
31
32 public class SimpleSubscriptionsTest {
33
34 protected static final String LOCAL_EPCIS_QUERY_URL = "http://localhost:8080/epcis-repository/query";
35 protected static final String DEMO_EPCIS_QUERY_URL = "http://demo.fosstrak.org/epcis/query";
36
37
38
39
40 public static void main(String[] args) throws Exception {
41
42 String queryUrl = LOCAL_EPCIS_QUERY_URL;
43 QueryControlClient client = new QueryControlClient();
44 client.configureService(new URL(queryUrl), null);
45
46
47 System.out.println("Sending subscription:");
48 String mySubscrId = "mySubscription";
49 String xml = createSubscriptionXml(mySubscrId);
50 System.out.println(xml);
51 client.subscribe(xml);
52
53
54 System.out.println("Listing all subscribed queries:");
55 List<String> subscrIds = client.getSubscriptionIds("SimpleEventQuery");
56 for (String subscrId : subscrIds) {
57 System.out.println(" - " + subscrId);
58 }
59
60
61
62
63 System.out.println("Unsubscribing query subscription with ID: " + mySubscrId);
64 client.unsubscribe(mySubscrId);
65
66
67 System.out.println("Listing all subscribed queries:");
68 subscrIds = client.getSubscriptionIds("SimpleEventQuery");
69 for (String subscrId : subscrIds) {
70 System.out.println(" - " + subscrId);
71 }
72 }
73
74 private static String createSubscriptionXml(String subscriptionId) {
75 StringBuilder sb = new StringBuilder();
76 sb.append("<epcisq:Subscribe xmlns:epcisq=\"urn:epcglobal:epcis-query:xsd:1\">\n");
77 sb.append("<queryName>SimpleEventQuery</queryName>\n");
78 sb.append("<params>\n");
79 sb.append(" <param>\n");
80 sb.append(" <name>eventType</name>\n");
81 sb.append(" <value>\n");
82 sb.append(" <string>ObjectEvent</string>\n");
83 sb.append(" </value>\n");
84 sb.append(" </param>\n");
85 sb.append(" <param>\n");
86 sb.append(" <name>MATCH_epc</name>\n");
87 sb.append(" <value>\n");
88 sb.append(" <string>urn:epc:id:sgtin:0614141.107346.2017</string>\n");
89 sb.append(" </value>\n");
90 sb.append(" </param>\n");
91 sb.append("</params>\n");
92 sb.append("<dest>http://localhost:8888/</dest> <!-- this is where query results will be delivered to -->\n");
93 sb.append("<controls>\n");
94 sb.append(" <schedule>\n");
95 sb.append(" <second>0</second> <!-- every full minute -->\n");
96 sb.append(" </schedule>\n");
97 sb.append(" <initialRecordTime>2008-03-16T00:00:00+01:00</initialRecordTime>\n");
98 sb.append(" <reportIfEmpty>false</reportIfEmpty>\n");
99 sb.append("</controls>\n");
100 sb.append("<subscriptionID>").append(subscriptionId).append("</subscriptionID>\n");
101 sb.append("</epcisq:Subscribe>");
102 return sb.toString();
103 }
104 }