Skip to content

Commit 2c81c80

Browse files
committed
changed conditions for binding (user-provided)
1 parent f2ac45e commit 2c81c80

File tree

5 files changed

+62
-30
lines changed

5 files changed

+62
-30
lines changed

cds-feature-advanced-event-mesh/src/main/java/com/sap/cds/feature/messaging/aem/client/binding/AemManagementOauth2PropertySupplier.java

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

99
import com.sap.cds.feature.messaging.aem.service.AemMessagingServiceConfiguration;
1010
import com.sap.cds.services.ServiceException;
11-
import com.sap.cds.services.utils.environment.ServiceBindingUtils;
1211
import com.sap.cloud.environment.servicebinding.api.ServiceBinding;
13-
import com.sap.cloud.sdk.cloudplatform.connectivity.DefaultOAuth2PropertySupplier;
12+
import com.sap.cloud.sdk.cloudplatform.connectivity.OAuth2PropertySupplier;
1413
import com.sap.cloud.sdk.cloudplatform.connectivity.OAuth2ServiceBindingDestinationLoader;
1514
import com.sap.cloud.sdk.cloudplatform.connectivity.ServiceBindingDestinationOptions;
1615

17-
public class AemManagementOauth2PropertySupplier extends DefaultOAuth2PropertySupplier {
16+
public class AemManagementOauth2PropertySupplier implements OAuth2PropertySupplier {
1817

1918
private static boolean initialized = false;
2019

@@ -25,15 +24,15 @@ public class AemManagementOauth2PropertySupplier extends DefaultOAuth2PropertySu
2524
public static synchronized void initialize() {
2625
if (!initialized) {
2726
OAuth2ServiceBindingDestinationLoader.registerPropertySupplier(
28-
options -> ServiceBindingUtils.matches(options.getServiceBinding(),
29-
AemMessagingServiceConfiguration.BINDING_AEM_LABEL),
27+
options -> (options.getServiceBinding().getName().isPresent() &&
28+
AemMessagingServiceConfiguration.BINDING_AEM_LABEL.equals(options.getServiceBinding().getName().get()))
29+
|| options.getServiceBinding().getTags().contains(AemMessagingServiceConfiguration.BINDING_AEM_LABEL),
3030
AemManagementOauth2PropertySupplier::new);
3131
initialized = true;
3232
}
3333
}
3434

3535
public AemManagementOauth2PropertySupplier(@Nonnull ServiceBindingDestinationOptions options) {
36-
super(options);
3736
this.binding = options.getServiceBinding();
3837
this.authenticationServiceView = new AemAuthenticationServiceView(binding);
3938
this.endpointView = new AemEndpointView(binding);
@@ -75,9 +74,9 @@ public com.sap.cloud.security.config.ClientIdentity getClientIdentity() {
7574
}
7675

7776
private boolean isAemBinding(ServiceBinding binding) {
78-
Optional<String> serviceName = binding.getName();
79-
80-
return serviceName.map(name -> name.equals(AemMessagingServiceConfiguration.BINDING_AEM_LABEL)).orElse(false);
77+
return (binding.getName().isPresent() &&
78+
AemMessagingServiceConfiguration.BINDING_AEM_LABEL.equals(binding.getName().get()))
79+
|| binding.getTags().contains(AemMessagingServiceConfiguration.BINDING_AEM_LABEL);
8180
}
8281

8382
private boolean areOAuth2ParametersPresent(ServiceBinding binding) {

cds-feature-advanced-event-mesh/src/main/java/com/sap/cds/feature/messaging/aem/client/binding/AemValidationOAuth2PropertySupplier.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
import com.sap.cds.services.ServiceException;
1010
import com.sap.cds.services.utils.environment.ServiceBindingUtils;
1111
import com.sap.cloud.sdk.cloudplatform.connectivity.DefaultOAuth2PropertySupplier;
12+
import com.sap.cloud.sdk.cloudplatform.connectivity.OAuth2PropertySupplier;
1213
import com.sap.cloud.sdk.cloudplatform.connectivity.OAuth2ServiceBindingDestinationLoader;
1314
import com.sap.cloud.sdk.cloudplatform.connectivity.ServiceBindingDestinationOptions;
1415
import com.sap.cloud.security.config.ClientIdentity;
1516

16-
public class AemValidationOAuth2PropertySupplier extends DefaultOAuth2PropertySupplier {
17+
public class AemValidationOAuth2PropertySupplier implements OAuth2PropertySupplier {
1718

1819
private static boolean initialized = false;
1920

@@ -22,15 +23,13 @@ public class AemValidationOAuth2PropertySupplier extends DefaultOAuth2PropertySu
2223
public static synchronized void initialize() {
2324
if (!initialized) {
2425
OAuth2ServiceBindingDestinationLoader.registerPropertySupplier(
25-
options -> ServiceBindingUtils.matches(options.getServiceBinding(),
26-
AemMessagingServiceConfiguration.BINDING_AEM_VALIDATION_LABEL),
26+
options -> ServiceBindingUtils.matches(options.getServiceBinding(), AemMessagingServiceConfiguration.BINDING_AEM_VALIDATION_LABEL),
2727
AemValidationOAuth2PropertySupplier::new);
2828
initialized = true;
2929
}
3030
}
3131

3232
protected AemValidationOAuth2PropertySupplier(ServiceBindingDestinationOptions options) {
33-
super(options);
3433
this.credentialsView = new CredentialsView(options.getServiceBinding().getCredentials());
3534
}
3635

cds-feature-advanced-event-mesh/src/main/java/com/sap/cds/feature/messaging/aem/service/AemMessagingServiceConfiguration.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ public void services(CdsRuntimeConfigurer configurer) {
3737

3838
Messaging config = configurer.getCdsRuntime().getEnvironment().getCdsProperties().getMessaging();
3939
List<ServiceBinding> bindings = configurer.getCdsRuntime().getEnvironment().getServiceBindings()
40-
.filter(binding -> ServiceBindingUtils.matches(binding, BINDING_AEM_LABEL))
40+
.filter(binding -> (binding.getName().isPresent() && BINDING_AEM_LABEL.equals(binding.getName().get()))
41+
|| binding.getTags().contains(BINDING_AEM_LABEL))
4142
.toList();
4243
Optional<ServiceBinding> validationBinding = configurer.getCdsRuntime().getEnvironment().getServiceBindings()
4344
.filter(binding -> ServiceBindingUtils.matches(binding, BINDING_AEM_VALIDATION_LABEL)).findFirst();

cds-feature-advanced-event-mesh/src/test/java/com/sap/cds/feature/messaging/aem/service/AemMessagingServiceConfigurationTest.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sap.cds.feature.messaging.aem.service;
22

3+
import static com.sap.cds.services.outbox.OutboxService.unboxed;
34
import static org.junit.jupiter.api.Assertions.assertEquals;
45
import static org.junit.jupiter.api.Assertions.assertTrue;
56

@@ -8,6 +9,7 @@
89

910
import org.junit.jupiter.api.Test;
1011

12+
import com.sap.cds.services.Service;
1113
import com.sap.cds.services.environment.CdsProperties;
1214
import com.sap.cds.services.environment.CdsProperties.Messaging.MessagingServiceConfig;
1315
import com.sap.cds.services.impl.environment.SimplePropertiesProvider;
@@ -27,7 +29,7 @@ void testDefaultServConfiguration() {
2729
List<AemMessagingService> services = configurer.getCdsRuntime().getServiceCatalog().getServices(AemMessagingService.class).toList();
2830

2931
assertEquals(1, services.size());
30-
assertEquals("advanced-event-mesh", services.get(0).getName());
32+
assertEquals("my-aem-instance", services.get(0).getName());
3133
}
3234

3335
@Test
@@ -60,21 +62,21 @@ void testSingleServConfiguration() {
6062
configurer.serviceConfigurations();
6163
configurer.eventHandlerConfigurations();
6264

63-
List<AemMessagingService> services = configurer.getCdsRuntime().getServiceCatalog().getServices(AemMessagingService.class).collect(Collectors.toList());
65+
List<Service> services = configurer.getCdsRuntime().getServiceCatalog().getServices().filter(srv -> unboxed(srv).getClass().equals(AemMessagingService.class)).toList();
6466

6567
assertEquals(1, services.size());
66-
assertEquals("cfg", services.get(0).getName());
68+
assertEquals("my-aem-instance", services.get(0).getName());
6769
}
6870

6971
@Test
7072
void testMultipleServiceConfigurations() {
7173
CdsProperties properties = new CdsProperties();
7274
MessagingServiceConfig config1 = new MessagingServiceConfig("cfg1");
73-
config1.setBinding("advanced-event-mesh");
75+
config1.setBinding("my-aem-instance");
7476
config1.getOutbox().setEnabled(false);
7577

7678
MessagingServiceConfig config2 = new MessagingServiceConfig("cfg2");
77-
config2.setBinding("advanced-event-mesh");
79+
config2.setBinding("my-aem-instance");
7880
config2.getOutbox().setEnabled(false);
7981

8082
properties.getMessaging().getServices().put(config1.getName(), config1);
Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,64 @@
11
{
22
"VCAP_SERVICES": {
3-
"advanced-event-mesh": [
3+
"user-provided": [
44
{
5-
"label": "advanced-event-mesh",
6-
"name": "advanced-event-mesh",
7-
"tags": [],
5+
"label": "user-provided",
6+
"name": "my-aem-instance",
7+
"tags": ["advanced-event-mesh"],
88
"instance_guid": "515066ab-029d-4cdd-a116-a2c254633b6b",
99
"instance_name": "advanced-event-mesh",
1010
"binding_guid": "5aec22e5-8380-47a2-99ae-1c4011cdcf88",
1111
"binding_name": null,
1212
"credentials": {
1313
"vpn": "capservice",
1414
"authentication-service": {
15-
"tokenendpoint": "https://my.host.com/oauth2/token",
16-
"clientid": "myid",
17-
"clientsecret": "mysecret"
15+
"tokenendpoint": "https://ad8obf0da.accounts400.ondemand.com/oauth2/token",
16+
"clientid": "a5fe563c-76a3-4507-b107-63f2a112ee4a",
17+
"clientsecret": "ch80Nj]-L[vw[EjZyPB1D-:iRW._:Mm0="
1818
},
1919
"endpoints": {
2020
"advanced-event-mesh": {
21-
"uri": "https://my.other.host.com:943/SEMP/v2/config",
22-
"always-requires-token": true,
23-
"amqp_uri": "amqps://broker.host.com:5671",
24-
"smf_uri": "wss://broker.host.com:443"
21+
"uri": "https://mr-connection-i90693rt5n6.messaging.solace.cloud:943",
22+
"amqp_uri": "amqps://mr-connection-i90693rt5n6.messaging.solace.cloud:5671",
23+
"smf_uri": "wss://mr-connection-i90693rt5n6.messaging.solace.cloud:443"
2524
}
2625
}
2726
},
2827
"syslog_drain_url": null,
2928
"volume_mounts": []
3029
}
30+
],
31+
"aem-validation-service": [
32+
{
33+
"label": "aem-validation-service",
34+
"provider": null,
35+
"plan": "aem-validation-service-plan",
36+
"name": "cap-aem-validation",
37+
"tags": [
38+
"eventing",
39+
"aem",
40+
"eventmesh"
41+
],
42+
"instance_guid": "6a2c31d5-31dc-4ece-8833-eae016af64f2",
43+
"instance_name": "cap-aem-validation",
44+
"binding_guid": "a832ecaf-eb81-4582-a344-87354243bf07",
45+
"binding_name": null,
46+
"credentials": {
47+
"xsappname": "46B0354E-C61B-11ED-AFA1-0242AC120002-6a2c31d5-31dc-4ece-8833-eae016af64f2!b191218|em-pubsub-service-broker!b38991",
48+
"handshake": {
49+
"oa2": {
50+
"clientid": "sb-46B0354E-C61B-11ED-AFA1-0242AC120002-6a2c31d5-31dc-4ece-8833-eae016af64f2!b191218|em-pubsub-service-broker!b38991",
51+
"clientsecret": "0c0251d8-c1f4-45ba-8921-075bbf986bbd$Im-xm-iWbtWC-1WDueF7UqsUxIqOUOXijWJITxFLd1Q=",
52+
"granttype": "client_credentials",
53+
"tokenendpoint": "https://cap-aem-nodejs.authentication.sap.hana.ondemand.com/oauth/token"
54+
},
55+
"uri": "https://em-pubsub-broker.mesh.cf.sap.hana.ondemand.com/handshake"
56+
},
57+
"serviceinstanceid": "6a2c31d5-31dc-4ece-8833-eae016af64f2"
58+
},
59+
"syslog_drain_url": null,
60+
"volume_mounts": []
61+
}
3162
]
3263
}
3364
}

0 commit comments

Comments
 (0)