Release Notes for Grouper 2.3

Grouper v2.3.0 includes 25 fixes and improvements over v2.2.2. See the full list.


New Features in Grouper 2.3.0

PSPNG

Provisioning Service Provider Next Generation (PSPNG) implementation addresses performance problems and configuration complexity of the Provisioning Service Provider (PSP)

Loader improvements

Grouper loader improvements: scheduling configuration stored in database facilitates high-availability changes to loader config files do not require restarting the loader, handling unresolvable subjects

Web Service operationsNew Web Service operations for attribute definitions, actions, and messaging
Grouper messaging

Grouper messaging system and WS with integration to the change log and ESB

UI screensUI screens for attribute definitions and inherited privileges
Export to GSH

Export Grouper objects to a Grouper Shell (GSH) script

Folder privilegesRefactor folder privileges to be “admin” and “create” instead of “stem” and “create”.  See the glossary for updated privileges and definitions.

 

API last patch: 110

Patch

Description

Files affected

grouper_v2_3_0_api_patch_0

GRP-1278: deadlock in grouper on upgrade (and maybe other times)

classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssignBaseDelegate.java
classes/edu/internet2/middleware/grouper/util/GrouperUtil.java
classes/edu/internet2/middleware/grouper/FieldFinder.java

grouper_v2_3_0_api_patch_1

GRP-1287: obliterateStem and point in time

classes/edu/internet2/middleware/grouper/app/gsh/obliterateStem.java

grouper_v2_3_0_api_patch_2

GRP-1288: allow grouper config overlays to be able to easily refer to other properties in the same config file like the UI

GRP-1289: warning on new mysql driver and no ssl config in the connect url

GRP-1290: built in stem for legacy attributes should use the root stem for built in objects

classes/edu/internet2/middleware/grouperClient/util/GcElUtilsSafe.java
classes/edu/internet2/middleware/grouperClient/config/ConfigPropertiesCascadeBase.java
classes/grouper.hibernate.base.properties
classes/grouper.base.properties

grouper_v2_3_0_api_patch_3

GRP-1299: Set transaction isolation level to read committed

classes/grouper.hibernate.base.properties

grouper_v2_3_0_api_patch_4

GRP-1304: delete membership from UI has major performance problem

classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3MembershipDAO.java

grouper_v2_3_0_api_patch_5

GRP-1308: grouper_ddl is slow due to selecting * from every table/view

classes/edu/internet2/middleware/grouper/ddl/GrouperDdlUtils.java

grouper_v2_3_0_api_patch_6

GRP-1309: log4j has a potential memory leak

lib/log4j.jar
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java

grouper_v2_3_0_api_patch_7

GRP-1311: commons-lang has a potential memory leak

lib/commons-lang.jar
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java

grouper_v2_3_0_api_patch_8

GRP-1317: attributeDefSave web service doesnt work for soap

classes/edu/internet2/middleware/grouper/util/GrouperUtil.java
classes/edu/internet2/middleware/grouper/util/ChangeToVersionCustomizable.java

grouper_v2_3_0_api_patch_9

GRP-1319: Use database metadata to see if a table or view exists

classes/edu/internet2/middleware/grouper/ddl/GrouperDdl.java
classes/edu/internet2/middleware/grouper/ddl/GrouperDdlUtils.java

classes/edu/internet2/middleware/grouper/ddl/GrouperDdlUtilsTest.java

grouper_v2_3_0_api_patch_10

GRP-1323: null pointer exception with inherited rule privilege and EL then clause

classes/edu/internet2/middleware/grouper/rules/RuleFinder.java

grouper_v2_3_0_api_patch_11

GRP-1313: potential ws/ui memory leaks with threadlocals

classes/edu/internet2/middleware/grouper/j2ee/ServletContextUtils.java
classes/edu/internet2/middleware/grouper/j2ee/ServletRequestUtils.java
classes/edu/internet2/middleware/grouper/util/GrouperThreadLocalState.java

grouper_v2_3_0_api_patch_12

GRP-1327: Handle case issue between subject source and loader source

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java

grouper_v2_3_0_api_patch_13

GRP-1328: threadlocal clearing issue with Crypto

classes/edu/internet2/middleware/grouper/util/GrouperThreadLocalState.java

grouper_v2_3_0_api_patch_14

GRP-1138: add import / export auditing

classes/edu/internet2/middleware/grouper/audit/AuditTypeBuiltin.java

grouper_v2_3_0_api_patch_15

GRP-1320: show folders in new UI user should see

classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/privs/PrivilegeHelper.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3StemDAO.java

grouper_v2_3_0_api_patch_16

GRP-1303: null pointer exception in loader with default source id

classes/edu/internet2/middleware/grouper/app/loader/db/GrouperLoaderResultset.java

grouper_v2_3_0_api_patch_17

GRP-1343: Change log error when unassigning type and deleting type together

classes/edu/internet2/middleware/grouper/changeLog/ChangeLogTempToEntity.java

grouper_v2_3_0_api_patch_18

GRP-1352: GroupUniqueExtensionHook doesn't work when moving a group

classes/edu/internet2/middleware/grouper/hooks/examples/GroupUniqueExtensionHook.java

grouper_v2_3_0_api_patch_19

GRP-1351: Failures in findAllChildStems

classes/edu/internet2/middleware/grouper/validator/DeleteStemValidator.java
classes/edu/internet2/middleware/grouper/Stem.java
classes/edu/internet2/middleware/grouper/internal/dao/StemDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3StemDAO.java

grouper_v2_3_0_api_patch_20

GRP-1353: external user find create delete web services

classes/edu/internet2/middleware/grouper/externalSubjects/ExternalSubjectSave.java
classes/edu/internet2/middleware/grouper/externalSubjects/ExternalSubject.java

grouper_v2_3_0_api_patch_21

GRP-1358: grouper config should use root stem for built in objects for all configs that need it

classes/grouper.base.properties

grouper_v2_3_0_api_patch_22

GRP-1365: loader threads can cause database pool timeout errors

classes/edu/internet2/middleware/grouper/app/loader/db/GrouperLoaderDb.java
classes/grouper-loader.base.properties

grouper_v2_3_0_api_patch_23

GRP-1367: find bad memberships daemon

classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/misc/FindBadMembershipsDaemon.java
classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/j2ee/status/DiagnosticType.java

grouper_v2_3_0_api_patch_24

GRP-1368: TIER instrumentation

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoader.java
classes/edu/internet2/middleware/grouper/instrumentation/TierDiscovery.java
classes/edu/internet2/middleware/grouper/instrumentation/TierInstrumentationDaemon.java
classes/grouper.base.properties
classes/grouper-loader.base.properties

grouper_v2_3_0_api_patch_25

GRP-1368: TIER instrumentation (fix)

classes/edu/internet2/middleware/grouper/instrumentation/TierInstrumentationDaemon.java

grouper_v2_3_0_api_patch_26

GRP-1381: Use member table subject identifier in loader jobs to improve performance

classes/edu/internet2/middleware/grouper/app/loader/LoaderMemberWrapper.java
classes/edu/internet2/middleware/grouper/app/loader/db/GrouperLoaderResultset.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java

grouper_v2_3_0_api_patch_27

GRP-1382: Add idIndex to Changelog Entries or PIT Group

classes/edu/internet2/middleware/grouper/Group.java
classes/edu/internet2/middleware/grouper/changeLog/ChangeLogTypeBuiltin.java
classes/edu/internet2/middleware/grouper/changeLog/ChangeLogLabels.java

grouper_v2_3_0_api_patch_28

GRP-1390: esb messaging does not send a timestamp

classes/edu/internet2/middleware/grouper/changeLog/esb/consumer/EsbConsumer.java
classes/edu/internet2/middleware/grouper/changeLog/esb/consumer/EsbEvent.java

grouper_v2_3_0_api_patch_29

GRP-1395: Change log improvements

classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/changeLog/ChangeLogEntry.java
classes/edu/internet2/middleware/grouper/j2ee/status/DiagnosticLoaderJobTest.java
classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/changeLog/ChangeLogHelper.java
classes/edu/internet2/middleware/grouper/changeLog/ChangeLogTempToEntity.java

grouper_v2_3_0_api_patch_30

GRP-1365: loader threads can cause database pool timeout errors

classes/grouper.hibernate.base.properties

grouper_v2_3_0_api_patch_31

GRP-1412: export to gsh gives exception

classes/edu/internet2/middleware/grouper/xml/export/XmlExportMembership.java

grouper_v2_3_0_api_patch_32

GRP-1413: GroupSave with uuid and no name does not work for new uuids

classes/edu/internet2/middleware/grouper/attr/AttributeDefNameSave.java
classes/edu/internet2/middleware/grouper/StemSave.java
classes/edu/internet2/middleware/grouper/externalSubjects/ExternalSubjectSave.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefSave.java
classes/edu/internet2/middleware/grouper/GroupSave.java

