Skip to content

Commit 258ab73

Browse files
committed
Add SDTs models.
1 parent 986968d commit 258ab73

File tree

13 files changed

+590
-40
lines changed

13 files changed

+590
-40
lines changed

common/src/main/java/com/genexus/xml/GXXMLSerializable.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
import java.io.Serializable;
1111
import java.util.Iterator;
12-
import java.util.Hashtable;
1312
import java.lang.reflect.Method;
1413
import java.util.concurrent.ConcurrentHashMap;
1514

gxqueue/pom.xml

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,51 @@
1212
<artifactId>gxqueue</artifactId>
1313
<dependencies>
1414
<dependency>
15-
<groupId>com.genexus</groupId>
15+
<groupId>${project.groupId}</groupId>
16+
<artifactId>gxclassR</artifactId>
17+
<version>${project.version}</version>
18+
</dependency>
19+
<dependency>
20+
<groupId>${project.groupId}</groupId>
1621
<artifactId>gxcommon</artifactId>
22+
<version>${project.version}</version>
23+
<scope>compile</scope>
24+
</dependency>
25+
<dependency>
26+
<groupId>com.genexus</groupId>
27+
<artifactId>gxclassR</artifactId>
1728
<version>2.6-SNAPSHOT</version>
1829
<scope>compile</scope>
1930
</dependency>
2031
</dependencies>
2132

