You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by th...@apache.org on 2012/04/12 14:55:37 UTC

svn commit: r1325229 - in /river/jtsk/skunk/easystart: ./ examples/hello/config/ src-extra/ src-extra/org/apache/river/extra/easystart/config/ test/src/org/apache/river/extra/easystart/

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 {