grouper_v2_3_0_api_patch_33

GRP-1411: Generic error message when attempting to delete group that is part of a composite group

classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3GroupDAO.java

grouper_v2_3_0_api_patch_34

GRP-1423: My memberships tab shows your memberships without taking into account security

classes/edu/internet2/middleware/grouper/privs/PrivilegeHelper.java

grouper_v2_3_0_api_patch_35

GRP-1417: migrate from grouper.ehcache.xml to hierarchical properties configuration

classes/ehcache.example.xml
classes/ehcache.xml
classes/grouper.cache.base.properties
classes/grouper.cache.properties
classes/edu/internet2/middleware/grouper/cfg/GrouperCacheConfig.java
classes/edu/internet2/middleware/grouper/cache/EhcacheController.java
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java 

grouper_v2_3_0_api_patch_36

GRP-1433: json in REST input disallows whitespace at end

classes/edu/internet2/middleware/grouper/util/GrouperUtil.java

grouper_v2_3_0_api_patch_37

GRP-1434: external subject WS does not save institution

classes/edu/internet2/middleware/grouper/externalSubjects/ExternalSubjectSave.java

grouper_v2_3_0_api_patch_38

GRP-1446: performance of the Trace Privileges function

classes/edu/internet2/middleware/grouper/attr/finder/AttributeDefNameFinder.java
classes/edu/internet2/middleware/grouper/attr/finder/AttributeDefFinder.java
classes/edu/internet2/middleware/grouper/GroupFinder.java
classes/edu/internet2/middleware/grouper/permissions/PermissionFinder.java
classes/edu/internet2/middleware/grouper/StemFinder.java

grouper_v2_3_0_api_patch_39

GRP-1439: remove records with a max number and loop so it doesnt fail

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/hibernate/ByHqlStatic.java
classes/edu/internet2/middleware/grouper/hibernate/ByHql.java
classes/edu/internet2/middleware/grouper/hibernate/HibUtils.java

grouper_v2_3_0_api_patch_40

GRP-1454: migrate from sources.xml to hierarchical properties configuration

GRP-1452: regex replace in subject source can cause issues if subject id has dollar sign

lib/grouper/commons-digester.jar
classes/edu/internet2/middleware/subject/provider/JNDISourceAdapterLegacy.java
classes/edu/internet2/middleware/grouper/GrouperSourceAdapter.java
classes/edu/internet2/middleware/grouper/subj/InternalSourceAdapter.java
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
classes/edu/internet2/middleware/subject/config/SubjectConfig.java
classes/edu/internet2/middleware/subject/provider/LdapSourceAdapter.java
classes/subject.base.properties
classes/edu/internet2/middleware/subject/provider/JDBCSourceAdapter.java
classes/edu/internet2/middleware/subject/provider/NullSourceAdapter.java
classes/edu/internet2/middleware/subject/provider/SourceManager.java

grouper_v2_3_0_api_patch_41

GRP-1455 grouper versions do not match - GrouperVersion.class: 2.4.0 - greater than grouper.version.properties: 2.3.0
GRP-1451: if the subject id attribute does not exist for a record in an ldap loader job, give descriptive exception

classes/edu/internet2/middleware/grouper/misc/GrouperVersion.java
classes/edu/internet2/middleware/grouper/app/loader/db/GrouperLoaderResultset.java

grouper_v2_3_0_api_patch_42

GRP-1462: cannot delete group

classes/edu/internet2/middleware/grouper/hibernate/ByHql.java
classes/edu/internet2/middleware/grouper/hibernate/ByHqlStatic.java

grouper_v2_3_0_api_patch_43

GRP-1420: Member removal from group shows recent activity as GrouperSystem

classes/edu/internet2/middleware/grouper/hibernate/GrouperContext.java

grouper_v2_3_0_api_patch_44

GRP-1441: understanding diagnostic servlet output for loader jobs

classes/edu/internet2/middleware/grouper/j2ee/status/GrouperStatusServlet.java

grouper_v2_3_0_api_patch_45

GRP-1460: grouperLoaderAndGroups doesn't work for sql jobs

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderJob.java

grouper_v2_3_0_api_patch_46

GRP-1468: commons digester doesnt work

lib/grouper/commons-digester.jar

grouper_v2_3_0_api_patch_47

GRP-1469: grouper check config is wrong for new digester jar

classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java

grouper_v2_3_0_api_patch_48

GRP-1470: grouper subject api diagnostics

classes/edu/internet2/middleware/grouper/subj/SubjectHelper.java
classes/edu/internet2/middleware/grouper/SubjectFinder.java

grouper_v2_3_0_api_patch_49

GRP-1472: readonly wheel group does not work on menu on ui

classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3StemDAO.java
classes/edu/internet2/middleware/grouper/privs/PrivilegeHelper.java
classes/edu/internet2/middleware/grouper/privs/WheelNamingResolver.java
classes/edu/internet2/middleware/grouper/privs/WheelAttrDefResolver.java

grouper_v2_3_0_api_patch_50

GRP-1471: LDAP loader property for searchResultHandlers

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderConfig.java
classes/edu/internet2/middleware/grouper/ldap/LdapSession.java
classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/ldap/handler/RangeSearchResultHandler.java
classes/edu/internet2/middleware/grouper/app/loader/ldap/GrouperLoaderLdapServer.java

grouper_v2_3_0_api_patch_51

GRP-1473: add more detail to subject.base.properties

classes/subject.base.properties

grouper_v2_3_0_api_patch_52

GRP-1475: Delete loader jobs when loader group is deleted

classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssign.java

grouper_v2_3_0_api_patch_53

GRP-1445: Grouper loader real time updates - change log table for SQL jobs

classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3DAO.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java

grouper_v2_3_0_api_patch_54

GRP-1476: Real time loader mysql issues

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java

grouper_v2_3_0_api_patch_55

GRP-1477: Reduce error logging when code fails in threads that would be retried out of threads

classes/edu/internet2/middleware/grouper/util/GrouperUtil.java
classes/edu/internet2/middleware/grouper/misc/AddMissingGroupSets.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java
classes/edu/internet2/middleware/grouper/misc/SyncStemSets.java
classes/edu/internet2/middleware/grouper/util/GrouperCallable.java
classes/edu/internet2/middleware/grouper/misc/MigrateLegacyAttributes.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/misc/GrouperStartup.java
classes/edu/internet2/middleware/grouper/misc/SyncPITTables.java

grouper_v2_3_0_api_patch_56

GRP-1492: multiple nodes loader - needs to check if job is still running

classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/misc/FindBadMembershipsDaemon.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoader.java
classes/edu/internet2/middleware/grouper/instrumentation/TierInstrumentationDaemon.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderJob.java

grouper_v2_3_0_api_patch_57

GRP-1487: grouperLoader view job in the UI

classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
lib/commons-lang3-3.5.jar
lib/cron-parser-core-2.9.jar
lib/joda-time-2.9.7.jar

grouper_v2_3_0_api_patch_58

GRP-1502: deleteGroupsIfNotUsed throws NPE in loader job

classes/edu/internet2/middleware/grouper/hooks/examples/GroupTypeTupleIncludeExcludeHook.java

grouper_v2_3_0_api_patch_59

GRP-1490: memory leak closing inputStreams

classes/edu/internet2/middleware/grouperClient/config/ConfigPropertiesCascadeBase.java
classes/edu/internet2/middleware/grouper/esb/listener/EsbHttpHandler.java

grouper_v2_3_0_api_patch_60

GRP-1507: null pointer on startup with wheel group

classes/edu/internet2/middleware/grouper/privs/WheelNamingResolver.java
classes/edu/internet2/middleware/grouper/privs/WheelCache.java

grouper_v2_3_0_api_patch_61

GRP-1514: null pointer in inherited privileges and rules

classes/edu/internet2/middleware/grouper/rules/RuleFinder.java

grouper_v2_3_0_api_patch_62

GRP-1521: Instrumentation counts

classes/edu/internet2/middleware/grouper/Group.java
classes/edu/internet2/middleware/grouper/Membership.java
classes/edu/internet2/middleware/grouper/instrumentation/TierInstrumentationDaemon.java
classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationDataInstance.java
classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationDataInstanceFinder.java
classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationDataCounts.java
classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationDataUtils.java
classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoader.java
classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationDataInstanceCounts.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/Stem.java
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationDataBuiltinTypes.java
classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationThread.java
classes/edu/internet2/middleware/grouper/util/GrouperUtilElSafe.java

grouper_v2_3_0_api_patch_63

GRP-1532: upgrade vt-ldap due to security issue

classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
lib/grouper/vt-ldap.jar

grouper_v2_3_0_api_patch_64

Note, after installing this you should run from gsh: loaderRunOneJob( "OTHER_JOB_attestationDaemon" );

GRP-1538: attestation

