You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2017/05/30 22:51:27 UTC
svn commit: r1796951 - in /sling/trunk/contrib/extensions/distribution/core:
./ src/main/java/org/apache/sling/distribution/queue/impl/simple/
src/main/java/org/apache/sling/distribution/servlet/ src/test/resources/
Author: pauls
Date: Tue May 30 22:51:27 2017
New Revision: 1796951
URL: http://svn.apache.org/viewvc?rev=1796951&view=rev
Log:
SLING-6892: Remove commons.json from Content Distribution Core.
Modified:
sling/trunk/contrib/extensions/distribution/core/pom.xml
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/ServletJsonUtils.java
sling/trunk/contrib/extensions/distribution/core/src/test/resources/dummy-agent-checkpoint
Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1796951&r1=1796950&r2=1796951&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/pom.xml (original)
+++ sling/trunk/contrib/extensions/distribution/core/pom.xml Tue May 30 22:51:27 2017
@@ -139,6 +139,12 @@
<version>1.1.16</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.johnzon</artifactId>
+ <version>1.0.0</version>
+ <scope>test</scope>
+ </dependency>
<!-- Sling Mock -->
<dependency>
<groupId>org.apache.sling</groupId>
@@ -199,16 +205,16 @@
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.json</artifactId>
- <version>2.0.8</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.event.dea</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-json_1.0_spec</artifactId>
+ <version>1.0-alpha-1</version>
+ <scope>provided</scope>
+ </dependency>
<!-- LOGGING -->
<dependency>
<groupId>org.slf4j</groupId>
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java?rev=1796951&r1=1796950&r2=1796951&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java Tue May 30 22:51:27 2017
@@ -26,8 +26,10 @@ import java.util.Collection;
import java.util.LinkedList;
import java.util.Map;
+import javax.json.Json;
+import javax.json.stream.JsonGenerator;
+
import org.apache.commons.io.IOUtils;
-import org.apache.sling.commons.json.io.JSONWriter;
import org.apache.sling.distribution.queue.DistributionQueue;
import org.apache.sling.distribution.queue.DistributionQueueEntry;
import org.apache.sling.distribution.queue.DistributionQueueItem;
@@ -66,23 +68,24 @@ class SimpleDistributionQueueCheckpoint
DistributionQueueItem item = queueEntry.getItem();
String packageId = item.getPackageId();
StringWriter w = new StringWriter();
- JSONWriter jsonWriter = new JSONWriter(w);
- jsonWriter.object();
+ JsonGenerator jsonWriter = Json.createGenerator(w);
+ jsonWriter.writeStartObject();
for (Map.Entry<String, Object> entry : item.entrySet()) {
- jsonWriter.key(entry.getKey());
+
Object value = entry.getValue();
boolean isArray = value instanceof String[];
if (isArray) {
- jsonWriter.array();
+ jsonWriter.writeStartArray(entry.getKey());
for (String s : ((String[]) value)) {
- jsonWriter.value(s);
+ jsonWriter.write(s);
}
- jsonWriter.endArray();
+ jsonWriter.writeEnd();
} else {
- jsonWriter.value(value);
+ jsonWriter.write(entry.getKey(), (String) value);
}
}
- jsonWriter.endObject();
+ jsonWriter.writeEnd();
+ jsonWriter.close();
lines.add(packageId + " " + w.toString());
}
log.debug("parsed {} items", lines.size());
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java?rev=1796951&r1=1796950&r2=1796951&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java Tue May 30 22:51:27 2017
@@ -19,22 +19,26 @@
package org.apache.sling.distribution.queue.impl.simple;
import javax.annotation.Nonnull;
+import javax.json.Json;
+import javax.json.JsonArray;
+import javax.json.JsonException;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+import javax.json.JsonString;
+import javax.json.JsonValue;
+
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FilenameFilter;
+import java.io.StringReader;
import java.util.Collection;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.LineIterator;
-import org.apache.sling.commons.json.JSONArray;
-import org.apache.sling.commons.json.JSONException;
-import org.apache.sling.commons.json.JSONObject;
-import org.apache.sling.commons.json.JSONTokener;
import org.apache.sling.commons.scheduler.ScheduleOptions;
import org.apache.sling.commons.scheduler.Scheduler;
import org.apache.sling.distribution.queue.DistributionQueue;
@@ -133,20 +137,24 @@ public class SimpleDistributionQueueProv
String id = split[0];
String infoString = split[1];
Map<String, Object> info = new HashMap<String, Object>();
- JSONTokener jsonTokener = new JSONTokener(infoString);
- JSONObject jsonObject = new JSONObject(jsonTokener);
- Iterator<String> keys = jsonObject.keys();
- while (keys.hasNext()) {
- String key = keys.next();
- JSONArray v = jsonObject.optJSONArray(key);
- if (v != null) {
- String[] a = new String[v.length()];
+ JsonReader reader = Json.createReader(new StringReader(infoString));
+ JsonObject jsonObject = reader.readObject();
+ for (Map.Entry<String, JsonValue> entry : jsonObject.entrySet()) {
+ if (entry.getValue().getValueType().equals(JsonValue.ValueType.ARRAY))
+ {
+ JsonArray value = jsonObject.getJsonArray(entry.getKey());
+ String[] a = new String[value.size()];
for (int i = 0; i < a.length; i++) {
- a[i] = v.getString(i);
+ a[i] = value.getString(i);
}
- info.put(key, a);
- } else {
- info.put(key, jsonObject.getString(key));
+ info.put(entry.getKey(), a);
+ }
+ else if (JsonValue.NULL.equals(entry.getValue())) {
+ info.put(entry.getKey(), null);
+ }
+ else
+ {
+ info.put(entry.getKey(), ((JsonString) entry.getValue()).getString());
}
}
queue.add(new DistributionQueueItem(id, info));
@@ -154,7 +162,7 @@ public class SimpleDistributionQueueProv
log.info("recovered {} items from queue {}", queue.getStatus().getItemsCount(), queueName);
} catch (FileNotFoundException e) {
log.warn("could not read checkpoint file {}", qf.getAbsolutePath());
- } catch (JSONException e) {
+ } catch (JsonException e) {
log.warn("could not parse info from checkpoint file {}", qf.getAbsolutePath());
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/ServletJsonUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/ServletJsonUtils.java?rev=1796951&r1=1796950&r2=1796951&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/ServletJsonUtils.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/ServletJsonUtils.java Tue May 30 22:51:27 2017
@@ -20,12 +20,17 @@
package org.apache.sling.distribution.servlet;
import javax.annotation.Nullable;
+import javax.json.Json;
+import javax.json.JsonException;
+import javax.json.JsonObject;
+import javax.json.JsonObjectBuilder;
+
import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
import java.util.Map;
import org.apache.sling.api.SlingHttpServletResponse;
-import org.apache.sling.commons.json.JSONException;
-import org.apache.sling.commons.json.JSONObject;
import org.apache.sling.distribution.DistributionResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,13 +43,13 @@ class ServletJsonUtils {
private final static Logger log = LoggerFactory.getLogger(ServletJsonUtils.class);
public static void writeJson(SlingHttpServletResponse response, DistributionResponse distributionResponse) throws IOException {
- JSONObject json = new JSONObject();
+ JsonObjectBuilder json = Json.createObjectBuilder();
try {
- json.put("success", distributionResponse.isSuccessful());
- json.put("state", distributionResponse.getState().name());
- json.put("message", distributionResponse.getMessage());
+ json.add("success", distributionResponse.isSuccessful());
+ json.add("state", distributionResponse.getState().name());
+ json.add("message", distributionResponse.getMessage());
- } catch (JSONException e) {
+ } catch (JsonException e) {
log.error("Cannot write json", e);
}
@@ -62,24 +67,30 @@ class ServletJsonUtils {
// TODO
break;
}
- response.getWriter().append(json.toString());
+ append(json.build(), response.getWriter());
}
public static void writeJson(SlingHttpServletResponse response, int status, String message,
@Nullable Map<String, String> kv) throws IOException {
- JSONObject json = new JSONObject();
+ JsonObjectBuilder json = Json.createObjectBuilder();
try {
- json.put("message", message);
+ json.add("message", message);
if (kv != null && kv.size() > 0) {
for (Map.Entry<String, String> entry : kv.entrySet()) {
- json.put(entry.getKey(), entry.getValue());
+ json.add(entry.getKey(), entry.getValue());
}
}
- } catch (JSONException e) {
+ } catch (JsonException e) {
log.error("Cannot write json", e);
}
response.setStatus(status);
- response.getWriter().append(json.toString());
+ append(json.build(), response.getWriter());
+ }
+
+ private static void append(JsonObject json, Writer writer) throws IOException {
+ StringWriter buffer = new StringWriter();
+ Json.createWriter(buffer).writeObject(json);
+ writer.append(buffer.toString());
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/resources/dummy-agent-checkpoint
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/resources/dummy-agent-checkpoint?rev=1796951&r1=1796950&r2=1796951&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/resources/dummy-agent-checkpoint (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/resources/dummy-agent-checkpoint Tue May 30 22:51:27 2017
@@ -1 +1 @@
-/var/sling/distribution/packages/default/data/dstrpck-1464090256589-70a3fc84-9568-4aeb-ba1d-ffc5affc4332 {"internal.request.startTime":"1464090250095","request.type":"ADD","request.deepPaths":["/foo"],"internal.request.id":"DSTRQ1","request.paths":["/foo","bar"],"internal.request.user":"admin","package.type":"default"}UTF-8
\ No newline at end of file
+/var/sling/distribution/packages/default/data/dstrpck-1464090256589-70a3fc84-9568-4aeb-ba1d-ffc5affc4332 {"internal.request.startTime":"1464090250095","request.type":"ADD","request.deepPaths":["/foo"],"internal.request.id":"DSTRQ1","request.paths":["/foo","bar"],"internal.request.user":"admin","package.type":"default"} UTF-8
\ No newline at end of file