[kune-commits] r1140 - in trunk: . img img/icons script src/main/java/org/ourproject/kune/app/server src/main/java/org/ourproject/kune/app/server/wave src/main/java/org/ourproject/kune/platf/server src/main/java/org/ourproject/kune/platf/server/properties src/main/resources

vjrj vjrj at ourproject.org
Mon Aug 31 12:49:16 CEST 2009


Author: vjrj
Date: 2009-08-31 12:49:15 +0200 (Mon, 31 Aug 2009)
New Revision: 1140

Added:
   trunk/img/icons/lock.png
   trunk/img/icons/lock_break.png
   trunk/script/repopubli.sh
   trunk/src/main/java/org/ourproject/kune/app/server/wave/
   trunk/src/main/java/org/ourproject/kune/app/server/wave/WaveContainerListener.java
   trunk/src/main/java/org/ourproject/kune/app/server/wave/WavePropertiesParser.java
Modified:
   trunk/img/icons-base.svg
   trunk/pom.xml
   trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
   trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
   trunk/src/main/java/org/ourproject/kune/platf/server/properties/ChatProperties.java
   trunk/src/main/resources/kune.properties
Log:
Wave server first integration (thanks to guice)


Added: trunk/img/icons/lock.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/icons/lock.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/img/icons/lock_break.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/icons/lock_break.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/img/icons-base.svg
===================================================================
--- trunk/img/icons-base.svg	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/img/icons-base.svg	2009-08-31 10:49:15 UTC (rev 1140)
@@ -27,15 +27,15 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="1.3545976"
-     inkscape:cx="372.04724"
-     inkscape:cy="526.18109"
+     inkscape:zoom="0.8805759"
+     inkscape:cx="368.89944"
+     inkscape:cy="693.88452"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      inkscape:window-width="1280"
-     inkscape:window-height="730"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
+     inkscape:window-height="1001"
+     inkscape:window-x="1280"
+     inkscape:window-y="0"
      showgrid="false"
      showguides="true"
      inkscape:guide-bbox="true"
@@ -52,10 +52,24 @@
        originy="0px"
        originx="0px"
        type="xygrid"
-       id="GridFromPre046Settings" />
+       id="GridFromPre046Settings"
+       visible="true"
+       enabled="true" />
   </sodipodi:namedview>
   <defs
      id="defs21021">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3002">
+      <stop
+         style="stop-color:#de1515;stop-opacity:1;"
+         offset="0"
+         id="stop3004" />
+      <stop
+         style="stop-color:#de1515;stop-opacity:0;"
+         offset="1"
+         id="stop3006" />
+    </linearGradient>
     <inkscape:perspective
        id="perspective511"
        inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
@@ -1819,6 +1833,50 @@
        id="linearGradient5122"
        xlink:href="#linearGradient2467"
        inkscape:collect="always" />
+    <inkscape:perspective
+       id="perspective2970"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3002"
+       id="linearGradient3816"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0.2007512,0.9033805)"
+       x1="370.68713"
+       y1="453.87259"
+       x2="342.63214"
+       y2="446.19382" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3002"
+       id="linearGradient3835"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2919055,0,0,1.2919055,-88.927986,-125.13708)"
+       x1="370.68713"
+       y1="453.87259"
+       x2="342.63214"
+       y2="446.19382" />
+    <inkscape:perspective
+       id="perspective3956"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3002"
+       id="linearGradient3972"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2919055,0,0,1.2919055,-88.927986,-125.13708)"
+       x1="370.68713"
+       y1="453.87259"
+       x2="342.63214"
+       y2="446.19382" />
   </defs>
   <metadata
      id="metadata21024">
@@ -3027,8 +3085,8 @@
        inkscape:export-ydpi="90"
        inkscape:export-xdpi="90"
        inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/nobody.png"
-       y="244.08676"
-       x="525.88586"
+       y="288.13663"
+       x="508.64896"
        id="image18392"
        height="16"
        width="16"
