diff --git a/gxcloudstorage-awss3-v1/pom.xml b/gxcloudstorage-awss3-v1/pom.xml
index e5f2ab5ae..4235dfb1c 100644
--- a/gxcloudstorage-awss3-v1/pom.xml
+++ b/gxcloudstorage-awss3-v1/pom.xml
@@ -13,12 +13,13 @@
gxcloudstorage-awss3-v1
GeneXus AWS S3 (V1) Cloud Storage
-
-
- ${project.groupId}
- gxclassR
- ${project.version}
-
+
+
+ ${project.groupId}
+ gxclassR
+ ${project.version}
+ test
+
com.genexus
gxcloudstorage-common
diff --git a/gxcloudstorage-awss3-v1/src/main/java/com/genexus/db/driver/ExternalProviderS3V1.java b/gxcloudstorage-awss3-v1/src/main/java/com/genexus/db/driver/ExternalProviderS3V1.java
index 830e92e11..bebdc4c84 100644
--- a/gxcloudstorage-awss3-v1/src/main/java/com/genexus/db/driver/ExternalProviderS3V1.java
+++ b/gxcloudstorage-awss3-v1/src/main/java/com/genexus/db/driver/ExternalProviderS3V1.java
@@ -8,7 +8,6 @@
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import com.amazonaws.HttpMethod;
-import com.genexus.Application;
import com.genexus.util.GXService;
import com.genexus.util.StorageUtils;
import com.genexus.StructSdtMessages_Message;
@@ -29,6 +28,7 @@
import java.util.Date;
import java.util.List;
+
public class ExternalProviderS3V1 extends ExternalProviderBase implements ExternalProvider {
private static Logger logger = LogManager.getLogger(ExternalProviderS3V1.class);
@@ -74,10 +74,6 @@ public String getName(){
return NAME;
}
- public ExternalProviderS3V1(String service) throws Exception{
- this(Application.getGXServices().get(service));
- }
-
public ExternalProviderS3V1() throws Exception{
super();
initialize();
diff --git a/gxcloudstorage-awss3-v2/pom.xml b/gxcloudstorage-awss3-v2/pom.xml
index 283598786..2cf8236c8 100644
--- a/gxcloudstorage-awss3-v2/pom.xml
+++ b/gxcloudstorage-awss3-v2/pom.xml
@@ -18,6 +18,7 @@
${project.groupId}
gxclassR
${project.version}
+ test
com.genexus
diff --git a/gxcloudstorage-awss3-v2/src/main/java/com/genexus/db/driver/ExternalProviderS3V2.java b/gxcloudstorage-awss3-v2/src/main/java/com/genexus/db/driver/ExternalProviderS3V2.java
index a250db53b..c5576bc4e 100644
--- a/gxcloudstorage-awss3-v2/src/main/java/com/genexus/db/driver/ExternalProviderS3V2.java
+++ b/gxcloudstorage-awss3-v2/src/main/java/com/genexus/db/driver/ExternalProviderS3V2.java
@@ -19,7 +19,6 @@
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
-import com.genexus.Application;
import com.genexus.util.GXService;
import com.genexus.util.StorageUtils;
import com.genexus.StructSdtMessages_Message;
@@ -80,10 +79,6 @@ public String getName() {
return NAME;
}
- public ExternalProviderS3V2(String service) throws Exception {
- this(Application.getGXServices().get(service));
- }
-
public ExternalProviderS3V2() throws Exception {
super();
initialize();
diff --git a/gxcloudstorage-azureblob/pom.xml b/gxcloudstorage-azureblob/pom.xml
index af5675dce..ca586d19a 100644
--- a/gxcloudstorage-azureblob/pom.xml
+++ b/gxcloudstorage-azureblob/pom.xml
@@ -18,6 +18,7 @@
${project.groupId}
gxclassR
${project.version}
+ test
com.genexus
diff --git a/gxcloudstorage-azureblob/src/main/java/com/genexus/db/driver/ExternalProviderAzureStorage.java b/gxcloudstorage-azureblob/src/main/java/com/genexus/db/driver/ExternalProviderAzureStorage.java
index 332aa47c0..ed25d917b 100644
--- a/gxcloudstorage-azureblob/src/main/java/com/genexus/db/driver/ExternalProviderAzureStorage.java
+++ b/gxcloudstorage-azureblob/src/main/java/com/genexus/db/driver/ExternalProviderAzureStorage.java
@@ -1,6 +1,5 @@
package com.genexus.db.driver;
-import com.genexus.Application;
import com.genexus.StructSdtMessages_Message;
import com.genexus.util.GXService;
import com.genexus.util.StorageUtils;
@@ -47,9 +46,6 @@ public class ExternalProviderAzureStorage extends ExternalProviderBase implement
private String privateContainerName;
private String publicContainerName;
- public ExternalProviderAzureStorage(String service) throws Exception {
- this(Application.getGXServices().get(service));
- }
private void init() throws Exception {
try {
diff --git a/gxcloudstorage-common/pom.xml b/gxcloudstorage-common/pom.xml
index 0d255c645..8f8724f1c 100644
--- a/gxcloudstorage-common/pom.xml
+++ b/gxcloudstorage-common/pom.xml
@@ -16,9 +16,24 @@
${project.groupId}
- gxclassR
+ gxcommon
${project.version}
+
+ org.apache.logging.log4j
+ log4j-core
+ ${log4j.version}
+
+
+ org.apache.logging.log4j
+ log4j-api
+ ${log4j.version}
+
+
+ org.apache.logging.log4j
+ log4j-api
+ ${log4j.version}
+
diff --git a/gxcloudstorage-common/src/main/java/com/genexus/db/driver/ExternalProviderBase.java b/gxcloudstorage-common/src/main/java/com/genexus/db/driver/ExternalProviderBase.java
index 9d6fc7ed1..852495cb1 100644
--- a/gxcloudstorage-common/src/main/java/com/genexus/db/driver/ExternalProviderBase.java
+++ b/gxcloudstorage-common/src/main/java/com/genexus/db/driver/ExternalProviderBase.java
@@ -32,6 +32,17 @@ public ExternalProviderBase(GXService s) {
init();
}
+
+ /**
+ * Starts the necessary processes required for the usage of an External Object.
+ * This method ensures that the Provider is installed correctly before any
+ * operations are performed. It should be called at the beginning to set up
+ * the environment for the External Object.
+ */
+ public void start() {
+
+ }
+
private void init() {
String aclS = getPropertyValue(DEFAULT_ACL, DEFAULT_ACL_DEPRECATED, "");
if (aclS.length() > 0) {
diff --git a/gxcloudstorage-googlecloudstorage/pom.xml b/gxcloudstorage-googlecloudstorage/pom.xml
index 7decd8b39..05eeecf7f 100644
--- a/gxcloudstorage-googlecloudstorage/pom.xml
+++ b/gxcloudstorage-googlecloudstorage/pom.xml
@@ -18,6 +18,7 @@
${project.groupId}
gxclassR
${project.version}
+ test
com.genexus
diff --git a/gxcloudstorage-googlecloudstorage/src/main/java/com/genexus/db/driver/ExternalProviderGoogle.java b/gxcloudstorage-googlecloudstorage/src/main/java/com/genexus/db/driver/ExternalProviderGoogle.java
index 729245e9b..7c39c45a0 100644
--- a/gxcloudstorage-googlecloudstorage/src/main/java/com/genexus/db/driver/ExternalProviderGoogle.java
+++ b/gxcloudstorage-googlecloudstorage/src/main/java/com/genexus/db/driver/ExternalProviderGoogle.java
@@ -1,6 +1,5 @@
package com.genexus.db.driver;
-import com.genexus.Application;
import com.genexus.StructSdtMessages_Message;
import com.genexus.util.GXService;
import com.genexus.util.StorageUtils;
@@ -57,10 +56,6 @@ public ExternalProviderGoogle() throws Exception{
initialize();
}
- public ExternalProviderGoogle(String service) throws Exception{
- this(Application.getGXServices().get(service));
- }
-
public ExternalProviderGoogle(GXService providerService) throws Exception{
super(providerService);
initialize();
diff --git a/gxcloudstorage-ibmcos/pom.xml b/gxcloudstorage-ibmcos/pom.xml
index 5ba1e55c1..4299e1acb 100644
--- a/gxcloudstorage-ibmcos/pom.xml
+++ b/gxcloudstorage-ibmcos/pom.xml
@@ -18,6 +18,7 @@
${project.groupId}
gxclassR
${project.version}
+ test
com.genexus
diff --git a/gxcloudstorage-ibmcos/src/main/java/com/genexus/db/driver/ExternalProviderIBM.java b/gxcloudstorage-ibmcos/src/main/java/com/genexus/db/driver/ExternalProviderIBM.java
index 5d3977647..b38c8eb4b 100644
--- a/gxcloudstorage-ibmcos/src/main/java/com/genexus/db/driver/ExternalProviderIBM.java
+++ b/gxcloudstorage-ibmcos/src/main/java/com/genexus/db/driver/ExternalProviderIBM.java
@@ -1,9 +1,7 @@
package com.genexus.db.driver;
-import com.genexus.Application;
import com.genexus.StructSdtMessages_Message;
import com.genexus.util.GXService;
-import com.genexus.util.GXServices;
import com.genexus.util.StorageUtils;
import com.ibm.cloud.objectstorage.ClientConfiguration;
import com.ibm.cloud.objectstorage.HttpMethod;
@@ -25,7 +23,6 @@
import java.util.Date;
import java.util.List;
-
public class ExternalProviderIBM extends ExternalProviderBase implements ExternalProvider {
private static Logger logger = LogManager.getLogger(ExternalProviderIBM.class);
@@ -57,14 +54,10 @@ public class ExternalProviderIBM extends ExternalProviderBase implements Externa
private String endpointUrl;
private int defaultExpirationMinutes = DEFAULT_EXPIRATION_MINUTES;
- /* For compatibility reasons with GX16 U6 or lower*/
- public ExternalProviderIBM() throws Exception {
- this(GXServices.STORAGE_SERVICE);
- }
-
- public ExternalProviderIBM(String service) throws Exception {
- this(Application.getGXServices().get(service));
- }
+ public ExternalProviderIBM() throws Exception{
+ super();
+ init();
+ }
public ExternalProviderIBM(GXService providerService) throws Exception {
super(providerService);
diff --git a/gxcloudstorage-tests/pom.xml b/gxcloudstorage-tests/pom.xml
index ce7d00c0a..41c583267 100644
--- a/gxcloudstorage-tests/pom.xml
+++ b/gxcloudstorage-tests/pom.xml
@@ -20,36 +20,36 @@
${project.version}
- com.genexus
+ ${project.groupId}
gxcloudstorage-common
${project.version}
- com.genexus
+ ${project.groupId}
gxcloudstorage-ibmcos
${project.version}
test
- com.genexus
+ ${project.groupId}
gxcloudstorage-googlecloudstorage
${project.version}
test
- com.genexus
+ ${project.groupId}
gxcloudstorage-azureblob
${project.version}
test
- com.genexus
+ ${project.groupId}
gxcloudstorage-awss3-v1
${project.version}
test
- com.genexus
+ ${project.groupId}
gxcloudstorage-awss3-v2
${project.version}
test
diff --git a/java/src/main/java/com/genexus/Application.java b/java/src/main/java/com/genexus/Application.java
index 9b3c0e3f4..1366d03f2 100644
--- a/java/src/main/java/com/genexus/Application.java
+++ b/java/src/main/java/com/genexus/Application.java
@@ -184,7 +184,7 @@ private static ExternalProvider getExternalProviderImpl(String service)
throw new InternalError("Unrecognized External Provider class (ClassNotFound) : " + providerService.getName() + " / " + providerService.getClassName());
}
try {
- externalProviderImpl = (ExternalProvider) providerClass.getConstructor(String.class).newInstance(service);
+ externalProviderImpl = (ExternalProvider) providerClass.getConstructor(GXService.class).newInstance(providerService);
}
catch (Exception e)
{