22-
<properties>
23-
<maven.compiler.source>9</maven.compiler.source>
24-
<maven.compiler.target>9</maven.compiler.target>
25-
</properties>
33+
<build>
34+
<finalName>gxqueue</finalName>
35+
<plugins>
36+
<plugin>
37+
<groupId>org.apache.maven.plugins</groupId>
38+
<artifactId>maven-jar-plugin</artifactId>
39+
<version>3.1.1</version>
40+
<configuration>
41+
<archive>
42+
<manifest>
43+
<addClasspath>false</addClasspath>
44+
</manifest>
45+
<manifestEntries>
46+
<Build-Time>${maven.build.timestamp}</Build-Time>
47+
<Build-User>GeneXus</Build-User>
48+
<Build-Java>${java.version}</Build-Java>
49+
<Build-OS>${os.name}</Build-OS>
50+
<Build-Label>${project.version}</Build-Label>
51+
<Build-Path>${basedir}</Build-Path>
52+
</manifestEntries>
53+
</archive>
54+
<excludes>
55+
<exclude>**/com/genexusmessaging/**</exclude>
56+
</excludes>
57+
</configuration>
58+
</plugin>
59+
</plugins>
60+
</build>
2661

2762
</project>
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.genexus.messaging.queue;
2+
3+
import com.genexus.GXBaseCollection;
4+
import com.genexus.ModelContext;
5+
import com.genexus.messaging.queue.model.SendMessageResult;
6+
import com.genexus.messaging.queue.model.SimpleQueueMessage;
7+
import com.genexus.util.GXProperties;
8+
import com.genexus.util.GXProperty;
9+
import com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessage;
10+
import com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageProperty;
11+
import com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageResult;
12+
13+
import java.util.ArrayList;
14+
15+
public class Convert {
16+
17+
protected static SimpleQueueMessage toSimpleQueueMessage(SdtMessage msg) {
18+
return new SimpleQueueMessage() {{
19+
setMessageId(msg.getgxTv_SdtMessage_Messageid());
20+
setMessageBody(msg.getgxTv_SdtMessage_Messagebody());
21+
setMessageHandleId(msg.getgxTv_SdtMessage_Messagehandleid());
22+
if (msg.getgxTv_SdtMessage_Messageattributes() != null) {
23+
setMessageAttributes(toGXProperties(msg.getgxTv_SdtMessage_Messageattributes()));
24+
}
25+
}};
26+
}
27+
28+
protected static SdtMessageResult toSdtMessageResult(SendMessageResult mResult) {
29+
SdtMessageResult r = new SdtMessageResult();
30+
r.setgxTv_SdtMessageResult_Messageid(mResult.getMessageId());
31+
r.setgxTv_SdtMessageResult_Servermessageid(mResult.getMessageServerId());
32+
r.setgxTv_SdtMessageResult_Messagestatus(mResult.getMessageSentStatus());
33+
return r;
34+
}
35+
36+
protected static GXBaseCollection<SdtMessageProperty> toSdtMessagePropertyCollection(GXProperties msgProps) {
37+
GXBaseCollection<SdtMessageProperty> props = new GXBaseCollection<SdtMessageProperty>();
38+
for (int i = 0; i < msgProps.count(); i++) {
39+
GXProperty propertyItem = msgProps.item(i);
40+
props.add(new SdtMessageProperty() {{
41+
setgxTv_SdtMessageProperty_Propertykey(propertyItem.getKey());
42+
setgxTv_SdtMessageProperty_Propertyvalue(propertyItem.getValue());
43+
}});
44+
}
45+
return props;
46+
}
47+
48+
protected static GXProperties toGXProperties(GXBaseCollection<SdtMessageProperty> msgProps) {
49+
GXProperties props = new GXProperties();
50+
for (SdtMessageProperty prop : msgProps) {
51+
props.add(prop.getgxTv_SdtMessageProperty_Propertykey(), prop.getgxTv_SdtMessageProperty_Propertyvalue());
52+
}
53+
return props;
54+
}
55+
}
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,121 @@
11
package com.genexus.messaging.queue;
22

3+
4+
import com.genexus.*;
5+
import com.genexus.diagnostics.core.ILogger;
6+
import com.genexus.diagnostics.core.LogManager;
7+
import com.genexus.messaging.queue.model.DeleteMessageResult;
8+
import com.genexus.messaging.queue.model.MessageId;
9+
import com.genexus.messaging.queue.model.SendMessageResult;
10+
import com.genexus.messaging.queue.model.SimpleQueueMessage;
11+
import com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessage;
12+
import com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageResult;
13+
14+
import java.lang.reflect.Constructor;
15+
316
public class SimpleMessageQueue {
17+
private IQueue queue;
18+
private static ILogger logger = LogManager.getLogger(SimpleMessageQueue.class);
19+
20+
private static String SDT_MESSAGE_CLASS_NAME = "SdtMessage";
21+
private static String SDT_MESSAGEPROPERTY_CLASS_NAME = "SdtMessageProperty";
22+
private static String SDT_MESSAGERESULT_CLASS_NAME = "SdtMessageResult";
23+
private static String NAMESPACE = "GeneXus.Programs.genexusmessagingqueue.simplequeue";
24+
25+
26+
public SimpleMessageQueue() {
27+
28+
}
29+
30+
public SimpleMessageQueue(SimpleMessageQueue other) {
31+
queue = other.queue;
32+
}
33+
34+
void validQueue() throws Exception {
35+
if (queue == null) {
36+
logger.error("Queue was not instantiated.");
37+
throw new Exception("Queue was not instantiated.");
38+
}
39+
}
40+
41+
42+
public void clear(GXBaseCollection<SdtMessages_Message>[] errorMessagesArr, boolean[] success) {
43+
GXBaseCollection<SdtMessages_Message> errorMessages = errorMessagesArr[0];
44+
errorMessages.clear();
45+
try {
46+
validQueue();
47+
success[0] = queue.purge();
48+
} catch (Exception ex) {
49+
queueErrorMessagesSetup(ex, errorMessages);
50+
}
51+
success[0] = false;
52+
}
53+
54+
public short getQueueLength(GXBaseCollection<SdtMessages_Message>[] errorMessagesArr, boolean[] success) {
55+
GXBaseCollection<SdtMessages_Message> errorMessages = errorMessagesArr[0];
56+
errorMessages.clear();
57+
short queueLength = 0;
58+
try {
59+
validQueue();
60+
queueLength = queue.getQueueLength().shortValue();
61+
} catch (Exception ex) {
62+
queueErrorMessagesSetup(ex, errorMessages);
63+
}
64+
return queueLength;
65+
}
66+
67+
public GxUserType sendMessage(SdtMessage sdtMessage, GXBaseCollection<SdtMessages_Message>[] errorMessagesArr, boolean[] success) {
68+
GXBaseCollection<SdtMessages_Message> errorMessages = errorMessagesArr[0];
69+
errorMessages.clear();
70+
71+
SendMessageResult sendMessageResult = new SendMessageResult();
72+
errorMessages = new GXBaseCollection<SdtMessages_Message>();
73+
SimpleQueueMessage queueMessage = Convert.toSimpleQueueMessage(sdtMessage);
74+
try {
75+
validQueue();
76+
sendMessageResult = queue.sendMessage(queueMessage);
77+
success[0] = true;
78+
return Convert.toSdtMessageResult(sendMessageResult);
79+
80+
} catch (Exception ex) {
81+
queueErrorMessagesSetup(ex, errorMessages);
82+
83+
logger.error("Could not send queue message", ex);
84+
}
85+
86+
return Convert.toSdtMessageResult(sendMessageResult);
87+
}
88+
89+
public boolean deleteMessage(String messageHandleId, GXBaseCollection<SdtMessages_Message>[] errorMessagesArr, SdtMessageResult sdtDelete) {
90+
GXBaseCollection<SdtMessages_Message> errorMessages = errorMessagesArr[0];
91+
errorMessages.clear();
92+
93+
try {
94+
validQueue();
95+
DeleteMessageResult deletedMessage = queue.deleteMessage(messageHandleId);
96+
sdtDelete.setgxTv_SdtMessageResult_Messageid(deletedMessage.getMessageId());
97+
sdtDelete.setgxTv_SdtMessageResult_Servermessageid(deletedMessage.getMessageServerId());
98+
sdtDelete.setgxTv_SdtMessageResult_Messagestatus(deletedMessage.getMessageDeleteStatus());
99+
return deletedMessage.getMessageDeleteStatus() == DeleteMessageResult.DELETED;
100+
} catch (Exception ex) {
101+
queueErrorMessagesSetup(ex, errorMessages);
102+
logger.error(String.format("Could not delete Message '%s' from Queue ", messageHandleId), ex);
103+
}
104+
return false;
105+
}
106+
107+
protected void queueErrorMessagesSetup(Exception ex, GXBaseCollection<SdtMessages_Message> messages) {
108+
if (messages != null && ex != null) {
109+
StructSdtMessages_Message struct = new StructSdtMessages_Message();
110+
/*if (provider!=null && provider.getMessageFromException(ex, struct)) {
111+
struct.setDescription(ex.getMessage());
112+
struct.setType((byte) 1); //error
113+
SdtMessages_Message msg = new SdtMessages_Message(struct);
114+
messages.add(msg);
115+
} else {
116+
GXutil.ErrorToMessages("Storage Error", ex.getClass()+" " +ex.getMessage(), messages);
117+
}*/
118+
}
119+
}
120+
4121
}
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package com.genexus.messaging.queue.model;
22