@@ -3041,8 +3099,8 @@
        width="10.062655"
        height="10.062655"
        id="image18398"
-       x="533.07184"
-       y="243.15987" />
+       x="515.8349"
+       y="287.20975" />
     <rect
        style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.96201754;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
        id="rect12715"
@@ -4587,5 +4645,150 @@
        x="0"
        inkscape:transform-center-x="-156.01159"
        inkscape:transform-center-y="41.742437" />
+    <image
+       y="450.82797"
+       x="330.84604"
+       id="image2972"
+       height="16"
+       width="16"
+       sodipodi:absref="/home/vjrj/proyectos/dev/kune/trunk/img/icons/lock_break.png"
+       xlink:href="icons/lock_break.png" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#image2972"
+       id="use2978"
+       transform="translate(25.153961,0.5342102)"
+       width="744.09448"
+       height="1052.3622" />
+    <g
+       id="g3810"
+       transform="translate(-0.5018781,0.6022537)">
+      <image
+         style="fill:#ff0000"
+         y="449.86804"
+         x="363.8681"
+         id="image2982"
+         height="10.062655"
+         width="10.062655"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBI WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QsKCTQviWADaAAAAypJREFUOMvVlD9oG2cYxn+nu9M/ JyS2hIWlEpk0aWjBiEyph5ZCh9B6z2TSqUuGjoFACoUEMmRPSro6a4dCvCRbhkIhISROLIiKnYJk BVu2zq6kk3T3vh30nXJxVeqO/eDj+3f3vM/3vM/7wf+tWf90sAJZ4AqwBCwA08Ae8AJ4ANxZhu5/ Al6Bb4FbZyqVXPHcOY7l8ziuw7DXw2u+ZatWY+PVqxZwbRl+OhLwCtyYKRSun794kaznEb55g/a6 qCiqirguiVKJ7tQUzx8/xtvdvbkM3x/GsQ8znSkUbi9euoTz7BlSb6DDAaqKiiIqaBAguy1sz6O4 uMhuvf75ku83foanExkbTf/48vLlXHp9HTk4QEUgAlQzioIqqoKmM/TL8/z66GELOBXXPBELcuVM pZLLem10fx8VQVUQFUQVMUEwcxFFOh3SBx4fzM/nTKKZBLw0d/Yjwo1NJGIUjnRVNYAqiIxYj7ow qDeYLc5h3DNuTmy+cCyfQ577qAj516//1aubhQLa75OdOo6x5ETG047jjK95lBbdxrYTGJ9PBN4b +r6xlRwJWGSk98D3McUzUYoX+83mF9mkg/g+W+UyYoKoKMo7bcc5UEVtmz/bbUxF/p2xwGqjVsMq lkY/i4KKATAuUBMg2hfBzufZbm4hsBq3bwRsNeDuZrXa6mYykMmgGo701ncMERnnQEXRVIpuOk2z +bZVgx8NsBVVngUkHoF+DV53Z2dp7sIFZLtlqk7GlReVtapipZIkTn9I9eUarWFw7So8AdR0bMPa BpK/wPpnvp/qNBqfTn/yMW46TdjposHQ6K2oY+PMzuLPzFBdW2Oz17v7HdwzgBKBR4xtIAlkHsBa ud/v9jY2FsRxUslSkVS5jFssIfkcPcelvrNDtVY7+C0I7v0A94EAGJoxiN6KiHGa0XtRAE6dhNlv 4Kt5qJyAogvZAfTa0PwdXt6HVQ/qwDbQAtpABxgAoRUDdw34CaAInDTrpDlzzXcho8fGM97dA/bN 3sAwFiuWyYTpKWAKyBifO2Y/slJoAIZAH/BjMoSRztah5zMewI6t36vkQz2IJS465y8YtvDGyaeW /wAAAABJRU5ErkJggg== "
+         inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/nobody.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+      <rect
+         y="453.97293"
+         x="366.52155"
+         height="1.4052587"
+         width="4.2659636"
+         id="rect2984"
+         style="fill:url(#linearGradient3816);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         y="451.71448"
+         x="367.57547"
+         height="3.3123956"
+         width="2.0576999"
+         id="rect3010"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect3782"
+         width="2.0577002"
+         height="1.7063855"
+         x="367.62567"
+         y="455.91528" />
+    </g>
+    <use
+       height="1052.3622"
+       width="744.09448"
+       transform="translate(45.153961,0.5342102)"
+       id="use3818"
+       xlink:href="#image2972"
+       y="0"
+       x="0" />
+    <g
+       id="g3838">
+      <image
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/nobody.png"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBI WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QsKCTQviWADaAAAAypJREFUOMvVlD9oG2cYxn+nu9M/ JyS2hIWlEpk0aWjBiEyph5ZCh9B6z2TSqUuGjoFACoUEMmRPSro6a4dCvCRbhkIhISROLIiKnYJk BVu2zq6kk3T3vh30nXJxVeqO/eDj+3f3vM/3vM/7wf+tWf90sAJZ4AqwBCwA08Ae8AJ4ANxZhu5/ Al6Bb4FbZyqVXPHcOY7l8ziuw7DXw2u+ZatWY+PVqxZwbRl+OhLwCtyYKRSun794kaznEb55g/a6 qCiqirguiVKJ7tQUzx8/xtvdvbkM3x/GsQ8znSkUbi9euoTz7BlSb6DDAaqKiiIqaBAguy1sz6O4 uMhuvf75ku83foanExkbTf/48vLlXHp9HTk4QEUgAlQzioIqqoKmM/TL8/z66GELOBXXPBELcuVM pZLLem10fx8VQVUQFUQVMUEwcxFFOh3SBx4fzM/nTKKZBLw0d/Yjwo1NJGIUjnRVNYAqiIxYj7ow qDeYLc5h3DNuTmy+cCyfQ577qAj516//1aubhQLa75OdOo6x5ETG047jjK95lBbdxrYTGJ9PBN4b +r6xlRwJWGSk98D3McUzUYoX+83mF9mkg/g+W+UyYoKoKMo7bcc5UEVtmz/bbUxF/p2xwGqjVsMq lkY/i4KKATAuUBMg2hfBzufZbm4hsBq3bwRsNeDuZrXa6mYykMmgGo701ncMERnnQEXRVIpuOk2z +bZVgx8NsBVVngUkHoF+DV53Z2dp7sIFZLtlqk7GlReVtapipZIkTn9I9eUarWFw7So8AdR0bMPa BpK/wPpnvp/qNBqfTn/yMW46TdjposHQ6K2oY+PMzuLPzFBdW2Oz17v7HdwzgBKBR4xtIAlkHsBa ud/v9jY2FsRxUslSkVS5jFssIfkcPcelvrNDtVY7+C0I7v0A94EAGJoxiN6KiHGa0XtRAE6dhNlv 4Kt5qJyAogvZAfTa0PwdXt6HVQ/qwDbQAtpABxgAoRUDdw34CaAInDTrpDlzzXcho8fGM97dA/bN 3sAwFiuWyYTpKWAKyBifO2Y/slJoAIZAH/BjMoSRztah5zMewI6t36vkQz2IJS465y8YtvDGyaeW /wAAAABJRU5ErkJggg== "
+         width="13"
+         height="13"
+         id="image3822"
+         x="380.89587"
+         y="454.88284"
+         style="fill:#ff0000" />
+      <rect
+         style="fill:url(#linearGradient3835);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect3824"
+         width="5.5112219"
+         height="1.8154614"
+         x="384.32385"
+         y="460.18597" />
+      <rect
+         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect3826"
+         width="1.7549734"
+         height="3.7774239"
+         x="386.23749"
+         y="457.77011" />
+      <rect
+         y="462.69531"
+         x="386.15176"
+         height="2.2044888"
+         width="1.9055371"
+         id="rect3828"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <image
+       y="432.36218"
+       x="-371"
+       id="image3958"
+       height="16"
+       width="16"
+       sodipodi:absref="/home/vjrj/proyectos/dev/kune/trunk/img/icons/lock_break.png"
+       xlink:href="icons/lock_break.png"
+       transform="scale(-1,1)" />
+    <g
+       id="g3962"
+       transform="translate(-43.509019,-21.462476)">
+      <image
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/nobody.png"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBI WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QsKCTQviWADaAAAAypJREFUOMvVlD9oG2cYxn+nu9M/ JyS2hIWlEpk0aWjBiEyph5ZCh9B6z2TSqUuGjoFACoUEMmRPSro6a4dCvCRbhkIhISROLIiKnYJk BVu2zq6kk3T3vh30nXJxVeqO/eDj+3f3vM/3vM/7wf+tWf90sAJZ4AqwBCwA08Ae8AJ4ANxZhu5/ Al6Bb4FbZyqVXPHcOY7l8ziuw7DXw2u+ZatWY+PVqxZwbRl+OhLwCtyYKRSun794kaznEb55g/a6 qCiqirguiVKJ7tQUzx8/xtvdvbkM3x/GsQ8znSkUbi9euoTz7BlSb6DDAaqKiiIqaBAguy1sz6O4 uMhuvf75ku83foanExkbTf/48vLlXHp9HTk4QEUgAlQzioIqqoKmM/TL8/z66GELOBXXPBELcuVM pZLLem10fx8VQVUQFUQVMUEwcxFFOh3SBx4fzM/nTKKZBLw0d/Yjwo1NJGIUjnRVNYAqiIxYj7ow qDeYLc5h3DNuTmy+cCyfQ577qAj516//1aubhQLa75OdOo6x5ETG047jjK95lBbdxrYTGJ9PBN4b +r6xlRwJWGSk98D3McUzUYoX+83mF9mkg/g+W+UyYoKoKMo7bcc5UEVtmz/bbUxF/p2xwGqjVsMq lkY/i4KKATAuUBMg2hfBzufZbm4hsBq3bwRsNeDuZrXa6mYykMmgGo701ncMERnnQEXRVIpuOk2z +bZVgx8NsBVVngUkHoF+DV53Z2dp7sIFZLtlqk7GlReVtapipZIkTn9I9eUarWFw7So8AdR0bMPa BpK/wPpnvp/qNBqfTn/yMW46TdjposHQ6K2oY+PMzuLPzFBdW2Oz17v7HdwzgBKBR4xtIAlkHsBa ud/v9jY2FsRxUslSkVS5jFssIfkcPcelvrNDtVY7+C0I7v0A94EAGJoxiN6KiHGa0XtRAE6dhNlv 4Kt5qJyAogvZAfTa0PwdXt6HVQ/qwDbQAtpABxgAoRUDdw34CaAInDTrpDlzzXcho8fGM97dA/bN 3sAwFiuWyYTpKWAKyBifO2Y/slJoAIZAH/BjMoSRztah5zMewI6t36vkQz2IJS465y8YtvDGyaeW /wAAAABJRU5ErkJggg== "
+         width="13"
+         height="13"
+         id="image3964"
+         x="380.89587"
+         y="454.88284"
+         style="fill:#ff0000" />
+      <rect
+         style="fill:url(#linearGradient3972);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect3966"
+         width="5.5112219"
+         height="1.8154614"
+         x="384.32385"
+         y="460.18597" />
+      <rect
+         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect3968"
+         width="1.7549734"
+         height="3.7774239"
+         x="386.23749"
+         y="457.77011" />
+      <rect
+         y="462.69531"
+         x="386.15176"
+         height="2.2044888"
+         width="1.9055371"
+         id="rect3970"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.04705882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+    <path
+       style="fill:#4d4d4d;fill-rule:evenodd;stroke:#cccccc;stroke-width:1.50000000000000000;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 356.90981,433.2195 C 362.64423,438.27174 365.62799,440.99217 365.62799,440.99217 L 361.71179,441.04075 L 370.01039,448.32762"
+       id="path3976"
+       sodipodi:nodetypes="cccc" />
   </g>
 </svg>

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/pom.xml	2009-08-31 10:49:15 UTC (rev 1140)
@@ -340,7 +340,96 @@
       <artifactId>jruby-rack</artifactId>
       <version>0.9.4</version>
     </dependency>