classes/grouper-loader.base.properties
classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/audit/AuditTypeBuiltin.java
classes/edu/internet2/middleware/grouper/app/loader/OtherJobBase.java
classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssignBaseDelegate.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
classes/edu/internet2/middleware/grouper/app/attestation/GrouperAttestationJob.java

grouper_v2_3_0_api_patch_65

GRP-1540: pspng not starting due to grouper session and thread

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java

grouper_v2_3_0_api_patch_66

GRP-1543: Add instrumentation thread to grouperWs

classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationDataBuiltinTypes.java

grouper_v2_3_0_api_patch_67

GRP-1547: group name hooks not registered in GSH, but are registered in WS and UI

classes/edu/internet2/middleware/grouper/hooks/logic/GrouperHooksUtils.java

grouper_v2_3_0_api_patch_68

GRP-1565: usdu will not remove memberships of unresolvables if the membership has a start or end date

classes/edu/internet2/middleware/grouper/app/usdu/USDU.java

grouper_v2_3_0_api_patch_69

GRP-1560: IncludeExclude requires requireGroups.use to be installed but fails to do the install

classes/edu/internet2/middleware/grouper/hooks/examples/GroupTypeTupleIncludeExcludeHook.java

grouper_v2_3_0_api_patch_70

GRP-1566: grouper loader ui overall

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java

grouper_v2_3_0_api_patch_71

GRP-1569: priority in loader job has issue

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderJob.java

grouper_v2_3_0_api_patch_72

GRP-1553: Improve GSH

classes/edu/internet2/middleware/grouper/app/gsh/findSubject.java
classes/edu/internet2/middleware/grouper/app/gsh/xmlUpdateFromFile.java
classes/groovysh.profile
classes/edu/internet2/middleware/grouper/app/gsh/StemHelper.java
classes/edu/internet2/middleware/grouper/app/gsh/xmlFromFile.java
classes/edu/internet2/middleware/grouper/app/gsh/groupAddType.java
classes/edu/internet2/middleware/grouper/app/gsh/hasMember.java
classes/edu/internet2/middleware/grouper/app/gsh/groupHasType.java
classes/edu/internet2/middleware/grouper/app/gsh/xmlUpdateFromString.java
classes/edu/internet2/middleware/grouper/app/gsh/typeAdd.java
classes/edu/internet2/middleware/grouper/app/gsh/setStemAttr.java
classes/edu/internet2/middleware/grouper/app/gsh/p.java
classes/edu/internet2/middleware/grouper/app/gsh/stemSave2.java
classes/edu/internet2/middleware/grouper/app/gsh/loaderDryRunOneJob.java
classes/edu/internet2/middleware/grouper/app/gsh/transactionCommit.java
classes/edu/internet2/middleware/grouper/app/gsh/registryInstall.java
classes/edu/internet2/middleware/grouper/app/gsh/xmlFromString.java
classes/edu/internet2/middleware/grouper/app/gsh/resetRegistry.java
classes/edu/internet2/middleware/grouper/app/gsh/transactionRollback.java
classes/edu/internet2/middleware/grouper/app/gsh/delComposite.java
lib/grouper/groovy-all-2.4.11.jar
classes/edu/internet2/middleware/grouper/app/gsh/usdu.java
classes/edu/internet2/middleware/grouper/app/gsh/setGroupAttr.java
classes/edu/internet2/middleware/grouper/app/gsh/typeDel.java
classes/edu/internet2/middleware/grouper/app/gsh/typeAddList.java
classes/edu/internet2/middleware/grouper/app/gsh/transactionStart.java
classes/edu/internet2/middleware/grouper/app/gsh/findBadMemberships.java
classes/edu/internet2/middleware/grouper/app/gsh/usduBySource.java
classes/edu/internet2/middleware/grouper/app/gsh/getStems.java
classes/edu/internet2/middleware/grouper/app/gsh/delStem.java
classes/edu/internet2/middleware/grouper/app/gsh/typeDelField.java
classes/edu/internet2/middleware/grouper/app/gsh/getSources.java
classes/edu/internet2/middleware/grouper/app/gsh/typeGetFields.java
classes/edu/internet2/middleware/grouper/app/gsh/getGroupAttr.java
classes/edu/internet2/middleware/grouper/app/gsh/delMember.java
classes/edu/internet2/middleware/grouper/app/gsh/hasPriv.java
classes/edu/internet2/middleware/grouper/app/gsh/xmlToString.java
classes/edu/internet2/middleware/grouper/app/gsh/transactionEnd.java
classes/edu/internet2/middleware/grouper/app/gsh/version.java
classes/edu/internet2/middleware/grouper/app/gsh/assertTrue.java
lib/grouper/jline-2.12.jar
classes/edu/internet2/middleware/grouper/app/gsh/revokePriv.java
classes/edu/internet2/middleware/grouper/app/gsh/usduByMember.java
classes/edu/internet2/middleware/grouper/app/gsh/typeFind.java
classes/edu/internet2/middleware/grouper/app/gsh/xmlUpdateFromURL.java
classes/edu/internet2/middleware/grouper/app/gsh/addMember.java
classes/edu/internet2/middleware/grouper/app/gsh/GrouperShell.java
classes/edu/internet2/middleware/grouper/app/gsh/addRootStem.java
classes/edu/internet2/middleware/grouper/app/gsh/sqlRun.java
classes/edu/internet2/middleware/grouper/app/gsh/addGroup.java
classes/edu/internet2/middleware/grouper/app/gsh/transactionStatus.java
classes/edu/internet2/middleware/grouper/app/gsh/xmlToFile.java
classes/edu/internet2/middleware/grouper/util/GrouperUtil.java
classes/edu/internet2/middleware/grouper/app/gsh/getMembers.java
classes/edu/internet2/middleware/grouper/app/gsh/grantPriv.java
classes/edu/internet2/middleware/grouper/app/gsh/getStemAttr.java
classes/edu/internet2/middleware/grouper/app/gsh/addSubject.java
classes/edu/internet2/middleware/grouper/app/gsh/registryInitializeSchema.java
classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/app/gsh/help.java
classes/edu/internet2/middleware/grouper/app/gsh/addStem.java
classes/edu/internet2/middleware/grouper/app/gsh/delGroup.java
classes/edu/internet2/middleware/grouper/app/gsh/xmlFromURL.java
classes/edu/internet2/middleware/grouper/app/gsh/obliterateStem.java
classes/edu/internet2/middleware/grouper/app/gsh/getGroups.java
classes/edu/internet2/middleware/grouper/app/gsh/loaderRunOneJobAttr.java
classes/edu/internet2/middleware/grouper/app/gsh/loaderRunOneJob.java
classes/edu/internet2/middleware/grouper/app/gsh/typeAddAttr.java
classes/edu/internet2/middleware/grouper/app/gsh/addComposite.java
classes/edu/internet2/middleware/grouper/app/gsh/groupGetTypes.java
classes/edu/internet2/middleware/grouper/app/gsh/groupDelType.java
classes/GSHFileLoad.properties

grouper_v2_3_0_api_patch_73

GRP-1570: Add PageSize and PageNumber to GetMemberships

classes/edu/internet2/middleware/grouperClient/GrouperClient.java
classes/edu/internet2/middleware/grouperClient/api/GcGetMemberships.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3GroupDAO.java
classes/edu/internet2/middleware/grouperClient/ws/beans/WsRestGetMembershipsRequest.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3StemDAO.java
classes/grouper.client.usage.example.txt
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3MembershipDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeDefDAO.java

grouper_v2_3_0_api_patch_74

GRP-1568: active PIT objects not found should be handled gracefully

classes/edu/internet2/middleware/grouper/internal/dao/PITGroupDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITGroupDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITMemberDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/PITMemberDAO.java
classes/edu/internet2/middleware/grouper/changeLog/ChangeLogTempToEntity.java
classes/edu/internet2/middleware/grouper/internal/dao/PITStemDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITStemDAO.java

grouper_v2_3_0_api_patch_75

GRP-1585: Duplicate self group sets

classes/edu/internet2/middleware/grouper/internal/dao/GroupSetDAO.java
classes/edu/internet2/middleware/grouper/misc/FindBadMemberships.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3GroupSetDAO.java

grouper_v2_3_0_api_patch_76

GRP-1586: rabbitmq config and tarball

classes/edu/internet2/middleware/grouperClient/messaging/GrouperMessagingConfig.java
classes/edu/internet2/middleware/grouperClient/util/GrouperClientConfig.java
classes/edu/internet2/middleware/grouperClientExt/org/apache/commons/lang3/RandomUtils.java

grouper_v2_3_0_api_patch_77

GRP-1590: better logging for daemons

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoader.java
classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderJob.java
classes/edu/internet2/middleware/grouper/app/loader/db/Hib3GrouperLoaderLog.java
classes/edu/internet2/middleware/grouper/util/GrouperThreadLocalState.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderLogger.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderLog.java
classes/log4j.example.properties

