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 19:39:09 UTC
svn commit: r1325398 - in /river/jtsk/skunk/easystart:
src-extra/org/apache/river/extra/easystart/
src-extra/org/apache/river/extra/easystart/config/
src-extra/org/apache/river/extra/easystart/config/settings/
test/src/org/apache/river/extra/easystart/
Author: thobbs
Date: Thu Apr 12 17:39:08 2012
New Revision: 1325398
URL: http://svn.apache.org/viewvc?rev=1325398&view=rev
Log:
Started tidy up of easy config code. Lookupservice config is starting to look better.
Added:
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConfigurationFactory.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/EasyConfiguration.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ClasspathSetting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/CodebaseSetting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/DefaultOptions.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/GroupedSetting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Options.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/PolicySetting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ServerExporterSetting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Setting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/SettingsFactory.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/start.config
Removed:
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ClasspathSetting.java
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
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/PolicySetting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ServerExporterSetting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/Setting.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/start.config
river/jtsk/skunk/easystart/test/src/org/apache/river/extra/easystart/GroupEncapsulatorTest.java
Modified:
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartLookupService.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartMahaloService.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartOutriggerService.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/JavaSpaceConfiguration.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/LookupServiceConfiguration.java
river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/TransactionServiceConfiguration.java
Modified: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartLookupService.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartLookupService.java?rev=1325398&r1=1325397&r2=1325398&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartLookupService.java (original)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartLookupService.java Thu Apr 12 17:39:08 2012
@@ -22,11 +22,11 @@ import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
-import org.apache.river.extra.easystart.config.LookupServiceConfiguration;
-
-import net.jini.config.Configuration;
import net.jini.config.ConfigurationException;
+import org.apache.river.extra.easystart.config.ConfigurationFactory;
+import org.apache.river.extra.easystart.config.LookupServiceConfiguration;
+import org.apache.river.extra.easystart.config.settings.DefaultOptions;
import com.sun.jini.start.ServiceStarter;
@@ -52,15 +52,15 @@ public class StartLookupService {
log.info("Using RIVER_HOME="+RIVER_HOME);
log.info("Using HTTP_PORT="+HTTP_PORT);
- final String riverHome = "/home/tom/projects/river/easystart";
- final String pathToConfig = "/home/tom/projects/river/easystart/src-extra/empty.config";
- final String pathToPolicy = "/home/tom/projects/river/easystart/src-extra/outrigger.policy";
+// final String riverHome = "/home/tom/projects/river/easystart";
+// final String pathToConfig = "/home/tom/projects/river/easystart/src-extra/empty.config";
+// final String pathToPolicy = "/home/tom/projects/river/easystart/src-extra/outrigger.policy";
//this works because these files are in river-extras.jar which is on the CP
// final String pathToConfig = "empty.config";
// final String pathToPolicy = "outrigger.policy";
- final String classpath = "/home/tom/projects/river/easystart/lib/reggie.jar";
+// final String classpath = "/home/tom/projects/river/easystart/lib/reggie.jar";
// LookupServiceConfiguration config = new LookupServiceConfiguration(8080,
// riverHome,
@@ -85,8 +85,17 @@ public class StartLookupService {
// Configuration config = vcb.createConfiguration();
// Configuration config = new ConventionalLookupServiceConfiguration(new String[0]);
- Configuration config = LookupServiceConfiguration.config();
- ServiceStarter.main(config);
+// Configuration config = LookupServiceConfiguration.config();
+
+ DefaultOptions options = new DefaultOptions();
+
+ ConfigurationFactory configFac = new ConfigurationFactory(options);
+ LookupServiceConfiguration config = configFac.lookupServiceConfig();
+ config.addMemberGroup("Lester").addMemberGroup("Jeff");
+ config.addLookupGroup("Sarah").addLookupGroup("Chuck");
+ config.setRiverPort(4160);
+
+ ServiceStarter.main(config.riverConfig());
}
Modified: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartMahaloService.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartMahaloService.java?rev=1325398&r1=1325397&r2=1325398&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartMahaloService.java (original)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartMahaloService.java Thu Apr 12 17:39:08 2012
@@ -22,13 +22,8 @@ import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
-import net.jini.config.Configuration;
import net.jini.config.ConfigurationException;
-import org.apache.river.extra.easystart.config.TransactionServiceConfiguration;
-
-import com.sun.jini.start.ServiceStarter;
-
public class StartMahaloService {
@@ -51,8 +46,8 @@ public class StartMahaloService {
log.info("Using RIVER_HOME="+RIVER_HOME);
log.info("Using HTTP_PORT="+HTTP_PORT);
- Configuration config = TransactionServiceConfiguration.config();
- ServiceStarter.main(config);
+// Configuration config = TransactionServiceConfiguration.config();
+// ServiceStarter.main(config);
}
private static void validateArgs(String[] args) {
Modified: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartOutriggerService.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartOutriggerService.java?rev=1325398&r1=1325397&r2=1325398&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartOutriggerService.java (original)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/StartOutriggerService.java Thu Apr 12 17:39:08 2012
@@ -22,13 +22,8 @@ import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
-import net.jini.config.Configuration;
import net.jini.config.ConfigurationException;
-import org.apache.river.extra.easystart.config.JavaSpaceConfiguration;
-
-import com.sun.jini.start.ServiceStarter;
-
public class StartOutriggerService {
@@ -67,8 +62,8 @@ public class StartOutriggerService {
// config.addLookupGroup("Lester");
// config.addLookupGroup("Jeff");
- Configuration config = JavaSpaceConfiguration.config();
- ServiceStarter.main(config);
+// Configuration config = JavaSpaceConfiguration.config();
+// ServiceStarter.main(config);
}
private static void validateArgs(String[] args) {
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConfigurationFactory.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConfigurationFactory.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/ConfigurationFactory.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,33 @@
+package org.apache.river.extra.easystart.config;
+
+import org.apache.river.extra.easystart.config.settings.DefaultOptions;
+
+public class ConfigurationFactory {
+
+ private final DefaultOptions options;
+
+ public ConfigurationFactory(DefaultOptions options) {
+ this.options = (DefaultOptions) options.clone();
+ }
+
+
+ public LookupServiceConfiguration lookupServiceConfig() {
+ return new LookupServiceConfiguration(options);
+
+// opts.PACKAGE_NAME.setOverride("com.sun.jini.reggie");
+//// 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.MEMBER_GROUPS.add("Chuck").add("Sarah");
+//// 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.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/reggie.jar");
+// opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/jini-ext.jar");
+//// opts.POLICY.setOverride("secure.policy");
+//// opts.SERVER_EXPORTER.asJeriExporter("localhost", 4161);
+
+ }
+
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/EasyConfiguration.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/EasyConfiguration.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/EasyConfiguration.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/EasyConfiguration.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,20 @@
+package org.apache.river.extra.easystart.config;
+
+import java.io.Reader;
+import java.util.HashMap;
+import java.util.Map;
+
+import net.jini.config.ConfigurationException;
+import net.jini.config.ConfigurationFile;
+
+import org.apache.river.extra.easystart.config.settings.Setting;
+
+public abstract class EasyConfiguration extends ConfigurationFile {
+
+ private final Map<String, Setting> defaults = new HashMap<String, Setting>();
+
+ protected EasyConfiguration(Reader reader, String[] options) throws ConfigurationException {
+ super(reader, options);
+ }
+
+}
Modified: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/JavaSpaceConfiguration.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/JavaSpaceConfiguration.java?rev=1325398&r1=1325397&r2=1325398&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/JavaSpaceConfiguration.java (original)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/JavaSpaceConfiguration.java Thu Apr 12 17:39:08 2012
@@ -1,89 +1,80 @@
package org.apache.river.extra.easystart.config;
-import java.io.IOException;
import java.io.Reader;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.Properties;
import java.util.logging.Logger;
import net.jini.config.ConfigurationException;
import net.jini.config.ConfigurationFile;
-import org.apache.river.config.builder.VelocityConfigurationBuilder;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-
public class JavaSpaceConfiguration extends ConfigurationFile {
private static final Logger LOGGER = Logger.getLogger(JavaSpaceConfiguration.class.getName());
- public static JavaSpaceConfiguration config() throws IOException, ConfigurationException {
-
- Options opts = new Options();
- opts.PACKAGE_NAME.setOverride("com.sun.jini.outrigger");
-// 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.outrigger.TransientOutriggerImpl");
- opts.CODEBASE.add("outrigger-dl.jar").add("jsk-dl.jar");
- opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/outrigger.jar");
-// opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/jini-ext.jar");
-// opts.POLICY.setOverride("secure.policy");
-// opts.SERVER_EXPORTER.asJeriExporter("localhost", 4161);
-
- Properties p = new Properties();
- p.load( VelocityConfigurationBuilder.class.getResourceAsStream("velocity.properties") );
- VelocityEngine ve = new VelocityEngine(p);
- VelocityContext context = new VelocityContext();
-
- StringBuilder options = new StringBuilder();
- StringBuilder defaults = new StringBuilder();
- String key = opts.PACKAGE_NAME.getOverride()+'.';
- for(Setting setting : opts.OPTIONS) {
- String format = setting.getFormatter();
- if(setting.isServiceDescription()) {
-
- String name = key + setting.getName();
-
- options
- .append(",\"")
- .append(name)
- .append('=')
- .append(String.format(format, setting.getOverride()))
- .append("\"\n");
-
- defaults
- .append(setting.getName())
- .append('=')
- .append(String.format(format, setting.getDefault()))
- .append(";\n");
- } else {
- context.put(setting.getName(),
- String.format(format, setting.getOverride()));
- }
- }
-
- context.put("defaults", defaults.toString());
- context.put("options", options.toString());
-
- Template template = ve.getTemplate( Options.class.getResource("start.config").toExternalForm() );
-
- StringWriter sw = new StringWriter();
-
- template.merge(context, sw);
-
- String s = sw.toString();
-
- LOGGER.warning(s);
-
- StringReader sr = new StringReader(s);
-
- return new JavaSpaceConfiguration(sr, new String[0]);//opts.getOptionsArray());
- }
+// public static JavaSpaceConfiguration config() throws IOException, ConfigurationException {
+//
+// Options opts = new Options();
+// opts.PACKAGE_NAME.setOverride("com.sun.jini.outrigger");
+//// 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.outrigger.TransientOutriggerImpl");
+// opts.CODEBASE.add("outrigger-dl.jar").add("jsk-dl.jar");
+// opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/outrigger.jar");
+//// opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/jini-ext.jar");
+//// opts.POLICY.setOverride("secure.policy");
+//// opts.SERVER_EXPORTER.asJeriExporter("localhost", 4161);
+//
+// Properties p = new Properties();
+// p.load( VelocityConfigurationBuilder.class.getResourceAsStream("velocity.properties") );
+// VelocityEngine ve = new VelocityEngine(p);
+// VelocityContext context = new VelocityContext();
+//
+// StringBuilder options = new StringBuilder();
+// StringBuilder defaults = new StringBuilder();
+// String key = opts.PACKAGE_NAME.getOverride()+'.';
+// for(Setting setting : opts.OPTIONS) {
+// String format = setting.getFormatter();
+// if(setting.isServiceDescription()) {
+//
+// String name = key + setting.getName();
+//
+// options
+// .append(",\"")
+// .append(name)
+// .append('=')
+// .append(String.format(format, setting.getOverride()))
+// .append("\"\n");
+//
+// defaults
+// .append(setting.getName())
+// .append('=')
+// .append(String.format(format, setting.getDefault()))
+// .append(";\n");
+// } else {
+// context.put(setting.getName(),
+// String.format(format, setting.getOverride()));
+// }
+// }
+//
+// context.put("defaults", defaults.toString());
+// context.put("options", options.toString());
+//
+// Template template = ve.getTemplate( Options.class.getResource("start.config").toExternalForm() );
+//
+// StringWriter sw = new StringWriter();
+//
+// template.merge(context, sw);
+//
+// String s = sw.toString();
+//
+// LOGGER.warning(s);
+//
+// StringReader sr = new StringReader(s);
+//
+// return new JavaSpaceConfiguration(sr, new String[0]);//opts.getOptionsArray());
+// }
private JavaSpaceConfiguration(Reader reader, String[] options) throws ConfigurationException {
super(reader,options);
Modified: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/LookupServiceConfiguration.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/LookupServiceConfiguration.java?rev=1325398&r1=1325397&r2=1325398&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/LookupServiceConfiguration.java (original)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/LookupServiceConfiguration.java Thu Apr 12 17:39:08 2012
@@ -1,41 +1,64 @@
package org.apache.river.extra.easystart.config;
import java.io.IOException;
-import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.Properties;
import java.util.logging.Logger;
+import net.jini.config.Configuration;
import net.jini.config.ConfigurationException;
import net.jini.config.ConfigurationFile;
import org.apache.river.config.builder.VelocityConfigurationBuilder;
+import org.apache.river.extra.easystart.config.settings.DefaultOptions;
+import org.apache.river.extra.easystart.config.settings.GroupedSetting;
+import org.apache.river.extra.easystart.config.settings.Options;
+import org.apache.river.extra.easystart.config.settings.Setting;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
-public class LookupServiceConfiguration extends ConfigurationFile {
+public class LookupServiceConfiguration {
- private static final Logger LOGGER = Logger.getLogger(LookupServiceConfiguration.class.getName());
+ private final DefaultOptions options;
- public static LookupServiceConfiguration config() throws IOException, ConfigurationException {
-
- Options opts = new Options();
- opts.PACKAGE_NAME.setOverride("com.sun.jini.reggie");
-// 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.MEMBER_GROUPS.add("Chuck").add("Sarah");
-// 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.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/reggie.jar");
- opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/jini-ext.jar");
-// opts.POLICY.setOverride("secure.policy");
-// opts.SERVER_EXPORTER.asJeriExporter("localhost", 4161);
+ public LookupServiceConfiguration(DefaultOptions opts) {
+ this.options = opts;
+ this.options.get(DefaultOptions.PACKAGE_NAME).setOverride("com.sun.jini.reggie");
+ this.options.get(DefaultOptions.SERVICE_IMPL).setOverride("com.sun.jini.reggie.TransientRegistrarImpl");
+ this.options.getGrouped(DefaultOptions.CODEBASE).add("reggie-dl.jar").add("jsk-dl.jar");
+ this.options.getGrouped(DefaultOptions.CLASSPATH).add(opts.get(DefaultOptions.RIVER_HOME).getOverride()+"/lib/reggie.jar");
+ this.options.getGrouped(DefaultOptions.CLASSPATH).add(opts.get(DefaultOptions.RIVER_HOME).getOverride()+"/lib/jini-ext.jar");
+ }
+
+ private static final Logger LOGGER = Logger.getLogger(LookupServiceConfiguration.class.getName());
+
+ public LookupServiceConfiguration addMemberGroup(String grp) {
+ getGroupSetting(Options.MEMBER_GROUP).add(grp);
+ return this;
+ }
+
+ public LookupServiceConfiguration addLookupGroup(String grp) {
+ getGroupSetting(Options.LOOKUP_GROUP).add(grp);
+ return this;
+ }
+
+ public LookupServiceConfiguration setRiverPort(int port) {
+ getSetting(Options.RIVER_PORT).setOverride(String.valueOf(port));
+ return this;
+ }
+
+ private Setting getSetting(String key) {
+ return options.get(key);
+ }
+
+ private GroupedSetting getGroupSetting(String key) {
+ return (GroupedSetting) options.get(key);
+ }
+
+ public Configuration riverConfig() throws ConfigurationException, IOException {
Properties p = new Properties();
p.load( VelocityConfigurationBuilder.class.getResourceAsStream("velocity.properties") );
VelocityEngine ve = new VelocityEngine(p);
@@ -43,8 +66,8 @@ public class LookupServiceConfiguration
StringBuilder options = new StringBuilder();
StringBuilder defaults = new StringBuilder();
- String key = opts.PACKAGE_NAME.getOverride()+'.';
- for(Setting setting : opts.OPTIONS) {
+ String key = this.options.get(Options.PACKAGE_NAME).getOverride()+'.';
+ for(Setting setting : this.options.getOptions()) {
String format = setting.getFormatter();
if(setting.isServiceDescription()) {
@@ -83,25 +106,79 @@ public class LookupServiceConfiguration
StringReader sr = new StringReader(s);
- return new LookupServiceConfiguration(sr, new String[0]);//opts.getOptionsArray());
+ return new ConfigurationFile(sr, new String[0]);//opts.getOptionsArray());
}
- private LookupServiceConfiguration(Reader reader, String[] options) throws ConfigurationException {
- super(reader,options);
- }
+// public static LookupServiceConfiguration config() throws IOException, ConfigurationException {
+//
+// Options opts = new Options();
+// opts.PACKAGE_NAME.setOverride("com.sun.jini.reggie");
+//// 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.MEMBER_GROUPS.add("Chuck").add("Sarah");
+//// 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.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/reggie.jar");
+// opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/jini-ext.jar");
+//// opts.POLICY.setOverride("secure.policy");
+//// opts.SERVER_EXPORTER.asJeriExporter("localhost", 4161);
+//
+// Properties p = new Properties();
+// p.load( VelocityConfigurationBuilder.class.getResourceAsStream("velocity.properties") );
+// VelocityEngine ve = new VelocityEngine(p);
+// VelocityContext context = new VelocityContext();
+//
+// StringBuilder options = new StringBuilder();
+// StringBuilder defaults = new StringBuilder();
+// String key = opts.PACKAGE_NAME.getOverride()+'.';
+// for(Setting setting : opts.OPTIONS) {
+// String format = setting.getFormatter();
+// if(setting.isServiceDescription()) {
+//
+// String name = key + setting.getName();
+//
+// options
+// .append(",\"")
+// .append(name)
+// .append('=')
+// .append(String.format(format, setting.getOverride()))
+// .append("\"\n");
+//
+// defaults
+// .append(setting.getName())
+// .append('=')
+// .append(String.format(format, setting.getDefault()))
+// .append(";\n");
+// } else {
+// context.put(setting.getName(),
+// String.format(format, setting.getOverride()));
+// }
+// }
+//
+// context.put("defaults", defaults.toString());
+// context.put("options", options.toString());
+//
+// Template template = ve.getTemplate( Options.class.getResource("start.config").toExternalForm() );
+//
+// StringWriter sw = new StringWriter();
+//
+// template.merge(context, sw);
+//
+// String s = sw.toString();
+//
+// LOGGER.warning(s);
+//
+// StringReader sr = new StringReader(s);
+//
+// return new LookupServiceConfiguration(sr, new String[0]);//opts.getOptionsArray());
+// }
-// public ConventionalLookupServiceConfiguration(String[] options) throws ConfigurationException {
-// super(fileReader(), options);
+// LookupServiceConfiguration(Reader reader, String[] options) throws ConfigurationException {
+// super(reader,options);
// }
+
- @Override
- public Object getEntry(String component, String name, Class type,
- Object defaultValue) throws ConfigurationException {
- if("initialMemberGroups".equals(name)) {
-// return new String[0];
- return super.getEntry(component, name, type, defaultValue);
- } else {
- return super.getEntry(component, name, type, defaultValue);
- }
- }
}
Modified: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/TransactionServiceConfiguration.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/TransactionServiceConfiguration.java?rev=1325398&r1=1325397&r2=1325398&view=diff
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/TransactionServiceConfiguration.java (original)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/TransactionServiceConfiguration.java Thu Apr 12 17:39:08 2012
@@ -1,89 +1,80 @@
package org.apache.river.extra.easystart.config;
-import java.io.IOException;
import java.io.Reader;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.Properties;
import java.util.logging.Logger;
import net.jini.config.ConfigurationException;
import net.jini.config.ConfigurationFile;
-import org.apache.river.config.builder.VelocityConfigurationBuilder;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-
public class TransactionServiceConfiguration extends ConfigurationFile {
private static final Logger LOGGER = Logger.getLogger(TransactionServiceConfiguration.class.getName());
- public static TransactionServiceConfiguration config() throws IOException, ConfigurationException {
-
- Options opts = new Options();
- opts.PACKAGE_NAME.setOverride("com.sun.jini.mahalo");
-// 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.mahalo.TransientMahaloImpl");
- opts.CODEBASE.add("mahalo-dl.jar").add("jsk-dl.jar");
- opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/mahalo.jar");
-// opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/jini-ext.jar");
-// opts.POLICY.setOverride("secure.policy");
-// opts.SERVER_EXPORTER.asJeriExporter("localhost", 4161);
-
- Properties p = new Properties();
- p.load( VelocityConfigurationBuilder.class.getResourceAsStream("velocity.properties") );
- VelocityEngine ve = new VelocityEngine(p);
- VelocityContext context = new VelocityContext();
-
- StringBuilder options = new StringBuilder();
- StringBuilder defaults = new StringBuilder();
- String key = opts.PACKAGE_NAME.getOverride()+'.';
- for(Setting setting : opts.OPTIONS) {
- String format = setting.getFormatter();
- if(setting.isServiceDescription()) {
-
- String name = key + setting.getName();
-
- options
- .append(",\"")
- .append(name)
- .append('=')
- .append(String.format(format, setting.getOverride()))
- .append("\"\n");
-
- defaults
- .append(setting.getName())
- .append('=')
- .append(String.format(format, setting.getDefault()))
- .append(";\n");
- } else {
- context.put(setting.getName(),
- String.format(format, setting.getOverride()));
- }
- }
-
- context.put("defaults", defaults.toString());
- context.put("options", options.toString());
-
- Template template = ve.getTemplate( Options.class.getResource("start.config").toExternalForm() );
-
- StringWriter sw = new StringWriter();
-
- template.merge(context, sw);
-
- String s = sw.toString();
-
- LOGGER.warning(s);
-
- StringReader sr = new StringReader(s);
-
- return new TransactionServiceConfiguration(sr, new String[0]);//opts.getOptionsArray());
- }
+// public static TransactionServiceConfiguration config() throws IOException, ConfigurationException {
+//
+// Options opts = new Options();
+// opts.PACKAGE_NAME.setOverride("com.sun.jini.mahalo");
+//// 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.mahalo.TransientMahaloImpl");
+// opts.CODEBASE.add("mahalo-dl.jar").add("jsk-dl.jar");
+// opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/mahalo.jar");
+//// opts.CLASSPATH.add(opts.RIVER_HOME.getOverride()+"/lib/jini-ext.jar");
+//// opts.POLICY.setOverride("secure.policy");
+//// opts.SERVER_EXPORTER.asJeriExporter("localhost", 4161);
+//
+// Properties p = new Properties();
+// p.load( VelocityConfigurationBuilder.class.getResourceAsStream("velocity.properties") );
+// VelocityEngine ve = new VelocityEngine(p);
+// VelocityContext context = new VelocityContext();
+//
+// StringBuilder options = new StringBuilder();
+// StringBuilder defaults = new StringBuilder();
+// String key = opts.PACKAGE_NAME.getOverride()+'.';
+// for(Setting setting : opts.OPTIONS) {
+// String format = setting.getFormatter();
+// if(setting.isServiceDescription()) {
+//
+// String name = key + setting.getName();
+//
+// options
+// .append(",\"")
+// .append(name)
+// .append('=')
+// .append(String.format(format, setting.getOverride()))
+// .append("\"\n");
+//
+// defaults
+// .append(setting.getName())
+// .append('=')
+// .append(String.format(format, setting.getDefault()))
+// .append(";\n");
+// } else {
+// context.put(setting.getName(),
+// String.format(format, setting.getOverride()));
+// }
+// }
+//
+// context.put("defaults", defaults.toString());
+// context.put("options", options.toString());
+//
+// Template template = ve.getTemplate( Options.class.getResource("start.config").toExternalForm() );
+//
+// StringWriter sw = new StringWriter();
+//
+// template.merge(context, sw);
+//
+// String s = sw.toString();
+//
+// LOGGER.warning(s);
+//
+// StringReader sr = new StringReader(s);
+//
+// return new TransactionServiceConfiguration(sr, new String[0]);//opts.getOptionsArray());
+// }
private TransactionServiceConfiguration(Reader reader, String[] options) throws ConfigurationException {
super(reader,options);
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ClasspathSetting.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ClasspathSetting.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ClasspathSetting.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ClasspathSetting.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,46 @@
+package org.apache.river.extra.easystart.config.settings;
+
+import java.util.List;
+
+public class ClasspathSetting extends GroupedSetting {
+
+ protected ClasspathSetting(String name,
+ List<String> defaults,
+ String format,
+ String elementFormat,
+ boolean serviceDescription) {
+ super(name, defaults, format, elementFormat, serviceDescription);
+ }
+
+ @Override
+ protected String formatAsArray(List<String> items) {
+ StringBuilder sb = new StringBuilder();
+ sb
+ .append("ConfigUtil.concat(")
+ .append('\n')
+ .append("new Object[] {")
+ .append('\n');
+ for(int i=0 ; i<items.size() ; i++) {
+ sb.append('"').append(items.get(i)).append('"');
+ if(i < items.size()-1) {
+ sb.append(",java.io.File.pathSeparator,");
+ }
+ }
+ sb.append(" })");
+
+ return String.format(super.getFormatter(), sb.toString());
+ }
+
+ @Override
+ public Object clone() {
+ GroupedSetting clone = new ClasspathSetting(super.name,
+ super.defaults,
+ super.format,
+ this.elementFormat,
+ super.isServiceDescription());
+ for(String override : this.overrides) {
+ clone.add(override);
+ }
+ return clone;
+ }
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/CodebaseSetting.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/CodebaseSetting.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/CodebaseSetting.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/CodebaseSetting.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,60 @@
+package org.apache.river.extra.easystart.config.settings;
+
+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 sb.toString();
+ }
+
+ @Override
+ public Object clone() {
+ GroupedSetting clone = new CodebaseSetting(super.name,
+ this.httpPort,
+ this.httpServer,
+ super.defaults,
+ super.format,
+ this.elementFormat,
+ super.isServiceDescription());
+ for(String override : this.overrides) {
+ clone.add(override);
+ }
+ return clone;
+ }
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/DefaultOptions.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/DefaultOptions.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/DefaultOptions.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/DefaultOptions.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,107 @@
+package org.apache.river.extra.easystart.config.settings;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.logging.Logger;
+
+public class DefaultOptions implements Cloneable {
+
+ private static final Logger LOGGER = Logger.getLogger(Options.class.getName());
+
+ 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";
+
+ public static final String MEMBER_GROUP = "initialMemberGroups";
+ public static final String LOOKUP_GROUP = "initialLookupGroups";
+ public static final String RIVER_PORT = "initialUnicastDiscoveryPort";
+ public static final String PACKAGE_NAME = "servicePackageName";
+ public static final String SERVICE_IMPL = "serviceImpl";
+ public static final String CODEBASE = "codebase";
+ public static final String CLASSPATH = "classpath";
+ public static final String RIVER_HOME = "riverHome";
+
+ private static String RIVER_HOME_DIR;
+ static {
+ RIVER_HOME_DIR = (String) System.getProperties().get(RIVER_HOME_ENV_NAME);
+ if(null == RIVER_HOME_DIR) {
+ LOGGER.severe(RIVER_HOME_ENV_NAME+" has not been set");
+ RIVER_HOME_DIR = ".";
+ } else {
+ LOGGER.severe("Using "+RIVER_HOME_ENV_NAME+"="+RIVER_HOME_DIR);
+ }
+ }
+
+ private final Map<String, Setting> options = new HashMap<String, Setting>();
+
+ public DefaultOptions() {
+ options.put(RIVER_HOME, new Setting(RIVER_HOME, RIVER_HOME_DIR, STRING_FORMAT, false));
+ options.put("servicePackageName", new Setting("servicePackageName", "org.apache.river", NO_FORMAT, false));
+ options.put(RIVER_PORT, new Setting(RIVER_PORT, "4160", INTEGER_FORMAT, true));
+ options.put("httpPort", new Setting("httpPort", "8080", INTEGER_FORMAT, false));
+ options.put(MEMBER_GROUP, new GroupedSetting(MEMBER_GROUP,
+ new LinkedList<String>(),
+ NO_FORMAT,
+ ESCAPED_STRING_FORMAT,
+ true));
+ options.put(LOOKUP_GROUP, new GroupedSetting(LOOKUP_GROUP,
+ new LinkedList<String>(),
+ NO_FORMAT,
+ ESCAPED_STRING_FORMAT,
+ true));
+ options.put(SERVICE_IMPL, new Setting(SERVICE_IMPL, "", STRING_FORMAT, false));
+ options.put("httpServer", new Setting("httpServer",
+ "ConfigUtil.getHostName()",
+ NO_FORMAT,
+ false));
+ options.put(CODEBASE, new CodebaseSetting(CODEBASE,
+ options.get("httpPort"),
+ options.get("httpServer"),
+ Collections.<String>emptyList(),
+ NO_FORMAT,
+ STRING_FORMAT,
+ false));
+ options.put(CLASSPATH, new ClasspathSetting(CLASSPATH,
+ Collections.<String>emptyList(),
+ NO_FORMAT,
+ STRING_FORMAT,
+ false));
+
+ options.put("policy", new PolicySetting("policy",
+ options.get("riverHome"),
+ "src-extra/policy.all",
+ STRING_FORMAT,
+ false));
+ options.put("serverExporter", new ServerExporterSetting());
+ }
+
+ private DefaultOptions(Map<String, Setting> opts) {
+ for(String key : opts.keySet()) {
+ options.put(key, (Setting)opts.get(key).clone());
+ }
+ }
+
+ public Setting get(String key) {
+ return options.get(key);
+ }
+
+ public GroupedSetting getGrouped(String key) {
+ return (GroupedSetting) get(key);
+ }
+
+ public Collection<Setting> getOptions() {
+ return options.values();
+ }
+
+ @Override
+ public Object clone() {
+ return new DefaultOptions(this.options);
+ }
+
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/GroupedSetting.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/GroupedSetting.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/GroupedSetting.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/GroupedSetting.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,72 @@
+package org.apache.river.extra.easystart.config.settings;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class GroupedSetting extends Setting {
+
+ protected final String elementFormat;
+ protected final List<String> defaults;
+ protected 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 sb.toString();
+ }
+
+ @Override
+ public Object clone() {
+ GroupedSetting clone = new GroupedSetting(super.name, this.defaults, super.format, this.elementFormat, super.isServiceDescription());
+ for(String override : this.overrides) {
+ clone.add(override);
+ }
+ return clone;
+ }
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Options.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Options.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Options.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Options.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,174 @@
+package org.apache.river.extra.easystart.config.settings;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Logger;
+
+public class Options implements Cloneable {
+
+ private static final Logger LOGGER = Logger.getLogger(Options.class.getName());
+
+ 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";
+
+ public static final String MEMBER_GROUP = "initialMemberGroups";
+ public static final String LOOKUP_GROUP = "initialLookupGroups";
+ public static final String RIVER_PORT = "initialUnicastDiscoveryPort";
+ public static final String PACKAGE_NAME = "servicePackageName";
+
+
+ private static String RIVER_HOME_DIR;
+ static {
+ RIVER_HOME_DIR = (String) System.getProperties().get(RIVER_HOME_ENV_NAME);
+ if(null == RIVER_HOME_DIR) {
+ LOGGER.severe(RIVER_HOME_ENV_NAME+" has not been set");
+ RIVER_HOME_DIR = ".";
+ } else {
+ LOGGER.severe("Using "+RIVER_HOME_ENV_NAME+"="+RIVER_HOME_DIR);
+ }
+ }
+
+ private final Setting RIVER_HOME = new Setting("riverHome", RIVER_HOME_DIR, STRING_FORMAT, false);
+ private final Setting PACKAGE_NAME_SETTING = new Setting("servicePackageName", "org.apache.river", NO_FORMAT, false);
+
+ private final Setting JINI_PORT = new Setting(RIVER_PORT, "4160", INTEGER_FORMAT, true);
+ private final Setting HTTP_PORT = new Setting("httpPort", "8080", INTEGER_FORMAT, false);
+
+ private final GroupedSetting MEMBER_GROUPS = new GroupedSetting(MEMBER_GROUP,
+ new LinkedList<String>(),
+ NO_FORMAT,
+ ESCAPED_STRING_FORMAT,
+ true);
+
+ private final GroupedSetting LOOKUP_GROUPS = new GroupedSetting(LOOKUP_GROUP,
+ new LinkedList<String>(),
+ NO_FORMAT,
+ ESCAPED_STRING_FORMAT,
+ true);
+
+ private final Setting SERVICE_IMPL = new Setting("serviceImpl",
+ "",
+ STRING_FORMAT,
+ false);
+
+ private final Setting HTTP_SERVER = new Setting("httpServer",
+ "ConfigUtil.getHostName()",
+ NO_FORMAT,
+ false);
+
+ private final CodebaseSetting CODEBASE = new CodebaseSetting("codebase",
+ HTTP_PORT,
+ HTTP_SERVER,
+ Collections.<String>emptyList(),
+ NO_FORMAT,
+ NO_FORMAT,
+ false);
+
+ private final ClasspathSetting CLASSPATH = new ClasspathSetting("classpath",
+ Collections.<String>emptyList(),
+ NO_FORMAT,
+ NO_FORMAT,
+ false);
+
+ private final Setting POLICY = new PolicySetting("policy",
+ RIVER_HOME,
+ "src-extra/policy.all",
+ STRING_FORMAT,
+ false);
+
+ private final ServerExporterSetting SERVER_EXPORTER = new ServerExporterSetting();
+
+ private final Setting[] OPTIONS = new Setting[] {
+ RIVER_HOME,
+ PACKAGE_NAME_SETTING,
+ JINI_PORT,
+ HTTP_PORT,
+ MEMBER_GROUPS,
+ LOOKUP_GROUPS,
+ SERVICE_IMPL,
+ HTTP_SERVER,
+ CODEBASE,
+ CLASSPATH,
+ POLICY,
+ SERVER_EXPORTER
+ };
+
+ private final Map<String, Setting> map = new HashMap<String, Setting>();
+ {
+ for(Setting setting : OPTIONS) {
+ map.put(setting.getName(), setting);
+ }
+ }
+
+ public void applyDefaults(List<Setting> defaults) {
+ for(Setting setting : defaults) {
+ Setting original = map.get(setting.getName());
+ if(null != original) {
+ original.setOverride(setting.getOverride());
+ } else {
+ map.put(setting.getName(), setting);
+ }
+ }
+ }
+
+ public Setting get(String key) {
+ return map.get(key);
+ }
+
+ public Collection<Setting> getOptions() {
+ return map.values();
+ }
+
+// private static final String RIVER_HOME = "RIVER_HOME";
+// private static final String RIVER_HOME_DIR;
+// static {
+// RIVER_HOME_DIR = (String) System.getProperties().get(RIVER_HOME);
+// if(null == RIVER_HOME_DIR) {
+// LOGGER.severe(RIVER_HOME+" has not been set");
+// } else {
+// LOGGER.severe("Using "+RIVER_HOME+"="+RIVER_HOME_DIR);
+// }
+//
+// }
+//
+// private String group = "grp";
+// private String httpPort = "80";
+// private int jiniPort = 4160;
+// private String packageName = "";
+//
+// public String getRiverHome() {
+// return RIVER_HOME_DIR;
+// }
+//
+// public void setGroup(String g) { this.group = g; }
+// public String getGroup() { return this.group; }
+//
+// public void setHttpPort(String port) { this.httpPort = port; }
+// public String getHttpPort() { return this.httpPort; }
+//
+// public void setJiniPort(int port) { this.jiniPort = port; }
+// public int getJiniPort() { return this.jiniPort; }
+//
+// public String[] getOptionsArray() {
+// return new String[] {
+// getRiverHome()+"src-extra/empty.config",
+// "com.sun.jini.reggie.initialMemberGroups = new String[] {\""+ group+"\"}",
+// "com.sun.jini.reggie.initialUnicastDiscoveryPort = "+jiniPort
+// };
+// }
+//
+// public void setPackageName(String packageName) {
+// this.packageName = packageName;
+// }
+// public String getPackageName() {
+// return this.packageName;
+// }
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/PolicySetting.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/PolicySetting.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/PolicySetting.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/PolicySetting.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,40 @@
+package org.apache.river.extra.easystart.config.settings;
+
+import java.io.File;
+
+public class PolicySetting extends Setting {
+
+ private final Setting riverHome;
+
+ protected PolicySetting(String name,
+ Setting riverHome,
+ String defaultValue,
+ String format,
+ boolean serviceDescription) {
+ super(name, defaultValue, format, serviceDescription);
+ this.riverHome = riverHome;
+ }
+
+ @Override
+ public String getDefault() {
+ if(null == riverHome) {
+ return super.getDefault();
+ } else {
+ return riverHome.getOverride() + File.separator + super.getDefault();
+ }
+ }
+
+ @Override
+ public String getOverride() {
+ if(null == riverHome) {
+ return super.getOverride();
+ } else {
+ return riverHome.getOverride() + File.separator + super.getOverride();
+ }
+ }
+
+ @Override
+ public Object clone() {
+ return new PolicySetting(this.name, this.riverHome, this.defaultValue, this.format, this.serviceDescription);
+ }
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ServerExporterSetting.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ServerExporterSetting.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ServerExporterSetting.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/ServerExporterSetting.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,35 @@
+package org.apache.river.extra.easystart.config.settings;
+
+public class ServerExporterSetting extends Setting {
+
+ private static final String JRMP_STRING = "new net.jini.jrmp.JrmpExporter()";
+
+ protected ServerExporterSetting() {
+ super("serverExporter", JRMP_STRING, Options.NO_FORMAT, true);
+ }
+
+ public void asJrmpExporter() {
+ setOverride(JRMP_STRING);
+ }
+
+ public void asJeriExporter(String registryHost, int registryPort) {
+ String registryEndpoint = String.format("net.jini.jeri.tcp.TcpServerEndpoint.getInstance(%s,%d)",stringToLiteral(registryHost),registryPort);
+ setOverride("new net.jini.jeri.BasicJeriExporter("
+ +registryEndpoint
+ +", new net.jini.jeri.BasicILFactory())");
+ }
+
+ @Override
+ public Object clone() {
+ ServerExporterSetting clone = new ServerExporterSetting();
+ clone.setOverride(this.getOverride());
+ return clone;
+ }
+
+ private String stringToLiteral(String s) {
+ if( s == null ) {
+ return "null" ;
+ }
+ return String.format("\\\"%s\\\"",s);
+ }
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Setting.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Setting.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Setting.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/Setting.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,59 @@
+package org.apache.river.extra.easystart.config.settings;
+
+
+/**
+ * This is an enum-like class which encapsulates some default options when
+ * using River services.
+ *
+ * It is not an enum, on purpose, in order to allow other users to easily
+ * extend and replace as required.
+ *
+ * @author Tom Hobbs
+ *
+ */
+public class Setting implements Cloneable {
+
+ protected final String name, defaultValue, format;
+ protected final boolean serviceDescription;
+ protected String override;
+
+ protected Setting(String name, String defaultValue, String format, boolean serviceDescription) {
+ this.name = name;
+ this.defaultValue = defaultValue;
+ this.format = format;
+ this.serviceDescription = serviceDescription;
+
+ this.override = defaultValue;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public String getDefault() {
+ return defaultValue;
+ }
+
+ public String getFormatter() {
+ return format;
+ }
+
+ public boolean isServiceDescription() {
+ return serviceDescription;
+ }
+
+ public void setOverride(String override) {
+ this.override = override;
+ }
+
+ public String getOverride() {
+ return this.override;
+ }
+
+ @Override
+ public Object clone() {
+ Setting clone = new Setting(this.name, this.defaultValue, this.format, this.serviceDescription);
+ clone.setOverride(this.override);
+ return clone;
+ }
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/SettingsFactory.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/SettingsFactory.java?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/SettingsFactory.java (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/SettingsFactory.java Thu Apr 12 17:39:08 2012
@@ -0,0 +1,12 @@
+package org.apache.river.extra.easystart.config.settings;
+
+public class SettingsFactory {
+
+
+ public void setRiverHome(String r) {}
+ public void setHttpHost(String h) {}
+ public void setHttpPort(String p) {}
+ public void setRiverPort(String p) {}
+ public void setPolicy(String p) {}
+
+}
Added: river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/start.config
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/start.config?rev=1325398&view=auto
==============================================================================
--- river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/start.config (added)
+++ river/jtsk/skunk/easystart/src-extra/org/apache/river/extra/easystart/config/settings/start.config Thu Apr 12 17:39:08 2012
@@ -0,0 +1,55 @@
+/*
+ * 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 net.jini.jrmp.JrmpExporter;
+
+import com.sun.jini.config.ConfigUtil;
+import com.sun.jini.start.NonActivatableServiceDescriptor;
+import com.sun.jini.start.ServiceDescriptor;
+
+com.sun.jini.start {
+
+ private static codebase = ${codebase};
+
+ //private static policy = ${riverHome}+"/src-extra/policy.all";
+ private static policy = ${policy};
+ private static classpath = ${classpath};
+
+ static serviceDescriptors = new ServiceDescriptor[] {
+ new NonActivatableServiceDescriptor(
+ codebase,
+ policy,
+ classpath,
+ ${serviceImpl},
+ new String[] {
+ "-"
+ //overrides
+ ${options}
+ //overrides end
+ }
+ )
+ };
+}
+
+${servicePackageName} {
+
+//defaults
+ ${defaults}
+//defaults end
+
+}