+
+    <!-- wave -->
+    <dependency>
+        <groupId>org.waveprotocol</groupId>
+        <artifactId>kune-wave-server</artifactId>
+        <version>0.0.2</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-cli</groupId>
+      <artifactId>commons-cli</artifactId>
+      <version>1.2</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+      <version>1.3</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>dom4j</groupId>
+      <artifactId>dom4j</artifactId>
+      <version>1.6.1</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.guice</groupId>
+      <artifactId>guice-assistedinject</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>jline</groupId>
+      <artifactId>jline</artifactId>
+      <version>0.9.94</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>org.gnu.inet</groupId>
+      <artifactId>libidn</artifactId>
+      <version>1.15</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>com.google.protobuf</groupId>
+      <artifactId>protobuf-java</artifactId>
+      <version>2.1.0</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>xpp3</groupId>
+      <artifactId>xpp3</artifactId>
+      <version>1.1.4c</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>xpp3</groupId>
+      <artifactId>xpp3_xpath</artifactId>
+      <version>1.1.4c</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>aopalliance</groupId>
+      <artifactId>aopalliance</artifactId>
+      <version>1.0</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>org.wave-protocol</groupId>
+      <artifactId>xmpp</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.wave-protocol</groupId>
+      <artifactId>whack</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.common</groupId>
+      <artifactId>collect</artifactId>
+      <version>1.0-rc2</version>
+    </dependency>
   </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>kune.ourproject.org</id>