grouper_v2_3_0_api_patch_78

GRP-1592: grouper actAs for messaging to WS bridge
GRP-1593: grouperClient debug mode has too many debug lines

classes/edu/internet2/middleware/grouperClient/config/ConfigPropertiesCascadeCommonUtils.java
classes/edu/internet2/middleware/grouperClient/GrouperClient.java
classes/edu/internet2/middleware/grouperClient/config/ConfigPropertiesCascadeBase.java
classes/edu/internet2/middleware/grouperClient/util/GrouperClientCommonUtils.java
classes/edu/internet2/middleware/grouperClient/GrouperClientState.java
classes/edu/internet2/middleware/grouperClient/util/GrouperClientLog.java
classes/edu/internet2/middleware/grouperClient/ws/GrouperClientWs.java
classes/grouper.client.usage.example.txt
classes/edu/internet2/middleware/grouperClient/failover/FailoverClient.java

grouper_v2_3_0_api_patch_79

GRP-1598: allow not having every entity assigned to attribute privileges automatically

classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java

grouper_v2_3_0_api_patch_80

GRP-1595: Real time loader and messaging

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderJob.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalMessagingListener.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java

grouper_v2_3_0_api_patch_81

GRP-1609: attestation to new ui wizard

classes/edu/internet2/middleware/grouper/Stem.java
classes/edu/internet2/middleware/grouper/internal/dao/StemDAO.java
classes/edu/internet2/middleware/grouper/StemFinder.java
classes/edu/internet2/middleware/grouper/attr/finder/AttributeAssignFinder.java
classes/edu/internet2/middleware/grouper/internal/dao/GroupDAO.java
classes/edu/internet2/middleware/grouper/audit/AuditTypeBuiltin.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3GroupDAO.java
classes/edu/internet2/middleware/grouper/attr/finder/AttributeAssignValueFinder.java
classes/edu/internet2/middleware/grouper/app/attestation/GrouperAttestationJob.java
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3StemDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeDefNameDAO.java
classes/edu/internet2/middleware/grouper/util/GrouperUtil.java
classes/edu/internet2/middleware/grouper/audit/AuditFieldType.java
classes/edu/internet2/middleware/grouper/GroupFinder.java
classes/edu/internet2/middleware/grouper/internal/dao/AttributeAssignDAO.java

grouper_v2_3_0_api_patch_82

GRP-1612: external subject source does not register email attribute correctly

classes/edu/internet2/middleware/grouper/externalSubjects/ExternalSubjectAutoSourceAdapter.java

grouper_v2_3_0_api_patch_83

GRP-1625: Upgrade groovy and allow typed variables

GRP-1626: Arrow keys don't work in Windows

classes/groovysh.profile
classes/edu/internet2/middleware/grouper/app/gsh/jline/WindowsTerminal.java
lib/grouper/groovy-all-2.5.0-beta-2.jar
lib/grouper/commons-cli.jar
classes/edu/internet2/middleware/grouper/app/gsh/GrouperShell.java
lib/grouper/jline-2.14.5.jar
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java

grouper_v2_3_0_api_patch_84

GRP-1629: XML export issue with groovy

classes/edu/internet2/middleware/grouper/xml/export/XmlExportMain.java

grouper_v2_3_0_api_patch_85

GRP-1631: Member.changeSubject and stale state exceptions

classes/edu/internet2/middleware/grouper/Member.java

grouper_v2_3_0_api_patch_86

GRP-1634: error removing attestation

GRP-1635: grouper attestation upgrade to 2.3.0 patch 81 doesnt convert old attributes

classes/edu/internet2/middleware/grouper/app/attestation/GrouperAttestationJob.java

grouper_v2_3_0_api_patch_87

GRP-1633: include/exclude group structure by loader jobs transactional

classes/edu/internet2/middleware/grouper/hooks/examples/GroupTypeTupleIncludeExcludeHook.java
classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/grouper.base.properties

grouper_v2_3_0_api_patch_88

GRP-1643: Allow values on individual attributes to be excluded from audit/changelog and use with attestation by default

classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeAssignValueDAO.java
classes/edu/internet2/middleware/grouper/cfg/GrouperConfig.java
classes/edu/internet2/middleware/grouper/attr/value/AttributeAssignValue.java
classes/grouper.base.properties

grouper_v2_3_0_api_patch_89

GRP-1640: Attestation mailer sending to group readers
GRP-1642: Error removing attestation from directly assigned group
GRP-1645: attestation read/update issues
GRP-1646: cant delete objects if has attributes assigned and user does not have READ/UPDATE or ATTR_READ and ATTR_UPDATE

classes/edu/internet2/middleware/grouper/attr/finder/AttributeAssignValueFinder.java
classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssign.java
classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssignAction.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefName.java
classes/edu/internet2/middleware/grouper/Group.java
classes/edu/internet2/middleware/grouper/attr/AttributeDef.java
classes/edu/internet2/middleware/grouper/Membership.java
classes/edu/internet2/middleware/grouper/app/attestation/GrouperAttestationJob.java
classes/edu/internet2/middleware/grouper/Stem.java

grouper_v2_3_0_api_patch_90

GRP-1663: inherited privileges should revoke those privileges to subobjects
GRP-1664: do not add admin privileges to root or wheel when creating objects
GRP-1665: do not add admin privileges to inherited admins
GRP-1667: a folder inherited privilege should apply to the assigned folder

classes/edu/internet2/middleware/grouper/privs/AttributeDefResolverDecorator.java
classes/edu/internet2/middleware/grouper/privs/GrouperNonDbNamingAdapter.java
classes/edu/internet2/middleware/grouper/privs/CachingAttrDefResolver.java
classes/edu/internet2/middleware/grouper/privs/GrouperSystemAttrDefResolver.java
classes/edu/internet2/middleware/grouper/util/GrouperUtil.java
classes/edu/internet2/middleware/grouper/privs/BaseAccessAdapter.java
classes/edu/internet2/middleware/grouper/privs/CachingAccessResolver.java
classes/edu/internet2/middleware/grouper/privs/AccessWrapper.java
classes/edu/internet2/middleware/grouper/GrouperNamingAdapter.java
classes/edu/internet2/middleware/grouper/privs/WheelAttrDefResolver.java
classes/edu/internet2/middleware/grouper/privs/NamingAdapter.java
classes/edu/internet2/middleware/grouper/rules/RuleApi.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefName.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3GroupDAO.java
classes/edu/internet2/middleware/grouper/privs/NamingResolverDecorator.java
classes/edu/internet2/middleware/grouper/misc/GrouperObject.java
classes/edu/internet2/middleware/grouper/privs/AttributeDefAdapter.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3StemDAO.java
classes/edu/internet2/middleware/grouper/MembershipFinder.java
classes/edu/internet2/middleware/grouper/privs/AttributeDefWrapper.java
classes/edu/internet2/middleware/grouper/GrouperAccessAdapter.java
classes/edu/internet2/middleware/grouper/privs/BaseAttrDefAdapter.java
classes/edu/internet2/middleware/grouper/privs/NamingResolver.java
classes/edu/internet2/middleware/grouper/internal/dao/AttributeDefDAO.java
classes/edu/internet2/middleware/grouper/misc/GrouperObjectSubjectWrapper.java
classes/edu/internet2/middleware/grouper/privs/GrouperAttributeDefAdapter.java
classes/edu/internet2/middleware/grouper/privs/AccessResolverDecorator.java
classes/edu/internet2/middleware/grouper/rules/RuleCheckType.java
classes/edu/internet2/middleware/grouper/privs/WheelNamingResolver.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeDefDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/StemDAO.java
classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/privs/WheelAccessResolver.java
classes/edu/internet2/middleware/grouper/privs/GrouperNonDbAttrDefAdapter.java
classes/edu/internet2/middleware/grouper/internal/dao/GroupDAO.java
classes/edu/internet2/middleware/grouper/privs/AttributeDefResolver.java
classes/edu/internet2/middleware/grouper/privs/AccessResolver.java
classes/edu/internet2/middleware/grouper/privs/GrouperNonDbAccessAdapter.java
classes/edu/internet2/middleware/grouper/privs/BaseNamingAdapter.java
classes/edu/internet2/middleware/grouper/privs/AccessAdapter.java
classes/edu/internet2/middleware/grouper/privs/GrouperPrivilegeAdapter.java
classes/edu/internet2/middleware/grouper/privs/NamingWrapper.java
classes/edu/internet2/middleware/grouper/Stem.java

grouper_v2_3_0_api_patch_91

GRP-1669: grouper sends virtual attribute names to ldap

classes/edu/internet2/middleware/subject/provider/LdapSourceAdapter.java

grouper_v2_3_0_api_patch_92

