You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by bf...@apache.org on 2012/02/28 09:19:29 UTC

svn commit: r1294520 - in /oodt/trunk/protocol/api: ./ src/main/bin/ src/main/java/org/apache/oodt/cas/protocol/action/ src/main/java/org/apache/oodt/cas/protocol/cli/ src/main/java/org/apache/oodt/cas/protocol/cli/action/ src/main/java/org/apache/oodt...

Author: bfoster
Date: Tue Feb 28 08:19:28 2012
New Revision: 1294520

URL: http://svn.apache.org/viewvc?rev=1294520&view=rev
Log:
- Integrated CAS-Protocol with CAS-CLI

--------------
OODT-394

Added:
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/BasicVerifyCliAction.java   (with props)
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/CrossProtocolTransferCliAction.java   (with props)
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/DownloadCliAction.java   (with props)
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/GetSupportedFactoriesCliAction.java   (with props)
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/ProtocolCliAction.java   (with props)
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/ProtocolCommandLine.java   (contents, props changed)
      - copied, changed from r1294497, oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/CLProtocolManager.java
    oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-actions.xml   (with props)
    oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-options.xml   (with props)
    oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/
    oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/
    oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/MockProtocolCliAction.java   (with props)
    oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestBasicVerifyCliAction.java   (with props)
    oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestDownloadCliAction.java   (with props)
    oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestProtocolCliAction.java   (with props)
Removed:
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/action/
    oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/CLProtocolManager.java
    oodt/trunk/protocol/api/src/main/resources/policy/protocol-action-beans.xml
    oodt/trunk/protocol/api/src/main/resources/policy/protocol-cmd-line-beans.xml
    oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/action/
Modified:
    oodt/trunk/protocol/api/pom.xml
    oodt/trunk/protocol/api/src/main/bin/protocol
    oodt/trunk/protocol/api/src/main/resources/policy/protocol-config.xml

Modified: oodt/trunk/protocol/api/pom.xml
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/pom.xml?rev=1294520&r1=1294519&r2=1294520&view=diff
==============================================================================
--- oodt/trunk/protocol/api/pom.xml (original)
+++ oodt/trunk/protocol/api/pom.xml Tue Feb 28 08:19:28 2012
@@ -76,6 +76,15 @@
 				</executions>
 			</plugin>
 		</plugins>
+    <resources>
+      <resource>
+        <targetPath>org/apache/oodt/cas/protocol</targetPath>
+        <directory>${basedir}/src/main/resources/policy</directory>
+        <includes>
+          <include>protocol-config.xml</include>
+        </includes>
+      </resource>
+    </resources>
 	</build>
 	<dependencies>
 		<dependency>
@@ -88,6 +97,11 @@
 			<artifactId>cas-metadata</artifactId>
 			<version>${project.parent.version}</version>
 		</dependency>
+    <dependency>
+      <groupId>org.apache.oodt</groupId>
+      <artifactId>cas-cli</artifactId>
+      <version>${project.parent.version}</version>
+    </dependency>
 		<dependency>
 			<groupId>commons-lang</groupId>
 			<artifactId>commons-lang</artifactId>