+      	<url>scpexe://kune.ourproject.org/home/groups/kune/htdocs/mavenrepo/</url>
+    </repository>
+  </distributionManagement>
+
   <!--
     http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/index.html
   -->
@@ -540,12 +629,12 @@
       </plugin>
       <plugin>
         <groupId>org.mortbay.jetty</groupId>
-        <artifactId>maven-jetty-plugin</artifactId>
-        <version>6.1.5</version>
         <!--
           <artifactId>jetty-maven-plugin</artifactId>
           <version>7.0.0.1beta0</version>
         -->
+        <artifactId>maven-jetty-plugin</artifactId>
+        <version>6.1.5</version>
         <configuration>
           <contextPath>/</contextPath>
           <webAppSourceDirectory>war</webAppSourceDirectory>
@@ -735,6 +824,13 @@
         <directory>src/main/java</directory>
       </resource>
     </resources>
+    <extensions>
+    	<extension>
+    		<groupId>org.apache.maven.wagon</groupId>
+    		<artifactId>wagon-ssh-external</artifactId>
+    		<version>1.0-beta-2</version>
+    	</extension>
+    </extensions>
   </build>
   <reporting>
     <plugins>
@@ -840,4 +936,4 @@
       </reporting>
     </profile>
   </profiles>
-</project>
\ No newline at end of file
+</project>

