You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@joshua.apache.org by mj...@apache.org on 2016/05/31 16:54:57 UTC

[1/9] incubator-joshua git commit: move dockerfile so all deployment stuff lives in the same place

Repository: incubator-joshua
Updated Branches:
  refs/heads/JOSHUA-252 91400fe2a -> 7cadd046b


move dockerfile so all deployment stuff lives in the same place


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/def263c3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/def263c3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/def263c3

Branch: refs/heads/JOSHUA-252
Commit: def263c3ac43916614d52db8d0c8e3b58e0d35bc
Parents: d0f7b53
Author: Tom Barber <to...@analytical-labs.com>
Authored: Tue May 24 23:20:23 2016 +0200
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Tue May 24 23:20:23 2016 +0200

----------------------------------------------------------------------
 distribution/docker/Dockerfile | 39 +++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/def263c3/distribution/docker/Dockerfile
----------------------------------------------------------------------
diff --git a/distribution/docker/Dockerfile b/distribution/docker/Dockerfile
new file mode 100644
index 0000000..fe875a4
--- /dev/null
+++ b/distribution/docker/Dockerfile
@@ -0,0 +1,39 @@
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+
+FROM java:latest
+
+RUN apt-get update && \
+    apt-get install -y \
+            ant \
+            cmake \
+            g++ \
+            libboost-all-dev \
+            libz-dev \
+            make
+
+
+RUN mkdir /opt/joshua
+WORKDIR /opt/joshua
+
+# set environment variables
+ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
+ENV JOSHUA=/opt/joshua
+
+
+# copy Joshua source code to image
+COPY . $JOSHUA
+
+RUN ant


[7/9] incubator-joshua git commit: Merge branch 'master' of https://github.com/buggtb/incubator-joshua into JOSHUA-PR16

Posted by mj...@apache.org.
Merge branch 'master' of https://github.com/buggtb/incubator-joshua into JOSHUA-PR16


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/93a6f6ec
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/93a6f6ec
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/93a6f6ec

Branch: refs/heads/JOSHUA-252
Commit: 93a6f6ec4de9ac2ba27c4e5c2abf8a3a1ff66329
Parents: 91400fe 1ec7c92
Author: Matt Post <po...@cs.jhu.edu>
Authored: Tue May 31 12:53:38 2016 -0400
Committer: Matt Post <po...@cs.jhu.edu>
Committed: Tue May 31 12:53:38 2016 -0400

----------------------------------------------------------------------
 distribution/docker/Dockerfile                  |  39 +
 distribution/joshua-full/README.md              |  42 +
 distribution/joshua-full/actions.yaml           |  30 +
 .../joshua-full/actions/add-language-pack       |  36 +
 .../joshua-full/actions/remove-language-pack    |  24 +
 distribution/joshua-full/config.yaml            |  26 +
 distribution/joshua-full/copyright              |  16 +
 distribution/joshua-full/icon.svg               | 800 +++++++++++++++++++
 distribution/joshua-full/layer.yaml             |  20 +
 distribution/joshua-full/metadata.yaml          |  30 +
 .../joshua-full/reactive/joshua_runtime.py      |  56 ++
 distribution/joshua-full/tests/00-setup         |  21 +
 distribution/joshua-full/tests/10-deploy        |  47 ++
 distribution/joshua-runtime/README.md           |  42 +
 distribution/joshua-runtime/actions.yaml        |  29 +
 .../joshua-runtime/actions/add-language-pack    |  36 +
 .../joshua-runtime/actions/remove-language-pack |  24 +
 distribution/joshua-runtime/config.yaml         |  26 +
 distribution/joshua-runtime/copyright           |  16 +
 distribution/joshua-runtime/icon.svg            | 800 +++++++++++++++++++
 distribution/joshua-runtime/layer.yaml          |  19 +
 distribution/joshua-runtime/metadata.yaml       |  30 +
 .../joshua-runtime/reactive/joshua_runtime.py   |  71 ++
 distribution/joshua-runtime/tests/00-setup      |  21 +
 distribution/joshua-runtime/tests/10-deploy     |  47 ++
 docker/Dockerfile                               |  39 -
 26 files changed, 2348 insertions(+), 39 deletions(-)
----------------------------------------------------------------------



[2/9] incubator-joshua git commit: joshua runtime juju charm

Posted by mj...@apache.org.
joshua runtime juju charm


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/7d116e56
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/7d116e56
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/7d116e56

Branch: refs/heads/JOSHUA-252
Commit: 7d116e56de42e7c620f43f6466306cbd36f13ce0
Parents: def263c
Author: Tom Barber <to...@analytical-labs.com>
Authored: Tue May 24 23:20:36 2016 +0200
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Tue May 24 23:20:36 2016 +0200

----------------------------------------------------------------------
 Dockerfile                                      |  39 -
 distribution/joshua-runtime/README.md           |  42 +
 distribution/joshua-runtime/actions.yaml        |  29 +
 .../joshua-runtime/actions/add-language-pack    |  29 +
 .../joshua-runtime/actions/remove-language-pack |  24 +
 distribution/joshua-runtime/config.yaml         |  26 +
 distribution/joshua-runtime/copyright           |  16 +
 distribution/joshua-runtime/icon.svg            | 800 +++++++++++++++++++
 distribution/joshua-runtime/layer.yaml          |  19 +
 distribution/joshua-runtime/metadata.yaml       |  35 +
 .../joshua-runtime/reactive/joshua_runtime.py   |  71 ++
 distribution/joshua-runtime/tests/00-setup      |  21 +
 distribution/joshua-runtime/tests/10-deploy     |  47 ++
 13 files changed, 1159 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/Dockerfile
