summaryrefslogtreecommitdiffstats
path: root/javatoscachecker/checker
diff options
context:
space:
mode:
authorSerban Jora <jora@research.att.com>2017-09-12 15:27:05 -0400
committerSerban Jora <jora@research.att.com>2017-09-12 15:27:05 -0400
commit1a6ec7b3c4343436a7d1135e0a88db07537c396e (patch)
tree6cf5a70cbd2bd50d317d4f56777555f1848449f7 /javatoscachecker/checker
parent6ea8d4902f1edd025044dc63c69f35a81fa126ab (diff)
Adds deploy plugin to maven poms
Also adds more doc to service README and removes some printouts Change-Id: I4d5a1285264ce1fbfc40297114bdb11a10a5059f Signed-off-by: Serban Jora <jora@research.att.com> Issues-Id: MODELING-17
Diffstat (limited to 'javatoscachecker/checker')
-rw-r--r--javatoscachecker/checker/pom.xml277
-rw-r--r--javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Checker.java6
-rw-r--r--javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Data.java71
3 files changed, 208 insertions, 146 deletions
diff --git a/javatoscachecker/checker/pom.xml b/javatoscachecker/checker/pom.xml
index a408bc6..61a3041 100644
--- a/javatoscachecker/checker/pom.xml
+++ b/javatoscachecker/checker/pom.xml
@@ -10,97 +10,100 @@
<name>Checker</name>
<build>
- <sourceDirectory>src/main/java</sourceDirectory>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.1</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- <encoding>${project.build.sourceEncoding}</encoding>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.10</version>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.directory}/deps</outputDirectory>
- <overWriteReleases>false</overWriteReleases>
- <overWriteSnapshots>false</overWriteSnapshots>
- <overWriteIfNewer>true</overWriteIfNewer>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>buildnumber-maven-plugin</artifactId>
- <version>1.4</version>
- <executions>
- <execution>
- <phase>validate</phase>
- <goals>
- <goal>create</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <doCheck>false</doCheck>
- <doUpdate>false</doUpdate>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.1</version>
- <configuration>
- <archive>
- <manifest>
- <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
- </manifest>
- <manifestEntries>
- <Implementation-Build>${buildNumber}</Implementation-Build>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
+ <sourceDirectory>src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.10</version>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/deps</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>false</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <version>1.4</version>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>create</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <doCheck>false</doCheck>
+ <doUpdate>false</doUpdate>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ </manifest>
+ <manifestEntries>
+ <Implementation-Build>${buildNumber}</Implementation-Build>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.6</version>
- <configuration>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- <archive>
- <manifest>
- <mainClass>org.onap.tosca.checker.Checker</mainClass>
- </manifest>
- <manifestEntries>
- <Implementation-Build>${buildNumber}</Implementation-Build>
- </manifestEntries>
- </archive>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id> <!-- this is used for inheritance merges -->
- <phase>package</phase> <!-- bind to the packaging phase -->
- <goals>
- <goal>single</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.6</version>
+ <configuration>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ <archive>
+ <manifest>
+ <mainClass>org.onap.tosca.checker.Checker</mainClass>
+ </manifest>
+ <manifestEntries>
+ <Implementation-Build>${buildNumber}</Implementation-Build>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id> <!-- this is used for inheritance merges -->
+ <phase>package</phase> <!-- bind to the packaging phase -->
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -113,40 +116,66 @@
</goals>
</execution>
</executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>3.0.0-M1</version>
- <configuration>
- <doctitle>API for ${project.name} ${project.version}</doctitle>
- <windowtitle>API for ${project.name} ${project.version}</windowtitle>
- </configuration>
- </plugin>
- <!-- blackduck maven plugin -->
- <plugin>
- <groupId>com.blackducksoftware.integration</groupId>
- <artifactId>hub-maven-plugin</artifactId>
- <version>2.0.0</version>
- <inherited>false</inherited>
- <configuration>
- <hubProjectName>${project.name}</hubProjectName>
- <outputDirectory>${project.basedir}</outputDirectory>
- <deployHubBdio>false</deployHubBdio>
- </configuration>
- <executions>
- <execution>
- <id>create-bdio-file</id>
- <phase>package</phase>
- <goals>
- <goal>build-bom</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <dependencies>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>3.0.0-M1</version>
+ <configuration>
+ <doctitle>API for ${project.name} ${project.version}</doctitle>
+ <windowtitle>API for ${project.name} ${project.version}</windowtitle>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.sonatype.plugins</groupId>
+ <artifactId>nexus-staging-maven-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <nexusUrl>${nexusproxy}</nexusUrl>
+ <stagingProfileId>176c31dfe190a</stagingProfileId>
+ <serverId>ecomp-staging</serverId>
+ </configuration>
+ </plugin>
+
+ <!-- replace by the sonatype plugin ?
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip />
+ </configuration>
+ </plugin>
+ -->
+
+ <!-- blackduck maven plugin -->
+ <!--
+ <plugin>
+ <groupId>com.blackducksoftware.integration</groupId>
+ <artifactId>hub-maven-plugin</artifactId>
+ <version>2.0.0</version>
+ <inherited>false</inherited>
+ <configuration>
+ <hubProjectName>${project.name}</hubProjectName>
+ <outputDirectory>${project.basedir}</outputDirectory>
+ <deployHubBdio>false</deployHubBdio>
+ </configuration>
+ <executions>
+ <execution>
+ <id>create-bdio-file</id>
+ <phase>package</phase>
+ <goals>
+ <goal>build-bom</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ -->
+ </plugins>
+ </build>
+
+ <dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
diff --git a/javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Checker.java b/javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Checker.java
index 5cc8233..4218b85 100644
--- a/javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Checker.java
+++ b/javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Checker.java
@@ -2821,7 +2821,7 @@ available and the available targets won't be re-processed.
return true;
}
defs = Maps.newHashMap(defs); //
-
+
boolean res = true;
if (theSpecType == null) {
theSpecType = (String)theSpec.get("type");
@@ -2838,8 +2838,6 @@ available and the available targets won't be re-processed.
while (i.hasNext() && !defs.isEmpty()) {
Map.Entry<String,Map> type = i.next();
-//System.out.println(" **** type : " + type.getKey() );
-
Map<String, Map> typeDefs = (Map<String,Map>)type.getValue()
.get(theFacet.name());
if (null == typeDefs) {
@@ -2847,7 +2845,7 @@ available and the available targets won't be re-processed.
}
MapDifference<String, Map> diff = Maps.difference(defs, typeDefs);
-
+
//this are the ones this type and the spec have in common (same key,
//different values)
Map<String, MapDifference.ValueDifference<Map>> facetDefs =
diff --git a/javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Data.java b/javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Data.java
index 9aab6ca..2a75cfd 100644
--- a/javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Data.java
+++ b/javatoscachecker/checker/src/main/java/org/onap/tosca/checker/Data.java
@@ -294,15 +294,11 @@ public class Data {
private static boolean evalCollection(Collection theVals,
Map theDef,
Checker.CheckContext theCtx) {
-
-//System.out.println("evalCollection: " + theDef + ", " + theVals);
-
Data.Type entryType = null;
Map entryTypeDef = (Map)theDef.get("entry_schema");
if (null != entryTypeDef)
entryType = typeByName((String)entryTypeDef.get("type"));
-//System.out.println("evalCollection, entry definition: " + entryTypeDef);
boolean res = true;
for (Object val: theVals) {
//check if the value is not a function call
@@ -336,8 +332,6 @@ public class Data {
private static boolean evalCollectionConstraints(Collection theVals,
Map theDef,
Checker.CheckContext theCtx) {
-//System.out.println("evalCollectionConstraints: " + theDef + ", " + theVals);
-
//should check overall constraints
if (theVals == null)
@@ -350,8 +344,6 @@ public class Data {
String entryTypeName = (String)entryTypeDef.get("type");
Data.Type entryType = typeByName(entryTypeName);
-//System.out.println("evalCollectionConstraints, entry definition: " + entryTypeDef);
-
boolean res = true;
for (Object val: theVals) {
Evaluator entryEvaluator = entryType.constraintsEvaluator();
@@ -367,16 +359,13 @@ public class Data {
}
/*
- * All required properties across the hierarchical defintion must be present
- * TODO: The expr cannot contain any entry not specified in the type definition
+ * TODO: check that
*/
public static boolean evalUser(Object theVal,
Map theDef,
Checker.CheckContext theCtx) {
-//System.out.println("evalUser: " + theDef + ", " + theVal);
-
boolean res = true;
- Map val = (Map)theVal;
+ Map val = new HashMap((Map)theVal);
//must be done with respect to the super-type(s) definition
Iterator<Map.Entry> props = theCtx.catalog()
.facets(Construct.Data,
@@ -385,13 +374,11 @@ public class Data {
while (props.hasNext()) {
Map.Entry propEntry = props.next();
Map propDef = (Map)propEntry.getValue();
- Object propVal = val.get(propEntry.getKey());
+ Object propVal = val.remove(propEntry.getKey());
if (propVal != null) {
Data.Type propType = typeByName((String)propDef.get("type"));
-//System.out.println("evalUser: " + propVal + " of type " + propType + "/" + propType.isScalar());
-
if (!propType.evaluator().eval(propVal, propDef, theCtx)) {
res= false;
if (propType.isScalar()) {
@@ -400,6 +387,12 @@ public class Data {
}
}
}
+
+ if (!val.isEmpty()) {
+ theCtx.addError("Entries " + val + " were not expected for type " + theDef.get("type"), null);
+ res = false;
+ }
+
return res;
}
@@ -550,11 +543,52 @@ public class Data {
private static boolean evalConcat(
Object theVal, Map theDef, Checker.CheckContext theCtx) {
+
+ Map val = (Map)theVal;
+ Map.Entry entry = (Map.Entry)val.entrySet().iterator().next();
+
+ if (!(entry.getValue() instanceof List)) {
+ theCtx.addError("concat: argument expression not a list", null);
+ return false;
+ }
+
+ List args = (List)entry.getValue();
+ if (args.size() < 2) {
+ theCtx.addError("concat: requires a minimum of 2 arguments", null);
+ return false;
+ }
+
+ //TODO: every argument must be or yield a String value
+ //cannot be done in full
+
return true;
}
private static boolean evalToken(
Object theVal, Map theDef, Checker.CheckContext theCtx) {
+
+ Map val = (Map)theVal;
+ Map.Entry entry = (Map.Entry)val.entrySet().iterator().next();
+
+ if (!(entry.getValue() instanceof List)) {
+ theCtx.addError("token: argument expression not a list", null);
+ return false;
+ }
+
+ List args = (List)entry.getValue();
+ if (args.size() != 3) {
+ theCtx.addError("token: requires 3 arguments", null);
+ return false;
+ }
+
+ //the first 2 argument must be String expressions so require more elaborate estimation
+ //but the third one must be an integer
+
+ if (!(args.get(2) instanceof Integer)) {
+ theCtx.addError("token: 3rd argument must be an integer (substring index), found " + args.get(2).getClass(),null);
+ return false;
+ }
+
return true;
}
@@ -564,7 +598,7 @@ public class Data {
Map.Entry entry = (Map.Entry)val.entrySet().iterator().next();
if (!(entry.getValue() instanceof String)) {
- theCtx.addError("get_input: argument must be a String" ,null);
+ theCtx.addError("get_input: argument must be a String", null);
return false;
}
@@ -666,6 +700,8 @@ public class Data {
return false;
}
+ //follow all 'HSOTED_ON' relationships to find a host, if any ..
+
return true;
}
else {
@@ -737,7 +773,6 @@ public class Data {
{
String facetName = (String)args.get(facetNameIndex);
for (Facet facet: theFacets) {
-//System.out.println("get_data: looking at " + facetConstruct + " " + facetConstructType + ", " + facet + " " + facetName);
facetSpec = theCtx.catalog()
.getFacetDefinition(
facetConstruct,