Removed Files:
.cvsignore README build.xml csv2group.java sample.csv
Log Message:
deprecated and relocated
--- contrib/load/csv2group/README
+++ /dev/null
@@ -1,56 +0,0 @@
-
-# Load groups into the registry using the _Grouper_ API
-
-This code was contributed by The University Of Chicago.
-
-$Id: README,v 1.6 2005/01/23 17:44:42 blair Exp $
-
----
-
-## Build
-
- % cd $GROUPER_BASE/load/csv2group
- % ant
-
---
-
-## Run
-
- % cd $GROUPER_BASE/load/csv2group
- % export CLASSPATH=.:/path/to/Grouper.jar:/path/to/Grouper-lib.jar:/path/to/grouper/conf/dir
- % java csv2group -h
- % java csv2group -v -f sample.csv
-
---
-
-## Input File Format
-
-Each line should have one of the following formats:
-
-* Add a stem:
-
- stem,add,<stem>,<extension>
-
-* Add a group
-
- group,add,<stem>,<extension>
-
-* Add a _person_ as a member
-
- member,add,<stem>,<extension>,<subjectID>
-
-* Add a _group_ as a member
-
- member,add,<target stem>,<target extension>,<member stem>,<member extension>
-
-A _#_ at the beginning of a line will treat the entire line as a
-comment.
-
-See the _sample.csv_ file for examples.
-
---
-
-## Bugs
-
-* No support for removing groups
-
--- contrib/load/csv2group/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# $Id: .cvsignore,v 1.1 2004/12/07 03:08:50 blair Exp $
-#
-*.class
--- contrib/load/csv2group/csv2group.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*
- * Copyright (C) 2004-2005 The University Of Chicago
- * All Rights Reserved.
- *
- * You may use and distribute under the same terms as Grouper itself
- */
-
-
-import edu.internet2.middleware.grouper.*;
-import edu.internet2.middleware.subject.*;
-
-import java.io.*;
-import java.util.*;
-import org.apache.commons.cli.*;
-
-
-/**
- * Sample loader for adding groups and memberships to the registry
- * using the {@link Grouper} API.
- * <p />
- * See <i>README</i> for more information.
- *
- * @author blair christensen.
- * @version $Id: csv2group.java,v 1.28 2005/07/07 03:08:28 blair Exp $
- */
-class csv2group {
-
- /*
- * PRIVATE CONSTANTS
- */
- private static final String NAME = "csv2group";
-
-
- /*
- * PRIVATE CLASS VARIABLES
- */
- private static CommandLine cmd;
- private static boolean continueOnError = false;
- private static GrouperMember mem;
- private static Options options;
- private static String path;
- private static boolean quiet = false;
- private static GrouperSession s;
- private static Subject subj;
- private static String subjectID;
- private static boolean verbose = false;
- private static int exitCode = 0;
-
-
- /*
- * PUBLIC CLASS METHODS
- */
- public static void main(String[] args) {
- _opts(args); // Parse and handle command line options
- _grouperStart(); // Initialize Grouper and start session
- _csvReadAndExecute(); // Read and parse input file
- _grouperStop(); // And we're done. Tidy up.
- System.exit(exitCode);
- }
-
-
- /*
- * PRIVATE CLASS METHODS
- */
-
- /* (!javadoc)
- * Read in CSV file and execute accordingly
- */
- private static void _csvReadAndExecute() {
- if (path != null) {
- try {
- BufferedReader br = new BufferedReader(new FileReader(path));
- String line = null;
- while ((line=br.readLine()) != null){
- if (line.startsWith("#")) {
- continue; // Ignore comments
- }
- StringTokenizer st = new StringTokenizer(line, ",");
- /*
- * Trust the dispatch engine to DTRT.
- * Right now, if an action receives more tokens than it
- * wants, it silently ignores them. I can't decide if I want
- * to change that or not.
- */
- if ( (st.countTokens() > 3) && (st.countTokens() < 7) ) {
- List tokens = new ArrayList();
- while (st.hasMoreTokens()) {
- tokens.add(st.nextToken());
- }
- _verbose("Received tokens " + tokens);
- if (!_dispatch(tokens)) {
- _verbose("Error dispatching '" + line + "'");
- if (continueOnError != true) {
- exitCode = 1;
- break;
- }
- }
- } else {
- System.err.println("Skipping, invalid format: '" + line + "'");
- }
- }
- br.close();
- } catch (IOException e) {
- System.err.println("Error processing '" + path + "': " + e);
- }
- } else {
- _usage();
- }
- }
-
- /* (!javadoc)
- * CSV Dispatch Handler
- */
- private static boolean _dispatch(List tokens) {
- boolean rv = false;
- String cat = (String) tokens.remove(0);
- if (cat.equals("group")) {
- rv = _dispatchGroup(tokens);
- } else if (cat.equals("member")) {
- rv = _dispatchMember(tokens);
- } else if (cat.equals("stem")) {
- rv = _dispatchStem(tokens);
- } else {
- System.err.println("ERROR: Invalid category: `" + cat + "'");
- }
- return rv;
- }
-
- /* (!javadoc)
- * Group Dispatch Handler
- */
- private static boolean _dispatchGroup(List tokens) {
- boolean rv = false;
- String act = (String) tokens.remove(0);
- if (act.equals("add")) {
- rv = _groupAdd(tokens);
- } else {
- System.err.println("ERROR: Invalid group action: `" + act + "'");
- }
- return rv;
- }
-
- /* (!javadoc)
- * Member Dispatch Handler
- */
- private static boolean _dispatchMember(List tokens) {
- boolean rv = false;
- String act = (String) tokens.remove(0);
- if (act.equals("add")) {
- rv = _memberAdd(tokens);
- } else {
- System.err.println("ERROR: Invalid member action: `" + act + "'");
- }
- return rv;
- }
-
- /* (!javadoc)
- * Stem Dispatch Handler
- */
- private static boolean _dispatchStem(List tokens) {
- boolean rv = false;
- String act = (String) tokens.remove(0);
- if (act.equals("add")) {
- rv = _stemAdd(tokens);
- } else {
- System.err.println("ERROR: Invalid stem action: `" + act + "'");
- }
- return rv;
- }
-
- /* (!javadoc)
- * Add a group to the registry.
- */
- private static boolean _groupAdd(List tokens) {
- boolean rv = false;
- String stem = (String) tokens.get(0);
- String extn = (String) tokens.get(1);
- try {
- GrouperGroup g = GrouperGroup.create(
- s, stem, extn, Grouper.DEF_GROUP_TYPE
- );
- _report("Added group: " + g.name());
- rv = true;
- } catch (RuntimeException e) {
- System.err.println("Failed to add group " + stem + ":" + extn + ": " + e);
- }
- return rv;
- }
-
- /* (!javadoc)
- * Initialize the {@link Grouper} environment and start a
- * {@link GrouperSession}.
- */
- private static void _grouperStart() {
- _subject();
- s = GrouperSession.start(subj);
- _verbose(
- "Started session as " +
- subj.getId() + ":" +
- subj.getType().getName()
- );
- mem = GrouperMember.load(s, subj);
- _verbose("Loaded member " + mem.subjectID() + ":" + mem.typeID());
- }
-
- /* (!javadoc)
- * Stop the {@link Grouper} session.
- */
- private static void _grouperStop() {
- s.stop();
- }
-
- /* (!javadoc)
- * Add a member to the registry.
- */
- private static boolean _memberAdd(List tokens) {
- boolean rv = false;
- String stem = (String) tokens.get(0);
- String extn = (String) tokens.get(1);
- String name = null; // For pretty printing
- String sid = null;
- String stid = Grouper.DEF_SUBJ_TYPE;
- if (tokens.size() == 3) {
- // Adding a non-group as a member
- sid = (String) tokens.get(2);
- name = sid;
- } else if (tokens.size() > 1) {
- // Adding a group as a member
-
- // Ye Olde Silent Ignore Trick
- String mS = (String) tokens.get(2);
- String mE = (String) tokens.get(3);
- GrouperGroup mAsG = GrouperGroup.load(s, mS, mE);
- if (mAsG != null) {
- name = mAsG.name();
- sid = mAsG.id();
- stid = "group";
- } else {
- System.err.println("Unable to fetch member group!");
- }
- }
- // Load the group
- GrouperGroup g = GrouperGroup.load(s, stem, extn);
- if (g != null) {
- try {
- // Load the member
- GrouperMember m = GrouperMember.load(s, sid, stid);
- if (m != null) {
- try {
- g.listAddVal(m);
- rv = true;
- _report("Added member: " + name + " to " + g.name());
- } catch (RuntimeException e) {
- System.err.println(e.getMessage());
- rv = false;
- }
- }
- } catch (SubjectNotFoundException e) {
- System.err.println(e.getMessage());
- rv = false;
- }
- }
- if (rv != true) {
- _report("Failed to add member " + name + " to " + stem + ":" + extn);
- }
- return rv;
- }
-
- /* (!javadoc)
- * Handle command line options.
- */
- private static void _opts(String[] args) {
- _optsParse(args); // Parse CLI options
- _optsProcess(); // Handle CLI options
- }
-
- /* (!javadoc)
- * Parse command line options.
- * <p />
- * @param String array.
- */
- private static void _optsParse(String[] args) {
- options = new Options();
- options.addOption("c", false, "Continue on operation error");
- OptionBuilder.hasArg();
- OptionBuilder.withArgName("file");
- OptionBuilder.withDescription("Specify input file [REQUIRED]");
- options.addOption( OptionBuilder.create("f") );
- options.addOption("h", false, "Print usage information");
- options.addOption("q", false, "Be more quiet");
- options.addOption("v", false, "Be more verbose [Overrides -q]");
- CommandLineParser parser = new PosixParser();
- try {
- cmd = parser.parse(options, args);
- } catch (ParseException e) {
- System.err.println("Unable to parse command line options: " + e.getMessage());
- System.exit(1);
- }
- }
-
- /* (!javadoc)
- *
- * Process command line options.
- */
- private static void _optsProcess() {
- if (cmd == null) {
- System.err.println("Error parsing command line options!");
- System.exit(1);
- }
- // Handle help first
- if (cmd.hasOption("h")) {
- _usage();
- System.exit(0);
- }
- // And then verbose because it may affect output later in this
- // method
- if (cmd.hasOption("v")) {
- verbose = true;
- _verbose("Enabling verbose mode");
- }
- // And now everything else
- if (cmd.hasOption("c")) {
- continueOnError = true;
- _verbose("Enabling continue on operation error mode");
- }
- if (cmd.hasOption("f")) {
- path = cmd.getOptionValue("f");
- _verbose("Using input file '" + path + "'");
- }
- if (cmd.hasOption("q")) {
- quiet = true;
- _verbose("Enabling quiet mode");
- }
- }
-
- /* (!javadoc)
- *
- * Conditionally print default messages.
- * <p />
- * @param msg Message to print if not running in quiet mode.
- */
- private static void _report(String msg) {
- if (quiet == true) {
- _verbose(msg);
- } else {
- System.err.println(msg);
- }
- }
-
- /* (!javadoc)
- * Add a group to the registry.
- */
- private static boolean _stemAdd(List tokens) {
- boolean rv = false;
- String stem = (String) tokens.remove(0);
- String extn = (String) tokens.remove(0);
- // TODO Bah. I have to do the interpolation for the config file.
- if (stem.equals("Grouper.NS_ROOT")) {
- stem = Grouper.NS_ROOT;
- }
- try {
- GrouperStem ns = GrouperStem.create(s, stem, extn);
- _report("Added stem: " + ns.name());
- rv = true;
- } catch (RuntimeException e) {
- _report("Failed to add stem " + stem + ":" + extn + ": " + e);
- }
- return rv;
- }
-
- /* (!javadoc)
- * Instantiate a subject via the {@link Subject} interface.
- */
- private static void _subject() {
- if (subjectID == null) {
- _verbose("Using default subjectID");
- subjectID = Grouper.config("member.system");
- if (subjectID == null) {
- System.err.println("Unable to retrieve default subjectID!");
- System.exit(1);
- }
- }
- _verbose("Using default subjectTypeID (" + Grouper.DEF_SUBJ_TYPE + ")");
- _verbose("Looking up subjectID '" + subjectID + "'");
- try {
- subj = SubjectFactory.getSubject(subjectID, Grouper.DEF_SUBJ_TYPE);
- } catch (SubjectNotFoundException e) {
- System.err.println(e.getMessage());
- System.exit(1);
- }
- }
-
- /* (!javadoc)
- *
- * Print usage information.
- */
- private static void _usage() {
- HelpFormatter formatter = new HelpFormatter();
- formatter.printHelp(NAME, options);
- }
-
- /* (!javadoc)
- *
- * Conditionally print verbose messages.
- * <p />
- * @param msg Message to print if running verbosely.
- */
- private static void _verbose(String msg) {
- if (verbose == true) {
- System.err.println(msg);
- }
- }
-
-}
-
--- contrib/load/csv2group/sample.csv
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# This is a sample _csv2group_ source file.
-#
-stem,add,Grouper.NS_ROOT,alt
-stem,add,alt,test
-group,add,alt:test,group
-group,add,alt:test,hello-world
-stem,add,Grouper.NS_ROOT,comp
-stem,add,comp,lang
-stem,add,comp:lang,java
-stem,add,comp:lang,perl
-group,add,comp:lang,awk
-group,add,comp:lang,ruby
-group,add,comp:lang,java
-group,add,comp:lang:java,announce
-group,add,comp:lang,perl
-group,add,comp:lang:perl,misc
-member,add,comp:lang,ruby,adams
-member,add,comp:lang,ruby,bartlett
-member,add,comp:lang,ruby,braxton
-member,add,comp:lang,ruby,carroll
-member,add,comp:lang,java,wilson
-member,add,comp:lang,java,witherspoon
-member,add,comp:lang,java,wolcott
-member,add,comp:lang,java,wythe
-member,add,comp:lang:java,announce,adams
-member,add,comp:lang:java,announce,chase
-member,add,comp:lang:java,announce,clark
-member,add,comp:lang:java,announce,clymer
-member,add,comp:lang:java,announce,wilson
-member,add,comp:lang:java,announce,witherspoon
-member,add,comp:lang,perl,ellery
-member,add,comp:lang,perl,franklin
-member,add,comp:lang,perl,gerry
-member,add,comp:lang:perl,misc,gerry
-member,add,comp:lang,java,comp:lang:java,announce
-member,add,comp:lang:perl,misc,comp:lang,perl
-member,add,comp:lang,awk,clark
--- contrib/load/csv2group/build.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<!-- $Id: build.xml,v 1.2 2004/12/07 03:08:50 blair Exp $ -->
-
-<project name="csv2group" default="build" basedir=".">
-
- <!-- set global properties for this build -->
- <property name="app.name" value="csv2group"/>
- <property name="src" location="${basedir}"/>
- <property name="grouper.basedir" location="../../.."/>
- <property name="build" location="${basedir}"/>
-
- <target name="init">
- <tstamp />
- <mkdir dir="${build}" />
- <!-- only define our classpath once -->
- <path id="project.class.path">
- <pathelement path="${classpath}"/>
- <!-- for configuration files -->
- <pathelement path="${grouper.basedir}/conf/"/>
- <fileset dir="${grouper.basedir}/java/lib">
- <include name="**/*.jar"/>
- </fileset>
- <pathelement location="${grouper.basedir}/build/grouper/"/>
- </path>
- </target>
-
- <target name="build">
- <javac srcdir="${src}" destdir="${build}">
- <classpath refid="project.class.path" />
- <include name="csv2group.java" />
- </javac>
- </target>
-
- <target name="clean" description="clean up" >
- <delete file="${build}/${app.name}.class" />
- </target>
-
-</project>
-