airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From scnakand...@apache.org
Subject [1/7] airavata git commit: adding more files
Date Thu, 07 Jul 2016 15:43:44 GMT
Repository: airavata
Updated Branches:
  refs/heads/grouper-integration 70f857953 -> 89e0fdc80


http://git-wip-us.apache.org/repos/asf/airavata/blob/89e0fdc8/modules/group-manager/src/main/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/modules/group-manager/src/main/resources/log4j.properties b/modules/group-manager/src/main/resources/log4j.properties
new file mode 100755
index 0000000..9cde476
--- /dev/null
+++ b/modules/group-manager/src/main/resources/log4j.properties
@@ -0,0 +1,154 @@
+#
+# Copyright 2014 Internet2
+#
+# Licensed 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.
+#
+
+# will be substituted with the System property "grouper.home", which must have a trailing \ or / 
+# depending on your OS. Of course you can use absolute paths if you prefer 
+
+
+#
+# log4j Configuration
+# $Id: log4j.example.properties,v 1.13 2009-12-18 13:56:51 tzeller Exp $
+#
+
+# Appenders
+
+## Log messages to stderr
+log4j.appender.grouper_stderr                           = org.apache.log4j.ConsoleAppender
+log4j.appender.grouper_stderr.Target                    = System.err
+log4j.appender.grouper_stderr.layout                    = org.apache.log4j.PatternLayout
+log4j.appender.grouper_stderr.layout.ConversionPattern  = %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
+
+## Log messages to stdout
+log4j.appender.grouper_stdout                           = org.apache.log4j.ConsoleAppender
+log4j.appender.grouper_stdout.Target                    = System.out
+log4j.appender.grouper_stdout.layout                    = org.apache.log4j.PatternLayout
+log4j.appender.grouper_stdout.layout.ConversionPattern  = %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
+
+## Grouper API event logging
+log4j.appender.grouper_event                            = org.apache.log4j.DailyRollingFileAppender
+log4j.appender.grouper_event.File                       = logs/grouper_event.log
+log4j.appender.grouper_event.DatePattern                = '.'yyyy-MM-dd
+log4j.appender.grouper_event.layout                     = org.apache.log4j.PatternLayout
+log4j.appender.grouper_event.layout.ConversionPattern   = %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
+
+## Grouper API error logging
+log4j.appender.grouper_error                            = org.apache.log4j.DailyRollingFileAppender
+log4j.appender.grouper_error.File                       = logs/grouper_error.log
+log4j.appender.grouper_error.DatePattern                = '.'yyyy-MM-dd
+log4j.appender.grouper_error.layout                     = org.apache.log4j.PatternLayout
+log4j.appender.grouper_error.layout.ConversionPattern   = %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
+#log4j.appender.grouper_error.layout.ConversionPattern   = %d{ISO8601}: %m%n
+
+# Debug logging (Or: logging that I haven't cleaned up yet to send elsewhere)
+log4j.appender.grouper_debug                            = org.apache.log4j.RollingFileAppender
+log4j.appender.grouper_debug.File                       = logs/grouper_debug.log
+log4j.appender.grouper_debug.MaxFileSize                = 100KB
+log4j.appender.grouper_debug.MaxBackupIndex             = 1
+log4j.appender.grouper_debug.layout                     = org.apache.log4j.PatternLayout
+#log4j.appender.grouper_debug.layout.ConversionPattern   = %d{ISO8601} %5p %c{2}: %m%n
+log4j.appender.grouper_debug.layout.ConversionPattern   = %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
+
+## Benchmark logging
+log4j.appender.grouper_gb                               = org.apache.log4j.RollingFileAppender
+log4j.appender.grouper_gb.File                          = logs/grouper_bench.log
+log4j.appender.grouper_gb.MaxFileSize                   = 100KB
+log4j.appender.grouper_gb.MaxBackupIndex                = 1
+log4j.appender.grouper_gb.layout                        = org.apache.log4j.PatternLayout
+#log4j.appender.grouper_gb.layout.ConversionPattern      = %d{ISO8601} %5p %c{2}: %m%n
+log4j.appender.grouper_gb.layout.ConversionPattern      = %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n
+
+# Loggers
+
+## Default logger; will log *everything*
+log4j.rootLogger  = ERROR, grouper_error
+
+## All Internet2 (warn to grouper_error per default logger)
+log4j.logger.edu.internet2.middleware = WARN
+
+
+# Provisioning : PSP (version 2.1+)
+log4j.logger.edu.internet2.middleware.psp = INFO
+
+# Provisioning : vt-ldap
+# log4j.logger.edu.vt.middleware.ldap = INFO
+
+# Provisioning : Grouper plugin to Shibboleth attribute resolver
+# log4j.logger.edu.internet2.middleware.grouper.shibboleth = INFO
+
+
+# For more precise (or verbose) logging, enable one or more of the
+# following logging directives.  To remove duplicate entries, just change the 
+# level, and not where to send the logs
+# http://robertmarkbramprogrammer.blogspot.com/2007/06/log4j-duplicate-lines-in-output.html
+
+## Grouper Event Logging
+## * Logs at _info_ only
+log4j.logger.edu.internet2.middleware.grouper.log.EventLog        = INFO, grouper_event
+log4j.logger.edu.internet2.middleware.grouper.RegistryInstall = INFO, grouper_event, grouper_stderr
+
+## Grouper Error Logging
+## * Logs at _warn_, _fatal_ and _error_ only (by default this is WARN due to internet2 below)
+#log4j.logger.edu.internet2.middleware.grouper              = WARN, grouper_error
+
+## Grouper Debug Logging
+## * NOTE: There is currently VERY LITTLE (useful) information sent to this.
+## * Logs at _info_ only currently
+#log4j.logger.edu.internet2.middleware.grouper              = INFO, grouper_debug
+
+## Grouper XML Export + Import Logging
+## TODO Integrate with normal logging
+log4j.logger.edu.internet2.middleware.grouper.xml.XmlExporter           = INFO, grouper_event
+log4j.logger.edu.internet2.middleware.grouper.xml.XmlImporter           = INFO, grouper_event
+
+## Grouper Benchmark Logging
+log4j.logger.edu.internet2.middleware.grouper.bench                 = INFO, grouper_gb, grouper_stderr
+
+## Grouper script to add missing group sets
+log4j.logger.edu.internet2.middleware.grouper.misc.AddMissingGroupSets   = INFO, grouper_event
+
+## Grouper Sync Point in Time Tables
+log4j.logger.edu.internet2.middleware.grouper.misc.SyncPITTables   = INFO, grouper_event
+
+## Grouper Sync Stem Set Table
+log4j.logger.edu.internet2.middleware.grouper.misc.SyncStemSets      = INFO, grouper_event
+
+## Grouper Migrate Legacy Attributes
+log4j.logger.edu.internet2.middleware.grouper.misc.MigrateLegacyAttributes = INFO, grouper_event
+
+### Subject API
+#log4j.logger.edu.internet2.middleware.subject                       = ERROR, grouper_error
+#log4j.logger.edu.internet2.middleware.subject.provider              = ERROR, grouper_error
+### Hibernate 
+#log4j.logger.org.hibernate                                          = ERROR, grouper_error
+### ehcache
+#log4j.logger.net.sf.ehcache                                         = ERROR, grouper_error
+### Spring
+#log4j.logger.org.springframework                                    = ERROR, grouper_error
+
+## Grouper Stress Testing
+log4j.logger.edu.internet2.middleware.grouper.stress                = INFO, grouper_debug, grouper_stderr
+
+
+#######################################################
+##Optional settings for debug logs
+#######################################################
+
+## Hooks debug info
+#log4j.logger.edu.internet2.middleware.grouper.hooks.examples.GroupTypeTupleIncludeExcludeHook = DEBUG
+#log4j.logger.edu.internet2.middleware.grouper.Group = DEBUG
+
+#log4j.logger.edu.internet2.middleware.grouper.hooks.examples.GroupTypeSecurityHook = DEBUG
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/89e0fdc8/modules/group-manager/src/main/resources/morphString.properties
----------------------------------------------------------------------
diff --git a/modules/group-manager/src/main/resources/morphString.properties b/modules/group-manager/src/main/resources/morphString.properties
new file mode 100755
index 0000000..dbb9d60
--- /dev/null
+++ b/modules/group-manager/src/main/resources/morphString.properties
@@ -0,0 +1,21 @@
+#
+# Copyright 2014 Internet2
+#
+# Licensed 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.
+#
+
+# Put a random alphanumeric string (Case sensitive) for the password encryption.  e.g. fh43IRJ4Nf5
+# or put a filename where the random alphanumeric string is.  e.g. c:/whatever/key.txt
+encrypt.key = 
+# set this to true if you have slashes in your passwords and dont want to look in external files or unencrypt
+encrypt.disableExternalFileLookup = false 