GRP-1624: Add loader metadata attributes to groups that are loaded via grouper loader
GRP-1681: allow attribute values to be updated without worrying about locking, hooks, auditing, etc
GRP-1687: allow search for groups by multiple attributes and values
GRP-1678: grouperLoader attribute metadata has incorrect groupId and unassigns attributes that shouldnt be causing stale state exceptions

classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
classes/edu/internet2/middleware/grouper/internal/dao/GroupDAO.java
classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/attr/value/AttributeAssignValueDelegate.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3GroupDAO.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoader.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/audit/AuditTypeBuiltin.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java
classes/edu/internet2/middleware/grouper/GroupFinder.java

grouper_v2_3_0_api_patch_93

GRP-1686: Error deleting group with custom list

classes/edu/internet2/middleware/grouper/Group.java

grouper_v2_3_0_api_patch_94

GRP-1688: default message consumer daemon to off

classes/grouper-loader.base.properties

grouper_v2_3_0_api_patch_95

GRP-1692: dont audit / pit / changelog / hib any loader metadata

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/grouper.base.properties

grouper_v2_3_0_api_patch_96

GRP-1696: AttributeAssignValue was not included in loader patch
GRP-1697: group query group names were not included in loader metadata calculations
GRP-1695: hard code built in ignore attribute defs and names
GRP-1698: print out patch numbers in startup

classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/cfg/GrouperConfig.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/misc/GrouperVersion.java
classes/edu/internet2/middleware/grouper/misc/GrouperStartup.java
classes/edu/internet2/middleware/grouper/attr/value/AttributeAssignValue.java

grouper_v2_3_0_api_patch_97

GRP-1674: add daemon to trim auditing table
GRP-1694: add daemon to trim auditing table of enties with no logged in user
GRP-1701: add daemon to trim deleted point in time data
GRP-1700: delete old PIT data in batches, and not in a transaction
GRP-1658: obliterate stem endless loop if already deleted
GRP-1702: if a part of deleting old data fails from daemon, continue to the next part
GRP-1704: when deleting a group, delete any composites that is a member of
GRP-1703: add daemon to obliterate old folders based on create date
GRP-1653: do not obliterate stems in transaction by default
GRP-1705: attribute performance for built in attributes
GRP-1712: cannot delete group which has requireInGroup type
GRP-1722: grouper.cache.properties is not used by hibernate

classes/edu/internet2/middleware/grouper/pit/PITUtils.java
classes/edu/internet2/middleware/grouper/internal/dao/MemberDAO.java
classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/permissions/PermissionEntryImpl.java
classes/edu/internet2/middleware/grouper/Stem.java
classes/edu/internet2/middleware/grouper/privs/PrivilegeHelper.java
classes/edu/internet2/middleware/grouper/rules/RuleEngine.java
classes/grouper.hibernate.base.properties
classes/edu/internet2/middleware/grouper/internal/dao/AttributeAssignActionDAO.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoader.java
classes/edu/internet2/middleware/grouper/hibernate/BySqlStatic.java
classes/edu/internet2/middleware/grouperClient/messaging/GrouperMessageReceiveParam.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3MemberDAO.java
classes/edu/internet2/middleware/grouperClient/messaging/GrouperMessageSendParam.java
classes/edu/internet2/middleware/grouper/subj/decoratorExamples/SubjectCustomizerForDecoratorExtraAttributes.java
classes/edu/internet2/middleware/grouper/pit/finder/PITAttributeDefNameFinder.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderJob.java
classes/edu/internet2/middleware/grouper/internal/dao/AttributeAssignValueDAO.java
classes/edu/internet2/middleware/grouper/misc/GrouperStartup.java
classes/edu/internet2/middleware/grouper/util/GrouperUtil.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefNameSet.java
classes/edu/internet2/middleware/grouper/GroupSave.java
classes/edu/internet2/middleware/grouper/validator/AddAttributeDefValidator.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/internal/dao/PITFieldDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/PITStemDAO.java
classes/edu/internet2/middleware/grouper/attr/finder/AttributeDefNameFinder.java
classes/edu/internet2/middleware/grouper/internal/dao/PITMembershipDAO.java
classes/edu/internet2/middleware/grouper/cache/GrouperEhcacheRegionFactory.java
classes/edu/internet2/middleware/grouper/hooks/beans/HooksContext.java
classes/edu/internet2/middleware/grouper/app/attestation/GrouperAttestationJob.java
classes/edu/internet2/middleware/grouper/hooks/examples/GroupTypeTupleIncludeExcludeHook.java
classes/edu/internet2/middleware/grouper/internal/dao/PITAttributeAssignActionDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeAssignValueDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeAssignValueDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/AttributeDefNameDAO.java
classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssignBaseDelegate.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeAssignActionDAO.java
classes/grouper.cache.base.properties
classes/edu/internet2/middleware/grouper/app/messaging/InputWsMessage.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeDefNameDAO.java
classes/edu/internet2/middleware/grouper/util/GrouperThreadLocalState.java
classes/edu/internet2/middleware/grouper/internal/dao/PITAttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/Member.java
classes/edu/internet2/middleware/grouper/app/messaging/InputMessageGrouperHeader.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeDefNameSetDAO.java
classes/edu/internet2/middleware/grouper/app/messaging/MessageConsumerDaemon.java
classes/edu/internet2/middleware/grouper/userData/GrouperUserDataUtils.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefSave.java
classes/edu/internet2/middleware/grouper/pit/finder/PITAttributeDefFinder.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITFieldDAO.java
classes/edu/internet2/middleware/grouper/instrumentation/InstrumentationDataUtils.java
classes/edu/internet2/middleware/grouper/internal/dao/PITRoleSetDAO.java
classes/edu/internet2/middleware/grouper/entity/EntityUtils.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITGroupDAO.java
classes/edu/internet2/middleware/grouper/hibernate/HibernateSession.java
classes/edu/internet2/middleware/grouper/validator/AddAttributeDefNameValidator.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITMemberDAO.java
classes/edu/internet2/middleware/grouper/attr/AttributeDef.java
classes/edu/internet2/middleware/grouper/internal/dao/PITAttributeDefDAO.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java
classes/edu/internet2/middleware/grouper/app/gsh/obliterateStem.java
classes/edu/internet2/middleware/grouper/hibernate/HibUtils.java
classes/edu/internet2/middleware/grouper/userData/UserDataList.java
classes/edu/internet2/middleware/grouper/internal/dao/PITAttributeDefNameSetDAO.java
classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssignAction.java
classes/edu/internet2/middleware/grouper/StemFinder.java
classes/edu/internet2/middleware/grouper/app/loader/ldap/LoaderLdapUtils.java
classes/edu/internet2/middleware/grouper/internal/dao/PITMemberDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeDefDAO.java
classes/edu/internet2/middleware/grouper/attr/finder/AttributeDefFinder.java
classes/edu/internet2/middleware/grouper/userData/GrouperUserDataApi.java
classes/edu/internet2/middleware/grouper/StemSave.java
classes/edu/internet2/middleware/grouper/internal/dao/PITAttributeAssignActionSetDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/PITAttributeAssignValueDAO.java
classes/edu/internet2/middleware/grouper/Group.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3GroupDAO.java
classes/edu/internet2/middleware/grouper/cache/EhcacheController.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeDefNameDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeAssignActionDAO.java
classes/edu/internet2/middleware/grouper/GroupFinder.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefName.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITGroupSetDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITRoleSetDAO.java
classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssign.java
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
classes/edu/internet2/middleware/grouper/rules/RuleCheckType.java
classes/edu/internet2/middleware/grouper/app/messaging/WsResponse.java
classes/edu/internet2/middleware/grouper/Membership.java
classes/edu/internet2/middleware/grouper/GroupType.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperDaemonDeleteOldRecords.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefNameSave.java
classes/edu/internet2/middleware/grouper/internal/dao/PITAttributeDefNameDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/PITGroupSetDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeAssignActionSetDAO.java
classes/edu/internet2/middleware/grouper/app/messaging/OutputMessageGrouperHeader.java
classes/edu/internet2/middleware/grouper/hibernate/ByHqlStatic.java
classes/edu/internet2/middleware/grouper/internal/dao/PITGroupDAO.java
classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/MemberFinder.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeDefDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITMembershipDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITStemDAO.java
classes/edu/internet2/middleware/grouper/hibernate/ByHql.java
classes/edu/internet2/middleware/grouper/hooks/examples/MembershipOneInFolderMaxHook.java
classes/edu/internet2/middleware/grouper/internal/dao/AttributeDefDAO.java

grouper_v2_3_0_api_patch_98

GRP-1725: grouper daemon should remove old multi assign attributes of single assign attributes

classes/edu/internet2/middleware/grouper/attr/finder/AttributeAssignFinder.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperDaemonDeleteMultipleCorruption.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperDaemonDeleteOldRecords.java

grouper_v2_3_0_api_patch_99