Added: trunk/script/repopubli.sh
===================================================================
--- trunk/script/repopubli.sh	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/script/repopubli.sh	2009-08-31 10:49:15 UTC (rev 1140)
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+PARAMS=$#
+JAR=$1
+GROUP=$2
+ARTIFACT=$3
+VER=$4
+USER=$5
+
+# CORRECT PARAMS ###############################################################
+
+if [ $PARAMS -lt 4 ]
+then
+  echo "Use: $0 <jar> <group> <artifact> <version> <username>"
+  echo "$0 target/emite-0.4.6-emiteuimodule.jar com.calclab.emite emite 0.4.6 [luther]"
+  exit
+fi
+
+if [ $PARAMS -gt 4 ]
+then
+  EXTRA=$USER@
+fi
+
+mvn deploy:deploy-file -DgroupId=$2 -DartifactId=$3 -Dversion=$4 -Dpackaging=jar -Dfile=$1 -Durl=scpexe://kune.ourproject.org/home/groups/kune/htdocs/mavenrepo/ -DrepositoryId=kune.ourproject.org


Property changes on: trunk/script/repopubli.sh
___________________________________________________________________
Name: svn:executable
   + *

Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java	2009-08-31 10:49:15 UTC (rev 1140)
@@ -19,6 +19,8 @@
  */
 package org.ourproject.kune.app.server;
 