33
public class DeleteMessageResult extends MessageId {
4-
public static int FAILED = 2;
5-
public static int DELETED = 1;
6-
public static int PENDING = 0;
4+
public static String DELETED = "Deleted";
5+
public static String FAILED = "Failed";
6+
public static String SENT = "Sent";
7+
public static String UNKNOWN = "Unknown";
78

8-
private int messageDeleteStatus = PENDING;
9+
private String messageDeleteStatus = UNKNOWN;
910

10-
public int getMessageDeleteStatus() {
11+
public String getMessageDeleteStatus() {
1112
return messageDeleteStatus;
1213
}
1314

14-
public void setMessageDeleteStatus(int messageDeleteStatus) {
15+
public void setMessageDeleteStatus(String messageDeleteStatus) {
1516
this.messageDeleteStatus = messageDeleteStatus;
1617
}
1718
}
Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
package com.genexus.messaging.queue.model;
22

3-
import com.genexus.util.GXProperties;
4-
53
public class SendMessageResult extends MessageId {
6-
public static int FAILED = 2;
7-
public static int SENT = 1;
8-
public static int PENDING = 0;
4+
public static String DELETED = "Deleted";
5+
public static String FAILED = "Failed";
6+
public static String SENT = "Sent";
7+
public static String UNKNOWN = "Unknown";
98

10-
private int messageSentStatus = PENDING;
9+
private String messageSentStatus = UNKNOWN;
1110

12-
public int getMessageSentStatus() {
11+
public String getMessageSentStatus() {
1312
return messageSentStatus;
1413
}
1514

16-
public void setMessageSentStatus(int messageSentStatus) {
15+
public void setMessageSentStatus(String messageSentStatus) {
1716
this.messageSentStatus = messageSentStatus;
1817
}
1918
}
20-
21-

gxqueue/src/main/java/com/genexus/messaging/queue/model/SimpleQueueMessage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ public class SimpleQueueMessage {
88
private GXProperties messageAttributes = new GXProperties();
99
private String messageHandleId;
1010

11-
1211
public String getMessageId() {
1312
return messageId;
1413
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package com.genexusmessaging.genexusmessagingqueue.simplequeue;
2+
3+
import com.genexus.*;
4+
5+
public class SdtMessage extends GxUserType {
6+
protected byte gxTv_SdtMessage_N;
7+
protected byte gxTv_SdtMessage_Messageattributes_N;
8+
protected String sTagName;
9+
protected String gxTv_SdtMessage_Messagebody;
10+
protected String gxTv_SdtMessage_Messageid;
11+
protected String gxTv_SdtMessage_Messagehandleid;
12+
protected GXBaseCollection<com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageProperty> gxTv_SdtMessage_Messageattributes_aux;
13+
protected GXBaseCollection<com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageProperty> gxTv_SdtMessage_Messageattributes = null;
14+
15+
16+
public SdtMessage( )
17+
{
18+
this( new ModelContext(SdtMessage.class));
19+
}
20+
21+
public SdtMessage( ModelContext context )
22+
{
23+
super( context, "SdtMessage");
24+
}
25+
26+
public String getgxTv_SdtMessage_Messageid() {
27+
return gxTv_SdtMessage_Messageid;
28+
}
29+
30+
public void setgxTv_SdtMessage_Messageid(String value) {
31+
gxTv_SdtMessage_N = (byte) (0);
32+
gxTv_SdtMessage_Messageid = value;
33+
}
34+
35+
public String getgxTv_SdtMessage_Messagebody() {
36+
return gxTv_SdtMessage_Messagebody;
37+
}
38+
39+
public void setgxTv_SdtMessage_Messagebody(String value) {
40+
gxTv_SdtMessage_N = (byte) (0);
41+
gxTv_SdtMessage_Messagebody = value;
42+
}
43+
44+
public String getgxTv_SdtMessage_Messagehandleid() {
45+
return gxTv_SdtMessage_Messagehandleid;
46+
}
47+
48+
public void setgxTv_SdtMessage_Messagehandleid(String value) {
49+
gxTv_SdtMessage_N = (byte) (0);
50+
gxTv_SdtMessage_Messagehandleid = value;
51+
}
52+
53+
public GXBaseCollection<com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageProperty> getgxTv_SdtMessage_Messageattributes() {
54+
if (gxTv_SdtMessage_Messageattributes == null) {
55+
gxTv_SdtMessage_Messageattributes = new GXBaseCollection<com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageProperty>(com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageProperty.class, "MessageProperty", "GeneXusMessaging", remoteHandle);
56+
}
57+
gxTv_SdtMessage_Messageattributes_N = (byte) (0);
58+
gxTv_SdtMessage_N = (byte) (0);
59+
return gxTv_SdtMessage_Messageattributes;
60+
}
61+
62+
public void setgxTv_SdtMessage_Messageattributes(GXBaseCollection<com.genexusmessaging.genexusmessagingqueue.simplequeue.SdtMessageProperty> value) {
63+
gxTv_SdtMessage_Messageattributes_N = (byte) (0);
64+
gxTv_SdtMessage_N = (byte) (0);
65+
gxTv_SdtMessage_Messageattributes = value;
66+
}
67+
68+
69+
public void initialize() {
70+
gxTv_SdtMessage_Messageid = "";
71+
gxTv_SdtMessage_N = (byte) (1);
72+
gxTv_SdtMessage_Messagebody = "";
73+
gxTv_SdtMessage_Messagehandleid = "";
74+
gxTv_SdtMessage_Messageattributes_N = (byte) (1);
75+
sTagName = "";
76+
}
77+
78+
@Override
79+
public String getJsonMap(String value) {
80+
return null;
81+
}
82+
}
83+

0 commit comments

Comments
 (0)