Modified: oodt/trunk/protocol/api/src/main/bin/protocol
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/bin/protocol?rev=1294520&r1=1294519&r2=1294520&view=diff
==============================================================================
--- oodt/trunk/protocol/api/src/main/bin/protocol (original)
+++ oodt/trunk/protocol/api/src/main/bin/protocol Tue Feb 28 08:19:28 2012
@@ -3,11 +3,12 @@
 set args
 
 if ( $#args > 0 ) then
-	set args = "$*"
+        set args = "$*"
 endif
 
 ${JAVA_HOME}/bin/java \
-	-Djava.ext.dirs=../lib \
-	-Djava.util.logging.config.file=../etc/logging.properties \
-	-Dorg.apache.oodt.cas.protocol.manager.config.file=../policy/protocol-config.xml \
-   	org.apache.oodt.cas.protocol.system.CLProtocolManager ${args}
\ No newline at end of file
+        -Djava.ext.dirs=../lib \
+        -Djava.util.logging.config.file=../etc/logging.properties \
+        -Dorg.apache.oodt.cas.cli.action.spring.config=../policy/cmd-line-actions.xml \
+        -Dorg.apache.oodt.cas.cli.option.spring.config=../policy/cmd-line-options.xml \
+        org.apache.oodt.cas.protocol.system.ProtocolCommandLine ${args}

Added: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/BasicVerifyCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/BasicVerifyCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/BasicVerifyCliAction.java (added)
+++ oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/BasicVerifyCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,84 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//OODT imports
+import org.apache.oodt.cas.cli.exception.CmdLineActionException;
+import org.apache.oodt.cas.protocol.Protocol;
+import org.apache.oodt.cas.protocol.ProtocolFactory;
+import org.apache.oodt.cas.protocol.system.ProtocolManager;
+import org.apache.oodt.cas.protocol.verify.ProtocolVerifier;
+
+/**
+ * Action for determining whether a given {@link Protocol} or auto-determined
+ * {@link Protocol} via {@link ProtocolManager} can connect and pass
+ * verification of the given {@link Verifier} for given site.
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public class BasicVerifyCliAction extends ProtocolCliAction {
+
+   private ProtocolVerifier verifier;
+   private ProtocolFactory factory;
+
+   private boolean lastVerificationResult;
+
+   @Override
+   public void execute(ActionMessagePrinter printer)
+         throws CmdLineActionException {
+      try {
+         if (factory != null) {
+            Protocol protocol = factory.newInstance();
+            if (lastVerificationResult = verifier.verify(protocol, getSite(),
+                  getAuthentication())) {
+               printer.println("Protocol '"
+                     + protocol.getClass().getCanonicalName()
+                     + "' PASSED verification!");
+            } else {
+               printer.println("Protocol '"
+                     + protocol.getClass().getCanonicalName()
+                     + "' FAILED verification!");
+            }
+         } else {
+            Protocol protocol = getProtocolManager().getProtocolBySite(
+                  getSite(), getAuthentication(), verifier);
+            if (lastVerificationResult = protocol != null) {
+               printer.println("Protocol '"
+                     + protocol.getClass().getCanonicalName()
+                     + "' PASSED verification!");
+            } else {
+               printer.println("No Protocol determined, FAILED verification!");
+            }
+         }
+      } catch (Exception e) {
+         throw new CmdLineActionException("Failed to verify factory '"
+               + factory + "' : " + e.getMessage(), e);
+      }
+   }
+
+   public void setVerifier(ProtocolVerifier verifier) {
+      this.verifier = verifier;
+   }
+
+   public void setProtocolFactory(ProtocolFactory factory) {
+      this.factory = factory;
+   }
+
+   protected boolean getLastVerificationResults() {
+      return lastVerificationResult;
+   }
+}

Propchange: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/BasicVerifyCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/CrossProtocolTransferCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/CrossProtocolTransferCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/CrossProtocolTransferCliAction.java (added)
+++ oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/CrossProtocolTransferCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//OODT imports
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.UUID;
+
+//OODT imports
+import org.apache.oodt.cas.cli.exception.CmdLineActionException;
+import org.apache.oodt.cas.protocol.Protocol;
+import org.apache.oodt.cas.protocol.ProtocolFile;
+import org.apache.oodt.cas.protocol.auth.Authentication;
+import org.apache.oodt.cas.protocol.auth.BasicAuthentication;
+import org.apache.oodt.cas.protocol.auth.NoAuthentication;
+import org.apache.oodt.cas.protocol.system.ProtocolManager;
+import org.apache.oodt.cas.protocol.verify.ProtocolVerifier;
+import org.apache.oodt.cas.protocol.verify.ProtocolVerifierFactory;
+
+/**
+ * {@link ProtocolAction} for transferring a file from one host to another
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public class CrossProtocolTransferCliAction extends ProtocolCliAction {
+
+   private URI fromUri;
+   private URI toUri;
+   private ProtocolVerifierFactory verifierFactory;
+
+   @Override
+   public void execute(ActionMessagePrinter printer)
+         throws CmdLineActionException {
+      try {
+         ProtocolVerifier verifier = null;
+         if (verifierFactory != null) {
+            verifier = verifierFactory.newInstance();
+         }
+
+         File localFile = createTempDownloadFile();
+         if (localFile == null) {
+            throw new Exception("Failed to create tempory local file");
+         }
+
+         ProtocolManager protocolManager = getProtocolManager();
+         Protocol fromProtocol = protocolManager.getProtocolBySite(fromUri,
+               getAuthentication(fromUri), verifier);
+         if (fromProtocol == null) {
+            throw new Exception("Failed to get protocol for 'from' URI '"
+                  + fromUri + "'");
+         }
+
+         Protocol toProtocol = protocolManager.getProtocolBySite(toUri,
+               getAuthentication(toUri), verifier);
+         if (toProtocol == null) {
+            throw new Exception("Failed to get protocol for 'to' URI '" + toUri
+                  + "'");
+         }
+
+         fromProtocol
+               .get(new ProtocolFile(fromUri.getPath(), false), localFile);
+         toProtocol.put(localFile, new ProtocolFile(toUri.getPath(), false));
+      } catch (Exception e) {
+         throw new CmdLineActionException(
+               "Failed to transfer between 2 protocols : " + e.getMessage(), e);
+      }
+   }
+
+   public void setFromUri(String fromUri) throws URISyntaxException {
+      this.fromUri = new URI(fromUri);
+   }
+
+   public void setToUri(String toUri) throws URISyntaxException {
+      this.toUri = new URI(toUri);
+   }
+
+   public void setVerifierFactory(ProtocolVerifierFactory verifierFactory) {
+      this.verifierFactory = verifierFactory;
+   }
+
+   private File createTempDownloadFile() {
+      File bogusFile = null;
+      try {
+         bogusFile = File.createTempFile("bogus", "bogus");
+         File tmpDir = new File(bogusFile.getParentFile(), "ProtocolTransfer/"
+               + UUID.randomUUID().toString());
+         tmpDir.mkdirs();
+         return new File(tmpDir, "temp_file");
+      } catch (Exception e) {
+         return null;
+      } finally {
+         try {
+            bogusFile.delete();
+         } catch (Exception e) {
+         }
+      }
+   }
+
+   private Authentication getAuthentication(URI uri) {
+      if (uri.getUserInfo() != null) {
+         String[] userInfo = uri.getUserInfo().split("\\:");
+         return new BasicAuthentication(userInfo[0], userInfo[1]);
+      } else {
+         return new NoAuthentication();
+      }
+   }
+}

Propchange: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/CrossProtocolTransferCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/DownloadCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/DownloadCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/DownloadCliAction.java (added)
+++ oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/DownloadCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,81 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//JDK imports
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+//OODT imports
+import org.apache.oodt.cas.cli.exception.CmdLineActionException;
+import org.apache.oodt.cas.protocol.Protocol;
+import org.apache.oodt.cas.protocol.ProtocolFile;
+import org.apache.oodt.cas.protocol.system.ProtocolManager;
+
+/**
+ * A {@link ProtocolAction} which will downlaod a url
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public class DownloadCliAction extends ProtocolCliAction {
+
+   protected URI uri;
+   protected String toDir;
+   protected Protocol usedProtocol;
+
+   @Override
+   public void execute(ActionMessagePrinter printer)
+         throws CmdLineActionException {
+      try {
+         usedProtocol = createProtocol(getProtocolManager());
+         ProtocolFile fromFile = createProtocolFile();
+         String toFilename = fromFile.equals(ProtocolFile.SEPARATOR)
+               || fromFile.getName().isEmpty() ? uri.getHost() : fromFile
+               .getName();
+         File toFile = (toDir != null) ? new File(toDir, toFilename)
+               : new File(toFilename);
+         usedProtocol.get(fromFile, toFile.getAbsoluteFile());
+      } catch (Exception e) {
+         throw new CmdLineActionException("Failed to download : "
+               + e.getMessage(), e);
+      }
+   }
+
+   public void setUrl(String urlString) throws URISyntaxException {
+      uri = new URI(urlString);
+   }
+
+   public void setToDir(String toDir) {
+      this.toDir = toDir;
+   }
+
+   protected Protocol getUsedProtocol() {
+      return usedProtocol;
+   }
+
+   protected ProtocolFile createProtocolFile() throws URISyntaxException {
+      return new ProtocolFile(uri.getPath(), false);
+   }
+
+   protected Protocol createProtocol(ProtocolManager protocolManager)
+         throws URISyntaxException {
+      return protocolManager.getProtocolBySite(
+            new URI(uri.getScheme(), uri.getHost(), null, null),
+            getAuthentication(), null);
+   }
+}

Propchange: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/DownloadCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/GetSupportedFactoriesCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/GetSupportedFactoriesCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/GetSupportedFactoriesCliAction.java (added)
+++ oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/GetSupportedFactoriesCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//OODT imports
+import org.apache.oodt.cas.cli.exception.CmdLineActionException;
+import org.apache.oodt.cas.protocol.ProtocolFactory;
+
+/**
+ * {@link ProtocolAction} for get a list of supported {@link ProtocolFactory}s.
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public class GetSupportedFactoriesCliAction extends ProtocolCliAction {
+
+   @Override
+   public void execute(ActionMessagePrinter printer)
+         throws CmdLineActionException {
+      try {
+         printer.println("Supported Factories:");
+         for (ProtocolFactory factory : getProtocolManager().getFactories()) {
+            System.out.println(" - " + factory.getClass().getCanonicalName());
+         }
+      } catch (Exception e) {
+         throw new CmdLineActionException(
+               "Failed to get supported factories : " + e.getMessage(), e);
+      }
+   }
+}

Propchange: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/GetSupportedFactoriesCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/ProtocolCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/ProtocolCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/ProtocolCliAction.java (added)
+++ oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/ProtocolCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,84 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//JDK imports
+import java.net.URI;
+import java.net.URISyntaxException;
+
+//OODT imports
+import org.apache.oodt.cas.cli.action.CmdLineAction;
+import org.apache.oodt.cas.metadata.util.PathUtils;
+import org.apache.oodt.cas.protocol.auth.Authentication;
+import org.apache.oodt.cas.protocol.auth.BasicAuthentication;
+import org.apache.oodt.cas.protocol.auth.NoAuthentication;
+import org.apache.oodt.cas.protocol.config.SpringProtocolConfig;
+import org.apache.oodt.cas.protocol.system.ProtocolManager;
+
+/**
+ * Action used to perform some task via a {@link ProtocolManager}
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public abstract class ProtocolCliAction extends CmdLineAction {
+
+   private String user;
+   private String pass;
+   private String site;
+   private ProtocolManager protocolManager;
+
+   public void setUser(String user) {
+      this.user = user;
+   }
+
+   public void setPass(String pass) {
+      this.pass = pass;
+   }
+
+   public void setSite(String site) {
+      this.site = site;
+   }
+
+   public URI getSite() throws URISyntaxException {
+      return site != null ? new URI(site) : null;
+   }
+
+   public Authentication getAuthentication() {
+      if (user == null || pass == null) {
+         return new NoAuthentication();
+      } else {
+         return new BasicAuthentication(user, pass);
+      }
+   }
+
+   public void setProtocolManager(ProtocolManager protocolManager) {
+      this.protocolManager = protocolManager;
+   }
+
+   public ProtocolManager getProtocolManager() throws Exception {
+      if (protocolManager != null) {
+         return protocolManager;
+      }
+      String protocolConfig = PathUtils
+            .doDynamicReplacement(System
+                  .getProperty(
+                        "org.apache.oodt.cas.protocol.manager.config.file",
+                        "classpath:/org/apache/oodt/cas/protocol/protocol-config.xml"));
+      return protocolManager = new ProtocolManager(new SpringProtocolConfig(
+            protocolConfig));
+   }
+}

Propchange: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/cli/action/ProtocolCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/ProtocolCommandLine.java (from r1294497, oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/CLProtocolManager.java)
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/ProtocolCommandLine.java?p2=oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/ProtocolCommandLine.java&p1=oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/CLProtocolManager.java&r1=1294497&r2=1294520&rev=1294520&view=diff
==============================================================================
--- oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/CLProtocolManager.java (original)
+++ oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/ProtocolCommandLine.java Tue Feb 28 08:19:28 2012
@@ -16,53 +16,16 @@
  */
 package org.apache.oodt.cas.protocol.system;
 
-//JDK imports
-import java.util.List;
-
 //OODT imports
-import org.apache.oodt.cas.metadata.util.PathUtils;
-import org.apache.oodt.cas.protocol.action.ProtocolAction;
-import org.apache.oodt.cas.protocol.config.ProtocolConfig;
-import org.apache.oodt.cas.protocol.config.SpringProtocolConfig;
-import org.apache.oodt.commons.option.CmdLineOptionInstance;
-import org.apache.oodt.commons.option.util.CmdLineOptionUtils;
-
-//Spring imports
-import org.springframework.context.support.FileSystemXmlApplicationContext;
+import org.apache.oodt.cas.cli.CmdLineUtility;
 
 /**
- * Command-Line {@link ProtocolManager} which {@link ProtocolAction}s to be
- * invoked
- * 
- * @author bfoster
+ * @author bfoster (Brian Foster)
  */
-public class CLProtocolManager extends ProtocolManager {
-
-	public CLProtocolManager(ProtocolConfig protocolConfig) {
-		super(protocolConfig);
-	}
+public class ProtocolCommandLine {
 
 	public static void main(String[] args) throws Exception {
-		String protocolConfig = PathUtils
-				.doDynamicReplacement(System
-						.getProperty(
-								"org.apache.oodt.cas.protocol.manager.config.file",
-								"classpath:/org/apache/oodt/cas/protocol/actions/protocol-config.xml"));
-
-		FileSystemXmlApplicationContext appContext = new FileSystemXmlApplicationContext(
-				protocolConfig);
-		List<CmdLineOptionInstance> optionInstances = CmdLineOptionUtils
-				.loadValidateAndHandleInstances(appContext, args);
-		CmdLineOptionInstance actionInstance = CmdLineOptionUtils
-				.getOptionInstanceByName("action", optionInstances);
-		String actionArgValue = actionInstance.getValues().get(0);
-		ProtocolAction action = ((ProtocolAction) appContext.getBean(
-				actionArgValue, ProtocolAction.class));
-		try {
-			action.performAction(new CLProtocolManager(
-					new SpringProtocolConfig(protocolConfig)));
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
+      CmdLineUtility cmdLineUtility = new CmdLineUtility();
+      cmdLineUtility.run(args);
 	}
 }

Propchange: oodt/trunk/protocol/api/src/main/java/org/apache/oodt/cas/protocol/system/ProtocolCommandLine.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-actions.xml
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-actions.xml?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-actions.xml (added)
+++ oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-actions.xml Tue Feb 28 08:19:28 2012
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  Author: bfoster 
+  Description: ProtocolManager Configuration
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+	<bean id="download" class="org.apache.oodt.cas.protocol.cli.action.DownloadCliAction">
+		<property name="description" value="Downloads a file" />
+	</bean>
+	<bean id="getSupportedFactories" class="org.apache.oodt.cas.protocol.cli.action.GetSupportedFactoriesCliAction">
+		<property name="description" value="Prints out list of supported ProtocolFactory(s)" />
+	</bean>
+	<bean id="crossProtocolTransfer" class="org.apache.oodt.cas.protocol.cli.action.CrossProtocolTransferCliAction">
+		<property name="description" value="Transfers a file across 2 different protocols" />
+		<property name="verifierFactory" ref="BasicVerifier" />
+	</bean>
+
+	<bean id="BasicVerifier" class="org.apache.oodt.cas.protocol.verify.BasicProtocolVerifierFactory" />
+</beans>

Propchange: oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-actions.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-options.xml
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-options.xml?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-options.xml (added)
+++ oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-options.xml Tue Feb 28 08:19:28 2012
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Author: bfoster Description: ProtocolManager Configuration -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+	<bean id="user" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
+		<property name="shortOption" value="u" />
+		<property name="longOption" value="user" />
+		<property name="description" value="Username for authentication" />
+		<property name="hasArgs" value="true" />
+		<property name="argsDescription" value="username" />
+    <property name="requirementRules">
+      <list>
+        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
+          p:actionName="download" p:relation="OPTIONAL" />
+      </list>
+    </property>
+    <property name="handler">
+      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
+        <property name="applyToActions">
+          <list>
+            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
+              p:actionName="download" />
+          </list>
+        </property>
+      </bean>
+    </property>
+	</bean>
+
+	<bean id="pass" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
+		<property name="shortOption" value="p" />
+		<property name="longOption" value="pass" />
+		<property name="description" value="Password for authentication" />
+		<property name="hasArgs" value="true" />
+		<property name="argsDescription" value="password" />
+    <property name="requirementRules">
+      <list>
+        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
+          p:actionName="download" p:relation="OPTIONAL" />
+      </list>
+    </property>
+    <property name="handler">
+      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
+        <property name="applyToActions">
+          <list>
+            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
+              p:actionName="download" />
+          </list>
+        </property>
+      </bean>
+    </property>
+	</bean>
+
+	<bean id="url" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
+		<property name="shortOption" value="url" />
+		<property name="longOption" value="url" />
+		<property name="description" value="URL to download" />
+		<property name="hasArgs" value="true" />
+		<property name="argsDescription" value="URL" />
+    <property name="requirementRules">
+      <list>
+        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
+          p:actionName="download" p:relation="REQUIRED" />
+      </list>
+    </property>
+    <property name="handler">
+      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
+        <property name="applyToActions">
+          <list>
+            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
+              p:actionName="download" />
+          </list>
+        </property>
+      </bean>
+    </property>
+	</bean>
+
+	<bean id="fromUrl" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
+		<property name="shortOption" value="fu" />
+		<property name="longOption" value="fromUrl" />
+		<property name="description" value="URL to get file" />
+		<property name="hasArgs" value="true" />
+		<property name="argsDescription" value="URL" />
+    <property name="requirementRules">
+      <list>
+        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
+          p:actionName="crossProtocolTransfer" p:relation="REQUIRED" />
+      </list>
+    </property>
+    <property name="handler">
+      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
+        <property name="applyToActions">
+          <list>
+            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
+              p:actionName="CrossProtocolTransfer" p:methodName="setFromUri" />
+          </list>
+        </property>
+      </bean>
+    </property>
+	</bean>
+
+	<bean id="toUrl" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
+		<property name="shortOption" value="tu" />
+		<property name="longOption" value="toUrl" />
+		<property name="description" value="URL to send file" />
+		<property name="hasArgs" value="true" />
+		<property name="argsDescription" value="URL" />
+    <property name="requirementRules">
+      <list>
+        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
+          p:actionName="crossProtocolTransfer" p:relation="REQUIRED" />
+      </list>
+    </property>
+    <property name="handler">
+      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
+        <property name="applyToActions">
+          <list>
+            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
+              p:actionName="CrossProtocolTransfer" p:methodName="setToUri" />
+          </list>
+        </property>
+      </bean>
+    </property>
+	</bean>
+</beans>

Propchange: oodt/trunk/protocol/api/src/main/resources/policy/cmd-line-options.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: oodt/trunk/protocol/api/src/main/resources/policy/protocol-config.xml
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/main/resources/policy/protocol-config.xml?rev=1294520&r1=1294519&r2=1294520&view=diff
==============================================================================
--- oodt/trunk/protocol/api/src/main/resources/policy/protocol-config.xml (original)
+++ oodt/trunk/protocol/api/src/main/resources/policy/protocol-config.xml Tue Feb 28 08:19:28 2012
@@ -10,8 +10,6 @@
 	xmlns:p="http://www.springframework.org/schema/p"
 	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 
-  <import resource="protocol-action-beans.xml"/>
-  <import resource="protocol-cmd-line-beans.xml"/>
 	<import resource="classpath*:/org/apache/oodt/cas/protocol/**/*-protocol-config.xml"/>
 	
 </beans>
\ No newline at end of file

Added: oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/MockProtocolCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/MockProtocolCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/MockProtocolCliAction.java (added)
+++ oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/MockProtocolCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//OODT imports
+import org.apache.oodt.cas.cli.exception.CmdLineActionException;
+
+/**
+ * Mock class for {@ProtocolAction}.
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public class MockProtocolCliAction extends ProtocolCliAction {
+
+   @Override
+   public void execute(ActionMessagePrinter printer)
+         throws CmdLineActionException {      
+   }
+}

Propchange: oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/MockProtocolCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestBasicVerifyCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestBasicVerifyCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestBasicVerifyCliAction.java (added)
+++ oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestBasicVerifyCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//JDK imports
+import java.net.URI;
+
+//JUnit imports
+import junit.framework.TestCase;
+
+//OODT imports
+import org.apache.oodt.cas.cli.action.CmdLineAction.ActionMessagePrinter;
+import org.apache.oodt.cas.protocol.Protocol;
+import org.apache.oodt.cas.protocol.auth.Authentication;
+import org.apache.oodt.cas.protocol.config.MockSpringProtocolConfig;
+import org.apache.oodt.cas.protocol.system.ProtocolManager;
+import org.apache.oodt.cas.protocol.verify.ProtocolVerifier;
+
+/**
+ * Test class for {@link BasicVerifyCliAction}
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public class TestBasicVerifyCliAction extends TestCase {
+
+   public void testVerification() throws Exception {
+      BasicVerifyCliAction bva = new BasicVerifyCliAction();
+      bva.setSite("http://localhost");
+      bva.setVerifier(new ProtocolVerifier() {
+         public boolean verify(Protocol protocol, URI site,
+               Authentication auth) {
+            return auth != null && site.toString().equals("http://localhost");
+         }
+      });
+      bva.setProtocolManager(new ProtocolManager(new MockSpringProtocolConfig()));
+      bva.execute(new ActionMessagePrinter());
+      assertTrue(bva.getLastVerificationResults());
+   }
+}

Propchange: oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestBasicVerifyCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestDownloadCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestDownloadCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestDownloadCliAction.java (added)
+++ oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestDownloadCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//JDK imports
+import java.net.URISyntaxException;
+
+//OODT imports
+import org.apache.oodt.cas.cli.action.CmdLineAction.ActionMessagePrinter;
+import org.apache.oodt.cas.protocol.MockProtocol;
+import org.apache.oodt.cas.protocol.Protocol;
+import org.apache.oodt.cas.protocol.ProtocolFile;
+import org.apache.oodt.cas.protocol.config.MockSpringProtocolConfig;
+import org.apache.oodt.cas.protocol.system.ProtocolManager;
+
+//JUnit imports
+import junit.framework.TestCase;
+
+/**
+ * Test class for {@link DownloadCliAction}.
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public class TestDownloadCliAction extends TestCase {
+   
+   private ProtocolManager pm;
+   
+   @Override
+   public void setUp() {
+      pm = new ProtocolManager(new MockSpringProtocolConfig());
+   }
+   
+   public void testCreateProtocol() throws URISyntaxException {
+      DownloadCliAction da = new DownloadCliAction();
+      da.setUrl("http://localhost/some/file");
+      Protocol protocol = da.createProtocol(pm);
+      assertNotNull(protocol);
+      assertTrue(protocol instanceof MockProtocol);
+      assertEquals("http1", ((MockProtocol) protocol).getFactoryId());
+   }
+   
+   public void testCreateProtocolFile() throws URISyntaxException {
+      DownloadCliAction da = new DownloadCliAction();
+      da.setUrl("http://localhost/some/file");
+      ProtocolFile file = da.createProtocolFile();
+      assertNotNull(file);
+      assertEquals("/some/file", file.getPath());
+      assertFalse(file.isRelative());
+      assertFalse(file.isDir());
+   }
+   
+   public void testFileDownload() throws Exception {
+      DownloadCliAction da = new DownloadCliAction();
+      da.setUrl("http://localhost/some/file");
+      da.setProtocolManager(pm);
+      da.execute(new ActionMessagePrinter());
+      assertNotNull(da.getUsedProtocol());
+      assertTrue(da.getUsedProtocol() instanceof MockProtocol);
+      assertEquals(1, ((MockProtocol) da.getUsedProtocol()).getGetFiles().size());
+      assertEquals("/some/file", ((MockProtocol) da.getUsedProtocol()).getGetFiles().get(0).getPath());
+   }
+}

Propchange: oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestDownloadCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestProtocolCliAction.java
URL: http://svn.apache.org/viewvc/oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestProtocolCliAction.java?rev=1294520&view=auto
==============================================================================
--- oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestProtocolCliAction.java (added)
+++ oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestProtocolCliAction.java Tue Feb 28 08:19:28 2012
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+package org.apache.oodt.cas.protocol.cli.action;
+
+//JDK imports
+import java.net.URISyntaxException;
+
+//JUnit imports
+import junit.framework.TestCase;
+
+/**
+ * Test class for {@link ProtocolCliAction}.
+ * 
+ * @author bfoster (Brian Foster)
+ */
+public class TestProtocolCliAction extends TestCase {
+
+   public void testInitialState() throws URISyntaxException {
+      MockProtocolCliAction action = new MockProtocolCliAction();
+      action.setUser("user");
+      action.setPass("pass");
+      action.setSite("http://some-site");
+      assertEquals("user", action.getAuthentication().getUser());
+      assertEquals("pass", action.getAuthentication().getPass());
+      assertEquals("http://some-site", action.getSite().toString());
+   }
+}

Propchange: oodt/trunk/protocol/api/src/test/org/apache/oodt/cas/protocol/cli/action/TestProtocolCliAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain