Author: thobbs
Date: Thu Apr 12 12:55:36 2012
New Revision: 1325229

URL: http://svn.apache.org/viewvc?rev=1325229&view=rev
Log:
Getting closer to a fully generic config

Added:
    
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/CodebaseSetting.java
    
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/GroupedSetting.java
Modified:
    river/jtsk/skunk/easystart/build.xml
    river/jtsk/skunk/easystart/examples/hello/config/start-reggie.config
    river/jtsk/skunk/easystart/src-extra/build.xml
    
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConventionalLookupServiceConfiguration.java
    
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/Options.java
    
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/start-reggie.config
    
river/jtsk/skunk/easystart/test/src/org/apache/river/extra/easystart/GroupEncapsulatorTest.java

Modified: river/jtsk/skunk/easystart/build.xml
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/build.xml?rev=1325229&r1=1325228&r2=1325229&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/build.xml (original)
+++ river/jtsk/skunk/easystart/build.xml Thu Apr 12 12:55:36 2012
@@ -680,6 +680,7 @@
         
         <!-- move to sep compile.extra target or add to compile target? -->
         <javac-cmd source.dir="${src-extra.dir}" 
dest.dir="${build.classes.dir}">
+               <classpath refid="compile.classpath" />
         </javac-cmd>
         <jar destfile="${lib.dir}/extra.jar" index="false">
             <fileset dir="${build.classes.dir}">
@@ -689,6 +690,8 @@
             <fileset dir="${src.dir}">
                 <include name="org/apache/river/config/**/*.properties"/>
                 <include name="org/apache/river/config/**/*.vm"/>
+                <include name="org/apache/river/config/**/*.config"/>
+                <include name="org/apache/river/config/**/*.policy"/>
             </fileset>
         </jar>
     </target>

Modified: river/jtsk/skunk/easystart/examples/hello/config/start-reggie.config
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/examples/hello/config/start-reggie.config?rev=1325229&r1=1325228&r2=1325229&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/examples/hello/config/start-reggie.config 
(original)
+++ river/jtsk/skunk/easystart/examples/hello/config/start-reggie.config Thu 
Apr 12 12:55:36 2012
@@ -29,7 +29,8 @@ com.sun.jini.start {
            new Object[] { 
                "http://";, ConfigUtil.getHostName(), ":8080/reggie-dl.jar",
                " ",
-                "http://";, ConfigUtil.getHostName(), ":8080/jsk-dl.jar" } );
+        "http://";, ConfigUtil.getHostName(), ":8080/jsk-dl.jar" } );
+        
     private static policy = "config${/}reggie.policy";
     private static classpath = "..${/}..${/}lib${/}reggie.jar";
     private static config = "config${/}jrmp-reggie.config";

Modified: river/jtsk/skunk/easystart/src-extra/build.xml
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/build.xml?rev=1325229&r1=1325228&r2=1325229&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/build.xml (original)
+++ river/jtsk/skunk/easystart/src-extra/build.xml Thu Apr 12 12:55:36 2012
@@ -28,8 +28,11 @@
                <pathelement path="../lib/jsk-platform.jar"/>
                <pathelement path="../lib/jsk-lib.jar"/>
                <pathelement path="../lib/tools.jar"/>
+               <pathelement path="../lib/reggie.jar"/>
+               <pathelement path="../lib/extra.jar"/>
+               <pathelement path="../velocity/velocity-1.7.jar"/>
        </path>
-       
+       <!--
        <target name="clean">
                <delete dir="${extras.classes}"/>
        </target>
@@ -42,7 +45,8 @@
                <javac srcdir="." 
                           destdir="${extras.classes}"
                           source="6"
-                          target="6">
+                          target="6"
+                          debug="true">
                        <classpath refid="river.lib"/>
                </javac>
        </target>
@@ -50,13 +54,13 @@
        <target name="jar" depends="compile">
                <jar destfile="${river.extras.jar}">
                        <fileset dir="${extras.classes}" includes="**/*.class"/>
-                       <fileset dir="." includes="**/*.config"/>
-                       <fileset dir="." includes="**/*.policy"/>
+                       <fileset dir="." includes="**/empty.config"/>
+                       <fileset dir="../examples/hello/config" 
includes="reggie.policy"/>
                </jar>
        </target>
        
-       <target name="build" depends="init,compile,jar,clean">
-               <antcall target="clean"/>
+       -->
+       <target name="build" ><!-- depends="init,compile,jar,clean">
+               <antcall target="clean"/> -->
        </target>
-       
 </project>
\ No newline at end of file

Added: 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/CodebaseSetting.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/CodebaseSetting.java?rev=1325229&view=auto
==============================================================================
--- 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/CodebaseSetting.java
 (added)
+++ 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/CodebaseSetting.java
 Thu Apr 12 12:55:36 2012