+import org.ourproject.kune.app.server.wave.WaveContainerListener;
+import org.ourproject.kune.app.server.wave.WavePropertiesParser;
 import org.ourproject.kune.blogs.server.BlogServerModule;
 import org.ourproject.kune.chat.server.ChatServerModule;
 import org.ourproject.kune.docs.server.DocumentServerModule;
@@ -49,6 +51,8 @@
 import org.ourproject.kune.rack.filters.RedirectFilter;
 import org.ourproject.kune.rack.filters.rest.RESTServicesModule;
 import org.ourproject.kune.wiki.server.WikiServerModule;
+import org.waveprotocol.wave.examples.fedone.FlagSettings;
+import org.waveprotocol.wave.examples.fedone.ServerModule;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Module;
@@ -86,6 +90,7 @@
         installGuiceModules(builder);
 
         builder.add(KuneContainerListener.class);
+        builder.add(WaveContainerListener.class);
 
         builder.exclude("/http-bind.*");
         builder.exclude("/public/.*");
@@ -122,6 +127,8 @@
         builder.use(new GalleryServerModule());
         builder.use(new RESTServicesModule());
         builder.use(configModule);
+        builder.use(WavePropertiesParser.parseFlags(FlagSettings.class));
+        builder.use(new ServerModule());
     }
 
 }

Added: trunk/src/main/java/org/ourproject/kune/app/server/wave/WaveContainerListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/wave/WaveContainerListener.java	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/src/main/java/org/ourproject/kune/app/server/wave/WaveContainerListener.java	2009-08-31 10:49:15 UTC (rev 1140)
@@ -0,0 +1,70 @@
+package org.ourproject.kune.app.server.wave;
+
+import java.net.InetSocketAddress;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.ourproject.kune.rack.ContainerListener;
+import org.waveprotocol.wave.examples.fedone.federation.xmpp.WaveXmppComponent;
+import org.waveprotocol.wave.examples.fedone.rpc.ServerRpcProvider;
+import org.waveprotocol.wave.examples.fedone.waveserver.WaveClientRpc.ProtocolWaveClientRpc;
+import org.xmpp.component.ComponentException;
+
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
+public class WaveContainerListener implements ContainerListener {
+
+    /** Creates InetSocketAddresses from injected parameters */
+    public static class RpcInetSocketAddressFactory {
+
+        private final String host;
+        private final Integer port;
+
+        @Inject
+        RpcInetSocketAddressFactory(@Named("client_frontend_hostname") final String host,
+                @Named("client_frontend_port") final Integer port) {
+            this.host = host;
+            this.port = port;
+            // LOG.info("Starting client frontend on host: " + host + " port: "
+            // + port);
+        }
+
+        InetSocketAddress create() {
+            return new InetSocketAddress(host, port);
+        }
+
+    }
+    private final WaveXmppComponent wxComponent;
+    private final ProtocolWaveClientRpc.Interface rpcImpl;
+    private final RpcInetSocketAddressFactory rpcInet;
+    private final Logger log; // NOPMD by vjrj on 30/08/09 20:14
+
+    @Inject
+    public WaveContainerListener(final WaveXmppComponent wxComponent, final ProtocolWaveClientRpc.Interface rpcImpl,
+            final RpcInetSocketAddressFactory rpcInet, final Logger logger) {
+        this.rpcInet = rpcInet;
+        this.wxComponent = wxComponent;
+        this.rpcImpl = rpcImpl;
+        this.log = logger;
+    }
+
+    public void start() {
+        final ServerRpcProvider server = new ServerRpcProvider(rpcInet.create());
+        server.registerService(ProtocolWaveClientRpc.newReflectiveService(rpcImpl));
+        try {
+            wxComponent.run();
+        } catch (final ComponentException e) {
+            log.log(Level.SEVERE, "couldn't connect to XMPP server:" + e);
+        }
+        log.log(Level.INFO, "Starting wave server");
+        try {
+            server.startServer();
+        } catch (final Exception e) {
+            throw new RuntimeException(e); // NOPMD by vjrj on 30/08/09 18:08
+        }
+    }
+
+    public void stop() {
+    }
+}