GRP-1726: PITUtils.deleteInactiveRecords has a constraint violation

classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITStemDAO.java
classes/edu/internet2/middleware/grouper/hibernate/ByHqlStatic.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITGroupSetDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITRoleSetDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeDefNameSetDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3PITAttributeAssignActionSetDAO.java

grouper_v2_3_0_api_patch_100

GRP-1728: PITUtils.deleteInactiveRecords might fail if timestamps in PIT are wrong

classes/edu/internet2/middleware/grouper/hibernate/ByHqlStatic.java

grouper_v2_3_0_api_patch_101

GRP-1729: postgres error: column "value_integer" is of type bigint but expression is of type character varying

classes/edu/internet2/middleware/grouper/hibernate/HibUtils.java
classes/edu/internet2/middleware/grouper/hibernate/BySql.java
classes/edu/internet2/middleware/grouper/hibernate/BySqlStatic.java
classes/edu/internet2/middleware/grouper/attr/value/AttributeAssignValue.java

grouper_v2_3_0_api_patch_102

GRP-1720: gsh on windows cant run scripts from installer like before

classes/edu/internet2/middleware/grouper/app/gsh/GrouperShell.java

grouper_v2_3_0_api_patch_103

GRP-1684: vt-ldap to ldaptive migration for grouper loader

classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/ldap/ldaptive/GrouperRangeEntryHandler.java
classes/edu/internet2/middleware/grouper/ldap/LdapHandlerBean.java
lib/grouper/ldaptive-1.1.0.jar
classes/edu/internet2/middleware/grouper/ldap/LdapEntry.java
classes/edu/internet2/middleware/grouper/ldap/LdapPoc.java
classes/edu/internet2/middleware/grouper/app/loader/ldap/LoaderLdapElUtils.java
classes/edu/internet2/middleware/grouper/ldap/LdapHandler.java
classes/edu/internet2/middleware/grouper/app/loader/db/GrouperLoaderResultset.java
classes/edu/internet2/middleware/grouper/ldap/vtldap/VTLdapSessionImpl.java
classes/edu/internet2/middleware/grouper/app/loader/ldap/GrouperLoaderLdapServer.java
classes/edu/internet2/middleware/grouper/ldap/LdapSessionUtils.java
classes/edu/internet2/middleware/grouper/ldap/LdapSession.java
classes/edu/internet2/middleware/grouper/ldap/LdapAttribute.java
classes/edu/internet2/middleware/grouper/ldap/ldaptive/LdaptiveSessionImpl.java

grouper_v2_3_0_api_patch_104

GRP-1727: add option to not add alternate name during a group rename
GRP-1731: Error using native activemq integration

classes/edu/internet2/middleware/grouper/changeLog/esb/consumer/EsbMessagingPublisher.java
classes/edu/internet2/middleware/grouper/GroupSave.java

grouper_v2_3_0_api_patch_105

GRP-1807: grouper folder names limited to 255 but should be longer

classes/edu/internet2/middleware/grouper/Stem.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefName.java
classes/edu/internet2/middleware/grouper/attr/AttributeDef.java
classes/edu/internet2/middleware/grouper/Group.java
classes/grouper.base.properties

grouper_v2_3_0_api_patch_106

GRP-1823: null pointer on loader

classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java

grouper_v2_3_0_api_patch_107

GRP-1603: Move create/view/edit attribute def names screen to new UI
GRP-1611: Move self registration lite UI to new UI
GRP-1648: Move attribute def name create/view/edit Lite UI to New UI
GRP-1677: Move permissions screens from lite ui to new ui
GRP-1679: Create new attribute action, edit attribute action from the new ui
GRP-1718: Move attribute assignments screens from lite ui to new ui
GRP-1740: Replicate Action and Privilege audit from admin ui to new ui GRP-1740: Replicate Action and Privilege audit from admin ui to new ui GRP-1623: grouper deprovisioning

classes/edu/internet2/middleware/grouper/registry/RegistryReset.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningAffiliation.java
classes/edu/internet2/middleware/grouper/misc/MigrateLegacyAttributes.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningLogic.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperDaemonDeleteOldRecords.java
classes/grouper-loader.base.properties
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3GroupDAO.java
classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssign.java
classes/edu/internet2/middleware/grouper/ddl/GrouperDdlUtils.java
classes/edu/internet2/middleware/grouper/subj/ValidatingResolver.java
classes/edu/internet2/middleware/grouper/ddl/GrouperDdl.java
classes/edu/internet2/middleware/grouper/app/attestation/GrouperAttestationJob.java
classes/edu/internet2/middleware/grouper/attr/assign/AttributeAssignBaseDelegate.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningSettings.java
classes/edu/internet2/middleware/grouper/subj/CachingResolver.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/DeprovisionedSubject.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningOverallConfiguration.java
classes/edu/internet2/middleware/grouper/changeLog/ChangeLogTempToEntity.java
classes/edu/internet2/middleware/grouper/attr/AttributeDefValueType.java
classes/edu/internet2/middleware/grouper/SubjectFinder.java
classes/edu/internet2/middleware/grouper/attr/finder/AttributeAssignValueFinder.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningConfiguration.java
classes/edu/internet2/middleware/grouper/changeLog/ChangeLogConsumerBaseImpl.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningAttributeValue.java
classes/edu/internet2/middleware/grouper/audit/AuditTypeBuiltin.java
classes/edu/internet2/middleware/grouper/util/GrouperUtil.java
classes/edu/internet2/middleware/grouper/subj/decoratorExamples/SubjectCustomizerForDecoratorExtraAttributes.java
classes/edu/internet2/middleware/grouper/messaging/MessagingListenerController.java
classes/edu/internet2/middleware/grouper/Stem.java
classes/edu/internet2/middleware/grouper/misc/GrouperStartup.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningEmailService.java
classes/edu/internet2/middleware/grouper/subj/SubjectResolver.java
classes/edu/internet2/middleware/grouper/subj/SourcesXmlResolver.java
classes/edu/internet2/middleware/grouper/attr/finder/AttributeAssignFinder.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderIncrementalJob.java
classes/edu/internet2/middleware/grouper/privs/PrivilegeHelper.java
classes/edu/internet2/middleware/grouper/internal/dao/AttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/Member.java
classes/grouper.base.properties
classes/edu/internet2/middleware/grouper/GroupFinder.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningJob.java
classes/edu/internet2/middleware/grouper/app/loader/GrouperLoaderType.java
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
classes/edu/internet2/middleware/grouper/audit/AuditFieldType.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3StemDAO.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningAttributeNames.java
classes/edu/internet2/middleware/grouper/util/GrouperEmailUtils.java
classes/edu/internet2/middleware/grouper/util/EmailObject.java
classes/edu/internet2/middleware/grouper/cfg/GrouperConfig.java
classes/edu/internet2/middleware/grouper/xml/export/XmlExportMain.java
classes/edu/internet2/middleware/grouper/MembershipFinder.java
classes/edu/internet2/middleware/grouper/util/GrouperUtilElSafe.java
classes/edu/internet2/middleware/grouper/messaging/GrouperBuiltinMessagingSystem.java

grouper_v2_3_0_api_patch_108

GRP-1832: error in deprovisioning daemon, too many ids to process
GRP-1833: Fix grouper text properties file
GRP-1830: Only show unique grouper objects while listing a subject's memberships
GRP-1843: unresolvable error on auditing fields
GRP-1847: grouper ui attribute assignments does not show multi-assigns

classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningOverallConfiguration.java
classes/grouper.cache.base.properties
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3AttributeAssignDAO.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningConfiguration.java
classes/edu/internet2/middleware/grouper/util/GrouperUtilElSafe.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningLogic.java
classes/edu/internet2/middleware/grouper/internal/dao/hib3/Hib3StemDAO.java
classes/edu/internet2/middleware/grouper/misc/GrouperCheckConfig.java
classes/edu/internet2/middleware/grouper/app/deprovisioning/GrouperDeprovisioningEmailService.java
classes/edu/internet2/middleware/grouper/attr/value/AttributeAssignValue.java

grouper_v2_3_0_api_patch_109 (soon)

GRP-1876: flash cache in groups can allow subjects to view (not read) objects with quick subsequent requests

classes/edu/internet2/middleware/grouper/GroupFinder.java

grouper_v2_3_0_api_patch_110

GRP-2067: duo paging

classes/edu/internet2/middleware/grouperDuo/GrouperDuoFullRefresh.java
classes/edu/internet2/middleware/grouperDuo/GrouperDuoCommands.java

PSPNG last patch: 24

Patch

Description

Files affected

grouper_v2_3_0_psp_patch_0

GRP-1385: null pointer in psp change log consumer

classes/edu/internet2/middleware/psp/grouper/PspChangeLogConsumer.java

grouper_v2_3_0_psp_patch_1