----------------------------------------------------------------------
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index fe875a4..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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 with
-# the License.  You may obtain a copy of the License at
-#
-#     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.
-
-FROM java:latest
-
-RUN apt-get update && \
-    apt-get install -y \
-            ant \
-            cmake \
-            g++ \
-            libboost-all-dev \
-            libz-dev \
-            make
-
-
-RUN mkdir /opt/joshua
-WORKDIR /opt/joshua
-
-# set environment variables
-ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
-ENV JOSHUA=/opt/joshua
-
-
-# copy Joshua source code to image
-COPY . $JOSHUA
-
-RUN ant

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/README.md
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/README.md b/distribution/joshua-runtime/README.md
new file mode 100644
index 0000000..07ed4c0
--- /dev/null
+++ b/distribution/joshua-runtime/README.md
@@ -0,0 +1,42 @@
+# Overview
+
+Joshua is an open-source statistical machine translation decoder for phrase-based 
+(new in 6.0), hierarchical, and syntax-based machine translation, written in Java. 
+It is developed at the Human Language Technology Center of Excellence at Johns 
+Hopkins University.
+
+This charm provides the runtime environment which allows users to deploy language
+packs to the server and run translations against them.
+
+There are a number of language packs available and developers are able to build
+their own using the joshua-full charm available in the charm store.
+
+
+# Usage
+
+To deploy joshua-runtime:
+
+   juju deploy cs:~apachefoundation/joshua-runtime
+
+## Known Limitations and Issues
+
+Currently Joshua only supports a single language pack deployed against it at once.
+
+# Configuration
+
+Port: specify the port you want the Joshua http interface to run on for remote
+calls to the Joshua server.
+
+Memory: amount of RAM the server should consume. 
+
+# Contact Information
+
+To contact the authors swing by the dev mailing list:
+dev@joshua.incubator.apache.org
+
+## Apache Joshua
+
+  - http://joshua.incubator.apache.org
+  - https://issues.apache.org/jira/browse/joshua
+  - dev@joshua.incubator.apache.org
+

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/actions.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/actions.yaml b/distribution/joshua-runtime/actions.yaml
new file mode 100644
index 0000000..3b4e645
--- /dev/null
+++ b/distribution/joshua-runtime/actions.yaml
@@ -0,0 +1,29 @@
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+add-language-pack:
+    description: install a language pack
+    params:
+         name:
+             type: string
+             description: name of the pack to install
+#translate-phrase:
+#    description: translate a phrase
+#    params:
+#         phrase:
+#               type: string
+#               description: the phrase you would like joshua to translate

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/actions/add-language-pack
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/actions/add-language-pack b/distribution/joshua-runtime/actions/add-language-pack
new file mode 100755
index 0000000..2bb5803
--- /dev/null
+++ b/distribution/joshua-runtime/actions/add-language-pack
@@ -0,0 +1,29 @@
+#!/bin/bash
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+set -ex
+
+pack_name=`action-get name`
+
+wget http://cs.jhu.edu/~post/language-packs/language-pack-es-en-phrase-2015-03-06.tgz -O /tmp/lpack.tgz
+
+tar xvfz /tmp/lpack.tgz -C /opt/
+rm -rf /opt/language-pack
+mv /opt/language-pack-es-en-phrase-2015-03-06 /opt/language-pack/
+charms.reactive set_state languagepack.installed
+hooks/update-status

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/actions/remove-language-pack
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/actions/remove-language-pack b/distribution/joshua-runtime/actions/remove-language-pack
new file mode 100644
index 0000000..a94ba18
--- /dev/null
+++ b/distribution/joshua-runtime/actions/remove-language-pack
@@ -0,0 +1,24 @@
+#!/bin/bash
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+set -ex  
+  
+rm -rf /opt/language-pack 
+charms.reactive remove_state languagepack.installed
+hooks/update-status
+

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/config.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/config.yaml b/distribution/joshua-runtime/config.yaml
new file mode 100644
index 0000000..e5e9e89
--- /dev/null
+++ b/distribution/joshua-runtime/config.yaml
@@ -0,0 +1,26 @@
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+options:
+  port:
+    type: string
+    default: "5432"
+    description: "Port server runs on"
+  memory:
+    type: string
+    default: "4g"
+    description: "RAM limit 2g,4g etc"

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/copyright
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/copyright b/distribution/joshua-runtime/copyright
new file mode 100755
index 0000000..e900b97
--- /dev/null
+++ b/distribution/joshua-runtime/copyright
@@ -0,0 +1,16 @@
+Format: http://dep.debian.net/deps/dep5/
+
+Files: *
+Copyright: Copyright 2015, Canonical Ltd., All Rights Reserved.
+License: Apache License 2.0
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ .
+     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.

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/icon.svg
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/icon.svg b/distribution/joshua-runtime/icon.svg
new file mode 100644
index 0000000..dc17062
--- /dev/null
+++ b/distribution/joshua-runtime/icon.svg
@@ -0,0 +1,800 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="96"
+   height="96"
+   id="svg6517"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="icon.svg">
+  <defs
+     id="defs6519">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#Background"
+       id="linearGradient6461"
+       gradientUnits="userSpaceOnUse"
+       x1="0"
+       y1="970.29498"
+       x2="144"
+       y2="970.29498"
+       gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />
+    <linearGradient
+       id="Background">
+      <stop
+         id="stop4178"
+         offset="0"
+         style="stop-color:#b8b8b8;stop-opacity:1" />
+      <stop
+         id="stop4180"
+         offset="1"
+         style="stop-color:#c9c9c9;stop-opacity:1" />
+    </linearGradient>
+    <filter
+       style="color-interpolation-filters:sRGB;"
+       inkscape:label="Inner Shadow"
+       id="filter1121">
+      <feFlood
+         flood-opacity="0.59999999999999998"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood1123" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="out"
+         result="composite1"
+         id="feComposite1125" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1"
+         result="blur"
+         id="feGaussianBlur1127" />
+      <feOffset
+         dx="0"
+         dy="2"
+         result="offset"
+         id="feOffset1129" />
+      <feComposite
+         in="offset"
+         in2="SourceGraphic"
+         operator="atop"
+         result="composite2"
+         id="feComposite1131" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB;"
+       inkscape:label="Drop Shadow"
+       id="filter950">
+      <feFlood
+         flood-opacity="0.25"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood952" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite954" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1"
+         result="blur"
+         id="feGaussianBlur956" />
+      <feOffset
+         dx="0"
+         dy="1"
+         result="offset"
+         id="feOffset958" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite960" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath873">
+      <g
+         transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"
+         id="g875"
+         inkscape:label="Layer 1"
+         style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">
+        <path
+           style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"
+           d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"
+           id="path877"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="sssssssss" />
+      </g>
+    </clipPath>
+    <filter
+       inkscape:collect="always"
+       id="filter891"
+       inkscape:label="Badge Shadow">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.71999962"
+         id="feGaussianBlur893" />
+    </filter>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4.0745362"
+     inkscape:cx="18.514671"
+     inkscape:cy="49.018169"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="796"
+     inkscape:window-height="861"
+     inkscape:window-x="800"
+     inkscape:window-y="37"
+     inkscape:window-maximized="0"
+     showborder="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:showpageshadow="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid821" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="16,48"
+       id="guide823" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="64,80"
+       id="guide825" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="80,40"
+       id="guide827" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="64,16"
+       id="guide829" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata6522">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="BACKGROUND"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(268,-635.29076)"
+     style="display:inline">
+    <path
+       style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"
+       d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"
+       id="path6455"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="sssssssss" />
+    <image
+       y="656.29077"
+       x="-248"
+       id="image3538"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAACBCAYAAAAMl2JTAAABKWlDQ1BJQ0MgUHJvZmlsZQAAGJVj
+YGAycHRxcmUSYGDIzSspCnJ3UoiIjFJgv8DAwcDNIMxgzGCdmFxc4BgQ4MMABHn5eakMGODbNQZG
+EH1ZF2QWpjxewJVcUFQCpP8AsVFKanEyAwOjAZCdXV5SABRnnANkiyRlg9kbQOyikCBnIPsIkM2X
+DmFfAbGTIOwnIHYR0BNA9heQ+nQwm4kDbA6ELQNil6RWgOxlcM4vqCzKTM8oUTAyMDBQcEzJT0pV
+CK4sLknNLVbwzEvOLyrIL0osSU0BqoW4DwwEIQpBIaZhaGlpoUmivwkCUDxAWJ8DweHLKHYGIYYA
+yaVFZVAmI5MxYT7CjDkSDAz+SxkYWP4gxEx6GRgW6DAw8E9FiKkZMjAI6DMw7JsDAMOvUG/s7Vwn
+AAAACXBIWXMAABcSAAAXEgFnn9JSAAABZ2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1w
+bWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgog
+ICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5
+bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAg
+ICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eG1w
+OkNyZWF0b3JUb29sPkFjb3JuIHZlcnNpb24gMy4yLjI8L3htcDpDcmVhdG9yVG9vbD4KICAgICAg
+PC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CoEEZi4AACAASURB
+VHic7L13tNzXdd/7Ob8685t+Z+b2CuCiECRBgp0Ui0hZJC3Kkiw7TpxoWYrtuCh2Xvyy/Lyy/Bzl
+vcSOrJcXW8t5jhXLTbJsWZYtmRIl0ewdJEEQvdze753e59fP+2MuQEisICmXtbKxAFzMb36nfs8+
+e+/z3QdCSsn/kv8l2t93A95FiVWrvf5s1IpffuKpM3d37AhCNQmFJEQiUAAQ9MAfAgJQRMjIrjxC
+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
+"
+       preserveAspectRatio="none"
+       height="57.400013"
+       width="58" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="PLACE YOUR PICTOGRAM HERE"
+     style="display:inline" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="BADGE"
+     style="display:none"
+     sodipodi:insensitive="true">
+    <g
+       style="display:inline"
+       transform="translate(-340.00001,-581)"
+       id="g4394"
+       clip-path="none">
+      <g
+         id="g855">
+        <g
+           inkscape:groupmode="maskhelper"
+           id="g870"
+           clip-path="url(#clipPath873)"
+           style="opacity:0.6;filter:url(#filter891)">
+          <path
+             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"
+             d="m 264,552.36218 a 12,12 0 0 1 -12,12 12,12 0 0 1 -12,-12 12,12 0 0 1 12,-12 12,12 0 0 1 12,12 z"
+             sodipodi:ry="12"
+             sodipodi:rx="12"
+             sodipodi:cy="552.36218"
+             sodipodi:cx="252"
+             id="path844"
+             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             sodipodi:type="arc" />
+        </g>
+        <g
+           id="g862">
+          <path
+             sodipodi:type="arc"
+             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             id="path4398"
+             sodipodi:cx="252"
+             sodipodi:cy="552.36218"
+             sodipodi:rx="12"
+             sodipodi:ry="12"
+             d="m 264,552.36218 a 12,12 0 0 1 -12,12 12,12 0 0 1 -12,-12 12,12 0 0 1 12,-12 12,12 0 0 1 12,12 z"
+             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />
+          <path
+             transform="matrix(1.25,0,0,1.25,33,-100.45273)"
+             d="m 264,552.36218 a 12,12 0 0 1 -12,12 12,12 0 0 1 -12,-12 12,12 0 0 1 12,-12 12,12 0 0 1 12,12 z"
+             sodipodi:ry="12"
+             sodipodi:rx="12"
+             sodipodi:cy="552.36218"
+             sodipodi:cx="252"
+             id="path4400"
+             style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             sodipodi:type="arc" />
+          <path
+             sodipodi:type="star"
+             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             id="path4459"
+             sodipodi:sides="5"
+             sodipodi:cx="666.19574"
+             sodipodi:cy="589.50385"
+             sodipodi:r1="7.2431178"
+             sodipodi:r2="4.3458705"
+             sodipodi:arg1="1.0471976"
+             sodipodi:arg2="1.6755161"
+             inkscape:flatsided="false"
+             inkscape:rounded="0.1"
+             inkscape:randomized="0"
+             d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 -0.18379,0.41279 0.0427,4.27917 -0.34859,4.5051 z"
+             transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/layer.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/layer.yaml b/distribution/joshua-runtime/layer.yaml
new file mode 100644
index 0000000..482fed0
--- /dev/null
+++ b/distribution/joshua-runtime/layer.yaml
@@ -0,0 +1,19 @@
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+includes: ['layer:basic', 'interface:java']
+repo: https://github.com/buggtb/incubator-joshua.git

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/metadata.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/metadata.yaml b/distribution/joshua-runtime/metadata.yaml
new file mode 100644
index 0000000..d173ce2
--- /dev/null
+++ b/distribution/joshua-runtime/metadata.yaml
@@ -0,0 +1,35 @@
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+name: joshua-runtime
+summary: Joshua Runtime environment for language translation.
+maintainer: Joshua Project <de...@joshua.incubator.apache.org>
+description: |
+  Joshua is an open-source statistical machine translation decoder |
+  for phrase-based (new in 6.0), hierarchical, and syntax-based    |
+  machine translation, written in Java. It is developed at the     |
+  Human Language Technology Center of Excellence at Johns Hopkins  |
+  University. Currently under incubation at the ASF.
+tags:
+  - big_data
+series:
+  - trusty
+  - xenial
+provides:
+  java:
+    interface: java
+    scope: container

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/reactive/joshua_runtime.py
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/reactive/joshua_runtime.py b/distribution/joshua-runtime/reactive/joshua_runtime.py
new file mode 100644
index 0000000..514af0e
--- /dev/null
+++ b/distribution/joshua-runtime/reactive/joshua_runtime.py
@@ -0,0 +1,71 @@
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+from charms.reactive import when, when_not, set_state
+from charmhelpers.fetch.archiveurl import ArchiveUrlFetchHandler
+from charmhelpers.core import hookenv
+from subprocess import check_call, CalledProcessError, call, check_output, Popen
+from charmhelpers.core.hookenv import status_set, log
+from charms.reactive.helpers import data_changed
+import subprocess
+import os
+
+au = ArchiveUrlFetchHandler()
+os.environ["JOSHUA"] = "/opt/joshua-runtime-6.0.5/"
+port =  hookenv.config('port')
+
+@when_not('joshua-runtime.installed')
+def install_joshua_runtime():
+    status_set('maintenance', 'Joshua')
+    download()
+    unzip()
+    set_state('joshua-runtime.installed')
+
+def download():
+    au.download("http://community.meteorite.bi/joshua-runtime.tgz", "/tmp/joshua-runtime.tgz")
+
+def unzip():
+    check_output(['tar', 'xvfz', "/tmp/joshua-runtime.tgz", '-C', '/opt'])
+
+@when_not('java.ready')
+def update_java_status():
+    status_set('blocked', 'Waiting for Java.')
+
+@when_not('languagepack.installed')
+def update_lp_status():
+    status_set('blocked', 'Waiting for Language Pack')
+
+@when('java.ready')
+@when('joshua-runtime.installed')
+@when('languagepack.installed')
+def start_joshua(java):
+    if (data_changed('port', hookenv.config())):
+        port = hookenv.config('port')
+        call(['pkill', '-f', 'joshua.decoder.JoshuaDecoder'])
+    try:
+        check_call(['pgrep', '-f', 'joshua.decoder.JoshuaDecoder'])
+    except CalledProcessError:
+        log("Starting:"+ hookenv.config('port'))
+        Popen(['nohup /opt/joshua-runtime-6.0.5/bin/joshua-decoder -m 4g -c joshua.config -server-port '+hookenv.config('port')+' $* &'], cwd='/opt/language-pack', env=dict(os.environ, JOSHUA="/opt/joshua-runtime-6.0.5/"), stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
+        hookenv.open_port(hookenv.config('port'))
+    status_set('active', 'Joshua running')
+
+@when('joshua-runtime.install')
+@when_not('languagepack.installed')
+def stop_joshua():
+    call(['pkill', '-f', 'joshua.decoder.JoshuaDecoder'])
+    status_set('blocked', 'Waiting for language pack')

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/tests/00-setup
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/tests/00-setup b/distribution/joshua-runtime/tests/00-setup
new file mode 100755
index 0000000..9fddd67
--- /dev/null
+++ b/distribution/joshua-runtime/tests/00-setup
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+sudo add-apt-repository ppa:juju/stable -y
+sudo apt-get update
+sudo apt-get install amulet python-requests -y

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/7d116e56/distribution/joshua-runtime/tests/10-deploy
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/tests/10-deploy b/distribution/joshua-runtime/tests/10-deploy
new file mode 100755
index 0000000..dbbf51d
--- /dev/null
+++ b/distribution/joshua-runtime/tests/10-deploy
@@ -0,0 +1,47 @@
+#!/usr/bin/python3
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+import amulet
+import requests
+import unittest
+
+
+class TestCharm(unittest.TestCase):
+    def setUp(self):
+        self.d = amulet.Deployment()
+
+        self.d.add('joshua-runtime')
+        self.d.expose('joshua-runtime')
+
+        self.d.setup(timeout=900)
+        self.d.sentry.wait()
+
+        self.unit = self.d.sentry['joshua-runtime'][0]
+
+    def test_service(self):
+        # test we can access over http
+        page = requests.get('http://{}'.format(self.unit.info['public-address']))
+        self.assertEqual(page.status_code, 200)
+        # Now you can use self.d.sentry[SERVICE][UNIT] to address each of the units and perform
+        # more in-depth steps. Each self.d.sentry[SERVICE][UNIT] has the following methods:
+        # - .info - An array of the information of that unit from Juju
+        # - .file(PATH) - Get the details of a file on that unit
+        # - .file_contents(PATH) - Get plain text output of PATH file from that unit
+        # - .directory(PATH) - Get details of directory
+        # - .directory_contents(PATH) - List files and folders in PATH on that unit
+        # - .relation(relation, service:rel) - Get relation data from return service


[4/9] incubator-joshua git commit: fix metadata

Posted by mj...@apache.org.
fix metadata


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/cb8b555d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/cb8b555d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/cb8b555d

Branch: refs/heads/JOSHUA-252
Commit: cb8b555deadcfbecd88de964b1283a2cf8287c90
Parents: ecf5ee3
Author: Tom Barber <to...@analytical-labs.com>
Authored: Tue May 24 23:29:40 2016 +0200
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Tue May 24 23:29:40 2016 +0200

----------------------------------------------------------------------
 distribution/joshua-full/metadata.yaml | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/cb8b555d/distribution/joshua-full/metadata.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/metadata.yaml b/distribution/joshua-full/metadata.yaml
index 903d179..085c0ec 100644
--- a/distribution/joshua-full/metadata.yaml
+++ b/distribution/joshua-full/metadata.yaml
@@ -16,16 +16,21 @@
 #
 
 name: joshua-full
-summary: <Fill in summary here>
-maintainer: bugg <bu...@tomsdevbox>
+summary: Joshua Runtime environment for language translation.
+maintainer: Joshua Project <de...@joshua.incubator.apache.org>
 description: |
-  <Multi-line description here>
+  Joshua is an open-source statistical machine translation decoder |
+  for phrase-based (new in 6.0), hierarchical, and syntax-based    |
+  machine translation, written in Java. It is developed at the     |
+  Human Language Technology Center of Excellence at Johns Hopkins  |
+  University. Currently under incubation at the ASF.
 tags:
   # Replace "misc" with one or more whitelisted tags from this list:
   # https://jujucharms.com/docs/stable/authors-charm-metadata
-  - misc
+  - big_data
 series:
   - trusty
+  - xenial
 provides:
   java:
     interface: java


[5/9] incubator-joshua git commit: update layer

Posted by mj...@apache.org.
update layer


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/e67a9e44
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/e67a9e44
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/e67a9e44

Branch: refs/heads/JOSHUA-252
Commit: e67a9e44764c210427e875da7b9ca2d6f51263b6
Parents: cb8b555
Author: Tom Barber <to...@analytical-labs.com>
Authored: Wed May 25 14:57:38 2016 +0200
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Wed May 25 14:57:38 2016 +0200

----------------------------------------------------------------------
 distribution/joshua-full/layer.yaml | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/e67a9e44/distribution/joshua-full/layer.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/layer.yaml b/distribution/joshua-full/layer.yaml
index 2d340e6..2c76838 100644
--- a/distribution/joshua-full/layer.yaml
+++ b/distribution/joshua-full/layer.yaml
@@ -17,3 +17,4 @@
 #
 
 includes: ['layer:basic', 'interface:java', 'layer:hadoop-client']
+repo: https://github.com/buggtb/incubator-joshua.git


[6/9] incubator-joshua git commit: fix language pack code

Posted by mj...@apache.org.
fix language pack code


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/1ec7c925
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/1ec7c925
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/1ec7c925

Branch: refs/heads/JOSHUA-252
Commit: 1ec7c9257d410f3ac4acc1b53270ee98b6ef2edc
Parents: e67a9e4
Author: Tom Barber <to...@analytical-labs.com>
Authored: Wed May 25 22:51:14 2016 +0200
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Wed May 25 22:51:14 2016 +0200

----------------------------------------------------------------------
 distribution/joshua-full/README.md                    |  2 +-
 distribution/joshua-full/actions/add-language-pack    | 13 ++++++++++---
 distribution/joshua-full/metadata.yaml                |  9 +--------
 distribution/joshua-runtime/README.md                 |  2 +-
 distribution/joshua-runtime/actions/add-language-pack | 11 +++++++++--
 distribution/joshua-runtime/metadata.yaml             |  7 +------
 6 files changed, 23 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/1ec7c925/distribution/joshua-full/README.md
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/README.md b/distribution/joshua-full/README.md
index 8971b5a..c98fdee 100644
--- a/distribution/joshua-full/README.md
+++ b/distribution/joshua-full/README.md
@@ -16,7 +16,7 @@ cluster for the Thrax execution
 
 To deploy joshua-full:
 
-   juju deploy cs:~apachefoundation/joshua-full
+   juju deploy cs:~apachesoftwarefoundation/joshua-full
 
 ## Known Limitations and Issues
 

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/1ec7c925/distribution/joshua-full/actions/add-language-pack
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/actions/add-language-pack b/distribution/joshua-full/actions/add-language-pack
index 2bb5803..50f305e 100755
--- a/distribution/joshua-full/actions/add-language-pack
+++ b/distribution/joshua-full/actions/add-language-pack
@@ -20,10 +20,17 @@ set -ex
 
 pack_name=`action-get name`
 
+if [ "$pack_name" = "es-en" ]; then
 wget http://cs.jhu.edu/~post/language-packs/language-pack-es-en-phrase-2015-03-06.tgz -O /tmp/lpack.tgz
+else if [ "$pack_name" = "ar-en" ]; then
+wget http://cs.jhu.edu/~post/language-packs/language-pack-ar-en-phrase-2015-03-18.tgz -O /tmp/lpack.tgz
+else if [ "$pack_name" = "zh-en" ]; then
+wget http://cs.jhu.edu/~post/language-packs/zh-en-hiero-2016-01-13.tgz -O /tmp/lpack.tgz
+fi
 
-tar xvfz /tmp/lpack.tgz -C /opt/
-rm -rf /opt/language-pack
-mv /opt/language-pack-es-en-phrase-2015-03-06 /opt/language-pack/
+
+mkdir /opt/language-pack
+tar xvfz /tmp/lpack.tgz -C /opt/language-pack  --strip-components=1
+rm -rf /tmp/lpack.tgz
 charms.reactive set_state languagepack.installed
 hooks/update-status

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/1ec7c925/distribution/joshua-full/metadata.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/metadata.yaml b/distribution/joshua-full/metadata.yaml
index 085c0ec..e6f3ca6 100644
--- a/distribution/joshua-full/metadata.yaml
+++ b/distribution/joshua-full/metadata.yaml
@@ -18,15 +18,8 @@
 name: joshua-full
 summary: Joshua Runtime environment for language translation.
 maintainer: Joshua Project <de...@joshua.incubator.apache.org>
-description: |
-  Joshua is an open-source statistical machine translation decoder |
-  for phrase-based (new in 6.0), hierarchical, and syntax-based    |
-  machine translation, written in Java. It is developed at the     |
-  Human Language Technology Center of Excellence at Johns Hopkins  |
-  University. Currently under incubation at the ASF.
+description: Joshua is an open-source statistical machine translation decoder for phrase-based (new in 6.0), hierarchical, and syntax-based machine translation, written in Java. It is developed at the Human Language Technology Center of Excellence at Johns Hopkins University. Currently under incubation at the ASF.
 tags:
-  # Replace "misc" with one or more whitelisted tags from this list:
-  # https://jujucharms.com/docs/stable/authors-charm-metadata
   - big_data
 series:
   - trusty

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/1ec7c925/distribution/joshua-runtime/README.md
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/README.md b/distribution/joshua-runtime/README.md
index 07ed4c0..a92af59 100644
--- a/distribution/joshua-runtime/README.md
+++ b/distribution/joshua-runtime/README.md
@@ -16,7 +16,7 @@ their own using the joshua-full charm available in the charm store.
 
 To deploy joshua-runtime:
 
-   juju deploy cs:~apachefoundation/joshua-runtime
+   juju deploy cs:~apachesoftwarefoundation/joshua-runtime
 
 ## Known Limitations and Issues
 

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/1ec7c925/distribution/joshua-runtime/actions/add-language-pack
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/actions/add-language-pack b/distribution/joshua-runtime/actions/add-language-pack
index 2bb5803..2dbeb28 100755
--- a/distribution/joshua-runtime/actions/add-language-pack
+++ b/distribution/joshua-runtime/actions/add-language-pack
@@ -20,10 +20,17 @@ set -ex
 
 pack_name=`action-get name`
 
+if [ "$pack_name" = "es-en" ]; then
 wget http://cs.jhu.edu/~post/language-packs/language-pack-es-en-phrase-2015-03-06.tgz -O /tmp/lpack.tgz
+elif [ "$pack_name" = "ar-en" ]; then
+wget http://cs.jhu.edu/~post/language-packs/language-pack-ar-en-phrase-2015-03-18.tgz -O /tmp/lpack.tgz
+elif [ "$pack_name" = "zh-en" ]; then
+wget http://cs.jhu.edu/~post/language-packs/zh-en-hiero-2016-01-13.tgz -O /tmp/lpack.tgz
+fi
 
-tar xvfz /tmp/lpack.tgz -C /opt/
 rm -rf /opt/language-pack
-mv /opt/language-pack-es-en-phrase-2015-03-06 /opt/language-pack/
+mkdir /opt/language-pack
+tar xvfz /tmp/lpack.tgz -C /opt/language-pack  --strip-components=1
+rm -rf /tmp/lpack.tgz
 charms.reactive set_state languagepack.installed
 hooks/update-status

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/1ec7c925/distribution/joshua-runtime/metadata.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-runtime/metadata.yaml b/distribution/joshua-runtime/metadata.yaml
index d173ce2..5f34d1a 100644
--- a/distribution/joshua-runtime/metadata.yaml
+++ b/distribution/joshua-runtime/metadata.yaml
@@ -18,12 +18,7 @@
 name: joshua-runtime
 summary: Joshua Runtime environment for language translation.
 maintainer: Joshua Project <de...@joshua.incubator.apache.org>
-description: |
-  Joshua is an open-source statistical machine translation decoder |
-  for phrase-based (new in 6.0), hierarchical, and syntax-based    |
-  machine translation, written in Java. It is developed at the     |
-  Human Language Technology Center of Excellence at Johns Hopkins  |
-  University. Currently under incubation at the ASF.
+description: Joshua is an open-source statistical machine translation decoder for phrase-based (new in 6.0), hierarchical, and syntax-based  machine translation, written in Java. It is developed at the Human Language Technology Center of Excellence at Johns Hopkins  University. Currently under incubation at the ASF.
 tags:
   - big_data
 series:


[3/9] incubator-joshua git commit: Joshua Full charm

Posted by mj...@apache.org.
Joshua Full charm


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/ecf5ee3b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/ecf5ee3b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/ecf5ee3b

Branch: refs/heads/JOSHUA-252
Commit: ecf5ee3b98ecd91d8afc15fc8c8a411627d7cb6b
Parents: 7d116e5
Author: Tom Barber <to...@analytical-labs.com>
Authored: Tue May 24 23:27:48 2016 +0200
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Tue May 24 23:27:48 2016 +0200

----------------------------------------------------------------------
 distribution/joshua-full/README.md              |  42 +
 distribution/joshua-full/actions.yaml           |  30 +
 .../joshua-full/actions/add-language-pack       |  29 +
 .../joshua-full/actions/remove-language-pack    |  24 +
 distribution/joshua-full/config.yaml            |  26 +
 distribution/joshua-full/copyright              |  16 +
 distribution/joshua-full/icon.svg               | 800 +++++++++++++++++++
 distribution/joshua-full/layer.yaml             |  19 +
 distribution/joshua-full/metadata.yaml          |  32 +
 .../joshua-full/reactive/joshua_runtime.py      |  56 ++
 distribution/joshua-full/tests/00-setup         |  21 +
 distribution/joshua-full/tests/10-deploy        |  47 ++
 12 files changed, 1142 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/README.md
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/README.md b/distribution/joshua-full/README.md
new file mode 100644
index 0000000..8971b5a
--- /dev/null
+++ b/distribution/joshua-full/README.md
@@ -0,0 +1,42 @@
+# Overview
+
+Joshua is an open-source statistical machine translation decoder for phrase-based 
+(new in 6.0), hierarchical, and syntax-based machine translation, written in Java. 
+It is developed at the Human Language Technology Center of Excellence at Johns 
+Hopkins University.
+
+This charm provides the full development environment which allows users to both build 
+and deploy language packs to the server and run translations against them.
+
+To build language packs it is advised you use this charm in conjunction with one of the
+Hadoop bundles available in the charm store to allow you to make use of a full Hadoop
+cluster for the Thrax execution
+
+# Usage
+
+To deploy joshua-full:
+
+   juju deploy cs:~apachefoundation/joshua-full
+
+## Known Limitations and Issues
+
+Currently Joshua only supports a single language pack deployed against it at once.
+
+# Configuration
+
+Port: specify the port you want the Joshua http interface to run on for remote
+calls to the Joshua server.
+
+Memory: amount of RAM the server should consume. 
+
+# Contact Information
+
+To contact the authors swing by the dev mailing list:
+dev@joshua.incubator.apache.org
+
+## Apache Joshua
+
+  - http://joshua.incubator.apache.org
+  - https://issues.apache.org/jira/browse/joshua
+  - dev@joshua.incubator.apache.org
+

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/actions.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/actions.yaml b/distribution/joshua-full/actions.yaml
new file mode 100644
index 0000000..cc2de4f
--- /dev/null
+++ b/distribution/joshua-full/actions.yaml
@@ -0,0 +1,30 @@
+#!/bin/bash
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+add-language-pack:
+    description: install a language pack
+    params:
+         name:
+             type: string
+             description: name of the pack to install
+#translate-phrase:
+#    description: translate a phrase
+#    params:
+#         phrase:
+#               type: string
+#               description: the phrase you would like joshua to translate

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/actions/add-language-pack
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/actions/add-language-pack b/distribution/joshua-full/actions/add-language-pack
new file mode 100755
index 0000000..2bb5803
--- /dev/null
+++ b/distribution/joshua-full/actions/add-language-pack
@@ -0,0 +1,29 @@
+#!/bin/bash
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+set -ex
+
+pack_name=`action-get name`
+
+wget http://cs.jhu.edu/~post/language-packs/language-pack-es-en-phrase-2015-03-06.tgz -O /tmp/lpack.tgz
+
+tar xvfz /tmp/lpack.tgz -C /opt/
+rm -rf /opt/language-pack
+mv /opt/language-pack-es-en-phrase-2015-03-06 /opt/language-pack/
+charms.reactive set_state languagepack.installed
+hooks/update-status

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/actions/remove-language-pack
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/actions/remove-language-pack b/distribution/joshua-full/actions/remove-language-pack
new file mode 100644
index 0000000..a94ba18
--- /dev/null
+++ b/distribution/joshua-full/actions/remove-language-pack
@@ -0,0 +1,24 @@
+#!/bin/bash
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+set -ex  
+  
+rm -rf /opt/language-pack 
+charms.reactive remove_state languagepack.installed
+hooks/update-status
+

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/config.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/config.yaml b/distribution/joshua-full/config.yaml
new file mode 100644
index 0000000..e5e9e89
--- /dev/null
+++ b/distribution/joshua-full/config.yaml
@@ -0,0 +1,26 @@
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+options:
+  port:
+    type: string
+    default: "5432"
+    description: "Port server runs on"
+  memory:
+    type: string
+    default: "4g"
+    description: "RAM limit 2g,4g etc"

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/copyright
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/copyright b/distribution/joshua-full/copyright
new file mode 100755
index 0000000..e900b97
--- /dev/null
+++ b/distribution/joshua-full/copyright
@@ -0,0 +1,16 @@
+Format: http://dep.debian.net/deps/dep5/
+
+Files: *
+Copyright: Copyright 2015, Canonical Ltd., All Rights Reserved.
+License: Apache License 2.0
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ .
+     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.

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/icon.svg
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/icon.svg b/distribution/joshua-full/icon.svg
new file mode 100644
index 0000000..dc17062
--- /dev/null
+++ b/distribution/joshua-full/icon.svg
@@ -0,0 +1,800 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="96"
+   height="96"
+   id="svg6517"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="icon.svg">
+  <defs
+     id="defs6519">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#Background"
+       id="linearGradient6461"
+       gradientUnits="userSpaceOnUse"
+       x1="0"
+       y1="970.29498"
+       x2="144"
+       y2="970.29498"
+       gradientTransform="matrix(0,-0.66666669,0.6660448,0,-866.25992,731.29077)" />
+    <linearGradient
+       id="Background">
+      <stop
+         id="stop4178"
+         offset="0"
+         style="stop-color:#b8b8b8;stop-opacity:1" />
+      <stop
+         id="stop4180"
+         offset="1"
+         style="stop-color:#c9c9c9;stop-opacity:1" />
+    </linearGradient>
+    <filter
+       style="color-interpolation-filters:sRGB;"
+       inkscape:label="Inner Shadow"
+       id="filter1121">
+      <feFlood
+         flood-opacity="0.59999999999999998"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood1123" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="out"
+         result="composite1"
+         id="feComposite1125" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1"
+         result="blur"
+         id="feGaussianBlur1127" />
+      <feOffset
+         dx="0"
+         dy="2"
+         result="offset"
+         id="feOffset1129" />
+      <feComposite
+         in="offset"
+         in2="SourceGraphic"
+         operator="atop"
+         result="composite2"
+         id="feComposite1131" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB;"
+       inkscape:label="Drop Shadow"
+       id="filter950">
+      <feFlood
+         flood-opacity="0.25"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood952" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite954" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1"
+         result="blur"
+         id="feGaussianBlur956" />
+      <feOffset
+         dx="0"
+         dy="1"
+         result="offset"
+         id="feOffset958" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite960" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath873">
+      <g
+         transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"
+         id="g875"
+         inkscape:label="Layer 1"
+         style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">
+        <path
+           style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"
+           d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"
+           id="path877"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="sssssssss" />
+      </g>
+    </clipPath>
+    <filter
+       inkscape:collect="always"
+       id="filter891"
+       inkscape:label="Badge Shadow">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.71999962"
+         id="feGaussianBlur893" />
+    </filter>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4.0745362"
+     inkscape:cx="18.514671"
+     inkscape:cy="49.018169"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="796"
+     inkscape:window-height="861"
+     inkscape:window-x="800"
+     inkscape:window-y="37"
+     inkscape:window-maximized="0"
+     showborder="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:showpageshadow="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid821" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="16,48"
+       id="guide823" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="64,80"
+       id="guide825" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="80,40"
+       id="guide827" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="64,16"
+       id="guide829" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata6522">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="BACKGROUND"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(268,-635.29076)"
+     style="display:inline">
+    <path
+       style="fill:url(#linearGradient6461);fill-opacity:1;stroke:none;display:inline;filter:url(#filter1121)"
+       d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"
+       id="path6455"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="sssssssss" />
+    <image
+       y="656.29077"
+       x="-248"
+       id="image3538"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAACBCAYAAAAMl2JTAAABKWlDQ1BJQ0MgUHJvZmlsZQAAGJVj
+YGAycHRxcmUSYGDIzSspCnJ3UoiIjFJgv8DAwcDNIMxgzGCdmFxc4BgQ4MMABHn5eakMGODbNQZG
+EH1ZF2QWpjxewJVcUFQCpP8AsVFKanEyAwOjAZCdXV5SABRnnANkiyRlg9kbQOyikCBnIPsIkM2X
+DmFfAbGTIOwnIHYR0BNA9heQ+nQwm4kDbA6ELQNil6RWgOxlcM4vqCzKTM8oUTAyMDBQcEzJT0pV
+CK4sLknNLVbwzEvOLyrIL0osSU0BqoW4DwwEIQpBIaZhaGlpoUmivwkCUDxAWJ8DweHLKHYGIYYA
+yaVFZVAmI5MxYT7CjDkSDAz+SxkYWP4gxEx6GRgW6DAw8E9FiKkZMjAI6DMw7JsDAMOvUG/s7Vwn
+AAAACXBIWXMAABcSAAAXEgFnn9JSAAABZ2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1w
+bWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgog
+ICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5
+bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAg
+ICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eG1w
+OkNyZWF0b3JUb29sPkFjb3JuIHZlcnNpb24gMy4yLjI8L3htcDpDcmVhdG9yVG9vbD4KICAgICAg
+PC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CoEEZi4AACAASURB
+VHic7L13tNzXdd/7Ob8685t+Z+b2CuCiECRBgp0Ui0hZJC3Kkiw7TpxoWYrtuCh2Xvyy/Lyy/Bzl
+vcSOrJcXW8t5jhXLTbJsWZYtmRIl0ewdJEEQvdze753e59fP+2MuQEisICmXtbKxAFzMb36nfs8+
+e+/z3QdCSsn/kv8l2t93A95FiVWrvf5s1IpffuKpM3d37AhCNQmFJEQiUAAQ9MAfAgJQRMjIrjxC
+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
+"
+       preserveAspectRatio="none"
+       height="57.400013"
+       width="58" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="PLACE YOUR PICTOGRAM HERE"
+     style="display:inline" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="BADGE"
+     style="display:none"
+     sodipodi:insensitive="true">
+    <g
+       style="display:inline"
+       transform="translate(-340.00001,-581)"
+       id="g4394"
+       clip-path="none">
+      <g
+         id="g855">
+        <g
+           inkscape:groupmode="maskhelper"
+           id="g870"
+           clip-path="url(#clipPath873)"
+           style="opacity:0.6;filter:url(#filter891)">
+          <path
+             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"
+             d="m 264,552.36218 a 12,12 0 0 1 -12,12 12,12 0 0 1 -12,-12 12,12 0 0 1 12,-12 12,12 0 0 1 12,12 z"
+             sodipodi:ry="12"
+             sodipodi:rx="12"
+             sodipodi:cy="552.36218"
+             sodipodi:cx="252"
+             id="path844"
+             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             sodipodi:type="arc" />
+        </g>
+        <g
+           id="g862">
+          <path
+             sodipodi:type="arc"
+             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             id="path4398"
+             sodipodi:cx="252"
+             sodipodi:cy="552.36218"
+             sodipodi:rx="12"
+             sodipodi:ry="12"
+             d="m 264,552.36218 a 12,12 0 0 1 -12,12 12,12 0 0 1 -12,-12 12,12 0 0 1 12,-12 12,12 0 0 1 12,12 z"
+             transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />
+          <path
+             transform="matrix(1.25,0,0,1.25,33,-100.45273)"
+             d="m 264,552.36218 a 12,12 0 0 1 -12,12 12,12 0 0 1 -12,-12 12,12 0 0 1 12,-12 12,12 0 0 1 12,12 z"
+             sodipodi:ry="12"
+             sodipodi:rx="12"
+             sodipodi:cy="552.36218"
+             sodipodi:cx="252"
+             id="path4400"
+             style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             sodipodi:type="arc" />
+          <path
+             sodipodi:type="star"
+             style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             id="path4459"
+             sodipodi:sides="5"
+             sodipodi:cx="666.19574"
+             sodipodi:cy="589.50385"
+             sodipodi:r1="7.2431178"
+             sodipodi:r2="4.3458705"
+             sodipodi:arg1="1.0471976"
+             sodipodi:arg2="1.6755161"
+             inkscape:flatsided="false"
+             inkscape:rounded="0.1"
+             inkscape:randomized="0"
+             d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 -0.18379,0.41279 0.0427,4.27917 -0.34859,4.5051 z"
+             transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/layer.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/layer.yaml b/distribution/joshua-full/layer.yaml
new file mode 100644
index 0000000..2d340e6
--- /dev/null
+++ b/distribution/joshua-full/layer.yaml
@@ -0,0 +1,19 @@
+#!/bin/bash
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+includes: ['layer:basic', 'interface:java', 'layer:hadoop-client']

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/metadata.yaml
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/metadata.yaml b/distribution/joshua-full/metadata.yaml
new file mode 100644
index 0000000..903d179
--- /dev/null
+++ b/distribution/joshua-full/metadata.yaml
@@ -0,0 +1,32 @@
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+name: joshua-full
+summary: <Fill in summary here>
+maintainer: bugg <bu...@tomsdevbox>
+description: |
+  <Multi-line description here>
+tags:
+  # Replace "misc" with one or more whitelisted tags from this list:
+  # https://jujucharms.com/docs/stable/authors-charm-metadata
+  - misc
+series:
+  - trusty
+provides:
+  java:
+    interface: java
+    scope: container

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/reactive/joshua_runtime.py
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/reactive/joshua_runtime.py b/distribution/joshua-full/reactive/joshua_runtime.py
new file mode 100644
index 0000000..9edf3c7
--- /dev/null
+++ b/distribution/joshua-full/reactive/joshua_runtime.py
@@ -0,0 +1,56 @@
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+from charms.reactive import when, when_not, set_state
+from charmhelpers.fetch.archiveurl import ArchiveUrlFetchHandler
+from charmhelpers.core import hookenv
+from subprocess import check_call, CalledProcessError, call, check_output, Popen
+from charmhelpers.core.hookenv import status_set, log
+from charms.reactive.helpers import data_changed
+import subprocess
+import os
+
+au = ArchiveUrlFetchHandler()
+os.environ["JOSHUA"] = "/opt/joshua-6.0.5/"
+port =  hookenv.config('port')
+
+@when_not('joshua-full.installed')
+def install_joshua_runtime():
+    status_set('maintenance', 'Joshua')
+    download()
+    unzip()
+    set_state('joshua-full.installed')
+
+def download():
+    au.download("http://community.meteorite.bi/joshua-6.0.5.tgz", "/tmp/joshua-full.tgz")
+
+def unzip():
+    check_output(['tar', 'xvfz', "/tmp/joshua-full.tgz", '-C', '/opt'])
+
+@when_not('java.ready')
+def update_java_status():
+    status_set('blocked', 'Waiting for Java.')
+
+@when_not('hadoop.ready')
+def update_hadoop_status():
+    status_set('blocked', 'Waiting for Hadoop')
+
+@when('java.ready')
+@when('joshua-full.installed')
+@when('hadoop.ready')
+def start_joshua(java,hadoop):
+     status_set('active', 'joshua installed')

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/tests/00-setup
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/tests/00-setup b/distribution/joshua-full/tests/00-setup
new file mode 100755
index 0000000..9fddd67
--- /dev/null
+++ b/distribution/joshua-full/tests/00-setup
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+sudo add-apt-repository ppa:juju/stable -y
+sudo apt-get update
+sudo apt-get install amulet python-requests -y

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/ecf5ee3b/distribution/joshua-full/tests/10-deploy
----------------------------------------------------------------------
diff --git a/distribution/joshua-full/tests/10-deploy b/distribution/joshua-full/tests/10-deploy
new file mode 100755
index 0000000..dbbf51d
--- /dev/null
+++ b/distribution/joshua-full/tests/10-deploy
@@ -0,0 +1,47 @@
+#!/usr/bin/python3
+#
+# 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 with
+# the License.  You may obtain a copy of the License at
+#
+#     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.
+#
+
+import amulet
+import requests
+import unittest
+
+
+class TestCharm(unittest.TestCase):
+    def setUp(self):
+        self.d = amulet.Deployment()
+
+        self.d.add('joshua-runtime')
+        self.d.expose('joshua-runtime')
+
+        self.d.setup(timeout=900)
+        self.d.sentry.wait()
+
+        self.unit = self.d.sentry['joshua-runtime'][0]
+
+    def test_service(self):
+        # test we can access over http
+        page = requests.get('http://{}'.format(self.unit.info['public-address']))
+        self.assertEqual(page.status_code, 200)
+        # Now you can use self.d.sentry[SERVICE][UNIT] to address each of the units and perform
+        # more in-depth steps. Each self.d.sentry[SERVICE][UNIT] has the following methods:
+        # - .info - An array of the information of that unit from Juju
+        # - .file(PATH) - Get the details of a file on that unit
+        # - .file_contents(PATH) - Get plain text output of PATH file from that unit
+        # - .directory(PATH) - Get details of directory
+        # - .directory_contents(PATH) - List files and folders in PATH on that unit
+        # - .relation(relation, service:rel) - Get relation data from return service


[9/9] incubator-joshua git commit: Merge branch 'JOSHUA-PR16' into JOSHUA-252

Posted by mj...@apache.org.
Merge branch 'JOSHUA-PR16' into JOSHUA-252


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/7cadd046
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/7cadd046
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/7cadd046

Branch: refs/heads/JOSHUA-252
Commit: 7cadd046ba4fc902194c5b4fa603789d19a39c1a
Parents: 91400fe 5ce0882
Author: Matt Post <po...@cs.jhu.edu>
Authored: Tue May 31 12:54:49 2016 -0400
Committer: Matt Post <po...@cs.jhu.edu>
Committed: Tue May 31 12:54:49 2016 -0400

----------------------------------------------------------------------
 distribution/docker/Dockerfile                  |  39 +
 distribution/docker/ar-en-phrase/Dockerfile     |  11 +
 distribution/docker/zh-en-hiero/Dockerfile      |  11 +
 distribution/joshua-full/README.md              |  42 +
 distribution/joshua-full/actions.yaml           |  30 +
 .../joshua-full/actions/add-language-pack       |  36 +
 .../joshua-full/actions/remove-language-pack    |  24 +
 distribution/joshua-full/config.yaml            |  26 +
 distribution/joshua-full/copyright              |  16 +
 distribution/joshua-full/icon.svg               | 800 +++++++++++++++++++
 distribution/joshua-full/layer.yaml             |  20 +
 distribution/joshua-full/metadata.yaml          |  30 +
 .../joshua-full/reactive/joshua_runtime.py      |  56 ++
 distribution/joshua-full/tests/00-setup         |  21 +
 distribution/joshua-full/tests/10-deploy        |  47 ++
 distribution/joshua-runtime/README.md           |  42 +
 distribution/joshua-runtime/actions.yaml        |  29 +
 .../joshua-runtime/actions/add-language-pack    |  36 +
 .../joshua-runtime/actions/remove-language-pack |  24 +
 distribution/joshua-runtime/config.yaml         |  26 +
 distribution/joshua-runtime/copyright           |  16 +
 distribution/joshua-runtime/icon.svg            | 800 +++++++++++++++++++
 distribution/joshua-runtime/layer.yaml          |  19 +
 distribution/joshua-runtime/metadata.yaml       |  30 +
 .../joshua-runtime/reactive/joshua_runtime.py   |  71 ++
 distribution/joshua-runtime/tests/00-setup      |  21 +
 distribution/joshua-runtime/tests/10-deploy     |  47 ++
 docker/Dockerfile                               |  39 -
 docker/ar-en-phrase/Dockerfile                  |  11 -
 docker/zh-en-hiero/Dockerfile                   |  11 -
 30 files changed, 2370 insertions(+), 61 deletions(-)
----------------------------------------------------------------------



[8/9] incubator-joshua git commit: Moved all docker files under distribution/docker

Posted by mj...@apache.org.
Moved all docker files under distribution/docker


Project: http://git-wip-us.apache.org/repos/asf/incubator-joshua/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-joshua/commit/5ce08829
Tree: http://git-wip-us.apache.org/repos/asf/incubator-joshua/tree/5ce08829
Diff: http://git-wip-us.apache.org/repos/asf/incubator-joshua/diff/5ce08829

Branch: refs/heads/JOSHUA-252
Commit: 5ce08829271ea255bd6d28319e68b09aa5b7762b
Parents: 93a6f6e
Author: Matt Post <po...@cs.jhu.edu>
Authored: Tue May 31 12:54:21 2016 -0400
Committer: Matt Post <po...@cs.jhu.edu>
Committed: Tue May 31 12:54:21 2016 -0400

----------------------------------------------------------------------
 distribution/docker/ar-en-phrase/Dockerfile | 11 +++++++++++
 distribution/docker/zh-en-hiero/Dockerfile  | 11 +++++++++++
 docker/ar-en-phrase/Dockerfile              | 11 -----------
 docker/zh-en-hiero/Dockerfile               | 11 -----------
 4 files changed, 22 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/5ce08829/distribution/docker/ar-en-phrase/Dockerfile
----------------------------------------------------------------------
diff --git a/distribution/docker/ar-en-phrase/Dockerfile b/distribution/docker/ar-en-phrase/Dockerfile
new file mode 100644
index 0000000..c34e009
--- /dev/null
+++ b/distribution/docker/ar-en-phrase/Dockerfile
@@ -0,0 +1,11 @@
+FROM joshua
+
+ENV language_pack=ar-en-phrase
+
+RUN mkdir /opt/$language_pack
+WORKDIR /opt/$language_pack
+
+RUN curl http://cs.jhu.edu/~post/language-packs/language-pack-ar-en-phrase-2015-03-18.tgz \
+    | tar xz --strip-components=1
+
+ENTRYPOINT ["./run-joshua.sh"]

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/5ce08829/distribution/docker/zh-en-hiero/Dockerfile
----------------------------------------------------------------------
diff --git a/distribution/docker/zh-en-hiero/Dockerfile b/distribution/docker/zh-en-hiero/Dockerfile
new file mode 100644
index 0000000..d49a804
--- /dev/null
+++ b/distribution/docker/zh-en-hiero/Dockerfile
@@ -0,0 +1,11 @@
+FROM joshua
+
+ENV language_pack=zh-en-hiero
+
+RUN mkdir /opt/$language_pack
+WORKDIR /opt/$language_pack
+
+RUN curl http://cs.jhu.edu/~post/language-packs/zh-en-hiero-2016-01-13.tgz \
+    | tar xz --strip-components=1
+
+ENTRYPOINT ["./run-joshua.sh"]

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/5ce08829/docker/ar-en-phrase/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/ar-en-phrase/Dockerfile b/docker/ar-en-phrase/Dockerfile
deleted file mode 100644
index c34e009..0000000
--- a/docker/ar-en-phrase/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM joshua
-
-ENV language_pack=ar-en-phrase
-
-RUN mkdir /opt/$language_pack
-WORKDIR /opt/$language_pack
-
-RUN curl http://cs.jhu.edu/~post/language-packs/language-pack-ar-en-phrase-2015-03-18.tgz \
-    | tar xz --strip-components=1
-
-ENTRYPOINT ["./run-joshua.sh"]

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/5ce08829/docker/zh-en-hiero/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/zh-en-hiero/Dockerfile b/docker/zh-en-hiero/Dockerfile
deleted file mode 100644
index d49a804..0000000
--- a/docker/zh-en-hiero/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM joshua
-
-ENV language_pack=zh-en-hiero
-
-RUN mkdir /opt/$language_pack
-WORKDIR /opt/$language_pack
-
-RUN curl http://cs.jhu.edu/~post/language-packs/zh-en-hiero-2016-01-13.tgz \
-    | tar xz --strip-components=1
-
-ENTRYPOINT ["./run-joshua.sh"]