Added: trunk/src/main/java/org/ourproject/kune/app/server/wave/WavePropertiesParser.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/wave/WavePropertiesParser.java	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/src/main/java/org/ourproject/kune/app/server/wave/WavePropertiesParser.java	2009-08-31 10:49:15 UTC (rev 1140)
@@ -0,0 +1,136 @@
+package org.ourproject.kune.app.server.wave;
+
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.waveprotocol.wave.examples.fedone.Flag;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Module;
+import com.google.inject.name.Names;
+
+public class WavePropertiesParser {
+    private static final String PREFIX = "kune.wave.";
+    private static final Set<Class<?>> supportedFlagTypes; // NOPMD by vjrj on
+    // 30/08/09 12:37
+
+    static {
+        supportedFlagTypes = new HashSet<Class<?>>();
+        supportedFlagTypes.add(int.class);
+        supportedFlagTypes.add(boolean.class);
+        supportedFlagTypes.add(String.class);
+    }
+
+    public static Module parseFlags(final Class<?>... flagSettings) {
+
+        final Properties properties;
+        try {
+            properties = new Properties();
+            final InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(
+                    "kune.properties");
+            properties.load(input);
+            input.close();
+        } catch (final Exception excep) {
+            throw new RuntimeException("Error reading properties", excep); // NOPMD
+            // by
+            // vjrj on
+            // 30/08/09
+            // 16:59
+        }
+
+        final List<Field> fields = new ArrayList<Field>();
+        for (final Class<?> settings : flagSettings) {
+            fields.addAll(Arrays.asList(settings.getDeclaredFields()));
+        }
+
+        // Reflect on flagSettings class and absorb flags
+        final Map<Flag, Field> flags = new LinkedHashMap<Flag, Field>();
+        for (final Field field : fields) {
+            if (!field.isAnnotationPresent(Flag.class)) {
+                continue;
+            }
+
+            // Validate target type
+            // if (supportedFlagTypes.contains(field.getType())) {
+            // throw new IllegalArgumentException(field.getType() +
+            // " is not one of the supported flag types "
+            // + supportedFlagTypes);
+            // }
+
+            final Flag flag = field.getAnnotation(Flag.class);
+
+            flags.put(flag, field);
+        }
+
+        // Now validate them
+        for (final Flag flag : flags.keySet()) {
+            if (flag.mandatory()) {
+                final String help = !"".equals(flag.description()) ? flag.description() : flag.name();
+                mandatoryOption(properties, flag.name(), "must supply " + help);
+            }
+        }
+
+        // bundle everything up in an injectable guice module
+        return new AbstractModule() {
+
+            @Override
+            protected void configure() {
+                // We must iterate the flags a third time when binding.
+                // Note: do not collapse these loops as that will damage
+                // early error detection. The runtime is still O(n) in flag
+                // count.
+                for (final Map.Entry<Flag, Field> entry : flags.entrySet()) {
+                    final Class<?> type = entry.getValue().getType();
+                    final Flag flag = entry.getKey();
+
+                    // Skip non-mandatory, missing flags.
+                    if (!flag.mandatory()) {
+                        continue;
+                    }
+
+                    final String flagValue = properties.getProperty(PREFIX + flag.name());
+
+                    // Coerce String flag into target type.
+                    // NOTE(dhanji): only supported types are int, String and
+                    // boolean.
+                    if (int.class.equals(type)) {
+                        bindConstant().annotatedWith(Names.named(flag.name())).to(Integer.parseInt(flagValue));
+                    } else if (boolean.class.equals(type)) {
+                        bindConstant().annotatedWith(Names.named(flag.name())).to(Boolean.parseBoolean(flagValue));
+                    } else {
+                        bindConstant().annotatedWith(Names.named(flag.name())).to(flagValue);
+                    }
+                }
+            }
+        };
+    }
+
+    /**
+     * Checks a mandatory option is set, spits out help and dies if not.
+     * 
+     * @param cmd
+     *            parsed options
+     * @param option
+     *            the option to check
+     * @param helpString
+     *            the error message to emit if not.
+     */
+    static void mandatoryOption(final Properties properties, final String option, final String helpString) {
+        if (properties.getProperty(PREFIX + option) == null) {
+            throw new RuntimeException("Wave option " + PREFIX + option + " in kune.properties is mandatory"); // NOPMD
+            // by
+            // vjrj
+            // on
+            // 30/08/09
+            // 12:36
+        }
+    }
+}

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java	2009-08-31 10:49:15 UTC (rev 1140)
@@ -180,4 +180,5 @@
         bind(I18nTranslationService.class).to(I18nTranslationServiceDefault.class);
         bind(SessionService.class).to(SessionServiceDefault.class);
     }