GRP-1388: timer issue in psp

classes/edu/internet2/middleware/psp/grouper/PspChangeLogConsumer.java

grouper_v2_3_0_pspng_patch_0

GRP-1318: PSPNG-Creation and Location of provision_to and do_not_provision_to

GRP-1316: PSPNG: Support disabling of LDAP Paging

classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/GrouperGroupInfo.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerConfiguration.java
classes/edu/internet2/middleware/grouper/pspng/PspUtils.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisionerConfiguration.java

grouper_v2_3_0_pspng_patch_1

GRP-1383-fixes for several pspng issues: GRP-1372 (Case sensitivity) || GRP-1312 (Group selection: too many groups provisioned) || GRP-1362 (Recovering from ldap connection problems while in pool (connection validation)) || GRP-1378 (Nested groups can lead to subject-lookup errors) || GRP-1373 (Group-deletion can lead to jexl expression error) || GRP-1375 (Deleted groups can lead to Cant find group by uuid exception) || GRP-1371 (Better FullSync Logs)

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerFactory.java
classes/edu/internet2/middleware/grouper/pspng/PspUtils.java
classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisionerConfiguration.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisionerConfiguration.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/PspChangelogConsumerShim.java
classes/edu/internet2/middleware/grouper/pspng/GrouperGroupInfo.java
classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisioningWorkItem.java

grouper_v2_3_0_pspng_patch_2

GRP-1392: Fixes slow group-selecting performance with large group registries

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerConfiguration.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java

grouper_v2_3_0_pspng_patch_3

GRP-1401: pspng error: If you are passing in a parentStemId or a stemScope, then you need to pass both of them

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java

grouper_v2_3_0_pspng_patch_4

GRP-1391 - Treats missing subjects in destination system as warnings instead of errors

classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java

grouper_v2_3_0_pspng_patch_5

GRP-1392, fixing PSPNG for large group registries

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java

grouper_v2_3_0_pspng_patch_6

GRP-1391 Debugging. Improve logging throughout pspng.

classes/edu/internet2/middleware/grouper/pspng/ProvisionerFactory.java
classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java
classes/edu/internet2/middleware/grouper/pspng/PspChangelogConsumerShim.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapObject.java
classes/edu/internet2/middleware/grouper/pspng/PspMessageConsumerShim.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncStarter.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java

grouper_v2_3_0_pspng_patch_7

GRP-1391: Failing on missing members (FullSync). Refactored the JexlExpression evaluation

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java

grouper_v2_3_0_pspng_patch_8

GRP-1479 - Fix NullPointerExceptions, particularly when groups are deleted

classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java

grouper_v2_3_0_pspng_patch_9

GRP-1488 - Fixed problem where a null subject was referenced, causing a NullPointerException. Also improved some logging.

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisioningWorkItem.java

grouper_v2_3_0_pspng_patch_10

GRP-1376 - Support for LDAP Groups that require members / Additional logging and other full-sync improvements

classes/edu/internet2/middleware/grouper/pspng/PspUtils.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisionerConfiguration.java
classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/GrouperGroupInfo.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncStarter.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisionerFactory.java

grouper_v2_3_0_pspng_patch_11

GRP-1505 - PSPNG FullSync job statuses are incorrect

classes/edu/internet2/middleware/grouper/pspng/FullSyncStarter.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/JobStatistics.java

grouper_v2_3_0_pspng_patch_12

GRP-1551 - PSPNG support for encrypted passwords

classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java

grouper_v2_3_0_pspng_patch_13

GRP-1533 Problems with commas in group names (RDN)

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java
classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/PspUtils.java
classes/edu/internet2/middleware/grouper/pspng/PspJexlUtils.java

grouper_v2_3_0_pspng_patch_14

GRP-1533 Problems with commas in group names (RDN): Adjusting DN-escaping to be more consistent.

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java

grouper_v2_3_0_pspng_patch_15

GRP-1588: Ldap Groups - "Entry already exists" errors when groups found by DN/EntryDn/DistinguishedName

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisionerConfiguration.java

grouper_v2_3_0_pspng_patch_16

GRP-1533: [More] BushyDn groups that need DN escaping, particularly when group-search filter is based on dn/entryDn/distinguishedName

classes/edu/internet2/middleware/grouper/pspng/PspJexlUtils.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java

grouper_v2_3_0_pspng_patch_17

GRP-1345 (Update of non-membership group attributes), GRP-1707 (Recovery from out-of-band ldap changes), Reduced conflict between full and incremental provisioning, other improvements

classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java
classes/edu/internet2/middleware/grouper/pspng/VoidProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisionerFactory.java
classes/edu/internet2/middleware/grouper/pspng/ProvisioningWorkItem.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerFactory.java
classes/edu/internet2/middleware/grouper/pspng/PspMessageConsumerShim.java
classes/edu/internet2/middleware/grouper/pspng/GrouperGroupInfo.java
classes/edu/internet2/middleware/grouper/pspng/PspUtils.java
classes/edu/internet2/middleware/grouper/pspng/PspJexlUtils.java
classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncStarter.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerCoordinator.java

grouper_v2_3_0_pspng_patch_18

GRP-1874 - Respect ouCreationLdifTemplate setting

classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisionerConfiguration.java

grouper_v2_3_0_pspng_patch_19

GRP-1552 - Enables PSPNG to fully control an attribute of member subjects

classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java

grouper_v2_3_0_pspng_patch_20

GRP-1683 and GRP-1730 - Fixes problems with group deletion and cleanups. Also includes improved organization, modularity and logging.

classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapObject.java
classes/edu/internet2/middleware/grouper/pspng/ChangelogHandlingConfig.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerCoordinator.java
classes/edu/internet2/middleware/grouper/pspng/PspChangelogConsumerShim.java
classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisioningWorkItem.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisionerFactory.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerConfiguration.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/PspUtils.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerFactory.java

grouper_v2_3_0_pspng_patch_21

GRP-1893 and GRP-1882 - Stop provisioning groups that are not selected (Patch 17 regression), Improve group cleanup, enable pspng debugging within gsh, reduce logging noise

classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/GrouperGroupInfo.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/VoidProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisionerFactory.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisionerFactory.java
classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java
classes/edu/internet2/middleware/grouper/pspng/FullSyncProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/ProvisioningWorkItem.java

grouper_v2_3_0_pspng_patch_22

GRP-1908 - Fix debug logging of private information

classes/edu/internet2/middleware/grouper/pspng/LdapSystem.java

grouper_v2_3_0_pspng_patch_23

GRP-1911 Fix problems with ldap-attribute provisioning and prefix with regex characters

classes/edu/internet2/middleware/grouper/pspng/LdapAttributeProvisioner.java

grouper_v2_3_0_pspng_patch_24

GRP-1533 - Problems with commas in group names (Better escaping tracking, integration tests and diagnostics)

classes/edu/internet2/middleware/grouper/pspng/LdapProvisionerConfiguration.java
classes/edu/internet2/middleware/grouper/pspng/PspJexlUtils.java
classes/edu/internet2/middleware/grouper/pspng/LdapGroupProvisioner.java
classes/edu/internet2/middleware/grouper/pspng/Provisioner.java
classes/edu/internet2/middleware/grouper/pspng/LdapProvisioner.java

v2.3.0 patches

Grouper patching instructions (how to install patches with the Grouper installer)

note: if a java file is included in a patch, then all associated classfiles are there too

For more information about upcoming plans, see the Grouper Product Roadmap .

Many other fixes and improvements were also made to all components of the Grouper Toolkit: Grouper API, Administrative & Lite UIs, Grouper Web Services, Grouper Client, Grouper Shell, Grouper Loader, PSP, and the Subject API.

Upgrading to Grouper 2.3 from Grouper 2.2

Using the Grouper Upgrader can simplify your upgrade process. Here is a movie demonstrating the Grouper upgrader.  The upgrader can upgrade an installed env of the API, UI, WS, client, PSP, etc.  If you dont have a build script to manage multiple envs, you might want to use the upgrader.

Important Changes in Grouper 2.3 that impact the upgrade

Inherited Privileges: The Grouper v2.3 UI has support for privilege inheritance.  By default, if you are an admin on a folder, you can assign inherited privileges on it.  Note that one potential side effect of this feature is that it allows end users to gain access to sub-folders and groups because they have admin access to a parent folder.  In most cases, this is expected behavior because folders are typically delegated and managed hierarchically.  However, if you do not allow parent folder admins to have access to all child objects, then you may want to disable this feature.  You have the option to lock this feature down so only Grouper admins can use it or people in a certain group.

Other items before upgrading

  1. You may want to have your DBAs make sure you are not close to running out of tablespace.  In general, it may be useful to have your DBAs available when you upgrade.
  2. If you have views that other systems use, you could replace them as tables before beginning. 
  3. If you have other systems using Grouper, you could temporarily disable them.

