This topic is discussed in the "Grouper Installer" training video.
The Grouper Installer is a jar that will install the Grouper API, quickstart data, UI, WS, and client. The only prerequisites are Java 1.6+ JDK, and the grouperInstaller.jar. It will work in Windows, Unix, Mac (any OS where you can run DOS or shell scripts). It prints out which files are being edited, and which commands are being run, so the user can learn from what is going on. It uses the stock Grouper packages so there is no magic or hidden configuration included.
Here is a movie showing the installer (windows, unix/linux/mac)
Running without network
The Grouper installer requires the internet to download the Grouper tarballs. If you want to run this without the network, download all the tarballs (example links for 2.0.2) (apiBinary, ui, ws, client) and the subjects file (into subjects.sql), and quickstart file (into quickstart.xml), ant, tomcat to the install directory. When the script asks if you want to use the local files, type: t (or just <Enter> since the default is t)
FAQ
I'm using local files for grouperInstaller.jar, but don't see an option for using local files which are in the jar's directory.
It will install the first time without using local files. Then once things are downloaded and built, stop tomcat and hsql, and put some jars in the API lib/custom directory. Then run the installer again, but dont download or extract the tarballs again, and it should build the UI/WS with your jars.
Problem with HSQL DB port:
If there is a problem with the HSQL port, then select that you do not want to use the default included database, then for the database URL, change the port to something else, e.g. from 9001 to 9002 with URL like this: jdbc:hsqldb:hsql://localhost:9002/grouper Leave the username and pass as "sa" and <blank>, and continue
Problem with Java JDK:
There are two types of Java: JRE (runtime env), and JDK (development kit). If you are running with the JRE (which doesnt have a compiler), then you need to make sure you run with the JDK. If you type "javac -version" in your prompt, and it is not java6, or it is not found, then try running the installer with the absolute path of java, e.g. on windows:
C:\projects\grouper.installer-2.0.3>"c:\Program Files\Java\jdk1.6.0_29\bin\java.exe" -jar grouperInstaller.jar
What do I do when I am done with the installer?
See the page on Getting Ready for Production
Example output
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\mchyzer>cd .. C:\Users>cd .. C:\>cd temp C:\temp>cd grouperInstaller C:\temp\grouperInstaller>java -version java version "1.6.0_21" Java(TM) SE Runtime Environment (build 1.6.0_21-b07) Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing) C:\temp\grouperInstaller>java -jar grouperInstaller.jar Enter in the Grouper install directory (note: better if no spaces or special chars) [C:\temp\grouperInstaller]: Installing grouper version: 2.0.2 Downloading from URL: http://www.internet2.edu/grouper/release/2.0.2/grouper.apiBinary-2.0.2.tar.gz to file: C:\temp\gro uperInstaller\grouper.apiBinary-2.0.2.tar.gz Unzipping: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2.tar.gz Expanding: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2.tar Do you want to use the default and included hsqldb database (t|f)? [t]: Editing C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.hibernate.properties: - set property: hibernate.connection.url from: jdbc:hsqldb:hsql://localhost/grouper to: jdbc:hsqldb:hsql://localhost:90 01/grouper - property hibernate.connection.username already was set to: sa, not changing file - property hibernate.connection.password already was set to: , not changing file Do you want this script to start the hsqldb database (note, it must not be running in able to start) (t|f)? [t]: HSQL was not detected to be running (did not successfully stop it) Starting DB with command: C:\dev_inst\java\bin\java -cp C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\lib\jdbcSamples \hsqldb.jar org.hsqldb.Server -database.0 file:C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\grouper -dbname.0 groupe r Checking database with query: SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS Successfully tested database connection Do you want to init the database (delete all existing grouper tables, add new ones) (t|f)? t ################################## Initting DB with command: cmd /c C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\gsh.bat -registry -drop -runscript -noprompt stderr: Grouper ddl object type 'Grouper' has dbVersion: 0 and java version: 25 Grouper ddl object type 'Subject' has dbVersion: 0 and java version: 1 Grouper database schema DDL requires updates (should run script manually and carefully, in sections, verify data before drop statements, backup/export important data before starting, follow change log on confluence, dont run exact same script in multiple envs - generate a new one for each env), script file is: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\ddlScripts\grouperDdl_20111229_12_54_18_538.sql stdout: Using GROUPER_HOME: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\.. Using GROUPER_CONF: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\../conf Using JAVA: java using MEMORY: 64m-750m Grouper starting up: version: 2.0.2, build date: 2011/12/22 14:53:30, env: <no label configured> grouper.properties read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.properties Grouper current directory is: C:\temp\grouperInstaller log4j.properties read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\log4j.properties Grouper is logging to file: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\..\logs\grouper_error.log, at min lev el WARN for package: edu.internet2.middleware.grouper, based on log4j.properties grouper.hibernate.properties: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.hibernate.properties grouper.hibernate.properties: sa@jdbc:hsqldb:hsql://localhost:9001/grouper sources.xml read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\sources.xml sources.xml groupersource id: g:gsa sources.xml jdbc source id: jdbc: GrouperJdbcConnectionProvider Script was executed successfully End Initting DB ################################## Do you want to add quick start subjects to DB (t|f)? [t] Downloading from URL: http://anonsvn.internet2.edu/cgi-bin/viewvc.cgi/i2mi/tags/GROUPER_2_0_2/grouper-qs-builder/subject s.sql?view=co to file: C:\temp\grouperInstaller\subjects.sql ################################## Adding sample subjects with command: cmd /c C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\gsh.bat -registry -runs qlfile C:\temp\grouperInstaller\subjects.sql -noprompt stdout: Using GROUPER_HOME: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\.. Using GROUPER_CONF: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\../conf Using JAVA: java using MEMORY: 64m-750m Script was executed successfully Grouper starting up: version: 2.0.2, build date: 2011/12/22 14:53:30, env: <no label configured> grouper.properties read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.properties Grouper current directory is: C:\temp\grouperInstaller log4j.properties read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\log4j.properties Grouper is logging to file: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\..\logs\grouper_error.log, at min lev el WARN for package: edu.internet2.middleware.grouper, based on log4j.properties grouper.hibernate.properties: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.hibernate.properties grouper.hibernate.properties: sa@jdbc:hsqldb:hsql://localhost:9001/grouper sources.xml read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\sources.xml sources.xml groupersource id: g:gsa sources.xml jdbc source id: jdbc: GrouperJdbcConnectionProvider End adding sample subjects ################################## Do you want to add quickstart data to registry (t|f)? [t] Downloading from URL: http://anonsvn.internet2.edu/cgi-bin/viewvc.cgi/i2mi/tags/GROUPER_2_0_2/grouper-qs-builder/quickst art.xml?view=co to file: C:\temp\grouperInstaller\quickstart.xml ################################## Adding quickstart data with command: cmd /c C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\gsh.bat -xmlimportold G rouperSystem C:\temp\grouperInstaller\quickstart.xml -noprompt stderr: Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectInvite Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectInviteExpireDate Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectInviteDate Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectEmailAddress Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectInviteGroupUuids Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectInviteMemberId Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectInviteUuid Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectInviteEmailWhenRegis tered Grouper note: auto-created attributeDefName: etc:attribute:attrExternalSubjectInvite:externalSubjectInviteEmail Grouper note: auto-created attributeDefName: etc:attribute:rules:rule Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleActAsSubjectId Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleActAsSubjectIdentifier Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleActAsSubjectSourceId Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleCheckType Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleCheckOwnerId Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleCheckOwnerName Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleCheckStemScope Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleCheckArg0 Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleCheckArg1 Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleIfOwnerId Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleIfOwnerName Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleIfConditionEl Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleIfConditionEnum Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleIfConditionEnumArg0 Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleIfConditionEnumArg1 Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleIfStemScope Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleThenEl Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleThenEnum Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleThenEnumArg0 Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleThenEnumArg1 Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleThenEnumArg2 Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleValid Grouper note: auto-created attributeDefName: etc:attribute:rules:ruleRunDaemon Grouper note: auto-created attributeDefName: etc:attribute:permissionLimits:limitExpression Grouper note: auto-created attributeDefName: etc:attribute:permissionLimits:limitIpOnNetworks Grouper note: auto-created attributeDefName: etc:attribute:permissionLimits:limitIpOnNetworkRealm Grouper note: auto-created attributeDefName: etc:attribute:permissionLimits:limitLabelsContain Grouper note: auto-created attributeDefName: etc:attribute:permissionLimits:limitAmountLessThan Grouper note: auto-created attributeDefName: etc:attribute:permissionLimits:limitAmountLessThanOrEqual Grouper note: auto-created attributeDefName: etc:attribute:permissionLimits:limitWeekday9to5 Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoader Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderType Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderDbName Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderScheduleType Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderQuartzCron Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderIntervalSeconds Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderPriority Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderAttrsLike Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderAttrQuery Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderAttrSetQuery Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderActionQuery Grouper note: auto-created attributeDefName: etc:attribute:attrLoader:attributeLoaderActionSetQuery stdout: Using GROUPER_HOME: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\.. Using GROUPER_CONF: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\../conf Using JAVA: java using MEMORY: 64m-750m Grouper starting up: version: 2.0.2, build date: 2011/12/22 14:53:30, env: <no label configured> grouper.properties read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.properties Grouper current directory is: C:\temp\grouperInstaller log4j.properties read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\log4j.properties Grouper is logging to file: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\..\logs\grouper_error.log, at min lev el WARN for package: edu.internet2.middleware.grouper, based on log4j.properties grouper.hibernate.properties: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.hibernate.properties grouper.hibernate.properties: sa@jdbc:hsqldb:hsql://localhost:9001/grouper sources.xml read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\sources.xml sources.xml groupersource id: g:gsa sources.xml jdbc source id: jdbc: GrouperJdbcConnectionProvider End adding quickstart data ################################## Downloading from URL: http://www.internet2.edu/grouper/release/2.0.2/grouper.ui-2.0.2.tar.gz to file: C:\temp\grouperIns taller\grouper.ui-2.0.2.tar.gz Unzipping: C:\temp\grouperInstaller\grouper.ui-2.0.2.tar.gz Expanding: C:\temp\grouperInstaller\grouper.ui-2.0.2.tar Copying file: C:\temp\grouperInstaller\grouper.ui-2.0.2\build.properties.template to file: C:\temp\grouperInstaller\grou per.ui-2.0.2\build.properties Editing C:\temp\grouperInstaller\grouper.ui-2.0.2\build.properties: - set property: grouper.folder from: ../grouper to: C:/temp/grouperInstaller/grouper.apiBinary-2.0.2 - set property: should.copy.context.xml.to.metainf from: true to: false Downloading from URL: http://www.internet2.edu/grouper/downloads/tools/apache-ant-1.8.2-bin.tar.gz to file: C:\temp\grou perInstaller\apache-ant-1.8.2-bin.tar.gz Unzipping: C:\temp\grouperInstaller\apache-ant-1.8.2-bin.tar.gz Expanding: C:\temp\grouperInstaller\apache-ant-1.8.2-bin.tar ################################## Building UI with command: C:\temp\grouperInstaller\grouper.ui-2.0.2> cmd /c C:\temp\grouperInstaller\apache-ant-1.8.2\bin\ant.bat dist stdout: Buildfile: C:\temp\grouperInstaller\grouper.ui-2.0.2\build.xml [copy] Copying 1 file to C:\temp\grouperInstaller\grouper.ui-2.0.2 dist: -setup: -choose-webapp: [propertyfile] Creating new property file: C:\temp\grouperInstaller\grouper.ui-2.0.2\.lastbuild.properties [echo] In setup - do.clean = true cleanable=${webapp.folder.cleanable} -doStop: -doCleanWebappClassFolder: [echo] Removing C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper/WEB-INF/classes -doClean: [echo] Removing C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ui-2.0.2\temp -resources: [echo] In resources - Build folder = C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper -dist-grouper: [echo] Creating C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper\WEB-INF\classes [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper\WEB-INF\lib [echo] Copying Grouper configuration files to C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper/WEB-INF/classe s [copy] Copying 11 files to C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper\WEB-INF\classes -local-log4j: -fix-grouper-home: [echo] Attempting to replace grouper.home with C:/temp/grouperInstaller/grouper.apiBinary-2.0.2/ [echo] Copying ui resources to C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper/WEB-INF/classes/resources [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper\WEB-INF\classes\resources [copy] Copying 8 files to C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper\WEB-INF\classes\resources -additional-build: -optional-conf: -webapp: [delete] Deleting directory C:\temp\grouperInstaller\grouper.ui-2.0.2\temp [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ui-2.0.2\temp -compileGrouper: [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ui-2.0.2\temp\jarBin [javac] C:\temp\grouperInstaller\grouper.ui-2.0.2\build.xml:436: warning: 'includeantruntime' was not set, defaultin g to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 264 source files to C:\temp\grouperInstaller\grouper.ui-2.0.2\temp\jarBin [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [jar] Building jar: C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper\WEB-INF\lib\grouper-ui.jar -additional-build: [copy] Copying 62 files to C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper\WEB-INF\lib [copy] Copying 5 files to C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper\WEB-INF\lib -copyContent: [echo] Copying core UI files to C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper [copy] Copying 603 files to C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper [echo] Processing web.xml [copy] Copying 1 file to C:\temp\grouperInstaller\grouper.ui-2.0.2\temp [echo] web.xmls.isempty=:${web.xmls.isempty}: -merge-xmls: [echo] temp.dir : C:\temp\grouperInstaller\grouper.ui-2.0.2/temp [echo] final.web.xmls : ${final.web.xmls} [echo] ui.folder : C:\temp\grouperInstaller\grouper.ui-2.0.2 [echo] webapp.folder : C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper [copy] Copying 1 file to C:\temp\grouperInstaller\grouper.ui-2.0.2\temp [copy] Copying 1 file to C:\temp\grouperInstaller\grouper.ui-2.0.2\temp [echo] Transforming: C:\temp\grouperInstaller\grouper.ui-2.0.2\temp\50.web.core.xml [echo] C:\temp\grouperInstaller\grouper.ui-2.0.2\temp\60.web.ajax.xml [echo] C:\temp\grouperInstaller\grouper.ui-2.0.2\temp\99.web.core-filters.xml [echo] [echo] [echo] Base = C:\temp\grouperInstaller\grouper.ui-2.0.2\temp\50.web.core.xml [echo] + C:\temp\grouperInstaller\grouper.ui-2.0.2\temp\60.web.ajax.xml [echo] -> C:\temp\grouperInstaller\grouper.ui-2.0.2/temp\web.1.xml [echo] [echo] Base = C:\temp\grouperInstaller\grouper.ui-2.0.2/temp\web.1.xml [echo] + C:\temp\grouperInstaller\grouper.ui-2.0.2\temp\99.web.core-filters.xml [echo] -> C:\temp\grouperInstaller\grouper.ui-2.0.2/dist/grouper/WEB-INF/web.xml [echo] Result: 0 -copy-core-web-xml: -copyContextXmlToMetaInf: -copyContextXmlToTomcat: -html: -war: -web: [echo] **************************************************** [echo] ** The Grouper UI will fail to start if the user ** [echo] ** which your application server runs as does not ** [echo] ** have permission to write to the log files that ** [echo] ** are configured in log4j.properties. See ** [echo] ** build.properties for more information ** [echo] **************************************************** BUILD SUCCESSFUL Total time: 13 seconds End building UI ################################## Downloading from URL: http://www.internet2.edu/grouper/downloads/tools/apache-tomcat-6.0.35.tar.gz to file: C:\temp\grou perInstaller\apache-tomcat-6.0.35.tar.gz Unzipping: C:\temp\grouperInstaller\apache-tomcat-6.0.35.tar.gz Expanding: C:\temp\grouperInstaller\apache-tomcat-6.0.35.tar What ports do you want tomcat to run on (HTTP, JK, shutdown): [8080, 8009, 8005]: Enter the URL path for the UI [grouper]: Editing tomcat config file: C:\temp\grouperInstaller\apache-tomcat-6.0.35\conf\server.xml - adding tomcat context for UI line: '<Context docBase="C:\temp\grouperInstaller\grouper.ui-2.0.2\dist\grouper" path="/ grouper" reloadable="false"/>' Do you want to set the GrouperSystem password in C:\temp\grouperInstaller\apache-tomcat-6.0.35\conf\tomcat-users.xml? [t ]: Enter the GrouperSystem password: somePass Editing file: C:\temp\grouperInstaller\apache-tomcat-6.0.35\conf\tomcat-users.xml - adding Tomcat user GrouperSystem line: '<user username="GrouperSystem" password="somePass" roles="grouper_user"/>' - adding Tomcat role grouper_user line: '<role rolename="grouper_user"/>' Tomcat is supposed to be listening on port: 8080, port not listening, assuming tomcat is not running... ################################## Tomcat start with command (note you need CATALINA_HOME and JAVA_HOME set): C:\temp\grouperInstaller\apache-tomcat-6.0.35\bin\startup.bat End tomcat start (note: logs are in C:\temp\grouperInstaller\apache-tomcat-6.0.35\logs) ################################## Waiting for tomcat to start... Tomcat listening on port: 8080 ################################## Go here for the Grouper UI (change hostname if on different host): http://localhost:8080/grouper/ ################################## Downloading from URL: http://www.internet2.edu/grouper/release/2.0.2/grouper.ws-2.0.2.tar.gz to file: C:\temp\grouperIns taller\grouper.ws-2.0.2.tar.gz Unzipping: C:\temp\grouperInstaller\grouper.ws-2.0.2.tar.gz Expanding: C:\temp\grouperInstaller\grouper.ws-2.0.2.tar Editing C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build.properties: - set property: grouper.dir from: ../grouper to: C:/temp/grouperInstaller/grouper.apiBinary-2.0.2 ################################## Building WS with command: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws> cmd /c C:\temp\grouperInstaller\apache-ant-1.8.2\bin\ant.bat dist stdout: Buildfile: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build.xml checkGrouper: dist: distHelper: compile: [javac] C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build.xml:329: warning: 'includeantruntime' was not set , defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 179 source files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\grouper-ws [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build.xml:334: warning: 'includeantruntime' was not set , defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 79 source files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\grouper-ws [javac] C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build.xml:338: warning: 'includeantruntime' was not set , defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 81 source files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\grouper-ws [jar] Building jar: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws.jar [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\lib [copy] Copying 3 files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classe s [copy] Copying 22 files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\class es [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\ehcache.example.xml to C:\temp\grouperInstalle r\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\ehcache.example.xml [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\ehcache.xml to C:\temp\grouperInstaller\groupe r.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\ehcache.xml [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper-loader.example.properties to C:\temp\g rouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper-loader.example.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper-loader.properties to C:\temp\grouperIn staller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper-loader.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.client.example.properties to C:\temp\g rouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper.client.example.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.client.properties to C:\temp\grouperIn staller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper.client.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.ehcache.example.xml to C:\temp\grouper Installer\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper.ehcache.example.xml [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.ehcache.xml to C:\temp\grouperInstalle r\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper.ehcache.xml [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.example.properties to C:\temp\grouperI nstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper.example.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.hibernate.example.properties to C:\tem p\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper.hibernate.example.propertie s [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.hibernate.properties to C:\temp\groupe rInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper.hibernate.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.properties to C:\temp\grouperInstaller \grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\grouper.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\log4j.example.properties to C:\temp\grouperIns taller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\log4j.example.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\log4j.properties to C:\temp\grouperInstaller\g rouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\log4j.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\morphString.example.properties to C:\temp\grou perInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\morphString.example.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\morphString.properties to C:\temp\grouperInsta ller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\morphString.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\server.example.properties to C:\temp\grouperIn staller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\server.example.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\server.properties to C:\temp\grouperInstaller\ grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\server.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\sources.example.xml to C:\temp\grouperInstalle r\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\sources.example.xml [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\sources.xml to C:\temp\grouperInstaller\groupe r.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\sources.xml [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\spy.example.properties to C:\temp\grouperInsta ller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\spy.example.properties [copy] Copying C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\spy.properties to C:\temp\grouperInstaller\gro uper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\classes\spy.properties [copy] Copying 112 files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\lib [copy] Copying 5 files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\lib [copy] Copying 21 files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws [move] Moving 1 file to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\services [move] Moving 1 file to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws\WEB-INF\services [jar] Building jar: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws.war [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\grouper-ws-soap-client [delete] Deleting directory C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\grouper-ws-soap-client [mkdir] Created dir: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\grouper-ws-soap-client [javac] C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build.xml:578: warning: 'includeantruntime' was not set , defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 211 source files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\grouper-ws-soap-cli ent [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [copy] Copying 215 files to C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\grouper-ws-soap-client [copy] Copied 4 empty directories to 2 empty directories under C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws \build\grouper-ws-soap-client [jar] Building jar: C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist\grouper-ws-soap-client.jar BUILD SUCCESSFUL Total time: 24 seconds End building Ws ################################## Enter the URL path for the WS [grouper-ws]: Editing tomcat config file: C:\temp\grouperInstaller\apache-tomcat-6.0.35\conf\server.xml - adding tomcat context for WS line: '<Context docBase="C:\temp\grouperInstaller\grouper.ws-2.0.2\grouper-ws\build\dist \grouper-ws" path="/grouper-ws" reloadable="false"/>' ################################## Tomcat stop with command (note you need CATALINA_HOME and JAVA_HOME set): C:\temp\grouperInstaller\apache-tomcat-6.0.35\bin\startup.bat End tomcat stop (note: logs are in C:\temp\grouperInstaller\apache-tomcat-6.0.35\logs) ################################## Waiting for tomcat to stop.... Tomcat not listening on port: 8080 ################################## Tomcat start with command (note you need CATALINA_HOME and JAVA_HOME set): C:\temp\grouperInstaller\apache-tomcat-6.0.35\bin\startup.bat End tomcat start (note: logs are in C:\temp\grouperInstaller\apache-tomcat-6.0.35\logs) ################################## Waiting for tomcat to start... Tomcat listening on port: 8080 This is the Grouper WS URL (change hostname if on different host): http://localhost:8080/grouper-ws/ Downloading from URL: http://www.internet2.edu/grouper/release/2.0.2/grouper.clientBinary-2.0.2.tar.gz to file: C:\temp\ grouperInstaller\grouper.clientBinary-2.0.2.tar.gz Unzipping: C:\temp\grouperInstaller\grouper.clientBinary-2.0.2.tar.gz Expanding: C:\temp\grouperInstaller\grouper.clientBinary-2.0.2.tar Editing C:\temp\grouperInstaller\grouper.clientBinary-2.0.2\grouper.client.properties: - set property: grouperClient.webService.url from: to: http://localhost:8080/grouper-ws/servicesRest - set property: grouperClient.webService.login from: to: GrouperSystem - set property: grouperClient.webService.password from: to: somePass ################################## Adding user GrouperSystem to grouper-ws users group with command: cmd /c C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\gsh.bat -runarg grouperSession = GrouperSession.startRootS ession();\nwsGroup = new GroupSave(grouperSession).assignName(\"etc:webServiceClientUsers\").assignCreateParentStemsIfNo tExist(true).save();\nwsGroup.addMember(SubjectFinder.findRootSubject(), false); stdout: Using GROUPER_HOME: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\.. Using GROUPER_CONF: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\../conf Using JAVA: java using MEMORY: 64m-750m Grouper starting up: version: 2.0.2, build date: 2011/12/22 14:53:30, env: <no label configured> grouper.properties read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.properties Grouper current directory is: C:\temp\grouperInstaller log4j.properties read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\log4j.properties Grouper is logging to file: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\bin\..\logs\grouper_error.log, at min lev el WARN for package: edu.internet2.middleware.grouper, based on log4j.properties grouper.hibernate.properties: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\grouper.hibernate.properties grouper.hibernate.properties: sa@jdbc:hsqldb:hsql://localhost:9001/grouper sources.xml read from: C:\temp\grouperInstaller\grouper.apiBinary-2.0.2\conf\sources.xml sources.xml groupersource id: g:gsa sources.xml jdbc source id: jdbc: GrouperJdbcConnectionProvider Type help() for instructions Running command(s): grouperSession = GrouperSession.startRootSession(); wsGroup = new GroupSave(grouperSession).assignName("etc:webServiceClientUsers").assignCreateParentStemsIfNotExist(true). save(); wsGroup.addMember(SubjectFinder.findRootSubject(), false); edu.internet2.middleware.grouper.GrouperSession: cb6b4791ec8546b888c506623a427ccd,'GrouperSystem','application' group: name='etc:webServiceClientUsers' displayName='Grouper Administration:webServiceClientUsers' uuid='ff73a778dfe7455 896034301c9a9b6f6' true ################################## Running client command: C:\temp\grouperInstaller\grouper.clientBinary-2.0.2> C:\dev_inst\java\bin\java -jar grouperClient.jar --operation=getMem bersWs --groupNames=etc:webServiceClientUsers stdout: GroupIndex 0: success: T: code: SUCCESS: group: etc:webServiceClientUsers: subjectIndex: 0: GrouperSystem Success running client command: ################################## ################################## Installation success! Go here for the Grouper UI (change hostname if on different host): http://localhost:8080/grouper/ This is the Grouper WS URL (change hostname if on different host): http://localhost:8080/grouper-ws/ ################################## C:\temp\grouperInstaller>