Skip to content

Commit e7d1b97

Browse files
authored
Merge branch 'eclipse-basyx:main' into bugFix_body
2 parents 910d24d + 1995620 commit e7d1b97

File tree

123 files changed

+3484
-742
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+3484
-742
lines changed

basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-backend-inmemory/pom.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@
1919
<dependency>
2020
<groupId>org.eclipse.digitaltwin.basyx</groupId>
2121
<artifactId>basyx.aasdiscoveryservice-backend</artifactId>
22-
</dependency>
23-
22+
</dependency>
23+
<dependency>
24+
<groupId>org.eclipse.digitaltwin.basyx</groupId>
25+
<artifactId>basyx.backend.inmemory.core</artifactId>
26+
</dependency>
2427
<dependency>
2528
<groupId>org.eclipse.digitaltwin.basyx</groupId>
2629
<artifactId>basyx.aasdiscoveryservice-core</artifactId>

basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-backend-inmemory/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/backend/inmemory/AasDiscoveryInMemoryBackendProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import org.eclipse.digitaltwin.basyx.aasdiscoveryservice.backend.AasDiscoveryBackendProvider;
2929
import org.eclipse.digitaltwin.basyx.aasdiscoveryservice.backend.AasDiscoveryDocument;
30+
import org.eclipse.digitaltwin.basyx.common.backend.inmemory.core.InMemoryCrudRepository;
3031
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
3132
import org.springframework.data.repository.CrudRepository;
3233
import org.springframework.stereotype.Component;
@@ -41,7 +42,7 @@
4142
@Component
4243
public class AasDiscoveryInMemoryBackendProvider implements AasDiscoveryBackendProvider {
4344

44-
private AasDiscoveryInMemoryCrudRepository repository = new AasDiscoveryInMemoryCrudRepository();
45+
private CrudRepository<AasDiscoveryDocument, String> repository = new InMemoryCrudRepository<AasDiscoveryDocument>(AasDiscoveryDocument::getShellIdentifier);
4546

4647
@Override
4748
public CrudRepository<AasDiscoveryDocument, String> getCrudRepository() {

basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-backend-inmemory/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/backend/inmemory/AasDiscoveryInMemoryCrudRepository.java

Lines changed: 0 additions & 138 deletions
This file was deleted.

basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-core/src/test/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/core/AasDiscoveryServiceSuite.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ public abstract class AasDiscoveryServiceSuite {
5555

5656
protected abstract AasDiscoveryService getAasDiscoveryService();
5757

58-
private final PaginationInfo noLimitPaginationInfo = new PaginationInfo(0, "");
59-
6058
@Test
6159
public void getAllAssetAdministrationShellIdsByAssetLink() {
6260
AasDiscoveryService discoveryService = getAasDiscoveryService();
@@ -74,7 +72,7 @@ public void getAllAssetAdministrationShellIdsByAssetLink() {
7472
new AssetLink("DummyAssetName2", "DummyAsset_2_Value")
7573
));
7674

77-
List<String> actualResult = discoveryService.getAllAssetAdministrationShellIdsByAssetLink(noLimitPaginationInfo, assetIds)
75+
List<String> actualResult = discoveryService.getAllAssetAdministrationShellIdsByAssetLink(PaginationInfo.NO_LIMIT, assetIds)
7876
.getResult();
7977

8078
assertEquals(expectedResult.size(), actualResult.size());

basyx.aasenvironment/basyx.aasenvironment-client/src/main/java/org/eclipse/digitaltwin/basyx/aasenvironment/client/resolvers/AasDescriptorResolver.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,20 @@
3030

3131
import org.eclipse.digitaltwin.basyx.aasregistry.client.model.AssetAdministrationShellDescriptor;
3232
import org.eclipse.digitaltwin.basyx.aasregistry.client.model.Endpoint;
33+
import org.eclipse.digitaltwin.basyx.aasregistry.client.model.ProtocolInformation;
3334
import org.eclipse.digitaltwin.basyx.aasservice.client.ConnectedAasService;
3435
import org.eclipse.digitaltwin.basyx.client.internal.resolver.DescriptorResolver;
3536

3637
/**
3738
* Resolves an AasDescriptor into a {@link ConnectedAasService}
38-
*
39+
*
3940
* @author mateusmolina, danish
4041
*
4142
*/
4243
public class AasDescriptorResolver implements DescriptorResolver<AssetAdministrationShellDescriptor, ConnectedAasService> {
4344

45+
static final String SPEC_INTERFACE = "AAS-3.0";
46+
4447
private final EndpointResolver endpointResolver;
4548

4649
/**
@@ -66,16 +69,7 @@ public ConnectedAasService resolveDescriptor(AssetAdministrationShellDescriptor
6669

6770
public static Optional<URI> parseEndpoint(Endpoint endpoint) {
6871
try {
69-
if (endpoint == null || endpoint.getProtocolInformation() == null || endpoint.getProtocolInformation()
70-
.getHref() == null)
71-
return Optional.empty();
72-
73-
String baseHref = endpoint.getProtocolInformation()
74-
.getHref();
75-
// TODO not working: String queryString = "?" + endpoint.toUrlQueryString();
76-
String queryString = "";
77-
URI uri = new URI(baseHref + queryString);
78-
return Optional.of(uri);
72+
return Optional.ofNullable(endpoint).filter(ep -> ep.getInterface().equals(SPEC_INTERFACE)).map(Endpoint::getProtocolInformation).map(ProtocolInformation::getHref).map(URI::create);
7973
} catch (Exception e) {
8074
return Optional.empty();
8175
}

basyx.aasenvironment/basyx.aasenvironment-client/src/main/java/org/eclipse/digitaltwin/basyx/aasenvironment/client/resolvers/SubmodelDescriptorResolver.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
package org.eclipse.digitaltwin.basyx.aasenvironment.client.resolvers;
2727

28+
import org.eclipse.digitaltwin.basyx.submodelregistry.client.model.ProtocolInformation;
2829
import org.eclipse.digitaltwin.basyx.client.internal.resolver.DescriptorResolver;
2930
import java.net.URI;
3031
import java.util.Optional;
@@ -41,6 +42,8 @@
4142
*/
4243
public class SubmodelDescriptorResolver implements DescriptorResolver<SubmodelDescriptor, ConnectedSubmodelService> {
4344

45+
static final String SPEC_INTERFACE = "SUBMODEL-3.0";
46+
4447
private final EndpointResolver endpointResolver;
4548

4649
/**
@@ -67,16 +70,7 @@ public ConnectedSubmodelService resolveDescriptor(SubmodelDescriptor smDescripto
6770

6871
public static Optional<URI> parseEndpoint(Endpoint endpoint) {
6972
try {
70-
if (endpoint == null || endpoint.getProtocolInformation() == null || endpoint.getProtocolInformation()
71-
.getHref() == null)
72-
return Optional.empty();
73-
74-
String baseHref = endpoint.getProtocolInformation()
75-
.getHref();
76-
// TODO not working: String queryString = "?" + endpoint.toUrlQueryString();
77-
String queryString = "";
78-
URI uri = new URI(baseHref + queryString);
79-
return Optional.of(uri);
73+
return Optional.ofNullable(endpoint).filter(ep -> ep.getInterface().equals(SPEC_INTERFACE)).map(Endpoint::getProtocolInformation).map(ProtocolInformation::getHref).map(URI::create);
8074
} catch (Exception e) {
8175
return Optional.empty();
8276
}

basyx.aasenvironment/basyx.aasenvironment-client/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/client/TestFixture.java

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525

2626
package org.eclipse.digitaltwin.basyx.aasenvironment.client;
2727

28+
import java.util.LinkedList;
29+
2830
import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
2931
import org.eclipse.digitaltwin.aas4j.v3.model.AssetInformation;
3032
import org.eclipse.digitaltwin.aas4j.v3.model.AssetKind;
@@ -38,6 +40,7 @@
3840
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultReference;
3941
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultSubmodel;
4042
import org.eclipse.digitaltwin.basyx.aasregistry.client.model.AssetAdministrationShellDescriptor;
43+
import org.eclipse.digitaltwin.basyx.aasregistry.client.model.Endpoint;
4144
import org.eclipse.digitaltwin.basyx.aasregistry.main.client.mapper.DummyAasDescriptorFactory;
4245
import org.eclipse.digitaltwin.basyx.http.Base64UrlEncoder;
4346
import org.eclipse.digitaltwin.basyx.submodelregistry.client.mapper.AttributeMapper;
@@ -91,6 +94,15 @@ public AssetAdministrationShellDescriptor buildAasPre1Descriptor() {
9194
return DummyAasDescriptorFactory.createDummyDescriptor(AAS_PRE1_ID, AAS_PRE1_IDSHORT, AAS_PRE1_GLOBALASSETID, aasRepositoryBasePath);
9295
}
9396

97+
public AssetAdministrationShellDescriptor buildAasPre1Descriptor_withMultipleInterfaces() {
98+
LinkedList<Endpoint> endpoints = new LinkedList<>();
99+
100+
endpoints.add(DummyAasDescriptorFactory.createEndpoint(aasRepositoryBasePath, "AAS-REPOSITORY-3.0"));
101+
endpoints.add(DummyAasDescriptorFactory.createEndpoint(AAS_PRE1_ID, aasRepositoryBasePath, "AAS-3.0"));
102+
103+
return DummyAasDescriptorFactory.createDummyDescriptor(AAS_PRE1_ID, AAS_PRE1_IDSHORT, AAS_PRE1_GLOBALASSETID, endpoints);
104+
}
105+
94106
public Reference buildSmPre1Ref() {
95107
return new DefaultReference.Builder().type(ReferenceTypes.MODEL_REFERENCE).keys(new DefaultKey.Builder().type(KeyTypes.SUBMODEL).value(SM_PRE1_ID).build()).build();
96108
}
@@ -100,7 +112,16 @@ public Submodel buildSmPre1() {
100112
}
101113

102114
public SubmodelDescriptor buildSmPre1Descriptor() {
103-
return DummySubmodelDescriptorFactory.createDummyDescriptor(SM_PRE1_ID, SM_PRE1_IDSHORT, smRepositoryBasePath, null);
115+
return DummySubmodelDescriptorFactory.createDummyDescriptor(SM_PRE1_ID, SM_PRE1_IDSHORT, null, smRepositoryBasePath);
116+
}
117+
118+
public SubmodelDescriptor buildSmPre1Descriptor_withMultipleInterfaces() {
119+
LinkedList<org.eclipse.digitaltwin.basyx.submodelregistry.client.model.Endpoint> endpoints = new LinkedList<>();
120+
121+
endpoints.add(DummySubmodelDescriptorFactory.createEndpoint(smRepositoryBasePath, "SUBMODEL-REPOSITORY-3.0"));
122+
endpoints.add(DummySubmodelDescriptorFactory.createEndpoint(SM_PRE1_ID, smRepositoryBasePath, "SUBMODEL-3.0"));
123+
124+
return DummySubmodelDescriptorFactory.createDummyDescriptor(SM_PRE1_ID, SM_PRE1_IDSHORT, null, endpoints);
104125
}
105126

106127
public AssetAdministrationShell buildAasPos1() {
@@ -116,7 +137,7 @@ public AssetAdministrationShellDescriptor buildAasPos1Descriptor() {
116137
}
117138

118139
public SubmodelDescriptor buildSmPos1Descriptor() {
119-
return DummySubmodelDescriptorFactory.createDummyDescriptor(SM_POS1_ID, SM_POS1_IDSHORT, smRepositoryBasePath, new AttributeMapper(ConnectedAasManagerHelper.buildObjectMapper()).mapSemanticId(buildSmPos1SemanticId()));
140+
return DummySubmodelDescriptorFactory.createDummyDescriptor(SM_POS1_ID, SM_POS1_IDSHORT, new AttributeMapper(ConnectedAasManagerHelper.buildObjectMapper()).mapSemanticId(buildSmPos1SemanticId()), smRepositoryBasePath);
120141
}
121142

122143
public Reference buildSmPos1SemanticId() {

basyx.aasenvironment/basyx.aasenvironment-client/src/test/java/org/eclipse/digitaltwin/basyx/aasenvironment/client/resolvers/RegistryDescriptorResolverTest.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.eclipse.digitaltwin.aas4j.v3.model.Submodel;
3232
import org.eclipse.digitaltwin.basyx.aasenvironment.client.DummyAasEnvironmentComponent;
3333
import org.eclipse.digitaltwin.basyx.aasenvironment.client.TestFixture;
34-
import org.eclipse.digitaltwin.basyx.aasregistry.client.ApiException;
3534
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepository;
3635
import org.eclipse.digitaltwin.basyx.submodelrepository.SubmodelRepository;
3736
import org.junit.AfterClass;
@@ -52,10 +51,10 @@ public class RegistryDescriptorResolverTest {
5251
private static AasRepository aasRepository;
5352
private static SubmodelRepository smRepository;
5453

55-
private final static String AAS_REPOSITORY_BASE_PATH = "http://localhost:8081";
56-
private final static String SM_REPOSITORY_BASE_PATH = "http://localhost:8081";
54+
private static final String AAS_REPOSITORY_BASE_PATH = "http://localhost:8081";
55+
private static final String SM_REPOSITORY_BASE_PATH = "http://localhost:8081";
5756

58-
private final static TestFixture FIXTURE = new TestFixture(AAS_REPOSITORY_BASE_PATH, SM_REPOSITORY_BASE_PATH);
57+
private static final TestFixture FIXTURE = new TestFixture(AAS_REPOSITORY_BASE_PATH, SM_REPOSITORY_BASE_PATH);
5958

6059
@BeforeClass
6160
public static void initApplication() {
@@ -73,7 +72,7 @@ public static void cleanUp() {
7372
}
7473

7574
@Test
76-
public void resolveAasDescriptor() throws ApiException {
75+
public void resolveAasDescriptor() {
7776
AasDescriptorResolver resolver = new AasDescriptorResolver(new EndpointResolver());
7877

7978
AssetAdministrationShell expectedAas = FIXTURE.buildAasPre1();
@@ -84,7 +83,18 @@ public void resolveAasDescriptor() throws ApiException {
8483
}
8584

8685
@Test
87-
public void resolveSmDescriptor() throws ApiException {
86+
public void resolveAasDescriptor_withMultipleInterfaces() {
87+
AasDescriptorResolver resolver = new AasDescriptorResolver(new EndpointResolver());
88+
89+
AssetAdministrationShell expectedAas = FIXTURE.buildAasPre1();
90+
91+
AssetAdministrationShell actualAas = resolver.resolveDescriptor(FIXTURE.buildAasPre1Descriptor_withMultipleInterfaces()).getAAS();
92+
93+
assertEquals(expectedAas, actualAas);
94+
}
95+
96+
@Test
97+
public void resolveSmDescriptor() {
8898
SubmodelDescriptorResolver resolver = new SubmodelDescriptorResolver(new EndpointResolver());
8999

90100
Submodel expectedSm = FIXTURE.buildSmPre1();
@@ -94,4 +104,14 @@ public void resolveSmDescriptor() throws ApiException {
94104
assertEquals(expectedSm, actualSm);
95105
}
96106

107+
@Test
108+
public void resolveSmDescriptor_withMultipleInterfaces() {
109+
SubmodelDescriptorResolver resolver = new SubmodelDescriptorResolver(new EndpointResolver());
110+
111+
Submodel expectedSm = FIXTURE.buildSmPre1();
112+
113+
Submodel actualSm = resolver.resolveDescriptor(FIXTURE.buildSmPre1Descriptor_withMultipleInterfaces()).getSubmodel();
114+
115+
assertEquals(expectedSm, actualSm);
116+
}
97117
}

0 commit comments

Comments
 (0)