http://git-wip-us.apache.org/repos/asf/airavata/blob/89e0fdc8/modules/group-manager/src/main/resources/server.properties
----------------------------------------------------------------------
diff --git a/modules/group-manager/src/main/resources/server.properties b/modules/group-manager/src/main/resources/server.properties
new file mode 100755
index 0000000..e4a06b1
--- /dev/null
+++ b/modules/group-manager/src/main/resources/server.properties
@@ -0,0 +1,26 @@
+#
+# Copyright 2014 Internet2
+#
+# Licensed 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.
+#
+
+# HSQLDB Server Configuration
+# $Id: server.example.properties,v 1.1 2008-09-29 03:38:30 mchyzer Exp $
+server.address=127.0.0.1
+server.port=9001
+server.address=localhost
+server.port=9001
+server.silent=true
+server.database.0=file:dist/run/grouper
+server.dbname.0=grouper
+server.urlid.0=grouper

http://git-wip-us.apache.org/repos/asf/airavata/blob/89e0fdc8/modules/group-manager/src/main/resources/sources.xml
----------------------------------------------------------------------
diff --git a/modules/group-manager/src/main/resources/sources.xml b/modules/group-manager/src/main/resources/sources.xml
new file mode 100755
index 0000000..3ae8b7b
--- /dev/null
+++ b/modules/group-manager/src/main/resources/sources.xml
@@ -0,0 +1,875 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+    Copyright 2014 Internet2
+
+    Licensed 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.
+
+-->
+<!--
+Grouper's subject resolver configuration
+$Id: sources.example.xml,v 1.8 2009-08-11 20:18:09 mchyzer Exp $
+-->
+
+<sources>
+
+  <!-- Group Subject Resolver -->
+  
+  <!-- 
+     You can flag a source as not throwing exception on a findAll (general search) i.e. if it is
+     ok if it is down.  Generally you probably won't want to do this.  It defaults to true if omitted.
+  
+     <init-param>
+       <param-name>throwErrorOnFindAllFailure</param-name>
+       <param-value>false</param-value>
+     </init-param>
+   -->
+  
+  <!-- 
+      You can make virtual attributes (attributes with formatting or based on other attributes) like this:
+      init-param name is subjectVirtualAttribute_<index>_<name> where index is the order to be processed
+      if some depend on others (0 to 99).  The value is the jexl expression language.  You can use subjectUtils
+      methods (aliased with "subjectUtils", or you can register your own class (must have default constructor).
+      Here are examples:
+  
+     <init-param>
+       <param-name>subjectVirtualAttribute_0_loginIdLfName</param-name>
+       <param-value>Hey ${subject.getAttributeValue('LOGINID')} and ${subject.getAttributeValue('LFNAME')}</param-value>
+     </init-param>
+     <init-param>
+       <param-name>subjectVirtualAttribute_1_loginIdLfNameLoginId</param-name>
+       <param-value>${subject.getAttributeValue('loginIdLfName')} Hey ${subject.getAttributeValue('LOGINID')} and ${subject.getAttributeValue('LFNAME')}</param-value>
+     </init-param>
+     <init-param>
+       <param-name>subjectVirtualAttributeVariable_JDBCSourceAdapterTest</param-name>
+       <param-value>edu.internet2.middleware.subject.provider.JDBCSourceAdapterTest</param-value>
+     </init-param>
+     <init-param>
+       <param-name>subjectVirtualAttribute_2_loginIdSquared</param-name>
+       <param-value>${JDBCSourceAdapterTest.appendToSelf(subject.getAttributeValue('LOGINID'))}</param-value>
+     </init-param>
+  
+    The first virtual attribute is accessible via: subject.getAttributeValue("loginIdLfNameLoginId");
+
+    you can set these c3p0 settings: maxConnectionAge (seconds), testConnectionOnCheckout (true|false), 
+       preferredTestQuery (e.g. select 1 from dual), idleConnectionTestPeriod (seconds)
+
+
+     <init-param> 
+       <param-name>findSubjectByIdOnCheckConfig</param-name> 
+       <param-value>true|false</param-value> 
+     </init-param> 
+     <init-param> 
+       <param-name>subjectIdToFindOnCheckConfig</param-name> 
+       <param-value>someSubjectIdWhichMightExistOrWhatever</param-value> 
+     </init-param> 
+
+     <init-param> 
+       <param-name>findSubjectByIdentifiedOnCheckConfig</param-name> 
+       <param-value>true|false</param-value> 
+     </init-param> 
+     <init-param> 
+       <param-name>subjectIdentifierToFindOnCheckConfig</param-name> 
+       <param-value>someSubjectIdentifierWhichMightExistOrWhatever</param-value> 
+     </init-param> 
+
+     <init-param> 
+       <param-name>findSubjectByStringOnCheckConfig</param-name> 
+       <param-value>true|false</param-value> 
+     </init-param> 
+     <init-param> 
+       <param-name>stringToFindOnCheckConfig</param-name> 
+       <param-value>someStringWhichMightExistOrWhatever</param-value> 
+     </init-param>
+   -->
+  
+  <!-- 
+    NOTE: It is recommended that you **not** change the default
+          values for this source adapter.
+  -->
+  <source adapterClass="edu.internet2.middleware.grouper.GrouperSourceAdapter">
+    <id>g:gsa</id>
+    <name>Grouper: Group Source Adapter</name>
+    <type>group</type>
+
+    <init-param>
+      <param-name>subjectVirtualAttribute_0_searchAttribute0</param-name>
+      <param-value>${subject.getAttributeValue('name')},${subject.getAttributeValue('displayName')},${subject.getAttributeValue('alternateName')}</param-value>
+    </init-param>
+    <init-param>
+      <param-name>sortAttribute0</param-name>
+      <param-value>displayExtension</param-value>
+    </init-param>
+    <init-param>
+      <param-name>searchAttribute0</param-name>
+      <param-value>searchAttribute0</param-value>
+    </init-param>
+    <!-- on a findPage() this is the most results returned --> 
+    <init-param>
+      <param-name>maxPageSize</param-name>
+      <param-value>100</param-value>
+    </init-param>
+    <internal-attribute>searchAttribute0</internal-attribute>
+  </source>
+  <!-- Group Subject Resolver -->
+
+  <!-- 
+    NOTE: It is recommended that you **not** change the default
+          values for this source adapter.
+  -->
+  <source adapterClass="edu.internet2.middleware.grouper.entity.EntitySourceAdapter">
+    <id>grouperEntities</id>
+    <name>Grouper: Entity Source Adapter</name>
+    <type>application</type>
+
+    <init-param>
+      <param-name>subjectVirtualAttribute_0_searchAttribute0</param-name>
+      <!-- TODO add attribute for subject identifier -->
+      <param-value>${subject.getAttributeValue('name')},${subject.getAttributeValue('displayName')},${subject.getAttributeValue('alternateName')}</param-value>
+    </init-param>
+    <init-param>
+      <param-name>sortAttribute0</param-name>
+      <param-value>name</param-value>
+    </init-param>
+    <init-param>
+      <param-name>searchAttribute0</param-name>
+      <param-value>searchAttribute0</param-value>
+    </init-param>
+    <internal-attribute>searchAttribute0</internal-attribute>
+  </source>
+  <!-- Entity Subject Resolver -->
+
+ <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter">
+    <id>jdbc</id>
+    <name>Example JDBC Source Adapter</name>
+     <type>person</type>
+     
+     <!-- edu.internet2.middleware.subject.provider.C3p0JdbcConnectionProvider (default)
+          edu.internet2.middleware.subject.provider.DbcpJdbcConnectionProvider (legacy) 
+          edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider 
+            (same settings as grouper.hibernate.properties, the driver, url, pass, maxActive, maxIdle, maxWait are forbidden -->
+     <init-param>
+       <param-name>jdbcConnectionProvider</param-name>
+       <param-value>edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider </param-value>
+     </init-param>
+     
+     <!-- If using emails and need email addresses in sources, set which attribute has the email address in this source -->
+     <init-param>
+       <param-name>emailAttributeName</param-name>
+       <param-value>email</param-value>
+     </init-param>
+     
+     <!-- if more than this many results are returned, then throw a too many subjects exception -->
+     <init-param>
+       <param-name>maxResults</param-name>
+       <param-value>1000</param-value>
+     </init-param>
+
+    <!-- on a findPage() this is the most results returned --> 
+    <init-param>
+      <param-name>maxPageSize</param-name>
+      <param-value>100</param-value>
+    </init-param>
+
+     <!-- note: again, if you use GrouperJdbcConnectionProvider, then you should not fill out maxActive, maxIdle,
+       maxWait, dbDriver, dbUrl, dbUser, dbPwd, since it will use the grouper.hibernate.properties db settings -->
+
+     <!--   init-param>
+       <param-name>maxActive</param-name>
+       <param-value>16</param-value>
+     </init-param>
+     <init-param>
+       <param-name>maxIdle</param-name>
+       <param-value>16</param-value>
+     </init-param>
+     <init-param>
+       <param-name>maxWait</param-name>
+       <param-value>-1</param-value>
+     </init-param -->
+     
+     <!--      
+       e.g. mysql:           com.mysql.jdbc.Driver
+       e.g. p6spy (log sql): com.p6spy.engine.spy.P6SpyDriver
+         for p6spy, put the underlying driver in spy.properties
+       e.g. oracle:          oracle.jdbc.driver.OracleDriver
+       e.g. hsqldb:          org.hsqldb.jdbcDriver
+       e.g. postgres:        org.postgresql.Driver -->
+
+     <!-- init-param>
+       <param-name>dbDriver</param-name>
+       <param-value>org.hsqldb.jdbcDriver</param-value>
+     </init-param -->
+     
+     <!-- 
+       e.g. mysql:           jdbc:mysql://localhost:3306/grouper
+       e.g. p6spy (log sql): [use the URL that your DB requires]
+       e.g. oracle:          jdbc:oracle:thin:@server.school.edu:1521:sid
+       e.g. hsqldb (a):      jdbc:hsqldb:dist/run/grouper;create=true
+       e.g. hsqldb (b):      jdbc:hsqldb:hsql://localhost:9001
+       e.g. postgres:        jdbc:postgresql:grouper -->
+     
+     <!-- init-param>
+       <param-name>dbUrl</param-name>
+       <param-value>jdbc:hsqldb:C:/projects/GrouperI2MI_1-2/grouper/dist/run/grouper</param-value>
+     </init-param>
+     <init-param>
+       <param-name>dbUser</param-name>
+       <param-value>sa</param-value>
+     </init-param>
+     <init-param>
+       <param-name>dbPwd</param-name>
+       <param-value></param-value>
+     </init-param -->
+     
+      <init-param>
+       <param-name>SubjectID_AttributeType</param-name>
+       <param-value>id</param-value>
+     </init-param>
+     <init-param>
+       <param-name>Name_AttributeType</param-name>
+       <param-value>name</param-value>
+     </init-param>
+     <init-param>
+       <param-name>Description_AttributeType</param-name>
+       <param-value>description</param-value>
+     </init-param>
+     <init-param>
+       <param-name>subjectVirtualAttribute_0_searchAttribute0</param-name>
+       <param-value>${subject.name},${subjectUtils.defaultIfBlank(subject.getAttributeValue('LFNAME'), "")},${subjectUtils.defaultIfBlank(subject.getAttributeValue('LOGINID'), "")},${subjectUtils.defaultIfBlank(subject.description, "")},${subjectUtils.defaultIfBlank(subject.getAttributeValue('EMAIL'), "")}</param-value>
+     </init-param>
+     <init-param>
+       <param-name>sortAttribute0</param-name>
+       <param-value>LFNAME</param-value>
+     </init-param>
+     <init-param>
+       <param-name>sortAttribute1</param-name>
+       <param-value>LOGINID</param-value>
+     </init-param>
+     <init-param>
+       <param-name>searchAttribute0</param-name>
+       <param-value>searchAttribute0</param-value>
+     </init-param>
+     <internal-attribute>searchAttribute0</internal-attribute>
+     
+     <!-- if you are going to use the inclause attribute
+       on the search to make the queries batchable when searching
+       by id or identifier -->
+     <init-param>
+       <param-name>useInClauseForIdAndIdentifier</param-name>
+       <param-value>true</param-value>
+     </init-param>
+     
+     <!-- comma separate the identifiers for this row, this is for the findByIdentifiers if using an in clause -->
+     <init-param>
+       <param-name>identifierAttributes</param-name>
+       <param-value>LOGINID</param-value>
+     </init-param>
+
+     <!-- subject identifier to store in grouper's member table -->
+     <init-param>
+       <param-name>subjectIdentifierAttribute0</param-name>
+       <param-value>LOGINID</param-value>
+     </init-param>
+
+     <search>
+         <searchType>searchSubject</searchType>
+         <param>
+             <param-name>sql</param-name>
+             <param-value>
+select
+   s.subjectid as id, s.name as name,
+   (select sa2.value from subjectattribute sa2 where name='name' and sa2.SUBJECTID = s.subjectid) as lfname,
+   (select sa3.value from subjectattribute sa3 where name='loginid' and sa3.SUBJECTID = s.subjectid) as loginid,
+   (select sa4.value from subjectattribute sa4 where name='description' and sa4.SUBJECTID = s.subjectid) as description,
+   (select sa5.value from subjectattribute sa5 where name='email' and sa5.SUBJECTID = s.subjectid) as email
+from
+   subject s
+where
+   {inclause}
+            </param-value>
+         </param>
+         <param>
+             <param-name>inclause</param-name>
+             <param-value>
+s.subjectid = ?
+            </param-value>
+         </param>
+     </search>
+     <search>
+         <searchType>searchSubjectByIdentifier</searchType>
+         <param>
+             <param-name>sql</param-name>
+             <param-value>
+select
+   s.subjectid as id, s.name as name,
+   (select sa2.value from subjectattribute sa2 where name='name' and sa2.SUBJECTID = s.subjectid) as lfname,
+   (select sa3.value from subjectattribute sa3 where name='loginid' and sa3.SUBJECTID = s.subjectid) as loginid,
+   (select sa4.value from subjectattribute sa4 where name='description' and sa4.SUBJECTID = s.subjectid) as description,
+   (select sa5.value from subjectattribute sa5 where name='email' and sa5.SUBJECTID = s.subjectid) as email
+from
+   subject s, subjectattribute a
+where
+   a.name='loginid' and s.subjectid = a.subjectid and {inclause}
+             </param-value>
+         </param>
+         <param>
+             <param-name>inclause</param-name>
+             <param-value>
+   a.value = ? 
+            </param-value>
+         </param>
+     </search>
+     <search>
+        <searchType>search</searchType>
+         <param>
+             <param-name>sql</param-name>
+             
+             <!--  for postgres, use this query since no concat() exists:
+             
+             select
+   subject.subjectid as id, subject.name as name,
+   lfnamet.lfname as lfname, loginidt.loginid as loginid,
+   desct.description as description, emailt.email as email
+from
+   subject
+   left join (select subjectid, value as lfname from subjectattribute
+     where name='name') lfnamet
+     on subject.subjectid=lfnamet.subjectid
+   left join (select subjectid, value as loginid from subjectattribute
+     where name='loginid') loginidt
+     on subject.subjectid=loginidt.subjectid
+   left join (select subjectid, value as description from subjectattribute
+      where name='description') desct
+     on subject.subjectid=desct.subjectid
+   left join (select subjectid, value as email from subjectattribute
+      where name='email') emailt
+     on subject.subjectid=emailt.subjectid
+where
+   (lower(name) like '%' || ? || '%')
+   or (lower(lfnamet.lfname) like '%' || ? || '%')
+   or (lower(loginidt.loginid) like '%' || ? || '%')
+   or (lower(desct.description) like '%' || ? || '%')
+   or (lower(emailt.email) like '%' || ? || '%')
+             
+for SQL-server:
+
+select
+   subject.subjectid as id, subject.name as name,
+   lfnamet.lfname as lfname, loginidt.loginid as loginid,
+   desct.description as description, emailt.email as email
+from
+   subject
+   left join (select subjectid, value as lfname from subjectattribute
+     where name='name') lfnamet
+     on subject.subjectid=lfnamet.subjectid
+   left join (select subjectid, value as loginid from subjectattribute
+     where name='loginid') loginidt
+     on subject.subjectid=loginidt.subjectid
+   left join (select subjectid, value as description from subjectattribute
+      where name='description') desct
+     on subject.subjectid=desct.subjectid
+   left join (select subjectid, value as email from subjectattribute
+      where name='email') emailt
+     on subject.subjectid=emailt.subjectid
+where
+   (lower(name) like '%' + ? + '%')
+   or (lower(lfnamet.lfname) like '%' + ? + '%')
+   or (lower(loginidt.loginid) like '%' + ? + '%')
+   or (lower(desct.description) like '%' + ? + '%')
+   or (lower(emailt.email) like '%' + ? + '%')
+
+              -->
+             
+             <param-value>
+select
+   s.subjectid as id, s.name as name,
+   (select sa2.value from subjectattribute sa2 where name='name' and sa2.SUBJECTID = s.subjectid) as lfname,
+   (select sa3.value from subjectattribute sa3 where name='loginid' and sa3.SUBJECTID = s.subjectid) as loginid,
+   (select sa4.value from subjectattribute sa4 where name='description' and sa4.SUBJECTID = s.subjectid) as description,
+   (select sa5.value from subjectattribute sa5 where name='email' and sa5.SUBJECTID = s.subjectid) as email
+from 
+   subject s
+where
+   s.subjectid in (
+      select subjectid from subject where lower(name) like concat('%',concat(?,'%')) union
+      select subjectid from subjectattribute where searchvalue like concat('%',concat(?,'%'))
+   )
+             </param-value>
+         </param>
+     </search>
+   </source>
+   
+   <!--  
+    <!- - This is an alternate jdbc source which allows for more complex searches, assumes 
+      all data is in one table or view, and that all attributes are single valued.  There are
+      not queries to configure in sources.xml - - >
+    <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter2">
+    <id>sourceId</id>
+    <name>Source name</name>
+     <type>person</type>
+     <init-param>
+       <param-name>jdbcConnectionProvider</param-name>
+       <param-value>edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider</param-value>
+     </init-param>
+
+     <init-param>
+       <param-name>maxResults</param-name>
+       <param-value>1000</param-value>
+     </init-param>
+
+      <init-param>
+       <param-name>dbTableOrView</param-name>
+       <param-value>person_source_v</param-value>
+     </init-param>
+      <init-param>
+       <param-name>subjectIdCol</param-name>
+       <param-value>some_id</param-value>
+     </init-param>
+     <init-param>
+       <param-name>nameCol</param-name>
+       <param-value>name</param-value>
+     </init-param>
+     <init-param>
+       <param-name>descriptionCol</param-name>
+       <param-value>description</param-value>
+     </init-param>
+     <init-param>
+       <!- - search col where general searches take place, lower case - - >
+       <param-name>lowerSearchCol</param-name>
+       <param-value>description_lower</param-value>
+     </init-param>
+     <init-param>
+       <!- - optional col if you want the search results sorted in the API (note, UI might override) - - >
+       <param-name>defaultSortCol</param-name>
+       <param-value>description</param-value>
+     </init-param>
+     <init-param>
+       <!- - col which identifies the row, perhaps not subjectId, add multiple by incrementing the 0 index - - >
+       <param-name>subjectIdentifierCol0</param-name>
+       <param-value>pennname</param-value>
+     </init-param>
+     <init-param>
+       <!- - col which identifies the row, perhaps not subjectId, add multiple by incrementing the 0 index - - >
+       <param-name>subjectIdentifierCol1</param-name>
+       <param-value>penn_id</param-value>
+     </init-param>
+     <!- - now you can count up from 0 to N of attributes for various cols.  
+          The name is how to reference in subject.getAttribute() - - >
+     <init-param>
+       <param-name>subjectAttributeCol0</param-name>
+       <param-value>pennname</param-value>
+     </init-param>
+     <init-param>
+       <param-name>subjectAttributeName0</param-name>
+       <param-value>PENNNAME</param-value>
+     </init-param>
+     <init-param>
+       <param-name>subjectAttributeCol1</param-name>
+       <param-value>description_lower</param-value>
+     </init-param>
+     <init-param>
+       <param-name>subjectAttributeName1</param-name>
+       <param-value>searchAttribute0</param-value>
+     </init-param>
+     <init-param>
+       <param-name>sortAttribute0</param-name>
+       <param-value>description</param-value>
+     </init-param>
+     <init-param>
+       <param-name>searchAttribute0</param-name>
+       <param-value>searchAttribute0</param-value>
+     </init-param>
+     <internal-attribute>searchAttribute0</internal-attribute>
+     <!- - ##########################  STATUS SECTION for searches to filter out inactives and allow
+                                                     the user to filter by status with e.g. status=all
+                                                     this is optional, and advanced - -> 
+     <!- - column or attribute which represents the status - - >
+     <!- -
+     <init-param>
+       <param-name>statusDatastoreFieldName</param-name>
+       <param-value>status</param-value>
+     </init-param> - - >
+     <!- - search string from user which represents the status.  e.g. status=active - - >
+     <!- -
+     <init-param>
+       <param-name>statusLabel</param-name>
+       <param-value>status</param-value>
+     </init-param> - - >
+     <!- - available statuses from screen (if not specified, any will be allowed). comma separated list.
+          Note, this is optional and you probably dont want to configure it, it is mostly necessary
+          when you have multiple sources with statuses...  if someone types an invalid status
+          and you have this configured, it will not filter by it - - >
+     <!- - 
+     <init-param>
+       <param-name>statusesFromUser<param-name>
+       <param-value>Active, Inactive, Pending, All</param-value>
+     </init-param> - - >
+     <!- - all label from the user - - >
+     <!- -
+     <init-param>
+       <param-name>statusAllFromUser</param-name>
+       <param-value>All</param-value>
+     </init-param> - - >
+     <!- - if no status is specified, this will be used (e.g. for active only).  Note, the value should be of the
+          form the user would type in - - >
+     <!- - 
+     <init-param>
+       <param-name>statusSearchDefault</param-name>
+       <param-value>status=active</param-value>
+     </init-param> - - >
+     <!- - translate between screen values of status, and the data store value.  Increment the 0 to 1, 2, etc for more translations.
+          so the user could enter: status=active, and that could translate to status_col=A.  The 'user' is what the user types in,
+          the 'datastore' is what is in the datastore.  The user part is not case-sensitive.  Note, this could be a many to one - - >
+     <!- -
+     <init-param>
+       <param-name>statusTranslateUser0</param-name>
+       <param-value>active</param-value>
+     </init-param>
+     <init-param>
+       <param-name>statusTranslateDatastore0</param-name>
+       <param-value>A</param-value>
+     </init-param> - - >
+     <!- - ########################## END STATUS SECTION - - > 
+   </source>
+   -->
+   
+   <!--
+  <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJndiSourceAdapter">
+    <id>example</id>
+    <name>Example Edu</name>
+    <type>person</type>
+    <init-param>
+      <param-name>INITIAL_CONTEXT_FACTORY</param-name>
+      <param-value>com.sun.jndi.ldap.LdapCtxFactory</param-value>
+    </init-param>
+    <init-param>
+      <param-name>PROVIDER_URL</param-name>
+      <param-value>ldap://localhost:389</param-value>
+    </init-param>
+    <init-param>
+      <param-name>SECURITY_AUTHENTICATION</param-name>
+      <param-value>simple</param-value>
+    </init-param>
+    <init-param>
+      <param-name>SECURITY_PRINCIPAL</param-name>
+      <param-value>cn=Manager,dc=example,dc=edu</param-value>
+    </init-param>
+    <init-param>
+      <param-name>SECURITY_CREDENTIALS</param-name>
+      <param-value>secret</param-value>
+    </init-param>
+     <init-param>
+      <param-name>SubjectID_AttributeType</param-name>
+      <param-value>exampleEduRegID</param-value>
+    </init-param>
+     <init-param>
+      <param-name>SubjectID_formatToLowerCase</param-name>
+      <param-value>false</param-value>
+    </init-param>
+    <init-param>
+      <param-name>Name_AttributeType</param-name>
+      <param-value>cn</param-value>
+    </init-param>
+    <init-param>
+      <param-name>Description_AttributeType</param-name>
+      <param-value>description</param-value>
+    </init-param>
+
+    <init-param>
+      <param-name>VTLDAP_VALIDATOR</param-name>
+      <param-value>ConnectLdapValidator|CompareLdapValidator</param-value>
+    </init-param>
+    <init-param>
+      <param-name>VTLDAP_VALIDATOR_COMPARE_DN</param-name>
+      <param-value>ou=People,dc=vt,dc=edu</param-value>
+    </init-param>
+    <init-param>
+      <param-name>VTLDAP_VALIDATOR_COMPARE_SEARCH_FILTER_STRING</param-name>
+      <param-value>ou=People</param-value>
+    </init-param>
+    
+    /// Scope Values can be: OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE 
+    /// For filter use 
+    
+    <search>
+        <searchType>searchSubject</searchType>
+        <param>
+            <param-name>filter</param-name>
+            <param-value>
+                (&amp; (exampleEduRegId=%TERM%) (objectclass=exampleEduPerson))
+            </param-value>
+        </param>
+        <param>
+            <param-name>scope</param-name>
+            <param-value>
+                SUBTREE_SCOPE            
+            </param-value>
+        </param>
+        <param>
+            <param-name>base</param-name>
+            <param-value>
+                ou=people,dc=example,dc=edu
+            </param-value>
+        </param>
+         
+    </search>
+    <search>
+        <searchType>searchSubjectByIdentifier</searchType>
+        <param>
+            <param-name>filter</param-name>
+            <param-value>
+                (&amp; (uid=%TERM%) (objectclass=exampleEduPerson))
+            </param-value>
+        </param>
+        <param>
+            <param-name>scope</param-name>
+            <param-value>
+                SUBTREE_SCOPE            
+            </param-value>
+        </param>
+        <param>
+            <param-name>base</param-name>
+            <param-value>
+                ou=people,dc=example,dc=edu
+            </param-value>
+        </param>
+    </search>
+    
+    <search>
+       <searchType>search</searchType>
+         <param>
+            <param-name>filter</param-name>
+            <param-value>
+                (&amp; (|(|(uid=%TERM%)(cn=*%TERM%*))(exampleEduRegId=%TERM%))(objectclass=exampleEduPerson))
+            </param-value>
+        </param>
+        <param>
+            <param-name>scope</param-name>
+            <param-value>
+                SUBTREE_SCOPE            
+            </param-value>
+        </param>
+         <param>
+            <param-name>base</param-name>
+            <param-value>
+                ou=people,dc=example,dc=edu
+            </param-value>
+        </param>
+    </search>
+    <init-param>
+      <param-name>subjectVirtualAttribute_0_searchAttribute0</param-name>
+      <param-value>${subjectUtils.defaultIfBlank(subject.getAttributeValueOrCommaSeparated('uid'), "")},${subjectUtils.defaultIfBlank(subject.getAttributeValueOrCommaSeparated('cn'), "")},${subjectUtils.defaultIfBlank(subject.getAttributeValueOrCommaSeparated('exampleEduRegId'), "")}</param-value>
+    </init-param>
+    <init-param>
+      <param-name>sortAttribute0</param-name>
+      <param-value>cn</param-value>
+    </init-param>
+    <init-param>
+      <param-name>searchAttribute0</param-name>
+      <param-value>searchAttribute0</param-value>
+    </init-param>
+
+     <!- - ##########################  STATUS SECTION for searches to filter out inactives and allow
+                                                     the user to filter by status with e.g. status=all
+                                                     this is optional, and advanced - -> 
+     <!- - column or attribute which represents the status - - >
+     <!- -
+     <init-param>
+       <param-name>statusDatastoreFieldName</param-name>
+       <param-value>status</param-value>
+     </init-param> - - >
+     <!- - search string from user which represents the status.  e.g. status=active - - >
+     <!- -
+     <init-param>
+       <param-name>statusLabel</param-name>
+       <param-value>status</param-value>
+     </init-param> - - >
+     <!- - available statuses from screen (if not specified, any will be allowed). comma separated list.
+          Note, this is optional and you probably dont want to configure it, it is mostly necessary
+          when you have multiple sources with statuses...  if someone types an invalid status
+          and you have this configured, it will not filter by it - - >
+     <!- - 
+     <init-param>
+       <param-name>statusesFromUser<param-name>
+       <param-value>Active, Inactive, Pending, All</param-value>
+     </init-param> - - >
+     <!- - all label from the user - - >
+     <!- -
+     <init-param>
+       <param-name>statusAllFromUser</param-name>
+       <param-value>All</param-value>
+     </init-param> - - >
+     <!- - if no status is specified, this will be used (e.g. for active only).  Note, the value should be of the
+          form the user would type in - - >
+     <!- - 
+     <init-param>
+       <param-name>statusSearchDefault</param-name>
+       <param-value>status=active</param-value>
+     </init-param> - - >
+     <!- - translate between screen values of status, and the data store value.  Increment the 0 to 1, 2, etc for more translations.
+          so the user could enter: status=active, and that could translate to status_col=A.  The 'user' is what the user types in,
+          the 'datastore' is what is in the datastore.  The user part is not case-sensitive.  Note, this could be a many to one - - >
+     <!- -
+     <init-param>
+       <param-name>statusTranslateUser0</param-name>
+       <param-value>active</param-value>
+     </init-param>
+     <init-param>
+       <param-name>statusTranslateDatastore0</param-name>
+       <param-value>A</param-value>
+     </init-param> - - >
+     <!- - ########################## END STATUS SECTION - - > 
+
+
+    <internal-attribute>searchAttribute0</internal-attribute>
+
+    ///Attributes you would like to display when doing a search 
+    <attribute>cn</attribute>
+    <attribute>sn</attribute>
+    <attribute>uid</attribute>
+    <attribute>department</attribute>
+    <attribute>exampleEduRegId</attribute>
+
+    <!- - subject identifier to store in grouper's member table - - >
+    <init-param>
+      <param-name>subjectIdentifierAttribute0</param-name>
+      <param-value>uid</param-value>
+    </init-param>
+   
+  </source>
+-->
+
+	<source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter2">
+        <id>AIRAVATA_SUBJECT_SOURCE</id>
+        <name>AIRAVATA_SUBJECT_SOURCE</name>
+         <type>person</type> 
+         <init-param>
+           <param-name>jdbcConnectionProvider</param-name>
+           <param-value>edu.internet2.middleware.subject.provider.C3p0JdbcConnectionProvider</param-value>
+         </init-param>
+         
+         <init-param>
+            <param-name>dbDriver</param-name>
+            <param-value>com.mysql.jdbc.Driver</param-value>
+         </init-param>
+         
+         <init-param>
+            <param-name>dbUrl</param-name>
+            <param-value>jdbc:mysql://gw62.iu.xsede.org:3306/dev_expcatalog_gw56</param-value>
+        </init-param>
+        
+        <init-param>
+            <param-name>dbUser</param-name>
+            <param-value>airavata_grouper_client</param-value>
+        </init-param>
+        
+        <init-param>
+            <param-name>dbPwd</param-name>
+            <param-value>airavata_grouper_client</param-value>
+        </init-param>
+    
+         <init-param>
+           <param-name>maxResults</param-name>
+           <param-value>1000</param-value>
+         </init-param>
+    
+          <init-param>
+           <param-name>dbTableOrView</param-name>
+           <param-value>USERS</param-value>
+         </init-param>
+         
+          <init-param>
+           <param-name>subjectIdCol</param-name>
+           <param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
+         </init-param>
+         <init-param>
+           <param-name>nameCol</param-name>
+           <param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
+         </init-param>
+         <init-param>
+           <param-name>descriptionCol</param-name>
+           <param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
+         </init-param>
+         
+         <init-param>
+           <param-name>lowerSearchCol</param-name>
+           <param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
+         </init-param>
+         
+         <init-param>
+           <param-name>defaultSortCol</param-name>
+           <param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
+         </init-param>
+        
+		<!--  <init-param>
+           <param-name>subjectIdentifierCol0</param-name>
+           <param-value>subject_identifier</param-value>
+         </init-param> -->
+        
+         <!-- <init-param>
+           <param-name>subjectAttributeCol0</param-name>
+           <param-value>description</param-value>
+         </init-param>
+         <init-param>
+           <param-name>subjectAttributeName0</param-name>
+           <param-value>description</param-value>
+         </init-param> -->
+        
+         <init-param>
+           <param-name>sortAttribute0</param-name>
+           <param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
+         </init-param>
+          <init-param>
+           <param-name>searchAttribute0</param-name>
+           <param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
+         </init-param>
+         <!-- <internal-attribute>searchAttribute0</internal-attribute> -->
+         
+         <!-- <init-param>
+           <param-name>statusDatastoreFieldName</param-name>
+           <param-value>status</param-value>
+         </init-param>
+         
+         <init-param>
+           <param-name>statusLabel</param-name>
+           <param-value>status</param-value>
+         </init-param> -->
+        
+         
+         <!-- <init-param>
+           <param-name>statusesFromUser</param-name>
+           <param-value>Active, Inactive, Pending, All</param-value>
+         </init-param>
+         
+         <init-param>
+           <param-name>statusAllFromUser</param-name>
+           <param-value>All</param-value>
+         </init-param>
+         
+         <init-param>
+           <param-name>statusSearchDefault</param-name>
+           <param-value>status=active</param-value>
+         </init-param>
+         
+         <init-param>
+           <param-name>statusTranslateUser0</param-name>
+           <param-value>active</param-value>
+         </init-param>
+         <init-param>
+           <param-name>statusTranslateDatastore0</param-name>
+           <param-value>A</param-value>
+         </init-param> -->
+       </source> 
+
+</sources>
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/89e0fdc8/modules/group-manager/src/main/resources/spy.properties
----------------------------------------------------------------------
diff --git a/modules/group-manager/src/main/resources/spy.properties b/modules/group-manager/src/main/resources/spy.properties
new file mode 100755
index 0000000..c5ba04e
--- /dev/null
+++ b/modules/group-manager/src/main/resources/spy.properties
@@ -0,0 +1,54 @@
+#
+# Copyright 2014 Internet2
+#
+# Licensed 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.
+#
+
+#
+#Wed Nov 14 17:17:49 EST 2007
+exclude=
+include=
+stringmatcher=
+reloadproperties=false
+log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
+
+# e.g. mysql:           com.mysql.jdbc.Driver
+# e.g. p6spy (log sql): com.p6spy.engine.spy.P6SpyDriver
+#   for p6spy, put the underlying driver in spy.properties
+# e.g. oracle:          oracle.jdbc.driver.OracleDriver
+# e.g. hsqldb:          org.hsqldb.jdbcDriver
+# e.g. postgres:        org.postgresql.Driver
+# e.g. SQL Server:      com.microsoft.sqlserver.jdbc.SQLServerDriver
+realdriver=com.mysql.jdbc.Driver
+
+outagedetectioninterval=
+log4j.logger.p6spy=INFO,STDOUT
+log4j.appender.STDOUT.layout.ConversionPattern=p6spy - %m%n
+deregisterdrivers=true
+autoflush=true
+outagedetection=false
+useprefix=false
+includecategories=
+filter=false
+excludecategories=info,debug,result,batch
+logfile=c\:\\temp\\grouperSpy.log
+module.log=com.p6spy.engine.logging.P6LogFactory
+sqlexpression=
+reloadpropertiesinterval=60
+dateformat=yyyy/MM/dd HH\:mm\:ss\:SSS
+stacktrace=false
+executionthreshold=
+log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
+append=false
+appender=com.p6spy.engine.logging.appender.FileLogger
+stacktraceclass=

http://git-wip-us.apache.org/repos/asf/airavata/blob/89e0fdc8/modules/group-manager/src/main/resources/sqltool.rc
----------------------------------------------------------------------
diff --git a/modules/group-manager/src/main/resources/sqltool.rc b/modules/group-manager/src/main/resources/sqltool.rc
new file mode 100755
index 0000000..270a3b4
--- /dev/null
+++ b/modules/group-manager/src/main/resources/sqltool.rc
@@ -0,0 +1,6 @@
+# This is a sample sqltool.rc file for use with hsqldb.
+urlid grouper
+url jdbc:hsqldb:hsql://127.0.0.1/grouper
+username sa
+password 
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/89e0fdc8/modules/group-manager/src/main/resources/subject.base.properties
----------------------------------------------------------------------
diff --git a/modules/group-manager/src/main/resources/subject.base.properties b/modules/group-manager/src/main/resources/subject.base.properties
new file mode 100755
index 0000000..6e9fcef
--- /dev/null
+++ b/modules/group-manager/src/main/resources/subject.base.properties
@@ -0,0 +1,46 @@
+#
+# Copyright 2014 Internet2
+#
+# Licensed 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.
+#
+
+#
+# Subject configuration
+# $Id: subject.base.properties,v 1.24 2009-12-30 04:23:02 mchyzer Exp $
+#
+
+# The subject proprties uses Grouper Configuration Overlays (documented on wiki)
+# By default the configuration is read from subject.base.properties
+# (which should not be edited), and the subject.properties overlays
+# the base settings.  See the subject.base.properties for the possible
+# settings that can be applied to the subject.properties
+
+########################################
+## Config chaining hierarchy
+########################################
+
+# comma separated config files that override each other (files on the right override the left)
+# each should start with file: or classpath:
+# e.g. classpath:subject.example.properties, file:c:/something/myconfig.properties
+subject.config.hierarchy = classpath:subject.base.properties, classpath:subject.properties
+
+# seconds between checking to see if the config files are updated
+subject.config.secondsBetweenUpdateChecks = 60
+
+########################################
+
+# enter the location of the sources.xml.  Must start with classpath: or file:
+# default is: classpath:sources.xml
+# e.g. file:/dir1/dir2/sources.xml
+subject.sources.xml.location = classpath:sources.xml
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/89e0fdc8/modules/group-manager/src/main/resources/subject.properties
----------------------------------------------------------------------
diff --git a/modules/group-manager/src/main/resources/subject.properties b/modules/group-manager/src/main/resources/subject.properties
new file mode 100755
index 0000000..98e54c7
--- /dev/null
+++ b/modules/group-manager/src/main/resources/subject.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2014 Internet2
+#
+# Licensed 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.
+#
+
+#
+# Subject configuration
+# $Id: subject.base.properties,v 1.24 2009-12-30 04:23:02 mchyzer Exp $
+#
+
+# The subject proprties uses Grouper Configuration Overlays (documented on wiki)
+# By default the configuration is read from subject.base.properties
+# (which should not be edited), and the subject.properties overlays
+# the base settings.  See the subject.base.properties for the possible
+# settings that can be applied to the subject.properties
+


Mime
View raw message