@@ -0,0 +1,46 @@
+package org.apache.river.extra.easystart.config;
+
+import java.util.List;
+
+public class CodebaseSetting extends GroupedSetting {
+
+       private final Setting httpPort;
+       private final Setting httpServer;
+       
+       protected CodebaseSetting(String name, 
+                                                         Setting httpPort,
+                                                         Setting httpServer,
+                                                     List<String> defaults,
+                                                     String format, 
+                                                     String elementFormat, 
+                                                     boolean 
serviceDescription) {
+               super(name, defaults, format, elementFormat, 
serviceDescription);
+
+               this.httpPort = httpPort;
+               this.httpServer = httpServer;
+       }
+
+       @Override
+       protected String formatAsArray(List<String> items) {
+               StringBuilder sb = new StringBuilder();
+               sb
+                       .append("ConfigUtil.concat(")
+                       .append('\n')
+                       .append("new Object[] {")
+                       .append('\n');
+               for(String item : items) {
+                       sb
+                               .append("\"http://\";, ")
+                               .append(httpServer.getOverride())
+                               .append(", \":")
+                               .append(httpPort.getOverride())
+                               .append('/')
+                               .append(item)
+                               .append("\", \" \",\n");
+               }
+               sb.append(" })");
+               
+//             return String.format(super.getFormatter(), sb.toString());
+               return sb.toString();
+       }
+}

Modified: 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConventionalLookupServiceConfiguration.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConventionalLookupServiceConfiguration.java?rev=1325229&r1=1325228&r2=1325229&view=diff
==============================================================================
--- 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConventionalLookupServiceConfiguration.java
 (original)
+++ 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConventionalLookupServiceConfiguration.java
 Thu Apr 12 12:55:36 2012
@@ -31,6 +31,11 @@ public class ConventionalLookupServiceCo
 //             opts.RIVER_HOME;  - no override for this
                opts.HTTP_PORT.setOverride("8080");
                opts.JINI_PORT.setOverride("4160");
+               opts.MEMBER_GROUPS.add("Lester").add("Jeff");
+               opts.LOOKUP_GROUPS.add("Chuck").add("Sarah");
+               
opts.SERVICE_IMPL.setOverride("com.sun.jini.reggie.TransientRegistrarImpl");
+               opts.CODEBASE.add("reggie-dl.jar").add("jsk-dl.jar");
+//             opts.HTTP_SERVER.setOverride("nowhere");
 //             opts.setGroup("lappy");
 //             opts.setHttpPort("8080");
 //             opts.setJiniPort(4931);

Added: 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/GroupedSetting.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/GroupedSetting.java?rev=1325229&view=auto
==============================================================================
--- 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/GroupedSetting.java
 (added)
+++ 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/GroupedSetting.java
 Thu Apr 12 12:55:36 2012
@@ -0,0 +1,64 @@
+package org.apache.river.extra.easystart.config;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class GroupedSetting extends Setting {
+
+       private final String elementFormat;
+       private final List<String> defaults;
+       private final List<String> overrides = new LinkedList<String>();
+
+       private volatile boolean overriden = false;
+
+       protected GroupedSetting(String name, 
+                                                        List<String> defaults, 
+                                                        String format,
+                                                        String elementFormat,
+                                                        boolean 
serviceDescription) {
+               super(name, "", format, serviceDescription);
+               this.elementFormat = elementFormat;
+               this.defaults = defaults;
+               overrides.addAll(defaults);
+       }
+
+       /**
+        * Not too worried about concurrency issues right now, heavy duty 
locking 
+        * etc for this little used code seems overkill right now.
+        * 
+        * @param s
+        * @return
+        */
+       public GroupedSetting add(String s) {
+               if (!overriden) {
+                       overriden = true;
+                       overrides.clear();
+               }
+               overrides.add(s);
+               return this;
+       }
+
+       @Override
+       public String getDefault() {
+               return formatAsArray(defaults);
+       }
+       
+       @Override
+       public String getOverride() {
+               return formatAsArray(overrides);
+       }
+       
+       protected String formatAsArray(List<String> items) {
+               StringBuilder sb = new StringBuilder();
+               sb.append("new String[] { ");
+               for(String item : items) {
+                       sb
+                               .append(String.format(this.elementFormat, item))
+                               .append(", ");
+               }
+               sb.append(" }");
+               
+//             return String.format(super.getFormatter(), sb.toString());
+               return sb.toString();
+       }
+}

Modified: 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/Options.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/Options.java?rev=1325229&r1=1325228&r2=1325229&view=diff
==============================================================================
--- 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/Options.java
 (original)
+++ 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/Options.java
 Thu Apr 12 12:55:36 2012
@@ -1,5 +1,7 @@
 package org.apache.river.extra.easystart.config;
 