Upgrade Steps

  1. You should get v2.3 versions of the Grouper API, Grouper UI, Grouper WS, Grouper Daemon, etc. from the Grouper Downloads page.  You will need to merge configuration files and JARs.
  2. Stop the Grouper Daemon.  Once you prevent users from making updates to your Grouper instance, run the changeLogTempToChangeLog daemon to clear out the temp changelog using your existing v2.2 API.  Here's an example using GSH.

    gsh 0% loaderRunOneJob("CHANGE_LOG_changeLogTempToChangeLog")
    
  3. Before performing any upgrade steps, export your Grouper registry.  Options include performing a database backup (recommended) or using the XML Export utility in Grouper (not recommended since certain features may not get exported).
  4. Using the 2.3 API, perform a registry check using GSH to create an SQL file that will contain the DDL to update your database. To do this, run: gsh -registry -check     Note you may need to increase memory.  For instance..

    $ export MEM_MAX=2000m
    $ ./bin/gsh.sh -registry -check
    Using GROUPER_HOME: /opt/grouper
    Using GROUPER_CONF: /opt/grouper/conf
    Using JAVA: java
    using MEMORY: 64m-2000m
    Grouper starting up: version: 2.3.0, build date: 2016/04/20 16:15:04, env: <no label configured>
    grouper.properties read from: /opt/grouper/conf/grouper.properties
    Grouper current directory is: /opt/grouper
    log4j.properties read from:   /opt/grouper/conf/log4j.properties
    Grouper is logging to file:   /opt/grouper/logs/grouper_debug.log, /opt/grouper/logs/grouper_error.log, at min level INFO for package: edu.internet2.middleware.grouper, based on log4j.properties
    grouper.hibernate.properties: /opt/grouper/conf/grouper.hibernate.properties
    grouper.hibernate.properties: sa@jdbc:hsqldb:hsql://localhost:9001/grouper
    sources.xml read from:        /opt/grouper/conf/sources.xml
    sources.xml groupersource id: g:gsa
    sources.xml groupersource id: grouperEntities
    sources.xml jdbc source id:   jdbc: GrouperJdbcConnectionProvider
    This db user 'sa' and url 'jdbc:hsqldb:hsql://localhost:9001/grouper' are allowed to be changed in the grouper.properties
    Continuing...
    Grouper ddl object type 'Grouper' has dbVersion: 29 and java version: 30
    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:
    /opt/grouper/ddlScripts/grouperDdl_20160420_16_15_53_708.sql
    Note: this script was not executed due to option passed in
    To run script via gsh, carefully review it, then run this:
    gsh -registry -runsqlfile /opt/grouper/ddlScripts/grouperDdl_20160420_16_15_53_708.sql
    
    1. In this example above, an SQL script called /opt/grouper/ddlScripts/grouperDdl_20160420_16_15_53_708.sql was created.
    2. Postgres only - If using postgres, you should see foreign keys being dropped at the top of the script. If not, try setting the ddlutils.schema grouper.properties setting and run again. If you still don't see foreign keys being dropped at the top of the script, manually drop all foreign keys before running the script.
    3. Postgres and hsql only - You should backup any non grouper views that depend on Grouper views, run the grouper script (which deletes those views due to drop view cascade), and then you should recreate those non grouper views.
  5. Run the SQL script. 

    If you are running via GSH, make sure this is in log4j.properties so that you know which line of the script is currently executing to see progress and troubleshoot

    log4j.logger.org.apache.tools.ant = WARN



    To do this, run:  gsh -registry -runsqlfile /path/to/sql/file.sql  For instance..

    $ ./bin/gsh.sh -registry -runsqlfile /opt/grouper/ddlScripts/grouperDdl_20160420_16_15_53_708.sql
    Using GROUPER_HOME: /opt/grouper
    Using GROUPER_CONF: /opt/grouper/conf
    Using JAVA: java
    using MEMORY: 64m-2000m
    This db user 'sa' and url 'jdbc:hsqldb:hsql://localhost:9001/grouper' are allowed to be changed in the grouper.properties
    Continuing...
    Script was executed successfully
    
    Grouper starting up: version: 2.3.0, build date: 2016/04/20 16:15:04, env: <no label configured>
    grouper.properties read from: /opt/grouper/conf/grouper.properties
    Grouper current directory is: /opt/grouper
    log4j.properties read from:   /opt/grouper/conf/log4j.properties
    Grouper is logging to file:   /opt/grouper/logs/grouper_debug.log, /opt/grouper/logs/grouper_error.log, at min level INFO for package: edu.internet2.middleware.grouper, based on log4j.properties
    grouper.hibernate.properties: /opt/grouper/conf/grouper.hibernate.properties
    grouper.hibernate.properties: sa@jdbc:hsqldb:hsql://localhost:9001/grouper
    sources.xml read from:        /opt/grouper/conf/sources.xml
    sources.xml groupersource id: g:gsa
    sources.xml groupersource id: grouperEntities
    sources.xml jdbc source id:   jdbc: GrouperJdbcConnectionProvider
    Grouper note: auto-created stem: etc:attribute:messages
    Grouper note: auto-created role: etc:attribute:messages:grouperMessageRole
    Grouper note: auto-created attributeDef: etc:attribute:messages:grouperMessageTopicDef
    Grouper note: auto-created attributeDef: etc:attribute:messages:grouperMessageQueueDef
    Grouper note: auto-created stem: etc:attribute:messages:grouperMessageTopics
    Grouper note: auto-created stem: etc:attribute:messages:grouperMessageQueues
    

    Note that if one of the SQL statements in the script fails, the process will abort leaving the rest of the SQL statements from executing.  If this happens, in most cases, you can't just re-run the full script since re-executing some of the DDL changes that previously succeeded would fail now (e.g. dropping a view or constraint that was previously dropped successfully.)  You could edit the script to remove the statements that previously succeeded in order to re-execute the statement that failed and the ones after it.  Or you can run the previous step again to generate a new SQL script.

  6. Now that the DDL updates have been made, there is an additional GSH command that needs to be run.  To do this, run: gsh ../misc/postGrouper2_3_0Upgrade.gsh (The gsh script is in the "misc" directory.)  Note you should check the output to make sure no errors are thrown. If you see an error, it is safe to re-run. For instance..

    $ ./bin/gsh.sh misc/postGrouper2_3_0Upgrade.gsh
    Using GROUPER_HOME: /opt/grouper
    Using GROUPER_CONF: /opt/grouper/conf
    Using JAVA: java
    using MEMORY: 64m-2000m
    Grouper starting up: version: 2.3.0, build date: 2016/04/20 16:15:04, env: <no label configured>
    grouper.properties read from: /opt/grouper/conf/grouper.properties
    Grouper current directory is: /opt/grouper
    log4j.properties read from:   /opt/grouper/conf/log4j.properties
    Grouper is logging to file:   /opt/grouper/logs/grouper_debug.log, /opt/grouper/logs/grouper_error.log, at min level INFO for package: edu.internet2.middleware.grouper, based on log4j.properties
    grouper.hibernate.properties: /opt/grouper/conf/grouper.hibernate.properties
    grouper.hibernate.properties: sa@jdbc:hsqldb:hsql://localhost:9001/grouper
    sources.xml read from:        /opt/grouper/conf/sources.xml
    sources.xml groupersource id: g:gsa
    sources.xml groupersource id: grouperEntities
    sources.xml jdbc source id:   jdbc: GrouperJdbcConnectionProvider
    Type help() for instructions
    Error: Cannot properly read UTF string from resource: grouperUtf8.txt: 'ٹٺٻټكلل'
    
    
    ##########################################
    # Grouper 2.3.0 Upgrade Step 1/1: Remove grouperLoaderLdapErrorUnresolvable attribute
    ##########################################
    edu.internet2.middleware.grouper.GrouperSession: 5868a5370afd4941bf3f340bf632546f,'GrouperSystem','application'
    edu.internet2.middleware.grouper.attr.AttributeDefName: AttributeDefName[name=etc:attribute:loaderLdap:grouperLoaderLdapErrorUnresolvable,uuid=799596896dd0426fb4c4e8edf9bd8a98]
    Successfully removed attribute.
    



  7. Analyze your tables. (To avoid any performance issues later.)
  8. Start the Grouper Daemon and all other Grouper components (UI/WS).
  9. The Grouper member table (grouper_members) now has a new column to store subject identifiers.  Post 2.3.0, this will be used to help improve Grouper's performance in various aspects.  You will need to configure your sources.xml file and sync the new column.  For details: Subject Identifier column in member table
  10. By default any folder owner can assign inherited privileges, which means they can get control of any descendant object.  If you do not want this you can lock down control

See Also

Release Notes for Grouper 2.3

See Also

Grouper Release Announcements

Grouper Changes v2.2

  1. GRP-1452

regex replace in subject source can cause issues if subject id has dollar sign



  • No labels