svn commit: r3077 - in projects/silk/core: lib src/java/org/ops4j/silk src/unittests/org/ops4j/silk

peter at neubauer.se peter at neubauer.se
Thu Jul 21 21:43:15 UTC 2005


Author: peter at neubauer.se
Date: Thu Jul 21 17:43:13 2005
New Revision: 3077

Added:
   projects/silk/core/lib/te-common-3.0.0-pre3.jar   (contents, props changed)
   projects/silk/core/lib/te-common-ext-jaxor3.2-beta.jar   (contents, props changed)
   projects/silk/core/lib/te-common-ext-jaxor3.2-pre.jar   (contents, props changed)
Modified:
   projects/silk/core/src/java/org/ops4j/silk/Main.java
   projects/silk/core/src/unittests/org/ops4j/silk/MainTest.java
Log:
added some CLI handling


Added: projects/silk/core/lib/te-common-3.0.0-pre3.jar
==============================================================================
Binary file. No diff available.

Added: projects/silk/core/lib/te-common-ext-jaxor3.2-beta.jar
==============================================================================
Binary file. No diff available.

Added: projects/silk/core/lib/te-common-ext-jaxor3.2-pre.jar
==============================================================================
Binary file. No diff available.

Modified: projects/silk/core/src/java/org/ops4j/silk/Main.java
==============================================================================
--- projects/silk/core/src/java/org/ops4j/silk/Main.java	(original)
+++ projects/silk/core/src/java/org/ops4j/silk/Main.java	Thu Jul 21 17:43:13 2005
@@ -2,34 +2,93 @@
 
 import org.ops4j.silk.context.SilkContext;
 import org.ops4j.silk.context.SilkContextBuilder;
-
-import org.ops4j.silk.service.SilkService;
 import org.ungoverned.oscar.Oscar;
 import org.ungoverned.oscar.util.DefaultBundleCache;
 
+import com.townleyenterprises.command.CommandOption;
+import com.townleyenterprises.command.CommandParser;
+import com.townleyenterprises.command.DefaultCommandListener;
+import com.townleyenterprises.command.JoinedCommandOption;
+import com.townleyenterprises.command.RequiredOptionConstraint;
 
 public class Main
 {
+	private static final String PROFILE_NAME = "silk_profile";
+
+	private static Oscar m_Oscar = null;
+
+	private CommandParser m_Parser;
+
+	public Main( String[] args )
+	{
+		m_Parser = new CommandParser( "silk", "TARGET" );
+		m_Parser.setExitOnMissingArg( true, -10 );
+		m_Parser.setExtraHelpText(
+				"Short description of the Silk command line options",
+				"For further documentation, please consult www.ops4j.org" );
+		m_Parser.addCommandListener( new DefaultCommandListener(
+				"silk options", m_MainOptions ) );
+		m_Parser.parse( args );
+		//m_Parser.addConstraint( new RequiredOptionConstraint( -501, m_Target ) );
+		try
+		{
+			m_Parser.executeCommands();
+		} catch ( Exception e )
+		{
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+	}
+
+	public static void main( String[] args )
+	{
+		new Main( args );
+
+	}
+
+	private static void startOscar()
+	{
+		System
+				.setProperty( DefaultBundleCache.CACHE_PROFILE_PROP,
+						PROFILE_NAME );
+		m_Oscar = new Oscar();
+
+	}
+
+	private CommandOption m_WorkingDir = new CommandOption( "workingDir", 'd',
+			true, "WORKING_DIR", "specify the name of the working dir" )
+	{
+		public void execute() throws Exception
+		{
+			System.out.println( "setting working dir" );
+		}
+	};
+
+	private CommandOption m_Target = new CommandOption( "target", 't', true,
+			"TARGET", "specify the name of the build target",true, "build")
+			{
+
+				public void execute() throws Exception
+				{
+					SilkContextBuilder builder = new SilkContextBuilder();
+					builder.buildFromStringArray( new String[]{getArg(), ""} );
+					SilkContext context = builder.getSilkContext();
+
+					// TODO
+					// Start Oscar, find the Silk Core Service...
+					startOscar();
+					// SilkService service = ....
+					// service.execute( context );
+				}
+				
+			};
+
+	private JoinedCommandOption m_SystemOptions = new JoinedCommandOption( 'D',
+			false, "PROPERTY=VALUE[,PROPERTY=VALUE...]",
+			"set specific run-time system properties", true  );
+
+	private CommandOption[] m_MainOptions =
+	{ m_WorkingDir, m_SystemOptions, m_Target };
 
-    private static final String PROFILE_NAME = "silk_profile";
-    private static Oscar m_Oscar = null;
-    public static void main( String[] args )
-    {
-        SilkContextBuilder builder = new SilkContextBuilder();
-        builder.buildFromStringArray( args );
-        SilkContext context = builder.getSilkContext();
-        
-        // TODO
-        // Start Oscar, find the Silk Core Service...
-        startOscar( );
-        // SilkService service = ....
-        // service.execute( context );
-    }
-
-    private static void startOscar()
-    {
-        System.setProperty(DefaultBundleCache.CACHE_PROFILE_PROP, PROFILE_NAME);
-        m_Oscar = new Oscar();
-        
-    }
-} 
+}

Modified: projects/silk/core/src/unittests/org/ops4j/silk/MainTest.java
==============================================================================
--- projects/silk/core/src/unittests/org/ops4j/silk/MainTest.java	(original)
+++ projects/silk/core/src/unittests/org/ops4j/silk/MainTest.java	Thu Jul 21 17:43:13 2005
@@ -30,7 +30,15 @@
 	 * Test method for 'org.ops4j.silk.Main.main(String[])'
 	 */
 	public void testMain() {
-		String[] args = {".", "compile"};
+		String[] args = {"-d", ".", "-t","build"};
+		Main.main( args );
+		
+	}
+	/*
+	 * Test method for 'org.ops4j.silk.Main.main(String[])'
+	 */
+	public void _testMainHelp() {
+		String[] args = {"--help"};
 		Main.main( args );
 		
 	}



More information about the Notify mailing list