aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStarec Vlastimil <vlastimil.starec@orange.com>2020-07-01 16:51:24 +0200
committerStarec Vlastimil <vlastimil.starec@orange.com>2020-07-01 17:21:00 +0200
commit6aec50e7531735d4cb0e5aae3f1482789f8e463c (patch)
tree02e805d9699b104398c98fd4223be48ce1de2997
parent2b121417a1c3533f34af2cd803c6c2b0ae6169d6 (diff)
Perform repository cleanup
Register v18 and v19 aai-schemas. Refactor some easy java code. Issue-ID: AAI-2861 Change-Id: I00a7ea4b62ea3e2f59825b37bdca220c3b67b1a7 Signed-off-by: Starec Vlastimil <vlastimil.starec@orange.com>
-rw-r--r--.gitignore4
-rw-r--r--graphgraph-fe/public/index.html36
-rw-r--r--graphgraph-fe/public/manifest.json26
-rw-r--r--src/main/java/org/onap/aai/graphgraph/App.java2
-rw-r--r--src/main/java/org/onap/aai/graphgraph/Config.java16
-rw-r--r--src/main/java/org/onap/aai/graphgraph/CorsFilter.java13
-rw-r--r--src/main/java/org/onap/aai/graphgraph/ModelExporter.java82
-rw-r--r--src/main/java/org/onap/aai/graphgraph/SchemaResource.java7
-rw-r--r--src/main/java/org/onap/aai/graphgraph/SchemaValidator.java2
-rw-r--r--src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java13
-rw-r--r--src/main/java/org/onap/aai/graphgraph/reader/MetadataEdge.java7
-rw-r--r--src/main/java/org/onap/aai/graphgraph/reader/SchemaReader.java3
-rw-r--r--src/main/java/org/onap/aai/graphgraph/reader/SchemaRepository.java2
-rw-r--r--src/main/java/org/onap/aai/graphgraph/velocity/VelocityAssociation.java6
-rw-r--r--src/main/java/org/onap/aai/graphgraph/velocity/VelocityId.java4
-rw-r--r--src/main/resources/application.properties2
16 files changed, 116 insertions, 109 deletions
diff --git a/.gitignore b/.gitignore
index 42fef25..385b223 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
# production
/graphgraph-fe/build
+/target
# misc
/graphgraph-fe/DS_Store
@@ -21,5 +22,6 @@
/graphgraph-fe/yarn-debug.log*
/graphgraph-fe/yarn-error.log*
+# idea
/.idea
-/target
+*.iml
diff --git a/graphgraph-fe/public/index.html b/graphgraph-fe/public/index.html
index 4a301ff..9775121 100644
--- a/graphgraph-fe/public/index.html
+++ b/graphgraph-fe/public/index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<!--
- manifest.json provides metadata used when your web app is added to the
- homescreen on Android. See https://developers.google.com/web/fundamentals/web-app-manifest/
- -->
+ manifest.json provides metadata used when your web app is added to the
+ homescreen on Android. See https://developers.google.com/web/fundamentals/web-app-manifest/
+ -->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<!--
- Notice the use of %PUBLIC_URL% in the tags above.
- It will be replaced with the URL of the `public` folder during the build.
- Only files inside the `public` folder can be referenced from the HTML.
+ Notice the use of %PUBLIC_URL% in the tags above.
+ It will be replaced with the URL of the `public` folder during the build.
+ Only files inside the `public` folder can be referenced from the HTML.
- Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
- work correctly both with client-side routing and a non-root public URL.
- Learn how to configure a non-root public URL by running `npm run build`.
- -->
+ Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
+ work correctly both with client-side routing and a non-root public URL.
+ Learn how to configure a non-root public URL by running `npm run build`.
+ -->
<title>GraphGraph</title>
</head>
<body>
@@ -27,14 +27,14 @@
</noscript>
<div id="root"></div>
<!--
- This HTML file is a template.
- If you open it directly in the browser, you will see an empty page.
+ This HTML file is a template.
+ If you open it directly in the browser, you will see an empty page.
- You can add webfonts, meta tags, or analytics to this file.
- The build step will place the bundled scripts into the <body> tag.
+ You can add webfonts, meta tags, or analytics to this file.
+ The build step will place the bundled scripts into the <body> tag.
- To begin the development, run `npm start` or `yarn start`.
- To create a production bundle, use `npm run build` or `yarn build`.
- -->
- </body>
+ To begin the development, run `npm start` or `yarn start`.
+ To create a production bundle, use `npm run build` or `yarn build`.
+ -->
+ </body>
</html>
diff --git a/graphgraph-fe/public/manifest.json b/graphgraph-fe/public/manifest.json
index b353df6..926e0af 100644
--- a/graphgraph-fe/public/manifest.json
+++ b/graphgraph-fe/public/manifest.json
@@ -1,15 +1,15 @@
{
- "short_name": "GraphGraph",
- "name": "Tool for exploring AAI schemas",
- "icons": [
- {
- "src": "favicon.ico",
- "sizes": "64x64 32x32 24x24 16x16",
- "type": "image/x-icon"
- }
- ],
- "start_url": ".",
- "display": "standalone",
- "theme_color": "#000000",
- "background_color": "#ffffff"
+ "short_name": "GraphGraph",
+ "name": "Tool for exploring AAI schemas",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ }
+ ],
+ "start_url": ".",
+ "display": "standalone",
+ "theme_color": "#000000",
+ "background_color": "#ffffff"
}
diff --git a/src/main/java/org/onap/aai/graphgraph/App.java b/src/main/java/org/onap/aai/graphgraph/App.java
index 1c6bc61..3aa326e 100644
--- a/src/main/java/org/onap/aai/graphgraph/App.java
+++ b/src/main/java/org/onap/aai/graphgraph/App.java
@@ -50,7 +50,7 @@ public class App {
// to some initialization issues. By all means feel free to improve and move it to Spring
public static void loadSchemes(ConfigurableApplicationContext context) {
String version;
- for (int i = 10; i < 19; i++) {
+ for (int i = 10; i <= 20; i++) {
version = "v" + i;
moxyLoaders.put(version, new MoxyLoader(
new SchemaVersion(version), (NodeIngestor) context.getBean("nodeIngestor"))
diff --git a/src/main/java/org/onap/aai/graphgraph/Config.java b/src/main/java/org/onap/aai/graphgraph/Config.java
index bbc082f..286d40e 100644
--- a/src/main/java/org/onap/aai/graphgraph/Config.java
+++ b/src/main/java/org/onap/aai/graphgraph/Config.java
@@ -19,10 +19,9 @@
*/
package org.onap.aai.graphgraph;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.Arrays;
+import java.util.stream.Collectors;
import org.onap.aai.graphgraph.reader.BasicSchemaReader;
-import org.onap.aai.graphgraph.reader.SchemaReader;
import org.onap.aai.graphgraph.reader.SchemaRepository;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
@@ -42,11 +41,10 @@ public class Config {
@Bean
SchemaRepository createSchemaRepository() {
- List<SchemaReader> readers = new LinkedList<>();
- for (String s : schemaVersions.split(",")) {
- readers.add(new BasicSchemaReader(s));
- }
- return new SchemaRepository(readers);
+ return new SchemaRepository(
+ Arrays.stream(schemaVersions.split(","))
+ .map(BasicSchemaReader::new)
+ .collect(Collectors.toList())
+ );
}
}
-
diff --git a/src/main/java/org/onap/aai/graphgraph/CorsFilter.java b/src/main/java/org/onap/aai/graphgraph/CorsFilter.java
index ab97255..384476b 100644
--- a/src/main/java/org/onap/aai/graphgraph/CorsFilter.java
+++ b/src/main/java/org/onap/aai/graphgraph/CorsFilter.java
@@ -31,14 +31,15 @@ import org.springframework.web.filter.OncePerRequestFilter;
public class CorsFilter extends OncePerRequestFilter {
@Override
- protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response,
- final FilterChain filterChain) throws ServletException, IOException {
+ protected void doFilterInternal(
+ final HttpServletRequest request,
+ final HttpServletResponse response,
+ final FilterChain filterChain
+ ) throws ServletException, IOException {
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, PATCH, HEAD");
- response.addHeader("Access-Control-Allow-Headers",
- "Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
- response.addHeader("Access-Control-Expose-Headers",
- "Access-Control-Allow-Origin, Access-Control-Allow-Credentials");
+ response.addHeader("Access-Control-Allow-Headers", "Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
+ response.addHeader("Access-Control-Expose-Headers", "Access-Control-Allow-Origin, Access-Control-Allow-Credentials");
response.addHeader("Access-Control-Allow-Credentials", "true");
response.addIntHeader("Access-Control-Max-Age", 10);
filterChain.doFilter(request, response);
diff --git a/src/main/java/org/onap/aai/graphgraph/ModelExporter.java b/src/main/java/org/onap/aai/graphgraph/ModelExporter.java
index 047bd92..474e7de 100644
--- a/src/main/java/org/onap/aai/graphgraph/ModelExporter.java
+++ b/src/main/java/org/onap/aai/graphgraph/ModelExporter.java
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -77,10 +78,11 @@ public class ModelExporter {
private static void addOxmRelationships(
Multimap<String, EdgeRule> allRules,
- Map<String, Introspector> allEntities) {
+ Map<String, Introspector> allEntities
+ ) {
for (Entry<String, Introspector> currentParent : allEntities.entrySet()) {
currentParent.getValue().getProperties().stream()
- .filter(v -> allEntities.containsKey(v))
+ .filter(allEntities::containsKey)
.filter(v -> !currentParent.getKey().equals(v))
.forEach(v -> {
String key = currentParent.getKey() + "|" + v;
@@ -128,11 +130,13 @@ public class ModelExporter {
private static VelocityContext populateVelocityContext(
String schemaVersion,
- Map<String, Introspector> allObjects) {
+ Map<String, Introspector> allObjects
+ ) {
VelocityContext context = new VelocityContext();
Multimap<String, EdgeRule> edgeRules = getEdgeRules(schemaVersion);
Set<VelocityEntity> entityList = createEntityList(edgeRules);
- Set<VelocityAssociation> associationsList = createVelocityAssociations(entityList, edgeRules);
+ Set<VelocityAssociation> associationsList = createVelocityAssociations(
+ entityList, Objects.requireNonNull(edgeRules));
updateEntities(entityList, associationsList, allObjects);
context.put("entityList", entityList);
context.put("associationList", associationsList);
@@ -150,7 +154,8 @@ public class ModelExporter {
private static void updateEntities(
Set<VelocityEntity> entityList,
Set<VelocityAssociation> associationsList,
- Map<String, Introspector> allObjects) {
+ Map<String, Introspector> allObjects
+ ) {
entityList.forEach(e -> {
List<VelocityAssociation> associations = associationsList.stream()
.filter(a -> a.getFromEntityId().equals(e.getId())).collect(
@@ -161,16 +166,16 @@ public class ModelExporter {
});
entityList.forEach(
- entity -> entity.setProperties(getPropertiesForEntity(allObjects.get(entity.getName()), entityList)));
-
+ e -> e.setProperties(getPropertiesForEntity(allObjects.get(e.getName()), entityList)));
}
private static void updateNeighbour(
- Set<VelocityEntity> entityList, List<VelocityAssociation> associations) {
+ Set<VelocityEntity> entityList, List<VelocityAssociation> associations
+ ) {
associations.forEach(ass -> {
- VelocityEntity velocityEntity = entityList.stream()
- .filter(e -> e.getId().equals(ass.getToEntityId())).findFirst().get();
- velocityEntity.addNeighbours(ass);
+ Optional<VelocityEntity> velocityEntity = entityList.stream()
+ .filter(e -> e.getId().equals(ass.getToEntityId())).findFirst();
+ velocityEntity.ifPresent(entity -> entity.addNeighbours(ass));
});
}
@@ -217,33 +222,36 @@ public class ModelExporter {
private static VelocityAssociation createVelocityAssociation(
Set<VelocityEntity> entities, String from, String to, String label, String multiplicity, String contains) {
- VelocityEntity fromEntity = entities.stream()
- .filter(ent -> ent.getName().equals(from)).findFirst().get();
- VelocityEntity toEntity = entities.stream()
- .filter(ent -> ent.getName().equals(to)).findFirst().get();
- switch (contains) {
- case "IN":
- return new VelocityAssociation(
- fromEntity,
- toEntity,
- String.format("%s - %s (%s)", from, to, shortenLabel(label)),
- multiplicity,
- true);
- case "OUT":
- return new VelocityAssociation(
- toEntity,
- fromEntity,
- String.format("%s - %s (%s)", to, from, shortenLabel(label)),
- multiplicity.equals("ONE2MANY") ? "MANY2ONE" : multiplicity,
- true);
- default:
- return new VelocityAssociation(
- fromEntity,
- toEntity,
- String.format("%s - %s (%s)", from, to, shortenLabel(label)),
- multiplicity,
- false);
+ Optional<VelocityEntity> fromEntity = entities.stream()
+ .filter(ent -> ent.getName().equals(from)).findFirst();
+ Optional<VelocityEntity> toEntity = entities.stream()
+ .filter(ent -> ent.getName().equals(to)).findFirst();
+ if (fromEntity.isPresent() && toEntity.isPresent()) {
+ switch (contains) {
+ case "IN":
+ return new VelocityAssociation(
+ fromEntity.get(),
+ toEntity.get(),
+ String.format("%s - %s (%s)", from, to, shortenLabel(label)),
+ multiplicity,
+ true);
+ case "OUT":
+ return new VelocityAssociation(
+ toEntity.get(),
+ fromEntity.get(),
+ String.format("%s - %s (%s)", to, from, shortenLabel(label)),
+ multiplicity.equals("ONE2MANY") ? "MANY2ONE" : multiplicity,
+ true);
+ default:
+ return new VelocityAssociation(
+ fromEntity.get(),
+ toEntity.get(),
+ String.format("%s - %s (%s)", from, to, shortenLabel(label)),
+ multiplicity,
+ false);
+ }
}
+ return null;
}
private static String shortenLabel(String label) {
diff --git a/src/main/java/org/onap/aai/graphgraph/SchemaResource.java b/src/main/java/org/onap/aai/graphgraph/SchemaResource.java
index 577e235..34f7dae 100644
--- a/src/main/java/org/onap/aai/graphgraph/SchemaResource.java
+++ b/src/main/java/org/onap/aai/graphgraph/SchemaResource.java
@@ -19,6 +19,9 @@
*/
package org.onap.aai.graphgraph;
+import java.util.Collections;
+import java.util.List;
+import javax.annotation.Resource;
import org.onap.aai.graphgraph.dto.Graph;
import org.onap.aai.graphgraph.dto.NodeName;
import org.onap.aai.graphgraph.dto.NodeProperty;
@@ -32,10 +35,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
-import javax.annotation.Resource;
-import java.util.Collections;
-import java.util.List;
-
@RestController
public class SchemaResource {
diff --git a/src/main/java/org/onap/aai/graphgraph/SchemaValidator.java b/src/main/java/org/onap/aai/graphgraph/SchemaValidator.java
index 076c31e..73484f7 100644
--- a/src/main/java/org/onap/aai/graphgraph/SchemaValidator.java
+++ b/src/main/java/org/onap/aai/graphgraph/SchemaValidator.java
@@ -70,7 +70,7 @@ public class SchemaValidator {
}
/**
- * computes edgerules which don't have the necessary connection to relationship-list in OXM
+ * computes edgerules which don't have the necessary connection to relationship-list in OXM
* @param validationProblems
*/
private void checkIfDanglingEdgerules(ValidationProblems validationProblems) {
diff --git a/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java b/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java
index 7f903f7..1a7d963 100644
--- a/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java
+++ b/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java
@@ -20,7 +20,6 @@
package org.onap.aai.graphgraph.reader;
import com.google.common.collect.Multimap;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -28,10 +27,12 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.jgrapht.Graph;
import org.jgrapht.GraphPath;
import org.jgrapht.alg.shortestpath.FloydWarshallShortestPaths;
@@ -53,8 +54,8 @@ public class BasicSchemaReader implements SchemaReader {
private Map<String, Introspector> allEntities;
private Graph<String, MetadataEdge> graph = new DefaultDirectedGraph<>(MetadataEdge.class);
private EdgeIngestor edgeIngestor;
- private String version;
- private List<String> schemaErrors = new LinkedList<>();
+ private final String version;
+ private final List<String> schemaErrors = new LinkedList<>();
public BasicSchemaReader(String version) {
this.version = version;
@@ -99,8 +100,8 @@ public class BasicSchemaReader implements SchemaReader {
//TODO fix
}
- allRules.asMap().values().stream()
- .flatMap(e -> e.stream())
+ Objects.requireNonNull(allRules).asMap().values().stream()
+ .flatMap(Collection::stream)
.forEach(e -> {
switch (e.getDirection()) {
case OUT:
@@ -158,7 +159,7 @@ public class BasicSchemaReader implements SchemaReader {
return createGraph(
isParentChildFilter(edgeFilter),
isEdgeRulesFilter(edgeFilter)).edgeSet().stream()
- .flatMap(e -> Arrays.asList(e.getSource(), e.getTarget()).stream())
+ .flatMap(e -> Stream.of(e.getSource(), e.getTarget()))
.sorted().distinct()
.map(NodeName::new)
.collect(Collectors.toList());
diff --git a/src/main/java/org/onap/aai/graphgraph/reader/MetadataEdge.java b/src/main/java/org/onap/aai/graphgraph/reader/MetadataEdge.java
index 2dea403..548d550 100644
--- a/src/main/java/org/onap/aai/graphgraph/reader/MetadataEdge.java
+++ b/src/main/java/org/onap/aai/graphgraph/reader/MetadataEdge.java
@@ -28,11 +28,8 @@ public class MetadataEdge extends DefaultEdge {
private final String source;
private final String label;
- MetadataEdge(String type, String source, String target) {
- this.source = source;
- this.target = target;
- this.type = type;
- this.label = "";
+ MetadataEdge(String type, String target, String source) {
+ this(type, source, target, "");
}
MetadataEdge(String type, String target, String source, String label) {
diff --git a/src/main/java/org/onap/aai/graphgraph/reader/SchemaReader.java b/src/main/java/org/onap/aai/graphgraph/reader/SchemaReader.java
index 38e1bf6..4150764 100644
--- a/src/main/java/org/onap/aai/graphgraph/reader/SchemaReader.java
+++ b/src/main/java/org/onap/aai/graphgraph/reader/SchemaReader.java
@@ -19,13 +19,12 @@
*/
package org.onap.aai.graphgraph.reader;
+import java.util.List;
import org.onap.aai.graphgraph.dto.Graph;
import org.onap.aai.graphgraph.dto.NodeName;
import org.onap.aai.graphgraph.dto.NodeProperty;
import org.onap.aai.graphgraph.dto.Property;
-import java.util.List;
-
public interface SchemaReader {
String getSchemaName();
diff --git a/src/main/java/org/onap/aai/graphgraph/reader/SchemaRepository.java b/src/main/java/org/onap/aai/graphgraph/reader/SchemaRepository.java
index 5764c50..8760974 100644
--- a/src/main/java/org/onap/aai/graphgraph/reader/SchemaRepository.java
+++ b/src/main/java/org/onap/aai/graphgraph/reader/SchemaRepository.java
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
public class SchemaRepository {
- private List<SchemaReader> readers;
+ private final List<SchemaReader> readers;
public SchemaRepository(List<SchemaReader> readers) {
this.readers = readers;
diff --git a/src/main/java/org/onap/aai/graphgraph/velocity/VelocityAssociation.java b/src/main/java/org/onap/aai/graphgraph/velocity/VelocityAssociation.java
index dda37b5..b7b1503 100644
--- a/src/main/java/org/onap/aai/graphgraph/velocity/VelocityAssociation.java
+++ b/src/main/java/org/onap/aai/graphgraph/velocity/VelocityAssociation.java
@@ -29,8 +29,10 @@ public class VelocityAssociation extends VelocityId {
private final String multiplicity;
private final boolean isComposition;
- public VelocityAssociation(VelocityEntity fromEntity,
- VelocityEntity toEntity, String name, String multiplicity, boolean isComposition) {
+ public VelocityAssociation(
+ VelocityEntity fromEntity, VelocityEntity toEntity,
+ String name, String multiplicity, boolean isComposition
+ ) {
this.fromEntity = fromEntity;
this.toEntity = toEntity;
this.name = name;
diff --git a/src/main/java/org/onap/aai/graphgraph/velocity/VelocityId.java b/src/main/java/org/onap/aai/graphgraph/velocity/VelocityId.java
index 9b59c82..dc67639 100644
--- a/src/main/java/org/onap/aai/graphgraph/velocity/VelocityId.java
+++ b/src/main/java/org/onap/aai/graphgraph/velocity/VelocityId.java
@@ -23,13 +23,13 @@ import java.util.UUID;
public abstract class VelocityId {
- private String id = getRandomId();
+ private final String id = getRandomId();
public String getId() {
return id;
}
- public String getRandomId() {
+ public static String getRandomId() {
return UUID.randomUUID().toString();
}
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 1576633..4076e38 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -14,7 +14,7 @@ schema.ingest.file=${server.local.startpath}/application.properties
schema.uri.base.path=/aai
# Lists all of the versions in the schema
-schema.version.list=v10,v11,v12,v13,v14,v15,v16,v17,v18
+schema.version.list=v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20
# Specifies from which version should the depth parameter to default to zero
schema.version.depth.start=v10
# Specifies from which version should the related link be displayed in response payload