+
 }

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/properties/ChatProperties.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/properties/ChatProperties.java	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/properties/ChatProperties.java	2009-08-31 10:49:15 UTC (rev 1140)
@@ -23,7 +23,7 @@
 import com.google.inject.Singleton;
 
 /**
- * sintactic sugar!
+ * Syntactic sugar!
  */
 @Singleton
 public class ChatProperties {

Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties	2009-08-05 14:56:47 UTC (rev 1139)
+++ trunk/src/main/resources/kune.properties	2009-08-31 10:49:15 UTC (rev 1140)
@@ -57,6 +57,21 @@
 kune.media.oggembededobject = <applet code="com.fluendo.player.Cortado.class" archive="/kune/others/cortado.jar" width="352" height="288"> <param name="url" value="###DOC_URL###"/> <param name="local" value="false"/> <param name="showStatus" value="show"/> <param name="keepAspect" value="true"/> <param name="autoPlay" value="false"/> <param name="video" value="true"/> <param name="audio" value="true"/> <param name="bufferSize" value="200"/> </applet>
 kune.media.aviembededobject = <object data="###DOC_URL###" type="video/msvideo" />
 
+### See: http://code.google.com/p/wave-protocol/wiki/Installation
+### wave server configuration
+kune.wave.xmpp_server_hostname = localhost
+kune.wave.xmpp_server_secret = asdfasdf
+kune.wave.xmpp_component_name = wave
+kune.wave.xmpp_server_port = 5275
+kune.wave.xmpp_server_ip = localhost
+kune.wave.xmpp_server_ping =
+kune.wave.client_frontend_hostname = 127.0.0.1
+kune.wave.client_frontend_port = 9876
+kune.wave.certificate_private_key = war/WEB-INF/classes/localhost.key
+kune.wave.certificate_files = war/WEB-INF/classes/localhost.cer
+kune.wave.certificate_domain = localhost
+kune.wave.waveserver_disable_verification = true
+
 ### More info about properties
 # http://en.wikipedia.org/wiki/.properties
 # http://java.sun.com/javase/6/docs/api/java/util/Properties.html#load(java.io.Reader)




More information about the kune-commits mailing list