Gradle 3.2.1, flat map for XContentBuilder
This commit is contained in:
parent
ae7934381c
commit
73afbd806f
15 changed files with 81 additions and 19 deletions
|
@ -4,17 +4,15 @@ plugins {
|
||||||
id "org.xbib.gradle.plugin.jbake" version "1.2.1"
|
id "org.xbib.gradle.plugin.jbake" version "1.2.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
versions = [
|
versions = [
|
||||||
'jackson' : '2.8.4'
|
'jackson' : '2.8.4'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
apply plugin: 'build-dashboard'
|
||||||
|
|
||||||
group = 'org.xbib'
|
allprojects {
|
||||||
version = '1.0.6'
|
|
||||||
|
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
apply plugin: 'maven'
|
apply plugin: 'maven'
|
||||||
|
@ -42,7 +40,7 @@ allprojects {
|
||||||
|
|
||||||
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
|
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
|
||||||
tasks.withType(JavaCompile) {
|
tasks.withType(JavaCompile) {
|
||||||
options.compilerArgs << "-Xlint:all" << "-profile" << "compact2"
|
options.compilerArgs << "-Xlint:all" << "-profile" << "compact1"
|
||||||
}
|
}
|
||||||
|
|
||||||
test {
|
test {
|
||||||
|
|
|
@ -766,6 +766,15 @@ public final class XContentBuilder implements ToXContent, Flushable, Closeable {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public XContentBuilder flatMap(Map<String, String> map) throws IOException {
|
||||||
|
if (map == null) {
|
||||||
|
return nullValue();
|
||||||
|
}
|
||||||
|
writeFlatMap(map);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public XContentBuilder value(Iterable<?> value) throws IOException {
|
public XContentBuilder value(Iterable<?> value) throws IOException {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return nullValue();
|
return nullValue();
|
||||||
|
@ -825,6 +834,20 @@ public final class XContentBuilder implements ToXContent, Flushable, Closeable {
|
||||||
generator.writeEndObject();
|
generator.writeEndObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void writeFlatMap(Map<String, String> map) throws IOException {
|
||||||
|
generator.writeStartObject();
|
||||||
|
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||||
|
field(entry.getKey());
|
||||||
|
Object value = entry.getValue();
|
||||||
|
if (value == null) {
|
||||||
|
generator.writeNull();
|
||||||
|
} else {
|
||||||
|
writeValue(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
generator.writeEndObject();
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private void writeValue(Object value) throws IOException {
|
private void writeValue(Object value) throws IOException {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
|
|
|
@ -3,9 +3,13 @@ package org.xbib.content.settings;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.xbib.content.XContentBuilder;
|
||||||
import org.xbib.content.XContentHelper;
|
import org.xbib.content.XContentHelper;
|
||||||
|
import org.xbib.content.json.JsonSettingsLoader;
|
||||||
|
import org.xbib.content.json.JsonXContent;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -102,4 +106,21 @@ public class SettingsTest extends Assert {
|
||||||
.build();
|
.build();
|
||||||
assertEquals("{a.b=c}", settings.getAsMap().toString());
|
assertEquals("{a.b=c}", settings.getAsMap().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFlatLoader() throws IOException {
|
||||||
|
String s = "{\"a\":{\"b\":\"c\"}}";
|
||||||
|
JsonSettingsLoader loader = new JsonSettingsLoader();
|
||||||
|
Map<String, String> flatMap = loader.load(s);
|
||||||
|
assertEquals("{a.b=c}", flatMap.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFlatLoaderToJsonString() throws IOException {
|
||||||
|
String s = "{\"a\":{\"b\":\"c\"}}";
|
||||||
|
JsonSettingsLoader loader = new JsonSettingsLoader();
|
||||||
|
String result = JsonXContent.contentBuilder().flatMap(loader.load(s)).string();
|
||||||
|
assertEquals("{\"a.b\":\"c\"}", result);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':content-xml')
|
compile project(':content-xml')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile) {
|
||||||
|
options.compilerArgs << "-Xlint:all" << "-profile" << "compact2"
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
* @param <R> parameter type
|
||||||
*/
|
*/
|
||||||
public interface RdfContentParser<R extends RdfContentParams> {
|
public interface RdfContentParser<R extends RdfContentParams> {
|
||||||
|
|
||||||
|
|
4
content-resource/build.gradle
Normal file
4
content-resource/build.gradle
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile) {
|
||||||
|
options.compilerArgs << "-Xlint:all" << "-profile" << "compact2"
|
||||||
|
}
|
|
@ -3,3 +3,8 @@ dependencies {
|
||||||
compile project(':content-resource')
|
compile project(':content-resource')
|
||||||
compile "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${versions.jackson}"
|
compile "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${versions.jackson}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile) {
|
||||||
|
options.compilerArgs << "-Xlint:all" << "-profile" << "compact2"
|
||||||
|
}
|
3
gradle.properties
Normal file
3
gradle.properties
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
group = org.xbib
|
||||||
|
name = content
|
||||||
|
version = 1.0.7
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,6 @@
|
||||||
#Mon Oct 03 00:03:03 CEST 2016
|
#Sat Dec 03 23:47:13 CET 2016
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-3.2.1-all.zip
|
||||||
|
|
19
gradlew
vendored
19
gradlew
vendored
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
##
|
##
|
||||||
|
@ -154,16 +154,19 @@ if $cygwin ; then
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
# Escape application args
|
||||||
function splitJvmOpts() {
|
save ( ) {
|
||||||
JVM_OPTS=("$@")
|
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||||
|
echo " "
|
||||||
}
|
}
|
||||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
APP_ARGS=$(save "$@")
|
||||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
|
||||||
|
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||||
|
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||||
|
|
||||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||||
if [[ "$(uname)" == "Darwin" ]] && [[ "$HOME" == "$PWD" ]]; then
|
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
exec "$JAVACMD" "$@"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
rootProject.name = 'content'
|
rootProject.name = name
|
||||||
include 'content-core'
|
include 'content-core'
|
||||||
include 'content-resource'
|
include 'content-resource'
|
||||||
include 'content-language'
|
include 'content-language'
|
||||||
|
|
Loading…
Reference in a new issue