Modified Files:
Attribute.hbm.xml Factor.hbm.xml Group.hbm.xml Group.java
GroupType.hbm.xml Member.hbm.xml Membership.hbm.xml
RegistryReset.java Stem.hbm.xml Stem.java StemFinder.java
Log Message:
I **hate** Oracle.
But at least I finally was able to Make Grouper Go with Oracle.
Hate Hate Hate.
Now let's see if everything still works with HSQLDB and Pg.
Index: Member.hbm.xml
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Member.hbm.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Member.hbm.xml -Lsrc/grouper/edu/internet2/middleware/grouper/Member.hbm.xml -u -r1.7 -r1.8
--- src/grouper/edu/internet2/middleware/grouper/Member.hbm.xml
+++ src/grouper/edu/internet2/middleware/grouper/Member.hbm.xml
@@ -44,14 +44,21 @@
<!-- id -->
+<!--
+ I had an index across `subject_id`, `subject_source` and
+ `subject_type` but Oracle did **not** like it.
+-->
+
<!-- subject_id -->
<property
name="subject_id"
type="string"
- not-null="true"
- index="member_subject_idx"
>
- <column name="subject_id" unique-key="subject_idx"/>
+ <column name="subject_id"
+ not-null="true"
+ index="member_subjectid_idx"
+ unique-key="subject_idx"
+ />
</property>
<!-- subject_id -->
@@ -59,10 +66,12 @@
<property
name="subject_source"
type="string"
- not-null="true"
- index="member_subject_idx"
>
- <column name="subject_source" unique-key="subject_idx"/>
+ <column name="subject_source"
+ not-null="true"
+ index="member_subjectsource_idx"
+ unique-key="subject_idx"
+ />
</property>
<!-- subject_source -->
@@ -70,20 +79,25 @@
<property
name="subject_type"
type="string"
- not-null="true"
- index="member_subject_idx"
- />
+ >
+ <column name="subject_type"
+ not-null="true"
+ index="member_subjecttype_idx"
+ unique-key="subject_idx"
+ />
+ </property>
<!-- subject_type -->
<!-- member_id -->
<property
name="member_id"
type="string"
- not-null="true"
unique="true"
index="member_uuid_idx"
>
- <column name="member_uuid"/>
+ <column name="member_uuid"
+ not-null="true"
+ />
</property>
<!-- member_id -->
@@ -94,9 +108,7 @@
index="member_status_idx"
>
<column name="status_type"/>
- <column name="status_ttl"
- sql-type="bigint"
- />
+ <column name="status_ttl"/>
</property>
<!-- status -->
Index: Attribute.hbm.xml
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Attribute.hbm.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Attribute.hbm.xml -Lsrc/grouper/edu/internet2/middleware/grouper/Attribute.hbm.xml -u -r1.6 -r1.7
--- src/grouper/edu/internet2/middleware/grouper/Attribute.hbm.xml
+++ src/grouper/edu/internet2/middleware/grouper/Attribute.hbm.xml
@@ -46,15 +46,18 @@
<version name="version" column="version"/>
+<!--
+ I had a unique index across `group_id`, `field_name` and `field_type` but
+ Oracle did **not** like it one bit.
+-->
+
<!-- group_id -->
<many-to-one
name="group"
class="edu.internet2.middleware.grouper.Group"
not-null="true"
>
- <column name="group_id"
- unique-key="group_field_idx"
- />
+ <column name="group_id"/>
</many-to-one>
<!-- group_id -->
@@ -66,11 +69,9 @@
>
<column name="field_name"
not-null="true"
- unique-key="group_field_idx"
/>
<column name="field_type"
not-null="true"
- unique-key="group_field_idx"
/>
</property>
<!-- field -->
Index: RegistryReset.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/RegistryReset.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -Lsrc/grouper/edu/internet2/middleware/grouper/RegistryReset.java -Lsrc/grouper/edu/internet2/middleware/grouper/RegistryReset.java -u -r1.3 -r1.4
--- src/grouper/edu/internet2/middleware/grouper/RegistryReset.java
+++ src/grouper/edu/internet2/middleware/grouper/RegistryReset.java
@@ -224,7 +224,7 @@
String sqlNoParent = "update " + table + " set "
+ " parent_stem = null";
String sqlSaveRoot = "delete from " + table + " where "
- + "stem_name != ''";
+ + "name != '" + Stem.ROOT + "'";
this._emptyTable(table, sqlNoModifier);
this._emptyTable(table, sqlNoParent);
this._emptyTable(table, sqlSaveRoot);
Index: Group.hbm.xml
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Group.hbm.xml,v
retrieving revision 1.11
retrieving revision 1.12
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Group.hbm.xml -Lsrc/grouper/edu/internet2/middleware/grouper/Group.hbm.xml -u -r1.11 -r1.12
--- src/grouper/edu/internet2/middleware/grouper/Group.hbm.xml
+++ src/grouper/edu/internet2/middleware/grouper/Group.hbm.xml
@@ -136,9 +136,7 @@
index="group_status_idx"
>
<column name="status_type"/>
- <column name="status_ttl"
- sql-type="bigint"
- />
+ <column name="status_ttl"/>
</property>
<!-- status -->
Index: Stem.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Stem.java,v
retrieving revision 1.41
retrieving revision 1.42
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Stem.java -Lsrc/grouper/edu/internet2/middleware/grouper/Stem.java -u -r1.41 -r1.42
--- src/grouper/edu/internet2/middleware/grouper/Stem.java
+++ src/grouper/edu/internet2/middleware/grouper/Stem.java
@@ -35,6 +35,11 @@
*/
public class Stem implements Serializable {
+ // Protected Class Constants
+ protected static final String ROOT_EXT = ""; // Appease Oracle
+ protected static final String ROOT_INT = ":"; // Appease Oracle
+
+
// Private Class Constants
// TODO use one in GrouperConfig
private static final String BT = "true";
@@ -95,10 +100,10 @@
this.s = s;
this._setCreated();
this.setStem_id( GrouperUuid.getUuid() );
- this.setStem_name( "" );
- this.setDisplay_name( "" );
- this.setStem_extension( "" );
- this.setDisplay_extension("" );
+ this.setStem_name( ROOT_INT );
+ this.setDisplay_name( ROOT_INT );
+ this.setStem_extension( ROOT_INT );
+ this.setDisplay_extension(ROOT_INT );
} // protected Stem(s)
@@ -439,7 +444,11 @@
* @return Stem displayExtension.
*/
public String getDisplayExtension() {
- return this.getDisplay_extension();
+ String val = this.getDisplay_extension();
+ if (val.equals(ROOT_INT)) {
+ return ROOT_EXT;
+ }
+ return val;
}
/**
@@ -451,7 +460,11 @@
* @return Stem displayName.
*/
public String getDisplayName() {
- return this.getDisplay_name();
+ String val = this.getDisplay_name();
+ if (val.equals(ROOT_INT)) {
+ return ROOT_EXT;
+ }
+ return val;
}
/**
@@ -463,7 +476,11 @@
* @return Stem extension.
*/
public String getExtension() {
- return this.getStem_extension();
+ String val = this.getStem_extension();
+ if (val.equals(ROOT_INT)) {
+ return ROOT_EXT;
+ }
+ return val;
}
/**
@@ -532,7 +549,11 @@
* @return Stem name.
*/
public String getName() {
- return this.getStem_name();
+ String val = this.getStem_name();
+ if (val.equals(ROOT_INT)) {
+ return ROOT_EXT;
+ }
+ return val;
}
/**
@@ -808,9 +829,11 @@
validateName(value);
}
catch (IllegalArgumentException eIA) {
- if (!(this.getName().equals("") && value.equals(""))) {
+ if (!(this.getStem_name().equals(ROOT_INT) && value.equals(ROOT_EXT))) {
throw new StemModifyException(eIA.getMessage());
}
+ // Appease Oracle
+ value = ROOT_INT;
}
PrivilegeResolver.getInstance().canSTEM(
GrouperSessionFinder.getRootSession(), this, this.s.getSubject()
@@ -877,7 +900,8 @@
protected static String constructName(String stem, String extn) {
// TODO This should probably end up in a "naming" utility class
- if (stem.equals("")) {
+ // TODO Why don't I do validation here?
+ if (stem.equals(ROOT_EXT)) {
return extn;
}
return stem + ":" + extn;
Index: Stem.hbm.xml
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Stem.hbm.xml,v
retrieving revision 1.13
retrieving revision 1.14
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Stem.hbm.xml -Lsrc/grouper/edu/internet2/middleware/grouper/Stem.hbm.xml -u -r1.13 -r1.14
--- src/grouper/edu/internet2/middleware/grouper/Stem.hbm.xml
+++ src/grouper/edu/internet2/middleware/grouper/Stem.hbm.xml
@@ -112,26 +112,27 @@
<!-- display_extension -->
<property name="display_extension"
type="string"
- not-null="true"
index="stem_displayextn_idx"
+ not-null="true"
/>
<!-- display_extension -->
<!-- display_name -->
<property name="display_name"
type="string"
- not-null="true"
index="stem_displayname_idx"
+ not-null="true"
/>
<!-- display_name -->
<!-- extension -->
<property name="stem_extension"
type="string"
- not-null="true"
index="stem_extn_idx"
>
- <column name="extension"/>
+ <column name="extension"
+ not-null="true"
+ />
</property>
<!-- extension -->
@@ -161,9 +162,11 @@
<property
name="stem_name"
type="string"
- not-null="true"
index="stem_name_idx"
- />
+ >
+ <column name="name"
+ not-null="true"/>
+ </property>
<!-- name -->
<!-- parent_stem -->
@@ -192,9 +195,7 @@
index="stem_status_idx"
>
<column name="status_type"/>
- <column name="status_ttl"
- sql-type="bigint"
- />
+ <column name="status_ttl"/>
</property>
<!-- status -->
Index: Membership.hbm.xml
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Membership.hbm.xml,v
retrieving revision 1.11
retrieving revision 1.12
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Membership.hbm.xml -Lsrc/grouper/edu/internet2/middleware/grouper/Membership.hbm.xml -u -r1.11 -r1.12
--- src/grouper/edu/internet2/middleware/grouper/Membership.hbm.xml
+++ src/grouper/edu/internet2/middleware/grouper/Membership.hbm.xml
@@ -160,9 +160,7 @@
index="membership_status_idx"
>
<column name="status_type"/>
- <column name="status_ttl"
- sql-type="bigint"
- />
+ <column name="status_ttl"/>
</property>
<!-- status -->
Index: GroupType.hbm.xml
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/GroupType.hbm.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -Lsrc/grouper/edu/internet2/middleware/grouper/GroupType.hbm.xml -Lsrc/grouper/edu/internet2/middleware/grouper/GroupType.hbm.xml -u -r1.7 -r1.8
--- src/grouper/edu/internet2/middleware/grouper/GroupType.hbm.xml
+++ src/grouper/edu/internet2/middleware/grouper/GroupType.hbm.xml
@@ -83,9 +83,7 @@
index="grouptype_status_idx"
>
<column name="status_type"/>
- <column name="status_ttl"
- sql-type="bigint"
- />
+ <column name="status_ttl"/>
</property>
<!-- status -->
Index: Factor.hbm.xml
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Factor.hbm.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Factor.hbm.xml -Lsrc/grouper/edu/internet2/middleware/grouper/Factor.hbm.xml -u -r1.6 -r1.7
--- src/grouper/edu/internet2/middleware/grouper/Factor.hbm.xml
+++ src/grouper/edu/internet2/middleware/grouper/Factor.hbm.xml
@@ -100,9 +100,7 @@
index="factor_status_idx"
>
<column name="status_type"/>
- <column name="status_ttl"
- sql-type="bigint"
- />
+ <column name="status_ttl"/>
</property>
<!-- status -->
Index: StemFinder.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/StemFinder.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -Lsrc/grouper/edu/internet2/middleware/grouper/StemFinder.java -Lsrc/grouper/edu/internet2/middleware/grouper/StemFinder.java -u -r1.9 -r1.10
--- src/grouper/edu/internet2/middleware/grouper/StemFinder.java
+++ src/grouper/edu/internet2/middleware/grouper/StemFinder.java
@@ -62,8 +62,7 @@
try {
Session hs = HibernateHelper.getSession();
List l = hs.find(
- "from Stem as ns where "
- + "ns.stem_name = ? ",
+ "from Stem as ns where ns.stem_name = ?",
name,
Hibernate.STRING
);
@@ -71,7 +70,7 @@
if (l.size() == 1) {
ns = (Stem) l.get(0);
ns.setSession(s);
- }
+ }
}
catch (HibernateException eH) {
throw new StemNotFoundException(
@@ -98,7 +97,7 @@
public static Stem findRootStem(GrouperSession s) {
GrouperSession.validate(s);
try {
- return StemFinder.findByName(s, "");
+ return StemFinder.findByName(s, Stem.ROOT);
}
catch (StemNotFoundException eSNF) {
GrouperLog.fatal(LOG, s, ERR_FRS);
Index: Group.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Group.java,v
retrieving revision 1.46
retrieving revision 1.47
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Group.java -Lsrc/grouper/edu/internet2/middleware/grouper/Group.java -u -r1.46 -r1.47
--- src/grouper/edu/internet2/middleware/grouper/Group.java
+++ src/grouper/edu/internet2/middleware/grouper/Group.java
@@ -1821,9 +1821,9 @@
Attribute a = (Attribute) iter.next();
if (a.getField().getName().equals("displayName")) {
a.setValue(value);
+ this.attr_dn = value;
}
attrs.add(a);
- this.attr_dn = value;
}
this.setGroup_attributes(attrs);
} // protected void setDisplayName(value)
Modified Files:
RegistryReset.java StemFinder.java
Log Message:
fix oracle commit
Index: RegistryReset.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/RegistryReset.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -Lsrc/grouper/edu/internet2/middleware/grouper/RegistryReset.java -Lsrc/grouper/edu/internet2/middleware/grouper/RegistryReset.java -u -r1.4 -r1.5
--- src/grouper/edu/internet2/middleware/grouper/RegistryReset.java
+++ src/grouper/edu/internet2/middleware/grouper/RegistryReset.java
@@ -224,7 +224,7 @@
String sqlNoParent = "update " + table + " set "
+ " parent_stem = null";
String sqlSaveRoot = "delete from " + table + " where "
- + "name != '" + Stem.ROOT + "'";
+ + "name != '" + Stem.ROOT_INT + "'";
this._emptyTable(table, sqlNoModifier);
this._emptyTable(table, sqlNoParent);
this._emptyTable(table, sqlSaveRoot);
Index: StemFinder.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/StemFinder.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -Lsrc/grouper/edu/internet2/middleware/grouper/StemFinder.java -Lsrc/grouper/edu/internet2/middleware/grouper/StemFinder.java -u -r1.10 -r1.11
--- src/grouper/edu/internet2/middleware/grouper/StemFinder.java
+++ src/grouper/edu/internet2/middleware/grouper/StemFinder.java
@@ -97,7 +97,7 @@
public static Stem findRootStem(GrouperSession s) {
GrouperSession.validate(s);
try {
- return StemFinder.findByName(s, Stem.ROOT);
+ return StemFinder.findByName(s, Stem.ROOT_INT);
Modified Files:
FieldType.java Group.java GrouperConfig.java GrouperLog.java
GrouperSession.java Membership.java PrivilegeResolver.java
Stem.java SubjectHelper.java
Added Files:
EventLog.java
Log Message:
* event logging added
* removed configuration toggles for controlling whether-or-not
immediate membership adds and deletes took place
Index: FieldType.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/FieldType.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -Lsrc/grouper/edu/internet2/middleware/grouper/FieldType.java -Lsrc/grouper/edu/internet2/middleware/grouper/FieldType.java -u -r1.4 -r1.5
--- src/grouper/edu/internet2/middleware/grouper/FieldType.java
+++ src/grouper/edu/internet2/middleware/grouper/FieldType.java
@@ -66,6 +66,10 @@
// Public Instance Methods
+ public String getType() {
+ return this.type;
+ } // public String getType()
+
public String toString() {
return this.type;
} // public String toString()
Index: Stem.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Stem.java,v
retrieving revision 1.42
retrieving revision 1.43
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Stem.java -Lsrc/grouper/edu/internet2/middleware/grouper/Stem.java -u -r1.42 -r1.43
--- src/grouper/edu/internet2/middleware/grouper/Stem.java
+++ src/grouper/edu/internet2/middleware/grouper/Stem.java
@@ -22,6 +22,7 @@
import java.util.*;
import java.util.regex.*;
import net.sf.hibernate.*;
+import org.apache.commons.lang.time.*;
import org.apache.commons.lang.builder.*;
import org.apache.commons.logging.*;
@@ -52,6 +53,7 @@
private static final String CFG_GCGAV = "groups.create.grant.all.view";
private static final String CFG_SCGAC = "stems.create.grant.all.create";
private static final String CFG_SCGAS = "stems.create.grant.all.stem";
+ private static final EventLog EL = new EventLog();
private static final String ERR_ARS = "unable to install root stem: ";
private static final String ERR_FNF = "field not found: ";
private static final Log LOG = LogFactory.getLog(Stem.class);
@@ -133,6 +135,8 @@
throws GroupAddException,
InsufficientPrivilegeException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
try {
validateName(extension);
validateName(displayExtension);
@@ -178,7 +182,10 @@
objects.add(child);
objects.add(this);
HibernateHelper.save(objects);
- return _grantDefaultPrivsUponCreate(child);
+ sw.stop();
+ EL.stemAddChildGroup(this.s, child.getName(), sw);
+ _grantDefaultPrivsUponCreate(child);
+ return child;
}
catch (Exception e) {
throw new GroupAddException(
@@ -209,6 +216,8 @@
throws InsufficientPrivilegeException,
StemAddException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
try {
validateName(extension);
validateName(displayExtension);
@@ -257,7 +266,10 @@
this.setChild_stems(children);
// Now commit to registry
HibernateHelper.save(this);
- return _grantDefaultPrivsUponCreate(child);
+ sw.stop();
+ EL.stemAddChildStem(this.s, child.getName(), sw);
+ _grantDefaultPrivsUponCreate(child);
+ return child;
}
catch (HibernateException eH) {
throw new StemAddException(
@@ -643,6 +655,8 @@
InsufficientPrivilegeException,
SchemaException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
String msg = "grantPriv: " + SubjectHelper.getPretty(subj)
+ " '" + priv.toString().toUpperCase() + "'";
GrouperLog.debug(LOG, this.s, msg);
@@ -650,7 +664,8 @@
PrivilegeResolver.getInstance().grantPriv(
this.s, this, subj, priv
);
- GrouperLog.debug(LOG, this.s, msg + ": granted");
+ sw.stop();
+ EL.stemGrantPriv(this.s, this.getName(), subj, priv, sw);
}
catch (GrantPrivilegeException eGP) {
GrouperLog.debug(LOG, this.s, eGP.getMessage());
@@ -731,9 +746,13 @@
RevokePrivilegeException,
SchemaException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
PrivilegeResolver.getInstance().revokePriv(
this.s, this, priv
);
+ sw.stop();
+ EL.stemRevokePriv(this.s, this.getName(), priv, sw);
} // public void revokePriv(priv)
/**
@@ -761,9 +780,13 @@
RevokePrivilegeException,
SchemaException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
PrivilegeResolver.getInstance().revokePriv(
this.s, this, subj, priv
);
+ sw.stop();
+ EL.stemRevokePriv(this.s, this.getName(), subj, priv, sw);
} // public void revokePriv(subj, priv)
/**
@@ -788,6 +811,8 @@
throws InsufficientPrivilegeException,
StemModifyException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
PrivilegeResolver.getInstance().canSTEM(
GrouperSessionFinder.getRootSession(), this, this.s.getSubject()
);
@@ -801,6 +826,8 @@
"unable to set description: " + e.getMessage()
);
}
+ sw.stop();
+ EL.stemSetAttr(this.s, this.getName(), "description", value, sw);
} // public void setDescription(value)
/**
@@ -825,6 +852,8 @@
throws InsufficientPrivilegeException,
StemModifyException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
try {
validateName(value);
}
@@ -870,6 +899,12 @@
"unable to set displayExtension: " + e.getMessage()
);
}
+ sw.stop();
+ // Reset for logging purposes
+ if (value.equals(ROOT_INT)) {
+ value = ROOT_EXT;
+ }
+ EL.stemSetAttr(this.s, this.getName(), "displayExtension", value, sw);
} // public void setDisplayExtension(value)
public String toString() {
@@ -963,7 +998,7 @@
} // private static void _initializeChildGroupsAndStems(ns)
// Private Instance Methods
- private Group _grantDefaultPrivsUponCreate(Group g)
+ private void _grantDefaultPrivsUponCreate(Group g)
throws GroupAddException
{
// Now grant ADMIN (as root) to the creator of the child group.
@@ -1003,16 +1038,15 @@
g.setSession(orig);
root.stop();
- return g;
}
catch (Exception e) {
throw new GroupAddException(
"group created but unable to grant ADMIN to creator: " + e.getMessage()
);
}
- } // private Group _grantDefaultPrivsUponCreate(g)
+ } // private void _grantDefaultPrivsUponCreate(g)
- private Stem _grantDefaultPrivsUponCreate(Stem ns)
+ private void _grantDefaultPrivsUponCreate(Stem ns)
throws StemAddException
{
// Now grant STEM (as root) to the creator of the child stem.
@@ -1040,7 +1074,6 @@
ns.setSession(orig);
root.stop();
- return ns;
}
catch (Exception e) {
throw new StemAddException(
@@ -1057,16 +1090,20 @@
GrouperConfig cfg = GrouperConfig.getInstance();
Subject all = SubjectFinder.findAllSubject();
if (cfg.getProperty(opt).equals(BT)) {
+ StopWatch sw = new StopWatch();
+ sw.start();
String msg = " granted " + p.getName() + " to " + SubjectHelper.getPretty(all);
if (o.getClass().equals(Group.class)) {
Group g = (Group) o;
PrivilegeResolver.getInstance().grantPriv(root, g, all, p);
- GrouperLog.info(LOG, orig, g.getName() + msg);
+ sw.stop();
+ EL.groupGrantPriv(this.s, g.getName(), all, p, sw);
}
else if (o.getClass().equals(Stem.class)) {
Stem ns = (Stem) o;
PrivilegeResolver.getInstance().grantPriv(root, ns, all, p);
- GrouperLog.info(LOG, orig, ns.getName() + msg);
+ sw.stop();
+ EL.stemGrantPriv(this.s, ns.getName(), all, p, sw);
}
}
} // private void _grantOptionalPrivUponCreate(orig, root, o, p, opt)
Index: GrouperLog.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/GrouperLog.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperLog.java -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperLog.java -u -r1.8 -r1.9
--- src/grouper/edu/internet2/middleware/grouper/GrouperLog.java
+++ src/grouper/edu/internet2/middleware/grouper/GrouperLog.java
@@ -22,6 +22,7 @@
import edu.internet2.middleware.subject.provider.*;
import java.io.Serializable;
import java.util.*;
+import org.apache.commons.lang.time.*;
import org.apache.commons.logging.*;
@@ -35,66 +36,18 @@
class GrouperLog implements Serializable {
// Protected Class Constants
+ // TODO Move to _ErrorLog_
protected static final String ERR_CMGR = "unable to get cache manager: ";
protected static final String ERR_GRS = "unable to start root session: ";
- protected static final String ERR_LOG = "error logging: ";
protected static final String MSG_EC = "emptied cache ";
// Protected Class Methods
- protected static void addEffMS(Log log, GrouperSession s, Set effs) {
- Iterator iter = effs.iterator();
- while (iter.hasNext()) {
- try {
- Membership eff = (Membership) iter.next();
- String msg = "add effective member: " + _getMsMsg(s, eff);
- GrouperLog.info(log, s, msg);
- }
- catch (Exception e) {
- GrouperLog.error(log, s, ERR_LOG + "addition of effective membership");
- }
- }
- } // protected static void addEffMS(log, s, effs)
-
- protected static void addImmMS(Log log, GrouperSession s, Membership imm) {
- try {
- String msg = "add immediate member: " + _getMsMsg(s, imm);
- GrouperLog.info(log, s, msg);
- }
- catch (Exception e) {
- GrouperLog.error(log, s, ERR_LOG + "addition of of immediate membership");
- }
- } // protected static void addImmMS(log, s, imm)
-
protected static void debug(Log log, GrouperSession s, String msg) {
log.debug( _formatMsg(s, msg) );
} // protected static void debug(log, s, msg)
- protected static void delEffMS(Log log, GrouperSession s, Set effs) {
- Iterator iter = effs.iterator();
- while (iter.hasNext()) {
- try {
- Membership eff = (Membership) iter.next();
- String msg = "delete effective member: " + _getMsMsg(s, eff);
- GrouperLog.info(log, s, msg);
- }
- catch (Exception e) {
- GrouperLog.error(log, s, ERR_LOG + "deletion of effective membership");
- }
- }
- } // protected static void delEffMS(log, s, effs)
-
- protected static void delImmMS(Log log, GrouperSession s, Membership imm) {
- try {
- String msg = "delete immediate member: " + _getMsMsg(s, imm);
- GrouperLog.info(log, s, msg);
- }
- catch (Exception e) {
- GrouperLog.error(log, s, ERR_LOG + "deletion of of immediate membership");
- }
- } // protected static void delImmMS(log, s, imm)
-
protected static void error(Log log, GrouperSession s, String msg) {
log.error( _formatMsg(s, msg) );
} // protected static void error(log, s, msg)
@@ -107,11 +60,21 @@
log.info( _formatMsg(s, msg) );
} // protected static void info(log, s, msg)
- protected static String q(String txt) {
- String fmtd = "'" + txt + "'";
- return fmtd;
- //return "'" + txt + "'";
- } // protected static String q(txt)
+ // For effective membership event logging
+ protected static void info(
+ Log log, String sessionToString, String msg
+ )
+ {
+ log.info("[" + sessionToString + "] " + msg);
+ } // protected static void info(log, sessionToString, msg, sw)
+
+ // For all other event logging
+ protected static void info(
+ Log log, String sessionToString, String msg, StopWatch sw
+ )
+ {
+ log.info("[" + sessionToString + "] " + msg + " (" + sw.getTime() + "ms)");
+ } // protected static void info(log, sessionToString, msg, sw)
protected static void warn(Log log, GrouperSession s, String msg) {
log.warn( _formatMsg(s, msg) );
@@ -122,39 +85,6 @@
private static String _formatMsg(GrouperSession s, String msg) {
return "[" + s.toString() + "] " + msg;
} // private static String _formatMsg(s, msg)
-
- // Format membership for logging purposes
- private static String _getMsMsg(GrouperSession s, Membership ms)
- throws Exception
- {
- GrouperSession root = GrouperSessionFinder.getTransientRootSession();
- ms.setSession(root);
- String msg;
- try {
- Group g = (Group) ms.getGroup();
- msg = "group=" + q(g.getName());
- }
- catch (GroupNotFoundException eGNF) {
- Stem ns = (Stem) ms.getStem();
- msg = "stem=" + q(ns.getName());
- }
- msg += " field=" + q(ms.getList().getName()) + " subject="
- + q(SubjectHelper.getPretty(ms.getMember().getSubject()))
- + " depth=" + ms.getDepth();
- if (ms.getDepth() > 0) {
- msg += " via=";
- try {
- Group via = ms.getViaGroup();
- msg += q(via.getName());
- }
- catch (GroupNotFoundException eGNF) {
- msg += "???";
- }
- }
- ms.setSession(s);
- root.stop();
- return msg;
- } // private static String _getMsMsg(ms)
} // protected class GrouperLog
--- /dev/null
+++ src/grouper/edu/internet2/middleware/grouper/EventLog.java
@@ -0,0 +1,398 @@
+/*
+ Copyright 2004-2005 University Corporation for Advanced Internet Development, Inc.
+ Copyright 2004-2005 The University Of Chicago
+
+ 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.
+*/
+
+package edu.internet2.middleware.grouper;
+
+
+import edu.internet2.middleware.subject.*;
+import edu.internet2.middleware.subject.provider.*;
+import java.io.Serializable;
+import java.util.*;
+import org.apache.commons.lang.time.*;
+import org.apache.commons.logging.*;
+
+
+/**
+ * Grouper API logging.
+ * <p />
+ * @author blair christensen.
+ * @version $Id: EventLog.java,v 1.1 2005/12/15 06:31:11 blair Exp $
+ *
+*/
+class EventLog implements Serializable {
+
+ // Private Class Constants
+ private static final Log LOG = LogFactory.getLog(EventLog.class);
+
+ // event log errors
+ private static final String ERR_EFF_LOG = "unable to log effective membership: ";
+ private static final String ERR_EFF_ONF = "effective membership owner not found";
+ private static final String ERR_EFF_SNF = "effective membership subject not found";
+
+ // event log messages
+ private static final String G_AM = "add member: group=";
+ private static final String G_AM_E = "add effective member: group=";
+ private static final String G_D = "group delete: ";
+ private static final String G_DA = "delete group attr: group=";
+ private static final String G_DM = "delete member: group=";
+ private static final String G_DM_E = "delete effective member: group=";
+ private static final String G_GP = "grant access priv: group=";
+ private static final String G_GP_E = "grant effective access priv: group=";
+ private static final String G_RP = "revoke access priv: group=";
+ private static final String G_RP_E = "revoke effective access priv: group=";
+ private static final String G_SA = "set group attr: group=";
+ private static final String GS_START = "session started";
+ private static final String GS_STOP = "session stopped: duration=";
+ private static final String S_ACG = "add group: ";
+ private static final String S_ACS = "add stem: ";
+ private static final String S_GP = "grant naming priv: stem=";
+ private static final String S_GP_E = "grant effective naming priv: stem=";
+ private static final String S_RP = "revoke naming priv: stem=";
+ private static final String S_RP_E = "revoke effective naming priv: stem=";
+ private static final String S_SA = "set stem attr: stem=";
+
+
+ // Private Instance Variables
+ private GrouperConfig cfg;
+ private boolean log_eff_group_add = false;
+ private boolean log_eff_group_del = false;
+ private boolean log_eff_stem_add = false;
+ private boolean log_eff_stem_del = false;
+
+
+ // Constructors
+
+ protected EventLog() {
+ super();
+ this.cfg = GrouperConfig.getInstance();
+ if (this.cfg.getProperty(GrouperConfig.MSLGEA).equals(GrouperConfig.BT)) {
+ log_eff_group_add = true;
+ }
+ if (this.cfg.getProperty(GrouperConfig.MSLGED).equals(GrouperConfig.BT)) {
+ log_eff_group_del = true;
+ }
+ if (this.cfg.getProperty(GrouperConfig.MSLSEA).equals(GrouperConfig.BT)) {
+ log_eff_stem_add = true;
+ }
+ if (this.cfg.getProperty(GrouperConfig.MSLSED).equals(GrouperConfig.BT)) {
+ log_eff_stem_del = true;
+ }
+ } // protected EventLog()
+
+
+ // Protected Instance Methods
+
+ protected void addEffMembers(
+ GrouperSession s, Group g, Subject subj, Field f, Set effs
+ )
+ {
+ if (this.log_eff_group_add == true) {
+ this._addEffs(s, "group=" + g.getName(), subj, f, effs);
+ }
+ else {
+ }
+ } // protected void addEffMembers(s, g, subj, f, effs)
+
+ protected void addEffMembers(
+ GrouperSession s, Stem ns, Subject subj, Field f, Set effs
+ )
+ {
+ if (this.log_eff_stem_add == true) {
+ this._addEffs(s, "stem=" + ns.getName(), subj, f, effs);
+ }
+ } // protected void addEffMembers(s, ns, subj, f, effs)
+
+ protected void delEffMembers(
+ GrouperSession s, Group g, Subject subj, Field f, Set effs
+ )
+ {
+ if (this.log_eff_group_del == true) {
+ this._delEffs(s, "group=" + g.getName(), subj, f, effs);
+ }
+ } // protected void delEffMembers(s, g, subj, f, effs)
+
+ protected void delEffMembers(
+ GrouperSession s, Stem ns, Subject subj, Field f, Set effs
+ )
+ {
+ if (this.log_eff_stem_del == true) {
+ this._delEffs(s, "stem=" + ns.getName(), subj, f, effs);
+ }
+ } // protected void delEffMembers(s, ns, subj, f, effs)
+
+ protected void groupAddMember(
+ GrouperSession s, String group, Subject subj, Field f, StopWatch sw
+ )
+ {
+ this._member(s, G_AM, group, subj, f, sw);
+ } // protected void groupAddMember(s, group, subj, f, sw)
+
+ protected void groupDelAttr(
+ GrouperSession s, String group, String attr, String val, StopWatch sw
+ )
+ {
+ this._setAttr(s, G_DA, group, attr, val, sw);
+ } // protected void groupDelAttr(s, group, attr, val, sw);
+
+ protected void groupDelete(GrouperSession s, String group, StopWatch sw) {
+ GrouperLog.info(LOG, s.toString(), G_D + group, sw);
+ } // protected void groupDelete(s, group, sw)
+
+ protected void groupDelMember(
+ GrouperSession s, String group, Subject subj, Field f, StopWatch sw
+ )
+ {
+ this._member(s, G_DM, group, subj, f, sw);
+ } // protected void groupDelMember(s, group, subj, f, sw)
+
+ protected void groupGrantPriv(
+ GrouperSession s, String group, Subject subj, Privilege p, StopWatch sw
+ )
+ {
+ this._grantPriv(s, G_GP, group, subj, p, sw);
+ } // protected void groupGrantPriv(s, group, subj, p, sw)
+
+ protected void groupRevokePriv(
+ GrouperSession s, String group, Privilege p, StopWatch sw
+ )
+ {
+ this._revokePriv(s, G_RP, group, p, sw);
+ } // protected void groupRevokePriv(s, group, p, sw)
+
+ protected void groupRevokePriv(
+ GrouperSession s, String group, Subject subj, Privilege p, StopWatch sw
+ )
+ {
+ this._revokePriv(s, G_RP, group, subj, p, sw);
+ } // protected void groupRevokePriv(s, group, subj, p, sw)
+
+ protected void groupSetAttr(
+ GrouperSession s, String group, String attr, String val, StopWatch sw
+ )
+ {
+ this._setAttr(s, G_SA, group, attr, val, sw);
+ } // protected void groupSetAttr(s, group, attr, val, sw);
+
+ protected void sessionStart(String sessionToString, StopWatch sw) {
+ GrouperLog.info(LOG, sessionToString, GS_START, sw);
+ } // protected sessionStart(sessionToString, sw)
+
+ protected void sessionStop(String sessionToString, long start, StopWatch sw) {
+ Date now = new Date();
+ long dur = now.getTime() - start;
+ GrouperLog.info(LOG, sessionToString, GS_STOP + dur + "ms", sw);
+ } // protected sessionStop(sessionToString, start, sw)
+
+ protected void stemAddChildGroup(GrouperSession s, String name, StopWatch sw) {
+ GrouperLog.info(LOG, s.toString(), S_ACG + name, sw);
+ } // protected void stemAddChildGroup(s, name, sw)
+
+ protected void stemAddChildStem(GrouperSession s, String name, StopWatch sw) {
+ GrouperLog.info(LOG, s.toString(), S_ACS + name, sw);
+ } // protected void stemAddChildGroup(s, name, sw)
+
+ protected void stemGrantPriv(
+ GrouperSession s, String stem, Subject subj, Privilege p, StopWatch sw
+ )
+ {
+ this._grantPriv(s, S_GP, stem, subj, p, sw);
+ } // protected void stemGrantPriv(s, stem, subj, p, sw)
+
+ protected void stemRevokePriv(
+ GrouperSession s, String stem, Privilege p, StopWatch sw
+ )
+ {
+ this._revokePriv(s, S_RP, stem, p, sw);
+ } // protected void stemRevokePriv(s, stem, p, sw)
+
+ protected void stemRevokePriv(
+ GrouperSession s, String stem, Subject subj, Privilege p, StopWatch sw
+ )
+ {
+ this._revokePriv(s, S_RP, stem, subj, p, sw);
+ } // protected void stemRevokePriv(s, stem, subj, p, sw)
+
+ protected void stemSetAttr(
+ GrouperSession s, String stem, String attr, String val, StopWatch sw
+ )
+ {
+ this._setAttr(s, S_SA, stem, attr, val, sw);
+ } // protected void stemSetAttr(s, stem, attr, val, sw);
+
+
+ // Private Instance Methods
+
+ private void _addEffs(
+ GrouperSession s, String name, Subject subj, Field f, Set effs
+ )
+ {
+ try {
+ GrouperSession root = GrouperSessionFinder.getTransientRootSession();
+ Iterator iter = effs.iterator();
+ while (iter.hasNext()) {
+ Membership eff = (Membership) iter.next();
+ if (eff.getList().getType().equals(FieldType.ACCESS)) {
+ this._eff(root, s, G_GP_E, name, subj, f, eff, "priv=");
+ }
+ else if (eff.getList().getType().equals(FieldType.LIST)) {
+ this._eff(root, s, G_AM_E, name, subj, f, eff, "list=");
+ }
+ else if (eff.getList().getType().equals(FieldType.NAMING)) {
+ this._eff(root, s, S_GP_E, name, subj, f, eff, "priv=");
+ }
+ }
+ root.stop();
+ }
+ catch (SessionException eS) {
+ GrouperLog.error(LOG, s, ERR_EFF_LOG + eS.getMessage());
+ }
+ } // private void _addEffs(s, name, subj, f, effs)
+
+ private void _delEffs(
+ GrouperSession s, String name, Subject subj, Field f, Set effs
+ )
+ {
+ try {
+ GrouperSession root = GrouperSessionFinder.getTransientRootSession();
+ Iterator iter = effs.iterator();
+ while (iter.hasNext()) {
+ Membership eff = (Membership) iter.next();
+ if (eff.getList().getType().equals(FieldType.ACCESS)) {
+ this._eff(root, s, G_RP_E, name, subj, f, eff, "priv=");
+ }
+ else if (eff.getList().getType().equals(FieldType.LIST)) {
+ this._eff(root, s, G_DM_E, name, subj, f, eff, "list=");
+ }
+ else if (eff.getList().getType().equals(FieldType.NAMING)) {
+ this._eff(root, s, S_RP_E, name, subj, f, eff, "priv=");
+ }
+ }
+ root.stop();
+ }
+ catch (SessionException eS) {
+ GrouperLog.error(LOG, s, ERR_EFF_LOG + eS.getMessage());
+ }
+ } // private void _delEffs(s, name, subj, f, effs)
+
+ private void _eff(
+ GrouperSession root, GrouperSession s, String msg, String name,
+ Subject subj, Field f,Membership eff, String field
+ )
+ {
+ // Proxy as root so that we don't run into priv problems
+ eff.setSession(root);
+ // Get eff owner
+ try {
+ Group g = eff.getGroup();
+ msg += "group=" + g.getName();
+ }
+ catch (GroupNotFoundException eGNF) {
+ try {
+ Stem ns = eff.getStem();
+ msg += "stem=" + ns.getName();
+ }
+ catch (StemNotFoundException eSNF) {
+ GrouperLog.error(LOG, s, ERR_EFF_ONF);
+ msg += "owner=???";
+ }
+ }
+ // Get eff field
+ msg += " " + field + eff.getList().getName();
+ // Get eff subject
+ try {
+ Subject subject = eff.getMember().getSubject();
+ msg += " subject=" + SubjectHelper.getPretty(subject);
+ }
+ catch (Exception e) {
+ GrouperLog.error(LOG, s, ERR_EFF_SNF);
+ msg += "subject=???";
+ }
+ // Get added or removed message that caused this effective membership change
+ msg += " (" + name + " ";;
+ if (f.getType().equals(FieldType.ACCESS)) {
+ msg += "priv=" + f.getName();
+ }
+ else if (f.getType().equals(FieldType.LIST)) {
+ msg += "list=" + f.getName();
+ }
+ else if (f.getType().equals(FieldType.NAMING)) {
+ msg += "priv=" + f.getName();
+ }
+ // Get added or removed subject that caused this effective
+ // membership change
+ msg += " subject=" + SubjectHelper.getPretty(subj) + ")";
+ // Now log it
+ GrouperLog.info(LOG, s.toString(), msg);
+ // Reset to the original session
+ eff.setSession(s);
+ } // private void _eff(root, s, msg, name, subj, f, eff, field)
+
+ private void _grantPriv(
+ GrouperSession s, String msg, String name, Subject subj, Privilege p, StopWatch sw
+ )
+ {
+ GrouperLog.info(
+ LOG, s.toString(),
+ msg + name + " priv=" + p.getName() + " subject="
+ + SubjectHelper.getPretty(subj),
+ sw
+ );
+ } // private void _grantPriv(s, msg, name, subj, p, sw)
+
+ private void _member(
+ GrouperSession s, String msg, String group, Subject subj, Field f, StopWatch sw
+ )
+ {
+ GrouperLog.info(
+ LOG, s.toString(),
+ msg + group + " list=" + f.getName() + " subject="
+ + SubjectHelper.getPretty(subj),
+ sw
+ );
+ } // private void _member(s, msg, group, subj, f, sw)
+
+ private void _revokePriv(
+ GrouperSession s, String msg, String name, Privilege p, StopWatch sw
+ )
+ {
+ GrouperLog.info(
+ LOG, s.toString(), msg + name + " priv=" + p.getName(), sw
+ );
+ } // private void _revokePriv(s, msg, name, p, sw)
+
+ private void _revokePriv(
+ GrouperSession s, String msg, String name, Subject subj, Privilege p, StopWatch sw
+ )
+ {
+ GrouperLog.info(
+ LOG, s.toString(),
+ msg + name + " priv=" + p.getName() + " subject="
+ + SubjectHelper.getPretty(subj),
+ sw
+ );
+ } // private void _revokePriv(s, msg, name, subj, p, sw)
+
+ private void _setAttr(
+ GrouperSession s, String msg, String name, String attr, String val, StopWatch sw
+ )
+ {
+ GrouperLog.info(
+ LOG, s.toString(), msg + name + " attr=" + attr + " value=" + val, sw
+ );
+ } // private void _setAttr(s, msg, attr, val, sw)
+}
+
Index: GrouperConfig.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/GrouperConfig.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperConfig.java -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperConfig.java -u -r1.9 -r1.10
--- src/grouper/edu/internet2/middleware/grouper/GrouperConfig.java
+++ src/grouper/edu/internet2/middleware/grouper/GrouperConfig.java
@@ -41,12 +41,8 @@
protected static final String IST = "application";
protected static final String MSLGEA = "memberships.log.group.effective.add";
protected static final String MSLGED = "memberships.log.group.effective.del";
- protected static final String MSLGIA = "memberships.log.group.immediate.add";
- protected static final String MSLGID = "memberships.log.group.immediate.del";
protected static final String MSLSEA = "memberships.log.stem.effective.add";
protected static final String MSLSED = "memberships.log.stem.effective.del";
- protected static final String MSLSIA = "memberships.log.stem.immediate.add";
- protected static final String MSLSID = "memberships.log.stem.immediate.del";
protected static final String PAI = "privileges.access.interface";
protected static final String PNI = "privileges.naming.interface";
protected static final String ROOT = "GrouperSystem";
Index: SubjectHelper.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/SubjectHelper.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -Lsrc/grouper/edu/internet2/middleware/grouper/SubjectHelper.java -Lsrc/grouper/edu/internet2/middleware/grouper/SubjectHelper.java -u -r1.4 -r1.5
--- src/grouper/edu/internet2/middleware/grouper/SubjectHelper.java
+++ src/grouper/edu/internet2/middleware/grouper/SubjectHelper.java
@@ -54,7 +54,7 @@
if (subj.getType().equals(SubjectTypeEnum.valueOf("group"))) {
pretty = subj.getName();
}
- pretty = pretty + "/" + subj.getType().getName();
+ pretty = pretty + "," + subj.getType().getName();
return pretty;
} // protected static String getPretty(subj)
Index: PrivilegeResolver.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/PrivilegeResolver.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -Lsrc/grouper/edu/internet2/middleware/grouper/PrivilegeResolver.java -Lsrc/grouper/edu/internet2/middleware/grouper/PrivilegeResolver.java -u -r1.33 -r1.34
--- src/grouper/edu/internet2/middleware/grouper/PrivilegeResolver.java
+++ src/grouper/edu/internet2/middleware/grouper/PrivilegeResolver.java
@@ -808,8 +808,7 @@
// Group not found. Oh well.
// TODO The problem is that the test suite deletes it.
LOG.error(
- "disabling wheel group. enabled but found found: "
- + GrouperLog.q(name)
+ "disabling wheel group. enabled but found found: " + name
);
this.use_wheel = false;
}
Index: GrouperSession.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/GrouperSession.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperSession.java -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperSession.java -u -r1.14 -r1.15
--- src/grouper/edu/internet2/middleware/grouper/GrouperSession.java
+++ src/grouper/edu/internet2/middleware/grouper/GrouperSession.java
@@ -25,6 +25,7 @@
import net.sf.ehcache.*;
import net.sf.hibernate.*;
import org.apache.commons.lang.builder.*;
+import org.apache.commons.lang.time.*;
import org.apache.commons.logging.*;
@@ -38,10 +39,11 @@
public class GrouperSession implements Serializable {
// Private Class Constants
- private static final String ERR_GS = "unable to get subject associated with session";
- private static final String ERR_START = "unable to start session: ";
- private static final String ERR_STOP = "unable to stop session: ";
- private static final Log LOG = LogFactory.getLog(GrouperSession.class);
+ private static final EventLog EL = new EventLog();
+ private static final String ERR_GS = "unable to get subject associated with session";
+ private static final String ERR_START = "unable to start session: ";
+ private static final String ERR_STOP = "unable to stop session: ";
+ private static final Log LOG = LogFactory.getLog(GrouperSession.class);
// Hibernate Properties
@@ -89,11 +91,15 @@
{
try {
// No cascading so save everything myself
+ StopWatch sw = new StopWatch();
+ sw.start();
GrouperSession s = _getSession(subject);
Set objects = new LinkedHashSet();
objects.add(s.getMember_id());
objects.add(s);
HibernateHelper.save(objects);
+ sw.stop();
+ EL.sessionStart(s.toString(), sw);
return s;
}
catch (Exception e) {
@@ -239,8 +245,16 @@
{
try {
if (this.getId() != null) {
+ StopWatch sw = new StopWatch();
+ sw.start();
+ // So we don't log transient sessions
+ String sessionToString = this.toString();
+ // For logging session duration
+ long start = this.getStart_time().getTime();
HibernateHelper.delete(this);
this.setId(null);
+ sw.stop();
+ EL.sessionStop(sessionToString, start, sw);
}
this.setMember_id(null);
this.setSession_id(null);
Index: Membership.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Membership.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Membership.java -Lsrc/grouper/edu/internet2/middleware/grouper/Membership.java -u -r1.20 -r1.21
--- src/grouper/edu/internet2/middleware/grouper/Membership.java
+++ src/grouper/edu/internet2/middleware/grouper/Membership.java
@@ -36,9 +36,10 @@
public class Membership implements Serializable {
// Private Class Constants
- private static final String ERR_IO = "class cannot contain membership: ";
- private static final String ERR_NO = "membership has no owner: ";
- private static final Log LOG = LogFactory.getLog(Membership.class);
+ private static final String ERR_IO = "class cannot contain membership: ";
+ private static final String ERR_NO = "membership has no owner: ";
+ private static final Log LOG = LogFactory.getLog(Membership.class);
+ private static final EventLog EL = new EventLog();
// Hibernate Properties
@@ -304,13 +305,7 @@
// And then save group and memberships
HibernateHelper.save(objects);
- GrouperConfig cfg = GrouperConfig.getInstance();
- if (cfg.getProperty(GrouperConfig.MSLGIA).equals(GrouperConfig.BT)) {
- GrouperLog.addImmMS(LOG, s, imm);
- }
- if (cfg.getProperty(GrouperConfig.MSLGEA).equals(GrouperConfig.BT)) {
- GrouperLog.addEffMS(LOG, s, effs);
- }
+ EL.addEffMembers(s, g, subj, f, effs);
}
catch (GroupNotFoundException eGNF) {
msg += ": " + eGNF.getMessage();
@@ -363,12 +358,7 @@
// And then save group and memberships
HibernateHelper.save(objects);
GrouperConfig cfg = GrouperConfig.getInstance();
- if (cfg.getProperty(GrouperConfig.MSLSIA).equals(GrouperConfig.BT)) {
- GrouperLog.addImmMS(LOG, s, imm);
- }
- if (cfg.getProperty(GrouperConfig.MSLSEA).equals(GrouperConfig.BT)) {
- GrouperLog.addEffMS(LOG, s, effs);
- }
+ EL.addEffMembers(s, ns, subj, f, effs);
}
catch (GroupNotFoundException eGNF) {
msg += ": " + eGNF.getMessage();
@@ -419,13 +409,7 @@
// And then commit changes to registry
HibernateHelper.saveAndDelete(saves, deletes);
- GrouperConfig cfg = GrouperConfig.getInstance();
- if (cfg.getProperty(GrouperConfig.MSLGID).equals(GrouperConfig.BT)) {
- GrouperLog.delImmMS(LOG, s, imm);
- }
- if (cfg.getProperty(GrouperConfig.MSLGED).equals(GrouperConfig.BT)) {
- GrouperLog.delEffMS(LOG, s, effs);
- }
+ EL.delEffMembers(s, g, subj, f, effs);
}
catch (HibernateException eH) {
msg += ": " + eH.getMessage();
@@ -437,7 +421,7 @@
GrouperLog.debug(LOG, s, msg);
throw new MemberDeleteException(msg);
}
- } // protected static void delImmediateMembership(s, g, subj, f
+ } // protected static void delImmediateMembership(s, g, subj, f)
// TODO REFACTOR/DRY
protected static void delImmediateMembership(
@@ -472,13 +456,7 @@
// And then commit changes to registry
HibernateHelper.saveAndDelete(saves, deletes);
- GrouperConfig cfg = GrouperConfig.getInstance();
- if (cfg.getProperty(GrouperConfig.MSLSID).equals(GrouperConfig.BT)) {
- GrouperLog.delImmMS(LOG, s, imm);
- }
- if (cfg.getProperty(GrouperConfig.MSLSED).equals(GrouperConfig.BT)) {
- GrouperLog.delEffMS(LOG, s, effs);
- }
+ EL.delEffMembers(s, ns, subj, f, effs);
}
catch (HibernateException eH) {
msg += ": " + eH.getMessage();
Index: Group.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Group.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Group.java -Lsrc/grouper/edu/internet2/middleware/grouper/Group.java -u -r1.47 -r1.48
--- src/grouper/edu/internet2/middleware/grouper/Group.java
+++ src/grouper/edu/internet2/middleware/grouper/Group.java
@@ -23,6 +23,7 @@
import java.util.*;
import net.sf.hibernate.*;
import org.apache.commons.lang.builder.*;
+import org.apache.commons.lang.time.*;
import org.apache.commons.logging.*;
@@ -35,23 +36,24 @@
public class Group implements Serializable {
// Private Class Constants
- private static final String ERR_AM = "unable to add member: ";
- private static final String ERR_DG = "unable to delete group: ";
- private static final String ERR_GDL = "members list does not exist: ";
- private static final String ERR_G2M = "could not convert group to member: ";
- private static final String ERR_G2S = "could not convert group to subject: ";
- private static final String ERR_DM = "unable to delete member: ";
- private static final String ERR_FNF = "field not found: ";
- private static final String ERR_GA = "attribute not found: ";
- private static final String ERR_NODE = "group without displayExtension";
- private static final String ERR_NODN = "group without displayName";
- private static final String ERR_NOE = "group without extension";
- private static final String ERR_NON = "group without name";
- private static final String ERR_S2G = "could not convert subject to group: ";
- private static final Log LOG = LogFactory.getLog(Group.class);
- private static final String MSG_AM = "add member ";
- private static final String MSG_DG = "group deleted: ";
- private static final String MSG_DM = "revoke member ";
+ private static final EventLog EL = new EventLog();
+ private static final String ERR_AM = "unable to add member: ";
+ private static final String ERR_DG = "unable to delete group: ";
+ private static final String ERR_GDL = "members list does not exist: ";
+ private static final String ERR_G2M = "could not convert group to member: ";
+ private static final String ERR_G2S = "could not convert group to subject: ";
+ private static final String ERR_DM = "unable to delete member: ";
+ private static final String ERR_FNF = "field not found: ";
+ private static final String ERR_GA = "attribute not found: ";
+ private static final String ERR_NODE = "group without displayExtension";
+ private static final String ERR_NODN = "group without displayName";
+ private static final String ERR_NOE = "group without extension";
+ private static final String ERR_NON = "group without name";
+ private static final String ERR_S2G = "could not convert subject to group: ";
+ private static final Log LOG = LogFactory.getLog(Group.class);
+ private static final String MSG_AM = "add member ";
+ private static final String MSG_DG = "group deleted: ";
+ private static final String MSG_DM = "revoke member ";
// Hibernate Properties
@@ -203,6 +205,8 @@
MemberAddException,
SchemaException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
String msg = MSG_AM + "'" + f.getName() + "' " + SubjectHelper.getPretty(subj);
GrouperLog.debug(LOG, this.s, msg);
try {
@@ -224,8 +228,9 @@
}
}
Membership.addImmediateMembership(this.s, this, subj, f);
- GrouperLog.debug(LOG, this.s, msg + ": added");
- } // public void addMember(subj, f)
+ sw.stop();
+ EL.groupAddMember(this.s, this.getName(), subj, f, sw);
+ } // protected void stemAddChildGroup(s, name, sw)
/**
* Delete this group from the Groups Registry.
@@ -248,6 +253,8 @@
InsufficientPrivilegeException
{
// TODO Refactor into smaller components
+ StopWatch sw = new StopWatch();
+ sw.start();
GrouperSession.validate(this.s);
String msg = "delete";
GrouperLog.debug(LOG, this.s, msg);
@@ -286,10 +293,14 @@
// Add the group last for good luck
deletes.add(this);
+ // Preserve name for logging
+ String name = this.getName();
+
// And then commit changes to registry
HibernateHelper.delete(deletes);
// TODO info
- GrouperLog.debug(LOG, this.s, msg + " deleted");
+ sw.stop();
+ EL.groupDelete(this.s, name, sw);
}
catch (InsufficientPrivilegeException eIP) {
LOG.debug(ERR_DG + eIP.getMessage());
@@ -326,7 +337,10 @@
{
// TODO This needs some refactoring. Definitely some duplicate
// code between here and setAttribute() if nothing else.
- String msg = "deleteAttribute: ";
+ StopWatch sw = new StopWatch();
+ sw.start();
+ String val = new String(); // For logging
+ String msg = "deleteAttribute: ";
if ( (attr == null) || (attr.equals("")) ) {
GrouperLog.debug(LOG, this.s, msg + "no attr");
throw new GroupModifyException(msg + "no attr");
@@ -355,6 +369,7 @@
while (iter.hasNext()) {
Attribute a = (Attribute) iter.next();
if (a.getField().equals(f)) {
+ val = a.getValue();
GrouperLog.debug(LOG, this.s, msg + "will delete '" + attr + "'");
deletes.add(a);
found = true;
@@ -387,6 +402,8 @@
GrouperLog.debug(LOG, this.s, msg + eS.getMessage());
throw new AttributeNotFoundException(msg + eS.getMessage());
}
+ sw.stop();
+ EL.groupDelAttr(this.s, this.getName(), attr, val, sw);
} // public void deleteAttribute(attr)
/**
@@ -443,6 +460,8 @@
MemberDeleteException,
SchemaException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
String msg = MSG_DM + "'" + f.getName() + "' " + SubjectHelper.getPretty(subj);
GrouperLog.debug(LOG, this.s, msg);
try {
@@ -464,12 +483,13 @@
}
try {
Membership.delImmediateMembership(this.s, this, subj, f);
- GrouperLog.debug(LOG, this.s, msg + ": deleted");
}
catch (MembershipNotFoundException eMNF) {
// TODO Why don't I throw this directly?
throw new MemberDeleteException(eMNF.getMessage());
}
+ sw.stop();
+ EL.groupDelMember(this.s, this.getName(), subj, f, sw);
} // public void deleteMember(subj, f)
public boolean equals(Object other) {
@@ -1169,9 +1189,13 @@
InsufficientPrivilegeException,
SchemaException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
PrivilegeResolver.getInstance().grantPriv(
this.s, this, subj, priv
);
+ sw.stop();
+ EL.groupGrantPriv(this.s, this.getName(), subj, priv, sw);
} // public void grantPriv(subj, priv)
/**
@@ -1494,9 +1518,13 @@
RevokePrivilegeException,
SchemaException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
PrivilegeResolver.getInstance().revokePriv(
this.s, this, priv
);
+ sw.stop();
+ EL.groupRevokePriv(this.s, this.getName(), priv, sw);
} // public void revokePriv(priv)
/**
@@ -1523,9 +1551,13 @@
RevokePrivilegeException,
SchemaException
{
+ StopWatch sw = new StopWatch();
+ sw.start();
PrivilegeResolver.getInstance().revokePriv(
this.s, this, subj, priv
);
+ sw.stop();
+ EL.groupRevokePriv(this.s, this.getName(), subj, priv, sw);
} // public void revokePriv(subj, priv)
/**
@@ -1557,6 +1589,8 @@
{
// TODO s,AttributeNotFoundException,SchemaException,?
// Or both?
+ StopWatch sw = new StopWatch();
+ sw.start();
String msg = "setAttribute: ";
if ( (value == null) || (value.equals("")) ) {
GrouperLog.debug(LOG, this.s, msg + "no value");
@@ -1606,6 +1640,8 @@
GrouperLog.debug(LOG, this.s, msg + eS.getMessage());
throw new AttributeNotFoundException(msg + eS.getMessage());
}
+ sw.stop();
+ EL.groupSetAttr(this.s, this.getName(), attr, value, sw);
} // public void setAttribute(attr, value)
/**
Modified Files:
InternalSubject.java
Log Message:
* add _InternalSourceAdapter_ tests for untested methods
* remove holdover methods from cdg's _MockSubject_ in _InternalSourceAdapter_
Index: InternalSubject.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/InternalSubject.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -Lsrc/grouper/edu/internet2/middleware/grouper/InternalSubject.java -Lsrc/grouper/edu/internet2/middleware/grouper/InternalSubject.java -u -r1.4 -r1.5
--- src/grouper/edu/internet2/middleware/grouper/InternalSubject.java
+++ src/grouper/edu/internet2/middleware/grouper/InternalSubject.java
@@ -102,34 +102,6 @@
} // public String getAttributeValue(name)
/**
- * Returns the search value of a single-valued attribute or the "first"
- * value of a multi-valued attribute.
- * <p>
- * <b>NOTE:</b> This is a {@link InternalSubject} extension to the
- * {@link Subject} interface.
- * </p>
- * <pre class="eg">
- * // Retrieve the search value of the <i>name</i> attribute for the
- * // subject <i>john</i>.
- * String name = john.getAttributeSearchValue("name");
- * </pre>
- * @param name Retrieve search value of this attribute.
- * @return Search value of attribute.
- */
- public String getAttributeSearchValue(String name) {
- if (this.attrs.containsKey(name)) {
- Map attr = (Map) this.attrs.get(name);
- Iterator iter = ( (Set) attr.get("sv") ).iterator();
- // There may be more than one value but we don't care - return
- // the first one
- while (iter.hasNext()) {
- return (String) iter.next();
- }
- }
- return new String();
- } // public String getAttributeSearchValue(name)
-
- /**
* Returns the values of a multi-valued attribute.
* <pre class="eg">
* // Retrieve the values of the <i>isMember</i> attribute for the
@@ -146,27 +118,6 @@
}
return new LinkedHashSet();
} // public Set getAttributeValues(name)
-
- /**
- * Returns the search values of a multi-valued attribute.
- * <b>NOTE:</b> This is a {@link InternalSubject} extension to the
- * {@link Subject} interface.
- * </p>
- * <pre class="eg">
- * // Retrieve the search values of the <i>isMember</i> attribute for
- * // the subject <i>john</i>.
- * Set isMember = john.getAttributeSearchValues("isMember");
- * </pre>
- * @param name Retrieve search values of this attribute.
- * @return Set of attribute search values.
- */
- public Set getAttributeSearchValues(String name) {
- if (this.attrs.containsKey(name)) {
- Map attr = (Map) this.attrs.get(name);
- return (Set) attr.get("sv");
- }
- return new LinkedHashSet();
- } // public Set getAttributeSearchValues(name)
/**
* Gets this Subject's description.
Modified Files:
GrouperSessionFinder.java
Log Message:
give up trying to finalize grouper sessions
Index: GrouperSessionFinder.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/GrouperSessionFinder.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperSessionFinder.java -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperSessionFinder.java -u -r1.7 -r1.8
--- src/grouper/edu/internet2/middleware/grouper/GrouperSessionFinder.java
+++ src/grouper/edu/internet2/middleware/grouper/GrouperSessionFinder.java
@@ -53,23 +53,5 @@
return GrouperSession.startTransient();
} // protected static GrouperSession getTransientRootSession()
-
- // Protected Instance Methods
- protected void finalize()
- throws Throwable
- {
- try {
- if (root != null) {
- root.stop();
- }
- }
- catch (Exception e) {
- LOG.error("exception while stopping persistent root session: " + e.getMessage());
- }
- finally {
- super.finalize();
- }
- } // protected void finalize()
-
}
Modified Files:
GrouperAccessAdapter.java GrouperNamingAdapter.java
MembershipFinder.java
Log Message:
* Significantly increased _Member_ testing
* Bug fix in _MembershipFinder.findEffectiveMemberships()_ that would
return effective **and** immediate memberships
* Slightly increased _GrouperAccessAdapter_ and _GropuerNamingAdapter_
coverage and better support for ALL
Index: GrouperNamingAdapter.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/GrouperNamingAdapter.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperNamingAdapter.java -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperNamingAdapter.java -u -r1.31 -r1.32
--- src/grouper/edu/internet2/middleware/grouper/GrouperNamingAdapter.java
+++ src/grouper/edu/internet2/middleware/grouper/GrouperNamingAdapter.java
@@ -105,12 +105,23 @@
GrouperSession.validate(s);
Set stems = new LinkedHashSet();
try {
+ // The subject
Member m = MemberFinder.findBySubject(s, subj);
Iterator iter = MembershipFinder.findMemberships(
s, m, this._getField(priv)
).iterator();
while (iter.hasNext()) {
Membership ms = (Membership) iter.next();
+ ms.setSession(s);
+ stems.add( ms.getStem() );
+ }
+ // And the ALL subject
+ Member all = MemberFinder.findAllMember();
+ Iterator iterAll = MembershipFinder.findMemberships(
+ s, all, this._getField(priv)
+ ).iterator();
+ while (iterAll.hasNext()) {
+ Membership ms = (Membership) iterAll.next();
ms.setSession(s);
stems.add( ms.getStem() );
}
Index: GrouperAccessAdapter.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/GrouperAccessAdapter.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperAccessAdapter.java -Lsrc/grouper/edu/internet2/middleware/grouper/GrouperAccessAdapter.java -u -r1.30 -r1.31
--- src/grouper/edu/internet2/middleware/grouper/GrouperAccessAdapter.java
+++ src/grouper/edu/internet2/middleware/grouper/GrouperAccessAdapter.java
@@ -112,12 +112,23 @@
GrouperSession.validate(s);
Set groups = new LinkedHashSet();
try {
- Member m = MemberFinder.findBySubject(s, subj);
- Iterator iter = MembershipFinder.findMemberships(
+ // The subject
+ Member m = MemberFinder.findBySubject(s, subj);
+ Iterator iter = MembershipFinder.findMemberships(
s, m, (Field) FieldFinder.find( (String) priv2list.get(priv) )
).iterator();
while (iter.hasNext()) {
Membership ms = (Membership) iter.next();
+ ms.setSession(s);
+ groups.add( ms.getGroup() );
+ }
+ // And the ALL subject
+ Member all = MemberFinder.findAllMember();
+ Iterator iterAll = MembershipFinder.findMemberships(
+ s, all, this._getField(priv)
+ ).iterator();
+ while (iterAll.hasNext()) {
+ Membership ms = (Membership) iterAll.next();
ms.setSession(s);
groups.add( ms.getGroup() );
}
Index: MembershipFinder.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/MembershipFinder.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -Lsrc/grouper/edu/internet2/middleware/grouper/MembershipFinder.java -Lsrc/grouper/edu/internet2/middleware/grouper/MembershipFinder.java -u -r1.22 -r1.23
--- src/grouper/edu/internet2/middleware/grouper/MembershipFinder.java
+++ src/grouper/edu/internet2/middleware/grouper/MembershipFinder.java
@@ -378,7 +378,7 @@
+ "and ms.member_id = ? "
+ "and ms.field.name = ? "
+ "and ms.field.type = ? "
- + "and ms.depth >= 0 ",
+ + "and ms.depth > 0 ",
new Object[] {
oid, m.getId(), f.getName(), f.getType().toString(),
},
Modified Files:
StemFinder.java
Log Message:
root stem can once again be found by name
Index: StemFinder.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/StemFinder.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -Lsrc/grouper/edu/internet2/middleware/grouper/StemFinder.java -Lsrc/grouper/edu/internet2/middleware/grouper/StemFinder.java -u -r1.11 -r1.12
--- src/grouper/edu/internet2/middleware/grouper/StemFinder.java
+++ src/grouper/edu/internet2/middleware/grouper/StemFinder.java
@@ -61,6 +61,9 @@
Stem ns = null;
try {
Session hs = HibernateHelper.getSession();
+ if (name.equals(Stem.ROOT_EXT)) {
+ name = Stem.ROOT_INT;
+ }
List l = hs.find(
Modified Files:
FieldType.java Membership.java
Log Message:
more test coverage
Index: Membership.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/Membership.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -Lsrc/grouper/edu/internet2/middleware/grouper/Membership.java -Lsrc/grouper/edu/internet2/middleware/grouper/Membership.java -u -r1.21 -r1.22
--- src/grouper/edu/internet2/middleware/grouper/Membership.java
+++ src/grouper/edu/internet2/middleware/grouper/Membership.java
@@ -43,7 +43,6 @@
// Hibernate Properties
- private Set children = new LinkedHashSet();
private Member creator_id;
private long create_time;
private int depth;
@@ -589,17 +588,6 @@
return deletes;
} // protected static Set deleteAllFieldType(s, g, type)
- protected static List setSession(GrouperSession s, List l) {
- List mships = new ArrayList();
- Iterator iter = l.iterator();
- while (iter.hasNext()) {
- Membership ms = (Membership) iter.next();
- ms.setSession(s);
- mships.add(ms);
- }
- return mships;
- } // protected static List setSession(s, l)
-
// Protected Instance Methods
@@ -814,14 +802,6 @@
private void setParent_membership(Membership parent) {
this.parent_membership = parent;
- }
-
- private Set getChild_memberships() {
- return this.children;
- }
-
- private void setChild_memberships(Set children) {
- this.children = children;
}
private Status getStatus() {
Index: FieldType.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/FieldType.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -Lsrc/grouper/edu/internet2/middleware/grouper/FieldType.java -Lsrc/grouper/edu/internet2/middleware/grouper/FieldType.java -u -r1.5 -r1.6
--- src/grouper/edu/internet2/middleware/grouper/FieldType.java
+++ src/grouper/edu/internet2/middleware/grouper/FieldType.java
@@ -66,10 +66,6 @@
// Public Instance Methods
- public String getType() {
- return this.type;
- } // public String getType()
-
Modified Files:
RegistryReset.java
Log Message:
* added a `public static void main(String[] args)` to _RegistryReset_
that calls the reset method
* we now add 100 test subjects in _RegistryReset_, not 3
* add a `db-reset` ant target
Index: RegistryReset.java
===================================================================
RCS file: /home/cvs/i2mi/grouper/src/grouper/edu/internet2/middleware/grouper/RegistryReset.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -Lsrc/grouper/edu/internet2/middleware/grouper/RegistryReset.java -Lsrc/grouper/edu/internet2/middleware/grouper/RegistryReset.java -u -r1.5 -r1.6
--- src/grouper/edu/internet2/middleware/grouper/RegistryReset.java
+++ src/grouper/edu/internet2/middleware/grouper/RegistryReset.java
@@ -52,12 +52,6 @@
// Private Class Constants
private static final Log LOG = LogFactory.getLog(RegistryReset.class);
private static final String SUBJ_TYPE = "person";
- private static final String SUBJ0_ID = "test.subject.0";
- private static final String SUBJ0_NAME = "my name is " + SUBJ0_ID;
- private static final String SUBJ1_ID = "test.subject.1";
- private static final String SUBJ1_NAME = "my name is " + SUBJ1_ID;
- private static final String SUBJ2_ID = "test.subject.2";
- private static final String SUBJ2_NAME = "my name is " + SUBJ2_ID;
// Private Instance Variables
@@ -92,6 +86,23 @@
} // public static void addTestSubjects()
/**
+ * Reset the Groups Registry.
+ * <p>
+ * <strong>WARNING:</strong> This is a destructive act and will
+ * delete all groups, stems, members, memberships and subjects from
+ * your Groups Registry. Do <strong>not</strong> run this unless
+ * that is what you want.
+ * </p>
+ * <pre class="eg">
+ * % java edu.internet2.middleware.grouper.RegistryReset
+ * </pre>
+ */
+ public static void main(String[] args) {
+ RegistryReset.reset();
+ System.exit(0);
+ } // public static void main(args)
+
+ /**
* Attempt to reset the Groups Registry to a pristine state.
*/
public static void reset() {
@@ -154,9 +165,11 @@
"INSERT INTO Subject (subjectID, SubjectTypeID, name) "
+ "VALUES (?, ?, ?)"
);
- this._addSubject(add, SUBJ0_ID, SUBJ_TYPE, SUBJ0_NAME);
- this._addSubject(add, SUBJ1_ID, SUBJ_TYPE, SUBJ1_NAME);
- this._addSubject(add, SUBJ2_ID, SUBJ_TYPE, SUBJ2_NAME);
+ for (int i=0; i<100; i++) {
+ String id = "test.subject." + i;
+ String name = "my name is " + id;
+ this._addSubject(add, id, SUBJ_TYPE, name);
+ }
}
catch (SQLException eSQL) {
String err = "unable to prepare statement: " + eSQL.getMessage();