diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000000..2a25a2b345 --- /dev/null +++ b/build.sbt @@ -0,0 +1,25 @@ +name := "odata-olingo" +scalaVersion in ThisBuild := "2.12.8" +javacOptions in ThisBuild ++= Seq("-encoding", "UTF-8", "-source", "1.6") + +lazy val commonsApi = (project in file("lib/commons-api")).settings( + libraryDependencies += "com.novocode" % "junit-interface" % "0.11", + libraryDependencies += "org.mockito" % "mockito-core" % "1.10.19", + libraryDependencies += "commons-io" % "commons-io" % "2.5" + ) + +lazy val commonsCore = (project in file("lib/commons-core")).dependsOn(commonsApi).settings( + libraryDependencies += "commons-codec" % "commons-codec" % "1.9" + ) + +lazy val serverApi = (project in file("lib/server-api")).dependsOn(commonsApi).settings( + libraryDependencies += "javax.servlet" % "servlet-api" % "2.5" % Provided + ) + +lazy val serverCore = (project in file("lib/server-core")).dependsOn(serverApi, commonsCore).settings( + libraryDependencies += "javax.servlet" % "servlet-api" % "2.5" % Provided, + libraryDependencies += "com.fasterxml.jackson.core" % "jackson-core" % "2.7.8", + libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % "2.7.8", + libraryDependencies += "com.fasterxml" % "aalto-xml" % "0.9.10" + ) + diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java index 1228c7a72c..8c97ba3d1b 100644 --- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java +++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java @@ -179,12 +179,7 @@ protected String internalValueToString(final T value, final int digits = bigDecimalValue.scale() >= 0 ? Math.max(bigDecimalValue.precision(), bigDecimalValue.scale()) : bigDecimalValue.precision() - bigDecimalValue.scale(); - if ((precision == null || precision >= digits) && (bigDecimalValue.scale() <= (scale == null ? 0 : scale))) { - result = bigDecimalValue.toPlainString(); - } else { - throw new EdmPrimitiveTypeException("The value '" + value + "' does not match the facets' constraints."); - } - + result = bigDecimalValue.toPlainString(); } else { throw new EdmPrimitiveTypeException("The value type " + value.getClass() + " is not supported."); } diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriTokenizer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriTokenizer.java index 37d49caaab..7ebc56ce42 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriTokenizer.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/UriTokenizer.java @@ -816,13 +816,13 @@ private boolean nextODataIdentifier() { int count = 0; if (index < parseString.length()) { int code = parseString.codePointAt(index); - if (Character.isUnicodeIdentifierStart(code) || code == '_') { + if (Character.isUnicodeIdentifierPart(code) || code == '_') { count++; // Unicode characters outside of the Basic Multilingual Plane are represented as two Java characters. index += Character.isSupplementaryCodePoint(code) ? 2 : 1; while (index < parseString.length() && count < 128) { code = parseString.codePointAt(index); - if (Character.isUnicodeIdentifierPart(code) && !Character.isISOControl(code)) { + if ((code == '-' || Character.isUnicodeIdentifierPart(code)) && !Character.isISOControl(code)) { count++; // Unicode characters outside of the Basic Multilingual Plane are represented as two Java characters. index += Character.isSupplementaryCodePoint(code) ? 2 : 1;