Skip to content

Commit 24a2a7d

Browse files
committed
Restore 'beta' branch - Commits to preserve the previous 'beta' content
1 parent b82f913 commit 24a2a7d

File tree

21 files changed

+605
-326
lines changed

21 files changed

+605
-326
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
#vscode
2+
.vscode/
3+
14
# Maven
25
log/
36
target/

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ These are the source of the GeneXus Standard Classes for Java, valid since GeneX
3232
| gxsftp | SecurityAPI's GeneXusSFTP module
3333
| gamsaml | GAM's External Object, SAML protocol implementation
3434
| gamutils | GAM external object with utilities
35+
| gamtotp | GAM external object for RFC6238 implementation
3536

3637
The dependencies between the projects are specified in each pom.xml within their directory.
3738

common/pom.xml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>com.genexus</groupId>
99
<artifactId>parent</artifactId>
10-
<version>2.4-SNAPSHOT</version>
10+
<version>${revision}${changelist}</version>
1111
</parent>
1212

1313
<artifactId>gxcommon</artifactId>
@@ -17,12 +17,18 @@
1717
<dependency>
1818
<groupId>xerces</groupId>
1919
<artifactId>xercesImpl</artifactId>
20-
<version>2.12.0</version>
20+
<version>2.12.2</version>
2121
</dependency>
22+
<dependency>
23+
<groupId>org.springframework</groupId>
24+
<artifactId>spring-core</artifactId>
25+
<version>6.0.11</version>
26+
<scope>provided</scope>
27+
</dependency>
2228
<dependency>
2329
<groupId>commons-codec</groupId>
2430
<artifactId>commons-codec</artifactId>
25-
<version>1.9</version>
31+
<version>1.15</version>
2632
</dependency>
2733
<dependency>
2834
<groupId>commons-lang</groupId>
@@ -32,12 +38,7 @@
3238
<dependency>
3339
<groupId>commons-io</groupId>
3440
<artifactId>commons-io</artifactId>
35-
<version>2.2</version>
36-
</dependency>
37-
<dependency>
38-
<groupId>org.simpleframework</groupId>
39-
<artifactId>simple-xml</artifactId>
40-
<version>2.7.1</version>
41+
<version>2.11.0</version>
4142
</dependency>
4243
<dependency>
4344
<groupId>org.bouncycastle</groupId>
@@ -49,6 +50,11 @@
4950
<artifactId>httpclient</artifactId>
5051
<version>4.5.13</version>
5152
<scope>compile</scope>
53+
</dependency>
54+
<dependency>
55+
<groupId>io.opentelemetry</groupId>
56+
<artifactId>opentelemetry-api</artifactId>
57+
<version>${io.opentelemetry.version}</version>
5258
</dependency>
5359
<dependency>
5460
<groupId>org.json</groupId>

common/src/main/java/com/genexus/BaseProvider.java

Lines changed: 17 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.genexus;
22

33
import java.io.File;
4-
import java.io.IOException;
5-
import java.nio.charset.StandardCharsets;
64
import java.util.Date;
75
import java.util.List;
86
import java.util.ListIterator;
@@ -20,8 +18,6 @@
2018
import com.genexus.common.interfaces.SpecificImplementation;
2119
import com.genexus.util.GXDirectory;
2220
import com.genexus.util.GXFileCollection;
23-
import org.springframework.core.io.Resource;
24-
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
2521

