You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by sb...@apache.org on 2017/06/10 19:56:13 UTC
incubator-streams git commit: new classes needed for juneau rest
proxy across all providers
Repository: incubator-streams
Updated Branches:
refs/heads/master eba589bfa -> c8e56dc55
new classes needed for juneau rest proxy across all providers
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/c8e56dc5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/c8e56dc5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/c8e56dc5
Branch: refs/heads/master
Commit: c8e56dc55b5d8a8a14ec3b13ccd3e788db8eae77
Parents: eba589b
Author: Steve Blackmon <sb...@apache.org>
Authored: Sat Jun 10 13:48:57 2017 -0500
Committer: Steve Blackmon <sb...@apache.org>
Committed: Sat Jun 10 13:55:41 2017 -0500
----------------------------------------------------------------------
pom.xml | 21 +++++++
.../org/apache/streams/juneau/JodaDateSwap.java | 63 ++++++++++++++++++++
.../apache/streams/juneau/ListSerializer.java | 44 ++++++++++++++
3 files changed, 128 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/c8e56dc5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f721b0d..96f1e5d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -332,6 +332,7 @@
<jackson-xml-databind.version>0.6.2</jackson-xml-databind.version>
<aalto.version>1.0.0</aalto.version>
<joda-time.version>2.9.4</joda-time.version>
+ <juneau.version>6.2.1-incubating-SNAPSHOT</juneau.version>
<rave.version>0.22</rave.version>
<datastax.version>1.0.3</datastax.version>
<jsonschema2pojo.version>0.4.10</jsonschema2pojo.version>
@@ -988,6 +989,26 @@
<version>${httpcomponents.client.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.juneau</groupId>
+ <artifactId>juneau-core</artifactId>
+ <version>${juneau.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.juneau</groupId>
+ <artifactId>juneau-core-rdf</artifactId>
+ <version>${juneau.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.juneau</groupId>
+ <artifactId>juneau-rest</artifactId>
+ <version>${juneau.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.juneau</groupId>
+ <artifactId>juneau-rest-client</artifactId>
+ <version>${juneau.version}</version>
+ </dependency>
+ <dependency>
<groupId>com.typesafe</groupId>
<artifactId>config</artifactId>
<version>${typesafe.config.version}</version>
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/c8e56dc5/streams-pojo/src/main/java/org/apache/streams/juneau/JodaDateSwap.java
----------------------------------------------------------------------
diff --git a/streams-pojo/src/main/java/org/apache/streams/juneau/JodaDateSwap.java b/streams-pojo/src/main/java/org/apache/streams/juneau/JodaDateSwap.java
new file mode 100644
index 0000000..f716e25
--- /dev/null
+++ b/streams-pojo/src/main/java/org/apache/streams/juneau/JodaDateSwap.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.streams.juneau;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.juneau.BeanSession;
+import org.apache.juneau.ClassMeta;
+import org.apache.juneau.parser.ParseException;
+import org.apache.juneau.transform.StringSwap;
+import org.joda.time.DateTime;
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
+import org.joda.time.format.ISODateTimeFormat;
+
+/**
+ * Transforms {@link org.joda.time.DateTime} to {@link String Strings}.
+ */
+public class JodaDateSwap extends StringSwap<DateTime> {
+
+ DateTimeFormatter dateFormatter;
+
+ /**
+ * Constructor.
+ */
+ public JodaDateSwap() {
+ dateFormatter = ISODateTimeFormat.dateTime();
+ }
+
+ @Override /* PojoSwap */
+ public String swap(BeanSession session, DateTime o) {
+ DateTimeFormatter dateFormatter = this.dateFormatter;
+ if( StringUtils.isNotBlank(session.getProperty("format"))) {
+ dateFormatter = DateTimeFormat.forPattern(session.getProperty("format"));
+ }
+ return dateFormatter.print(o);
+ }
+
+ @Override /* PojoSwap */
+ public DateTime unswap(BeanSession session, String f, ClassMeta<?> hint) throws ParseException {
+ DateTimeFormatter dateFormatter = this.dateFormatter;
+ if( StringUtils.isNotBlank(session.getProperty("format"))) {
+ dateFormatter = DateTimeFormat.forPattern(session.getProperty("format"));
+ }
+ return dateFormatter.parseDateTime(f);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/c8e56dc5/streams-pojo/src/main/java/org/apache/streams/juneau/ListSerializer.java
----------------------------------------------------------------------
diff --git a/streams-pojo/src/main/java/org/apache/streams/juneau/ListSerializer.java b/streams-pojo/src/main/java/org/apache/streams/juneau/ListSerializer.java
new file mode 100644
index 0000000..b85e49f
--- /dev/null
+++ b/streams-pojo/src/main/java/org/apache/streams/juneau/ListSerializer.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.streams.juneau;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.juneau.serializer.PartSerializer;
+import org.apache.juneau.serializer.PartType;
+
+import java.util.List;
+
+/**
+ * Serializes {@link java.util.List} as appropriately delimited {@link String Strings}.
+ */
+public class ListSerializer implements PartSerializer {
+
+ @Override
+ public String serialize(PartType type, Object value) {
+ List list = (List) value;
+ if( list.size() > 0 ) {
+ if( type.equals(PartType.QUERY)) {
+ return StringUtils.join(list, ",");
+ } else if( type.equals(PartType.PATH)) {
+ return StringUtils.join(list, "/");
+ }
+ }
+ return null;
+ }
+}