+import java.util.Collections;
+import java.util.LinkedList;
 import java.util.logging.Logger;
 
 public class Options {
@@ -8,6 +10,7 @@ public class Options {
 
        public static final String NO_FORMAT = "%s";
        public static final String STRING_FORMAT = "\"%s\"";
+       public static final String ESCAPED_STRING_FORMAT = "\\\"%s\\\"";
        public static final String INTEGER_FORMAT = "%s";
        
        private static final String RIVER_HOME_ENV_NAME = "RIVER_HOME";
@@ -28,11 +31,46 @@ public class Options {
        public Setting JINI_PORT = new Setting("initialUnicastDiscoveryPort", 
"4160", INTEGER_FORMAT, true);
        public Setting HTTP_PORT = new Setting("httpPort", "8080", 
INTEGER_FORMAT, false);
        
+       public GroupedSetting MEMBER_GROUPS = new 
GroupedSetting("initialMemberGroups",
+                                                                               
                                        new LinkedList<String>(),
+                                                                               
                                        NO_FORMAT, 
+                                                                               
                                        ESCAPED_STRING_FORMAT, 
+                                                                               
                                        true);
+       
+       public GroupedSetting LOOKUP_GROUPS = new 
GroupedSetting("initialLookupGroups",
+                                                                               
                                  new LinkedList<String>(),
+                                                                               
                                  NO_FORMAT, 
+                                                                               
                                  ESCAPED_STRING_FORMAT, 
+                                                                               
                                  true);
+       
+       public Setting SERVICE_IMPL = new Setting("serviceImpl",
+                                                                               
          "",
+                                                                               
          STRING_FORMAT,
+                                                                               
          false);
+       
+       public Setting HTTP_SERVER = new Setting("httpServer",
+                                                                               
         "ConfigUtil.getHostName()",
+                                                                               
         NO_FORMAT,
+                                                                               
         false);
+       
+       public CodebaseSetting CODEBASE = new CodebaseSetting("codebase",
+                                                                               
                                HTTP_PORT,
+                                                                               
                                HTTP_SERVER,
+                                                                               
                                Collections.<String>emptyList(), 
+                                                                               
                                NO_FORMAT, 
+                                                                               
                                NO_FORMAT, 
+                                                                               
                                false);
+       
        public Setting[] OPTIONS = new Setting[] {
                        RIVER_HOME,
                        PACKAGE_NAME,
                        JINI_PORT,
-                       HTTP_PORT
+                       HTTP_PORT,
+                       MEMBER_GROUPS,
+                       LOOKUP_GROUPS,
+                       SERVICE_IMPL,
+                       HTTP_SERVER,
+                       CODEBASE
        };
        
 //     private static final String RIVER_HOME = "RIVER_HOME";

Modified: 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/start-reggie.config
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/start-reggie.config?rev=1325229&r1=1325228&r2=1325229&view=diff
==============================================================================
--- 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/start-reggie.config
 (original)
+++ 
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/start-reggie.config
 Thu Apr 12 12:55:36 2012
@@ -24,12 +24,7 @@ import com.sun.jini.start.ServiceDescrip
 
 com.sun.jini.start {
 
-    private static codebase =
-       ConfigUtil.concat(
-           new Object[] { 
-               "http://";, ConfigUtil.getHostName(), 
":${httpPort}/reggie-dl.jar",
-               " ",
-        "http://";, ConfigUtil.getHostName(), ":${httpPort}/jsk-dl.jar" } );
+    private static codebase = ${codebase};
         
     private static policy = ${riverHome}+"/src-extra/policy.all";
     private static classpath = ${riverHome}+"/lib/reggie.jar";
@@ -39,15 +34,13 @@ com.sun.jini.start {
            codebase, 
            policy, 
            classpath,
-           "com.sun.jini.reggie.TransientRegistrarImpl",
+           ${serviceImpl},
            new String[] { 
            "-"
            //overrides
            ${options}
            //overrides end
            /*,
-           "com.sun.jini.reggie.initialMemberGroups=new String[] {${groups}}"
-           
"com.sun.jini.reggie.initialUnicastDiscoveryPort=${initialUnicastDiscoveryPort}",
            "com.sun.jini.reggie.serverExporter="${serverExporter}"
            */
            }
@@ -61,10 +54,6 @@ ${servicePackageName} {
     ${defaults}
 //defaults end
 
-    initialMemberGroups = new String[] {};
-//    initialUnicastDiscoveryPort = ${default_initialUnicastDiscoveryPort}; 
//4160;
-    serverExporter=new net.jini.jrmp.JrmpExporter();
-
 //    //static serverExporter = new BasicJeriExporter( ${registryEndpoint}, 
new BasicILFactory());
 //    serverExporter=new net.jini.jrmp.JrmpExporter();
 //

Modified: 
river/jtsk/skunk/easystart/test/src/org/apache/river/extra/easystart/GroupEncapsulatorTest.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/test/src/org/apache/river/extra/easystart/GroupEncapsulatorTest.java?rev=1325229&r1=1325228&r2=1325229&view=diff
==============================================================================
--- 
river/jtsk/skunk/easystart/test/src/org/apache/river/extra/easystart/GroupEncapsulatorTest.java
 (original)
+++ 
river/jtsk/skunk/easystart/test/src/org/apache/river/extra/easystart/GroupEncapsulatorTest.java
 Thu Apr 12 12:55:36 2012
@@ -18,6 +18,8 @@
 
 package org.apache.river.extra.easystart;
 
+import org.apache.river.extra.easystart.broken.GroupEncapsulator;
+
 import junit.framework.TestCase;
 
 public class GroupEncapsulatorTest extends TestCase {


Reply via email to