[OLINGO-1391]OData V4: Move the olingo library to java 8
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataDispatcher.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataDispatcher.java
index 35a716d..442ca6d 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataDispatcher.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataDispatcher.java
@@ -601,8 +601,13 @@
validateIsSingleton(method);
validatePreconditions(request, false);
validatePreferHeader(request);
- handler.selectProcessor(isMedia ? MediaEntityProcessor.class : EntityProcessor.class)
- .deleteEntity(request, response, uriInfo);
+ if (isMedia) {
+ ((MediaEntityProcessor) handler.selectProcessor(MediaEntityProcessor.class))
+ .deleteEntity(request, response, uriInfo);
+ } else {
+ ((EntityProcessor) handler.selectProcessor(EntityProcessor.class))
+ .deleteEntity(request, response, uriInfo);
+ }
} else {
throwMethodNotAllowed(method);
}
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerImpl.java
index 5f561e5..7196570 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/FixedFormatDeserializerImpl.java
@@ -100,12 +100,19 @@
result.setType(type.getFullQualifiedName().getFullQualifiedNameAsString());
final EdmPrimitiveType primitiveType = (EdmPrimitiveType) type;
try {
- result.setValue(type.getKind() == EdmTypeKind.ENUM ? ValueType.ENUM : ValueType.PRIMITIVE,
- primitiveType.valueOfString(primitiveType.fromUriLiteral(content),
- parameter.isNullable(), parameter.getMaxLength(), parameter.getPrecision(), parameter.getScale(), true,
- parameter.getMapping() == null ?
- primitiveType.getDefaultType() :
- parameter.getMapping().getMappedJavaClass()));
+ if (parameter.getMapping() == null) {
+ result.setValue(type.getKind() == EdmTypeKind.ENUM ? ValueType.ENUM : ValueType.PRIMITIVE,
+ primitiveType.valueOfString(primitiveType.fromUriLiteral(content),
+ parameter.isNullable(), parameter.getMaxLength(),
+ parameter.getPrecision(), parameter.getScale(), true,
+ primitiveType.getDefaultType()));
+ } else {
+ result.setValue(type.getKind() == EdmTypeKind.ENUM ? ValueType.ENUM : ValueType.PRIMITIVE,
+ primitiveType.valueOfString(primitiveType.fromUriLiteral(content),
+ parameter.isNullable(), parameter.getMaxLength(),
+ parameter.getPrecision(), parameter.getScale(), true,
+ parameter.getMapping().getMappedJavaClass()));
+ }
} catch (final EdmPrimitiveTypeException e) {
throw new DeserializerException(
"Invalid value '" + content + "' for parameter " + parameter.getName(), e,
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ParserHelper.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ParserHelper.java
index 04ba04b..26e4577 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ParserHelper.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ParserHelper.java
@@ -619,12 +619,15 @@
parseAliasValue(parameter.getAlias(),
edmParameter.getType(), edmParameter.isNullable(), edmParameter.isCollection(),
edm, type, aliases).getText() : null;
- primitiveType.valueOfString(primitiveType.fromUriLiteral(text),
- edmParameter.isNullable(), edmParameter.getMaxLength(), edmParameter.getPrecision(),
- edmParameter.getScale(), true,
- edmParameter.getMapping() == null ?
- primitiveType.getDefaultType() :
- edmParameter.getMapping().getMappedJavaClass());
+ if (edmParameter.getMapping() == null) {
+ primitiveType.valueOfString(primitiveType.fromUriLiteral(text),
+ edmParameter.isNullable(), edmParameter.getMaxLength(), edmParameter.getPrecision(),
+ edmParameter.getScale(), true, primitiveType.getDefaultType());
+ } else {
+ primitiveType.valueOfString(primitiveType.fromUriLiteral(text),
+ edmParameter.isNullable(), edmParameter.getMaxLength(), edmParameter.getPrecision(),
+ edmParameter.getScale(), true, edmParameter.getMapping().getMappedJavaClass());
+ }
} catch (final EdmPrimitiveTypeException e) {
throw new UriValidationException(
"Invalid value '" + text + "' for parameter " + parameter.getName(), e,
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
index 0682c15..837b5fa 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
@@ -143,11 +143,17 @@
throw new DataProviderException("Expression in key value is not supported yet!",
HttpStatusCode.NOT_IMPLEMENTED);
}
+ Object keyValue = null;
final String text = key.getAlias() == null ? key.getText() : ((Literal) key.getExpression()).getText();
- final Object keyValue = type.valueOfString(type.fromUriLiteral(text),
- property.isNullable(), property.getMaxLength(), property.getPrecision(), property.getScale(),
- property.isUnicode(),
- Calendar.class.isAssignableFrom(value.getClass()) ? Calendar.class : value.getClass());
+ if (Calendar.class.isAssignableFrom(value.getClass())) {
+ keyValue = type.valueOfString(type.fromUriLiteral(text),
+ property.isNullable(), property.getMaxLength(), property.getPrecision(), property.getScale(),
+ property.isUnicode(), Calendar.class);
+ } else {
+ keyValue = type.valueOfString(type.fromUriLiteral(text),
+ property.isNullable(), property.getMaxLength(), property.getPrecision(), property.getScale(),
+ property.isUnicode(), value.getClass());
+ }
if (!value.equals(keyValue)) {
found = false;
break;
@@ -958,10 +964,16 @@
HttpStatusCode.NOT_IMPLEMENTED);
}
final String text = key.getAlias() == null ? key.getText() : ((Literal) key.getExpression()).getText();
- final Object keyValue = type.valueOfString(type.fromUriLiteral(text),
- property.isNullable(), property.getMaxLength(), property.getPrecision(), property.getScale(),
- property.isUnicode(),
- Calendar.class.isAssignableFrom(value.getClass()) ? Calendar.class : value.getClass());
+ Object keyValue = null;
+ if (Calendar.class.isAssignableFrom(value.getClass())) {
+ keyValue = type.valueOfString(type.fromUriLiteral(text),
+ property.isNullable(), property.getMaxLength(), property.getPrecision(), property.getScale(),
+ property.isUnicode(), Calendar.class);
+ } else {
+ keyValue = type.valueOfString(type.fromUriLiteral(text),
+ property.isNullable(), property.getMaxLength(), property.getPrecision(), property.getScale(),
+ property.isUnicode(), value.getClass());
+ }
if (!value.equals(keyValue)) {
found = false;
break;
diff --git a/pom.xml b/pom.xml
index 3f08577..5d5a52f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -104,7 +104,7 @@
<!-- Project build settings -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.build.source>1.6</project.build.source>
+ <project.build.source>1.8</project.build.source>
<olingo.deploy.skip>true</olingo.deploy.skip>
<!-- Setting needed for Java 8 release builds -->
@@ -330,12 +330,12 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>2.12.1</version>
+ <version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>2.3.2</version>
+ <version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -514,13 +514,15 @@
</goals>
</execution>
</executions>
- <configuration>
+ <configuration combine.self="override">
<outputFileFormat>xml</outputFileFormat>
<consoleOutput>true</consoleOutput>
<enableRSS>false</enableRSS>
<linkXRef>false</linkXRef>
<configLocation>src/checkstyle/config.xml</configLocation>
- <sourceDirectory>${basedir}/src</sourceDirectory>
+ <sourceDirectories>
+ <sourceDirectory>${basedir}/src</sourceDirectory>
+ </sourceDirectories>
<encoding>${project.build.sourceEncoding}</encoding>
<failOnViolation>true</failOnViolation>
<violationSeverity>warning</violationSeverity>
diff --git a/src/checkstyle/config.xml b/src/checkstyle/config.xml
index 2d4e169..3cb3d98 100644
--- a/src/checkstyle/config.xml
+++ b/src/checkstyle/config.xml
@@ -29,7 +29,6 @@
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
- <module name="FileContentsHolder"/>
<module name="IllegalImport">
<property name="severity" value="info"/>
<property name="illegalPkgs" value="java.awt, javax.swing"/>
@@ -69,6 +68,6 @@
<module name="LineLength">
<property name="max" value="120"/>
</module>
+ <module name="SuppressionCommentFilter"/>
</module>
- <module name="SuppressionCommentFilter"/>
</module>