2622
public abstract class BaseProvider implements IGXSmartCacheProvider
2723
{
@@ -53,78 +49,34 @@ private void loadQueryTables()
5349
{
5450
String path = SpecificImplementation.Application.getModelContext().getHttpContext().getDefaultPath();
5551
String configurationDirectoryPath = path + File.separatorChar + "Metadata" + File.separatorChar + "TableAccess";
56-
57-
ConcurrentHashMap<String, Vector<String>> qTables = new ConcurrentHashMap();
58-
loadQueryTablesPlatform(configurationDirectoryPath, qTables);
59-
startupDate = CommonUtil.now(false,false);
60-
queryTables = qTables;
61-
}
62-
}
63-
64-
public void loadQueryTablesPlatform(String configurationDirectoryPath, ConcurrentHashMap<String, Vector<String>> qTables) {
65-
if (ApplicationContext.getInstance().isSpringBootApp())
66-
loadQueryTablesSpringBoot(configurationDirectoryPath, qTables);
67-
else
68-
loadQueryTablesNone(configurationDirectoryPath, qTables);
69-
70-
}
71-
72-
public void loadQueryTablesNone(String configurationDirectoryPath, ConcurrentHashMap<String, Vector<String>> qTables) {
73-
GXDirectory configurationDirectory = new GXDirectory(configurationDirectoryPath);
74-
GXFileCollection files = configurationDirectory.getFiles();
75-
XMLReader reader = new XMLReader();
76-
short ok;
77-
boolean anyTable=false;
78-
for(int i=1; i <= files.getItemCount(); i++) {
79-
Vector<String> lst = new Vector<String>();
80-
lst.add(FORCED_INVALIDATE); // Caso en que se invalido el cache manualmente
81-
AbstractGXFile xmlFile = files.item(i);
82-
reader.open(xmlFile.getAbsoluteName());
83-
ok = reader.readType(1, "Table");
84-
while (ok == 1) {
85-
anyTable=true;
86-
lst.add(normalizeKey(reader.getAttributeByName("name")));
87-
ok = reader.readType(1, "Table");
88-
}
89-
reader.close();
90-
if (anyTable) {
91-
qTables.put(normalizeKey(xmlFile.getNameNoExt()), lst);
92-
}
93-
}
94-
}
95-
96-
public void loadQueryTablesSpringBoot(String configurationDirectoryPath, ConcurrentHashMap<String, Vector<String>> qTables) {
97-
try {
98-
Resource[] resources = new PathMatchingResourcePatternResolver().getResources(configurationDirectoryPath + "/*.xml");
52+
ConcurrentHashMap<String, Vector<String>> qTables = new ConcurrentHashMap<String, Vector<String>>();
53+
GXDirectory configurationDirectory = new GXDirectory(configurationDirectoryPath);
54+
GXFileCollection files = configurationDirectory.getFiles();
9955
XMLReader reader = new XMLReader();
100-
reader.setDocEncoding("UTF8");
10156
short ok;
102-
boolean anyTable=false;
103-
String xmlContent;
104-
for (int i = 0; i < resources.length; i++) {
57+
boolean anyTables=false;
58+
for(int i=1; i <= files.getItemCount(); i++)
59+
{
10560
Vector<String> lst = new Vector<String>();
106-
lst.add(FORCED_INVALIDATE);
107-
xmlContent = resources[i].getContentAsString(StandardCharsets.UTF_8);
108-
if (!xmlContent.startsWith("<"))
109-
xmlContent = xmlContent.substring(1); //Avoid BOM
110-
reader.openFromString(xmlContent);
61+
lst.add(FORCED_INVALIDATE); // Caso en que se invalido el cache manualmente
62+
AbstractGXFile xmlFile = files.item(i);
63+
reader.open(xmlFile.getAbsoluteName());
11164
ok = reader.readType(1, "Table");
112-
while (ok == 1) {
113-
anyTable=true;
114-
lst.add(normalizeKey(reader.getAttributeByName("name")));
65+
while (ok == 1)
66+
{
67+
anyTables=true;
68+
lst.add(normalizeKey((String) reader.getAttributeByName("name")));
11569
ok = reader.readType(1, "Table");
11670
}
11771
reader.close();
118-
if (anyTable) {
119-
qTables.put(normalizeKey(resources[i].getFilename().substring(0, resources[i].getFilename().lastIndexOf("."))), lst);
72+
if (anyTables) {
73+
qTables.put(normalizeKey((String) xmlFile.getNameNoExt()), lst);
12074
}
12175
}
122-
}
123-
catch (IOException e) {
124-
logger.error("Error reading Table Access metadata", e);
76+
startupDate = CommonUtil.now(false,false);
77+
queryTables = qTables;
12578
}
12679
}
127-
12880
public ConcurrentHashMap<String, Vector<String>> queryTables() {
12981
if (queryTables == null)
13082
{

common/src/main/java/com/genexus/CommonUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2678,7 +2678,7 @@ public static String getHash(String s, String hashAlgorithm)
26782678

26792679
public static boolean isAbsoluteURL(String url)
26802680
{
2681-
return url.startsWith("http://") || url.startsWith("https://") || url.startsWith("ftp://") || url.startsWith("sd:");
2681+
return url.toLowerCase().startsWith("http://") || url.toLowerCase().startsWith("https://") || url.toLowerCase().startsWith("ftp://") || url.toLowerCase().startsWith("sd:");
26822682
}
26832683

26842684
public static boolean hasUrlQueryString(String url)

gamutils/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424
<dependency>
2525
<groupId>org.bouncycastle</groupId>
2626
<artifactId>bcprov-jdk18on</artifactId>
27-
<version>1.78.1</version>
27+
<version>${org.bouncycastle.version}</version>
2828
</dependency>
2929
<dependency>
3030
<groupId>org.bouncycastle</groupId>
3131
<artifactId>bcpkix-jdk18on</artifactId>
32-
<version>1.78.1</version>
32+
<version>${org.bouncycastle.version}</version>
3333
</dependency>
3434
<dependency>
3535
<groupId>org.apache.logging.log4j</groupId>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.genexus.cloud.aws.events;
2+
3+
public class TestLambdaBaseHandler {
4+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.unittest.eventdriven.queue;
2+
3+
import com.genexus.*;
4+
5+
public final class handlesimplerawsqsevent extends GXProcedure {
6+
public handlesimplerawsqsevent(int remoteHandle) {
7+
super(remoteHandle, new ModelContext(handlesimplerawsqsevent.class), "");
8+
}
9+
10+
public handlesimplerawsqsevent(int remoteHandle,
11+
ModelContext context) {
12+
super(remoteHandle, context, "");
13+
}
14+
15+
16+
public void execute(String aP0,
17+
com.genexus.genexusserverlessapi.SdtEventMessageResponse[] aP1) {
18+
execute_int(aP0, aP1);
19+
}
20+
21+
private void execute_int(String aP0,
22+
com.genexus.genexusserverlessapi.SdtEventMessageResponse[] aP1) {
23+
handlesimplerawsqsevent.this.AV13RAWMessage = aP0;
24+
handlesimplerawsqsevent.this.aP1 = aP1;
25+
initialize();
26+
/* GeneXus formulas */
27+
/* Output device settings */
28+
privateExecute();
29+
}
30+
31+
protected void privateExecute() {
32+
System.out.println("START Queue Event received");
33+
;
34+
System.out.println(AV13RAWMessage);
35+
System.out.println("END Queue Event received");
36+
System.out.println((boolean) ((GXutil.len(AV13RAWMessage) > 0)));
37+
AV9EventMessageResponse.setgxTv_SdtEventMessageResponse_Handlefailure(!AV13RAWMessage.startsWith("{\"records\":[{\"messageId\":\"1\",\"receiptHandle\":\"123123\",\"body\":\"") );
38+
cleanup();
39+
}
40+
41+
protected void cleanup() {
42+
this.aP1[0] = handlesimplerawsqsevent.this.AV9EventMessageResponse;
43+
CloseOpenCursors();
44+
exitApp();
45+
}
46+
47+
protected void CloseOpenCursors() {
48+
}
49+
50+
/* Aggregate/select formulas */
51+
public void initialize() {
52+
AV9EventMessageResponse = new com.genexus.genexusserverlessapi.SdtEventMessageResponse(remoteHandle, context);
53+
AV16Pgmname = "";
54+
AV16Pgmname = "EventDriven.Queue.HandleSimpleRAWSQSEvent";
55+
/* GeneXus formulas. */
56+
AV16Pgmname = "EventDriven.Queue.HandleSimpleRAWSQSEvent";
57+
Gx_err = (short) (0);
58+
}
59+
60+
private short Gx_err;
61+
private String AV13RAWMessage;
62+
private String AV16Pgmname;
63+
private com.genexus.genexusserverlessapi.SdtEventMessageResponse[] aP1;
64+
private com.genexus.genexusserverlessapi.SdtEventMessageResponse AV9EventMessageResponse;
65+
}
66+
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
package com.unittest.eventdriven.queue ;
2+
import com.unittest.*;
3+
import java.sql.*;
4+
import com.genexus.db.*;
5+
import com.genexus.*;
6+
import com.genexus.search.*;
7+
8+
public final class handlesimpleuserqueueevent extends GXProcedure
9+
{
10+
public handlesimpleuserqueueevent( int remoteHandle )
11+
{
12+
super( remoteHandle , new ModelContext( handlesimpleuserqueueevent.class ), "" );
13+
}
14+
15+
public handlesimpleuserqueueevent( int remoteHandle ,
16+
ModelContext context )
17+
{
18+
super( remoteHandle , context, "" );
19+
}
20+
21+
@SuppressWarnings("unchecked")
22+
public com.genexus.genexusserverlessapi.SdtEventMessageResponse executeUdp( com.genexus.genexusserverlessapi.SdtEventMessages aP0 )
23+
{
24+
handlesimpleuserqueueevent.this.aP1 = new com.genexus.genexusserverlessapi.SdtEventMessageResponse[] {new com.genexus.genexusserverlessapi.SdtEventMessageResponse()};
25+
execute_int(aP0, aP1);
26+
return aP1[0];
27+
}
28+
29+
public void execute( com.genexus.genexusserverlessapi.SdtEventMessages aP0 ,
30+
com.genexus.genexusserverlessapi.SdtEventMessageResponse[] aP1 )
31+
{
32+
execute_int(aP0, aP1);
33+
}
34+
35+
private void execute_int( com.genexus.genexusserverlessapi.SdtEventMessages aP0 ,
36+
com.genexus.genexusserverlessapi.SdtEventMessageResponse[] aP1 )
37+
{
38+
handlesimpleuserqueueevent.this.AV8EventMessages = aP0;
39+
handlesimpleuserqueueevent.this.aP1 = aP1;
40+
initialize();
41+
/* GeneXus formulas */
42+
/* Output device settings */
43+
privateExecute();
44+
}
45+
46+
protected void privateExecute( )
47+
{
48+
System.out.println("START Queue Event received") ;
49+
System.out.println(AV8EventMessages.toJSonString(false, true)) ;
50+
51+
AV16GXV1 = 1 ;
52+
while ( AV16GXV1 <= AV8EventMessages.getgxTv_SdtEventMessages_Eventmessage().size() )
53+
{
54+
AV10EventMessage = (com.genexus.genexusserverlessapi.SdtEventMessage)((com.genexus.genexusserverlessapi.SdtEventMessage)AV8EventMessages.getgxTv_SdtEventMessages_Eventmessage().elementAt(-1+AV16GXV1));
55+
System.out.println("Processing: "+AV10EventMessage.toJSonString(false, true)) ;
56+
AV9EventMessageResponse.setgxTv_SdtEventMessageResponse_Handlefailure( !AV11UserSDT.fromJSonString(AV10EventMessage.getgxTv_SdtEventMessage_Eventmessagedata(), AV12OutMessages) );
57+
if ( AV9EventMessageResponse.getgxTv_SdtEventMessageResponse_Handlefailure() )
58+
{
59+
System.out.println("EventMessageData could not be parsed: "+AV10EventMessage.getgxTv_SdtEventMessage_Eventmessagedata()) ;
60+
System.out.println(AV12OutMessages.toJSonString(false)) ;
61+
AV9EventMessageResponse.setgxTv_SdtEventMessageResponse_Errormessage( AV12OutMessages.toJSonString(false) );
62+
returnInSub = true;
63+
cleanup();
64+
if (true) return;
65+
}
66+
System.out.println("UserSDT Processed OK: "+AV11UserSDT.toJSonString(false, true)); ;
67+
AV16GXV1 = (int)(AV16GXV1+1) ;
68+
}
69+
System.out.println("END Queue Event received") ;
70+
cleanup();
71+
}
72+
73+
protected void cleanup( )
74+
{
75+
this.aP1[0] = handlesimpleuserqueueevent.this.AV9EventMessageResponse;
76+
CloseOpenCursors();
77+
exitApp();
78+
}
79+
80+
protected void CloseOpenCursors( )
81+
{
82+
}
83+
84+
/* Aggregate/select formulas */
85+
public void initialize( )
86+
{
87+
AV9EventMessageResponse = new com.genexus.genexusserverlessapi.SdtEventMessageResponse(remoteHandle, context);
88+
AV15Pgmname = "" ;
89+
AV10EventMessage = new com.genexus.genexusserverlessapi.SdtEventMessage(remoteHandle, context);
90+
AV12OutMessages = new GXBaseCollection<com.genexus.SdtMessages_Message>(com.genexus.SdtMessages_Message.class, "Message", "GeneXus", remoteHandle);
91+
AV11UserSDT = new com.unittest.eventdriven.SdtUser(remoteHandle);
92+
AV15Pgmname = "EventDriven.Queue.HandleSimpleUserQueueEvent" ;
93+
/* GeneXus formulas. */
94+
AV15Pgmname = "EventDriven.Queue.HandleSimpleUserQueueEvent" ;
95+
Gx_err = (short)(0) ;
96+
}
97+
98+
private short Gx_err ;
99+
private int AV16GXV1 ;
100+
private String AV15Pgmname ;
101+
private boolean returnInSub ;
102+
private com.unittest.eventdriven.SdtUser AV11UserSDT ;
103+
private com.genexus.genexusserverlessapi.SdtEventMessageResponse[] aP1 ;
104+
private GXBaseCollection<com.genexus.SdtMessages_Message> AV12OutMessages ;
105+
private com.genexus.genexusserverlessapi.SdtEventMessages AV8EventMessages ;
106+
private com.genexus.genexusserverlessapi.SdtEventMessage AV10EventMessage ;
107+
private com.genexus.genexusserverlessapi.SdtEventMessageResponse AV9EventMessageResponse ;
108+
}
109+

gxcompress/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<dependency>
1717
<groupId>org.apache.commons</groupId>
1818
<artifactId>commons-compress</artifactId>
19-
<version>1.26.2</version>
19+
<version>${commons.compress.version}</version>
2020
</dependency>
2121
<dependency>
2222
<groupId>org.tukaani</groupId>

0 commit comments

Comments
 (0)