[prev in list] [next in list] [prev in thread] [next in thread] 

List:       forgerock-openam-commit
Subject:    [CommitOpenAM] [13655] trunk/openam: OPENAM-5880 CR-6837 Handle queries on policy attributes not sto
From:       noreply () forgerock ! org
Date:       2015-04-30 19:48:57
Message-ID: 20150430194857.966163F88C () sources ! internal ! forgerock ! com
[Download RAW message or body]

[Attachment #2 (text/html)]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[13655] trunk/openam: OPENAM-5880 CR-6837 Handle queries on policy attributes \
not stored in ou ldap attributes</title> </head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: \
verdana,arial,helvetica,sans-serif; font-size: 10pt;  } #msg dl a { font-weight: \
bold} #msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: \
bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: \
6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em \
0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg \
h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } \
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; \
} #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: \
-1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em \
1em 0 1em; background: white;} #logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid \
#fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { \
text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted \
#fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: \
0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid \
#fa0; } #logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: \
6px; } #patch { width: 100%; }
#patch h4 {font-family: \
verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
 #patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, \
#patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins \
{background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del \
{background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, \
                .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a \
href="http://sources.forgerock.org/changelog/openam/?cs=13655">13655</a></dd> \
<dt>Author</dt> <dd>jamesphillpotts</dd> <dt>Date</dt> <dd>2015-04-30 20:48:57 +0100 \
(Thu, 30 Apr 2015)</dd> </dl>

<h3>Log Message</h3>
<pre><a href="https://bugster.forgerock.org/jira/browse/OPENAM-5880">OPENAM-5880</a> \
CR-6837 Handle queries on policy attributes not stored in ou ldap attributes</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementApplicationjava \
">trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Application.java</a></li>
 <li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementPrivilegejava" \
>trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Privilege.java</a></li>
> 
<li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementReferralPrivile \
geManagerjava">trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/ReferralPrivilegeManager.java</a></li>
 <li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementutilSearchFilt \
erjava">trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchFilter.java</a></li>
 <li><a href="#trunkopenamopenamcoresrctestjavacomsunidentityentitlementApplicationMan \
agerTestjava">trunk/openam/openam-core/src/test/java/com/sun/identity/entitlement/ApplicationManagerTest.java</a></li>
 <li><a href="#trunkopenamopenamentitlementssrcmainjavacomsunidentityentitlementPrivil \
egeManagerjava">trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java</a></li>
 <li><a href="#trunkopenamopenamentitlementssrcmainjavacomsunidentityentitlementxacml3 \
SearchFilterFactoryjava">trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/xacml3/SearchFilterFactory.java</a></li>
 <li><a href="#trunkopenamopenamentitlementssrcmainjavaorgforgerockopenamupgradestepsp \
olicyUpgradeResourceTypeStepjava">trunk/openam/openam-entitlements/src/main/java/org/forgerock/openam/upgrade/steps/policy/UpgradeResourceTypeStep.java</a></li>
 <li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementAp \
plicationDelegationTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationDelegationTest.java</a></li>
 <li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementAp \
plicationFilterTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationFilterTest.java</a></li>
 <li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementAp \
plicationMetaDatajava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationMetaData.java</a></li>
 <li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementDe \
legationPrivilegeTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/DelegationPrivilegeTest.java</a></li>
 <li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementPr \
ivilegeManagerTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/PrivilegeManagerTest.java</a></li>
 <li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentitypolicyMetaDat \
aTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/MetaDataTest.java</a></li>
 <li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentitypolicyReferra \
lPolicyTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/ReferralPolicyTest.java</a></li>
 <li><a href="#trunkopenamopenamrestsrcmainjavacomsunidentityrestPrivilegeResourcejava \
">trunk/openam/openam-rest/src/main/java/com/sun/identity/rest/PrivilegeResource.java</a></li>
 <li><a href="#trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlem \
entsReferralsResourceV1java">trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/ReferralsResourceV1.java</a></li>
 <li><a href="#trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlem \
entsqueryAttributeTypejava">trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/AttributeType.java</a></li>
 <li><a href="#trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlem \
entsqueryQueryAttributejava">trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/QueryAttribute.java</a></li>
 <li><a href="#trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestguiceFor \
gerockRestGuiceModulejava">trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java</a></li>
 <li><a href="#trunkopenamopenamrestsrctestjavaorgforgerockopenamforgerockrestentitlem \
entsApplicationsResourceTestjava">trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/ApplicationsResourceTest.java</a></li>
 <li><a href="#trunkopenamopenamrestsrctestjavaorgforgerockopenamforgerockrestentitlem \
entsPrivilegePolicyStoreTestjava">trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java</a></li>
 </ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementutilSearchAttri \
butejava">trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchAttribute.java</a></li>
 </ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementApplicationjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Application.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Application.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Application.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,13 +24,15 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: Application.java,v 1.7 2010/01/08 22:20:47 veiming \
Exp $ </span><span class="cx">  *
</span><del>- * Portions copyright 2013-2015 ForgeRock, Inc.
</del><ins>+ * Portions copyright 2013-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx"> 
</span><span class="cx"> import com.sun.identity.entitlement.interfaces.ISaveIndex;
</span><span class="cx"> import com.sun.identity.entitlement.interfaces.ISearchIndex;
</span><span class="cx"> import com.sun.identity.entitlement.interfaces.ResourceName;
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
+
</ins><span class="cx"> import org.forgerock.openam.entitlement.EntitlementRegistry;
</span><span class="cx"> import org.forgerock.openam.entitlement.PolicyConstants;
</span><span class="cx"> import org.forgerock.util.Reject;
</span><span class="lines">@@ -51,31 +53,62 @@
</span><span class="cx">     public static final String CREATED_BY_ATTRIBUTE = \
&quot;createdby&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Created by search attribute
+     */
+    public static final SearchAttribute CREATED_BY_SEARCH_ATTRIBUTE = new \
SearchAttribute(CREATED_BY_ATTRIBUTE, &quot;ou&quot;); +
+    /**
</ins><span class="cx">      * Last modified by index key
</span><span class="cx">      */
</span><span class="cx">     public static final String LAST_MODIFIED_BY_ATTRIBUTE = \
&quot;lastmodifiedby&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Last modified by search attribute
+     */
+    public static final SearchAttribute LAST_MODIFIED_BY_SEARCH_ATTRIBUTE = new \
SearchAttribute(LAST_MODIFIED_BY_ATTRIBUTE, &quot;ou&quot;); +
+    /**
</ins><span class="cx">      * Creation date index key
</span><span class="cx">      */
</span><span class="cx">     public static final String CREATION_DATE_ATTRIBUTE = \
&quot;creationdate&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Creation date search attribute
+     */
+    public static final SearchAttribute CREATION_DATE_SEARCH_ATTRIBUTE = new \
SearchAttribute(CREATION_DATE_ATTRIBUTE, &quot;ou&quot;); +
+    /**
</ins><span class="cx">      * Last modified date index key
</span><span class="cx">      */
</span><span class="cx">     public static final String LAST_MODIFIED_DATE_ATTRIBUTE \
= </span><del>-        &quot;lastmodifieddate&quot;;
</del><ins>+            &quot;lastmodifieddate&quot;;
</ins><span class="cx"> 
</span><span class="cx">     /**
</span><del>-     * Name search attribute name,
</del><ins>+     * Last modified date search attribute
</ins><span class="cx">      */
</span><ins>+    public static final SearchAttribute \
LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE = +            new \
SearchAttribute(LAST_MODIFIED_DATE_ATTRIBUTE, &quot;ou&quot;); +
+    /**
+     * Name attribute name,
+     */
</ins><span class="cx">     public static final String NAME_ATTRIBUTE = \
&quot;name&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><del>-     * Description search attribute name,
</del><ins>+     * Name search attribute
</ins><span class="cx">      */
</span><ins>+    public static final SearchAttribute NAME_SEARCH_ATTRIBUTE = new \
SearchAttribute(NAME_ATTRIBUTE, &quot;ou&quot;); +
+    /**
+     * Description attribute name,
+     */
</ins><span class="cx">     public static final String DESCRIPTION_ATTRIBUTE = \
&quot;description&quot;; </span><span class="cx"> 
</span><ins>+    /**
+     * Description search attribute
+     */
+    public static final SearchAttribute DESCRIPTION_SEARCH_ATTRIBUTE = new \
SearchAttribute(DESCRIPTION_ATTRIBUTE, &quot;ou&quot;); +
</ins><span class="cx">     private static final int LEN_CREATED_BY_ATTRIBUTE =
</span><span class="cx">         CREATED_BY_ATTRIBUTE.length();
</span><span class="cx">     private static final int LEN_LAST_MODIFIED_BY_ATTRIBUTE \
= </span></span></pre></div>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementPrivilegejava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Privilege.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Privilege.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Privilege.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -29,8 +29,11 @@
</span><span class="cx"> 
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx"> 
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.shared.JSONUtils;
</span><span class="cx"> import \
com.sun.identity.shared.configuration.SystemPropertiesManager; </span><ins>+import \
com.sun.identity.sm.SMSEntry; +
</ins><span class="cx"> import \
org.forgerock.openam.entitlement.CachingEntitlementCondition; </span><span \
class="cx"> import org.forgerock.openam.entitlement.PolicyConstants; </span><span \
class="cx"> import org.json.JSONArray; </span><span class="lines">@@ -68,37 +71,71 @@
</span><span class="cx">     public static final String APPLICATION_ATTRIBUTE = \
&quot;application&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * application search attribute
+     */
+    public static final SearchAttribute APPLICATION_SEARCH_ATTRIBUTE = new \
SearchAttribute(APPLICATION_ATTRIBUTE, &quot;ou&quot;); +
+    /**
</ins><span class="cx">      * Created by index key
</span><span class="cx">      */
</span><span class="cx">     public static final String CREATED_BY_ATTRIBUTE = \
&quot;createdby&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Created by search attribute
+     */
+    public static final SearchAttribute CREATED_BY_SEARCH_ATTRIBUTE = new \
SearchAttribute(CREATED_BY_ATTRIBUTE, &quot;ou&quot;); +
+    /**
</ins><span class="cx">      * Last modified by index key
</span><span class="cx">      */
</span><span class="cx">     public static final String LAST_MODIFIED_BY_ATTRIBUTE = \
&quot;lastmodifiedby&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Last modified by search attribute
+     */
+    public static final SearchAttribute LAST_MODIFIED_BY_SEARCH_ATTRIBUTE = new \
SearchAttribute(LAST_MODIFIED_BY_ATTRIBUTE, &quot;ou&quot;); +
+    /**
</ins><span class="cx">      * Creation date index key
</span><span class="cx">      */
</span><span class="cx">     public static final String CREATION_DATE_ATTRIBUTE = \
&quot;creationdate&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Creation date index key
+     */
+    public static final SearchAttribute CREATION_DATE_SEARCH_ATTRIBUTE = new \
SearchAttribute(CREATION_DATE_ATTRIBUTE, &quot;ou&quot;); +
+    /**
</ins><span class="cx">      * Last modified date index key
</span><span class="cx">      */
</span><del>-    public static final String LAST_MODIFIED_DATE_ATTRIBUTE =
-        &quot;lastmodifieddate&quot;;
</del><ins>+    public static final String LAST_MODIFIED_DATE_ATTRIBUTE = \
&quot;lastmodifieddate&quot;; </ins><span class="cx"> 
</span><span class="cx">     /**
</span><del>-     * Name search attribute name,
</del><ins>+     * Last modified date index key
</ins><span class="cx">      */
</span><ins>+    public static final SearchAttribute \
LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE = new \
SearchAttribute(LAST_MODIFIED_DATE_ATTRIBUTE, &quot;ou&quot;); +
+    /**
+     * Name attribute name,
+     */
</ins><span class="cx">     public static final String NAME_ATTRIBUTE = \
&quot;name&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Name search attribute
+     */
+    public static final SearchAttribute NAME_SEARCH_ATTRIBUTE = new \
SearchAttribute(NAME_ATTRIBUTE, &quot;ou&quot;); +
+    /**
</ins><span class="cx">      * Resource type uuid reference.
</span><span class="cx">      */
</span><span class="cx">     public static final String RESOURCE_TYPE_UUID_ATTRIBUTE \
= &quot;resourceTypeUuid&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Resource type uuid reference.
+     */
+    public static final SearchAttribute RESOURCE_TYPE_UUID_SEARCH_ATTRIBUTE = new \
SearchAttribute(RESOURCE_TYPE_UUID_ATTRIBUTE, SMSEntry.ATTR_XML_KEYVAL); +
+    /**
</ins><span class="cx">      * Macro used in resource name
</span><span class="cx">      */
</span><span class="cx">     public static final String RESOURCE_MACRO_SELF = \
&quot;$SELF&quot;; </span><span class="lines">@@ -109,10 +146,15 @@
</span><span class="cx">     public static final String RESOURCE_MACRO_ATTRIBUTE = \
&quot;$ATTR&quot;; </span><span class="cx"> 
</span><span class="cx">     /**
</span><del>-     * Privilege description search attribute name,
</del><ins>+     * Privilege description attribute name,
</ins><span class="cx">      */
</span><span class="cx">     public static final String DESCRIPTION_ATTRIBUTE = \
&quot;description&quot;; </span><span class="cx"> 
</span><ins>+    /**
+     * Privilege description search attribute name,
+     */
+    public static final SearchAttribute DESCRIPTION_SEARCH_ATTRIBUTE = new \
SearchAttribute(DESCRIPTION_ATTRIBUTE, &quot;ou&quot;); +
</ins><span class="cx">     private static Class&lt;? extends Privilege&gt; \
privilegeClass; </span><span class="cx">     public static final NoSubject \
NOT_SUBJECT = new NoSubject(); </span><span class="cx"> 
</span></span></pre></div>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementReferralPrivilegeManagerjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/ReferralPrivilegeManager.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/ReferralPrivilegeManager.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/ReferralPrivilegeManager.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: ReferralPrivilegeManager.java,v 1.7 2010/01/20 \
17:01:35 veiming Exp $ </span><span class="cx">  *
</span><del>- * Portions Copyrighted 2012-2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2012-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx"> 
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">      */
</span><span class="cx">     @Override
</span><span class="cx">     public boolean canFindByName(String name) throws \
EntitlementException { </span><del>-        SearchFilter filter = new \
SearchFilter(&quot;name&quot;, name); </del><ins>+        SearchFilter filter = new \
SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, name); </ins><span class="cx">         \
return !searchNames(asSet(filter)).isEmpty(); </span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementutilSearchAttributejava"></a>
 <div class="addfile"><h4>Added: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchAttribute.java \
(0 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchAttribute.java	 \
                (rev 0)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchAttribute.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+/*
+ * The contents of this file are subject to the terms of the Common Development and
+ * Distribution License (the License). You may not use this file except in \
compliance with the + * License.
+ *
+ * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for \
the + * specific language governing permission and limitations under the License.
+ *
+ * When distributing Covered Software, include this CDDL Header Notice in each file \
and include + * the License file at legal/CDDLv1.0.txt. If applicable, add the \
following below the CDDL + * Header, with the fields enclosed by brackets [] replaced \
by your own identifying + * information: &quot;Portions copyright [year] [name of \
copyright owner]&quot;. + *
+ * Copyright 2015 ForgeRock AS.
+ */
+
+package com.sun.identity.entitlement.util;
+
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.forgerock.util.Reject;
+
+public class SearchAttribute {
+
+    private final String attributeName;
+    private final String ldapAttribute;
+
+    public SearchAttribute(String attributeName, String ldapAttribute) {
+        Reject.ifNull(attributeName, ldapAttribute);
+        this.attributeName = attributeName;
+        this.ldapAttribute = ldapAttribute;
+    }
+
+
+    public String getLdapAttribute() {
+        return ldapAttribute;
+    }
+
+    public String getAttributeName() {
+        return attributeName;
+    }
+
+    public String toFilter(String operator) {
+        return ldapAttribute + operator + attributeName;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = attributeName.hashCode();
+        result = 31 * result + ldapAttribute.hashCode();
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object that) {
+        return this == that || (that instanceof SearchAttribute &amp;&amp;
+                new EqualsBuilder()
+                        .append(this.attributeName, ((SearchAttribute) \
that).attributeName) +                        .append(this.ldapAttribute, \
((SearchAttribute) that).ldapAttribute) +                        .isEquals()
+        );
+    }
+}
</ins></span></pre></div>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementutilSearchFilterjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchFilter.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchFilter.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchFilter.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -23,12 +23,10 @@
</span><span class="cx">  * &quot;Portions Copyrighted [year] [name of copyright \
owner]&quot; </span><span class="cx">  *
</span><span class="cx">  * $Id: SearchFilter.java,v 1.2 2009/10/14 03:18:41 veiming \
Exp $ </span><ins>+ *
+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><del>-/*
- * Portions Copyrighted 2014 ForgeRock AS.
- */
-
</del><span class="cx"> package com.sun.identity.entitlement.util;
</span><span class="cx"> 
</span><span class="cx"> /**
</span><span class="lines">@@ -45,7 +43,7 @@
</span><span class="cx">         GREATER_THAN_OR_EQUAL_OPERATOR
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    private String attrName;
</del><ins>+    private SearchAttribute attribute;
</ins><span class="cx">     private String value;
</span><span class="cx">     private long longValue;
</span><span class="cx">     private Operator operator;
</span><span class="lines">@@ -53,13 +51,13 @@
</span><span class="cx">     /**
</span><span class="cx">      * Constructor.
</span><span class="cx">      *
</span><del>-     * @param attrName Attribute name.
</del><ins>+     * @param attribute Attribute details.
</ins><span class="cx">      * &lt;code&gt;CREATED_BY_ATTRIBUTE, \
LAST_MODIFIED_BY_ATTRIBUTE, </span><span class="cx">      * CREATION_DATE_ATTRIBUTE, \
LAST_MODIFIED_DATE_ATTRIBUTE&lt;/code&gt;. </span><span class="cx">      * @param \
value Search filter. </span><span class="cx">      */
</span><del>-    public SearchFilter(String attrName, String value) {
-        this.attrName = attrName;
</del><ins>+    public SearchFilter(SearchAttribute attribute, String value) {
+        this.attribute = attribute;
</ins><span class="cx">         this.value = value;
</span><span class="cx">         this.operator = Operator.EQUALS_OPERATOR;
</span><span class="cx">     }
</span><span class="lines">@@ -67,7 +65,7 @@
</span><span class="cx">     /**
</span><span class="cx">      * Constructor.
</span><span class="cx">      *
</span><del>-     * @param attrName Attribute name
</del><ins>+     * @param attribute Attribute details
</ins><span class="cx">      * &lt;code&gt;CREATED_BY_ATTRIBUTE, \
LAST_MODIFIED_BY_ATTRIBUTE, </span><span class="cx">      * CREATION_DATE_ATTRIBUTE, \
LAST_MODIFIED_DATE_ATTRIBUTE&lt;/code&gt;. </span><span class="cx">      * @param \
value Search filter. </span><span class="lines">@@ -78,8 +76,8 @@
</span><span class="cx">      * \
&lt;li&gt;SearchFilter.GREATER_THAN_OPERATOR&lt;/li&gt; </span><span class="cx">      \
* &lt;/ul&gt; </span><span class="cx">      */
</span><del>-    public SearchFilter(String attrName, long value, Operator operator) \
                {
-        this.attrName = attrName;
</del><ins>+    public SearchFilter(SearchAttribute attribute, long value, Operator \
operator) { +        this.attribute = attribute;
</ins><span class="cx">         this.longValue = value;
</span><span class="cx">         this.operator = operator;
</span><span class="cx">     }
</span><span class="lines">@@ -90,7 +88,7 @@
</span><span class="cx">      * @return filter name.
</span><span class="cx">      */
</span><span class="cx">     public String getName() {
</span><del>-        return attrName;
</del><ins>+        return attribute.getAttributeName();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span><span class="lines">@@ -127,7 +125,7 @@
</span><span class="cx">      */
</span><span class="cx">     public String getFilter() {
</span><span class="cx">         if (value != null) {
</span><del>-            return &quot;(ou=&quot; + attrName + &quot;=&quot; + value \
+&quot;)&quot;; </del><ins>+            return &quot;(&quot; + \
attribute.toFilter(&quot;=&quot;) + &quot;=&quot; + value +&quot;)&quot;; </ins><span \
class="cx">         } </span><span class="cx"> 
</span><span class="cx">         /*
</span><span class="lines">@@ -139,20 +137,20 @@
</span><span class="cx">          * Also, since LDAP does not support &lt; or &gt; \
natively, we need to invert &gt;= and &lt;=. </span><span class="cx">          */
</span><span class="cx"> 
</span><del>-        String attrValue = Long.toString(longValue) + &quot;=&quot; + \
attrName; </del><ins>+        String attrValue = Long.toString(longValue) + \
&quot;=&quot; + attribute.getAttributeName(); </ins><span class="cx"> 
</span><span class="cx">         switch (operator) {
</span><span class="cx">             case LESS_THAN_OPERATOR:
</span><del>-                return &quot;(!(ou&gt;=|&quot; + attrValue + \
&quot;))&quot;; </del><ins>+                return &quot;(!(&quot; + \
attribute.getLdapAttribute() + &quot;&gt;=|&quot; + attrValue + &quot;))&quot;; \
</ins><span class="cx">             case LESS_THAN_OR_EQUAL_OPERATOR: </span><del>-   \
return &quot;(ou&lt;=&quot; + attrValue + &quot;)&quot;; </del><ins>+                \
return &quot;(&quot; + attribute.getLdapAttribute() + &quot;&lt;=&quot; + attrValue + \
&quot;)&quot;; </ins><span class="cx">             case GREATER_THAN_OPERATOR:
</span><del>-                return &quot;(!(ou&lt;=&quot; + attrValue + \
&quot;))&quot;; </del><ins>+                return &quot;(!(&quot; + \
attribute.getLdapAttribute() + &quot;&lt;=&quot; + attrValue + &quot;))&quot;; \
</ins><span class="cx">             case GREATER_THAN_OR_EQUAL_OPERATOR: \
</span><del>-                return &quot;(ou&gt;=|&quot; + attrValue + \
&quot;)&quot;; </del><ins>+                return &quot;(&quot; + \
attribute.getLdapAttribute() + &quot;&gt;=|&quot; + attrValue + &quot;)&quot;; \
</ins><span class="cx">             case EQUALS_OPERATOR: </span><span class="cx">    \
default: </span><del>-                return &quot;(ou=&quot; + attrValue + \
&quot;)&quot;; </del><ins>+                return &quot;(&quot; + \
attribute.getLdapAttribute() + &quot;=&quot; + attrValue + &quot;)&quot;; </ins><span \
class="cx">         } </span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -168,7 +166,7 @@
</span><span class="cx">         SearchFilter that = (SearchFilter) o;
</span><span class="cx"> 
</span><span class="cx">         return longValue == that.longValue
</span><del>-                &amp;&amp; !(attrName != null ? \
!attrName.equals(that.attrName) : that.attrName != null) </del><ins>+                \
&amp;&amp; !(attribute != null ? !attribute.equals(that.attribute) : that.attribute \
!= null) </ins><span class="cx">                 &amp;&amp; operator == that.operator
</span><span class="cx">                 &amp;&amp; !(value != null ? \
!value.equals(that.value) : that.value != null); </span><span class="cx"> 
</span><span class="lines">@@ -176,7 +174,7 @@
</span><span class="cx"> 
</span><span class="cx">     @Override
</span><span class="cx">     public int hashCode() {
</span><del>-        int result = attrName != null ? attrName.hashCode() : 0;
</del><ins>+        int result = attribute != null ? attribute.hashCode() : 0;
</ins><span class="cx">         result = 31 * result + (value != null ? \
value.hashCode() : 0); </span><span class="cx">         result = 31 * result + (int) \
(longValue ^ (longValue &gt;&gt;&gt; 32)); </span><span class="cx">         result = \
31 * result + (operator != null ? operator.hashCode() : 0); \
</span></span></pre></div> <a \
id="trunkopenamopenamcoresrctestjavacomsunidentityentitlementApplicationManagerTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/test/java/com/sun/identity/entitlement/ApplicationManagerTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/test/java/com/sun/identity/entitlement/ApplicationManagerTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/test/java/com/sun/identity/entitlement/ApplicationManagerTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx">  * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx">  * information: &quot;Portions \
copyright [year] [name of copyright owner]&quot;. </span><span class="cx">  *
</span><del>- * Copyright 2014 ForgeRock AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx"> 
</span><span class="lines">@@ -102,27 +102,27 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     private SearchFilter nameFilter(String name) {
</span><del>-        return new SearchFilter(NAME_ATTRIBUTE, name);
</del><ins>+        return new SearchFilter(NAME_SEARCH_ATTRIBUTE, name);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     private SearchFilter descriptionFilter(String \
description) { </span><del>-        return new SearchFilter(DESCRIPTION_ATTRIBUTE, \
description); </del><ins>+        return new \
SearchFilter(DESCRIPTION_SEARCH_ATTRIBUTE, description); </ins><span class="cx">     \
} </span><span class="cx"> 
</span><span class="cx">     private SearchFilter createdByFilter(String description) \
{ </span><del>-        return new SearchFilter(CREATED_BY_ATTRIBUTE, description);
</del><ins>+        return new SearchFilter(CREATED_BY_SEARCH_ATTRIBUTE, \
description); </ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     private SearchFilter creationDateFilter(long date, \
SearchFilter.Operator filterOperator) { </span><del>-        return new \
SearchFilter(CREATION_DATE_ATTRIBUTE, date, filterOperator); </del><ins>+        \
return new SearchFilter(CREATION_DATE_SEARCH_ATTRIBUTE, date, filterOperator); \
</ins><span class="cx">     } </span><span class="cx"> 
</span><span class="cx">     private SearchFilter lastModifiedByFilter(String \
description) { </span><del>-        return new \
SearchFilter(LAST_MODIFIED_BY_ATTRIBUTE, description); </del><ins>+        return new \
SearchFilter(LAST_MODIFIED_BY_SEARCH_ATTRIBUTE, description); </ins><span class="cx"> \
} </span><span class="cx"> 
</span><span class="cx">     private SearchFilter lastModifiedDateFilter(long date, \
SearchFilter.Operator filterOperator) { </span><del>-        return new \
SearchFilter(LAST_MODIFIED_DATE_ATTRIBUTE, date, filterOperator); </del><ins>+        \
return new SearchFilter(LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE, date, filterOperator); \
</ins><span class="cx">     } </span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkopenamopenamentitlementssrcmainjavacomsunidentityentitlementPrivilegeManagerjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">      */
</span><span class="cx">     @Override
</span><span class="cx">     public boolean canFindByName(String name) throws \
EntitlementException { </span><del>-        SearchFilter filter = new \
SearchFilter(&quot;name&quot;, name); </del><ins>+        SearchFilter filter = new \
SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, name); </ins><span class="cx">         \
return !searchNames(asSet(filter)).isEmpty(); </span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkopenamopenamentitlementssrcmainjavacomsunidentityentitlementxacml3SearchFilterFactoryjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/xacml3/SearchFilterFactory.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/xacml3/SearchFilterFactory.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/xacml3/SearchFilterFactory.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,12 +11,13 @@
</span><span class="cx">  * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx">  * information: &quot;Portions \
copyright [year] [name of copyright owner]&quot;. </span><span class="cx">  *
</span><del>- * Copyright 2014 ForgeRock AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> package com.sun.identity.entitlement.xacml3;
</span><span class="cx"> 
</span><span class="cx"> import com.sun.identity.entitlement.EntitlementException;
</span><span class="cx"> import com.sun.identity.entitlement.Privilege;
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> 
</span><span class="cx"> import java.util.HashMap;
</span><span class="lines">@@ -60,18 +61,46 @@
</span><span class="cx"> 
</span><span class="cx">         if (isAttributeNumeric(name)) { // The &lt; and &gt; \
operators only apply to numeric attributes </span><span class="cx">             try {
</span><del>-                return new SearchFilter(name, Long.parseLong(value), \
operator); </del><ins>+                return new \
SearchFilter(getSearchAttribute(name), Long.parseLong(value), operator); </ins><span \
class="cx">             } catch (NumberFormatException e) { </span><span class="cx">  \
throw new EntitlementException( </span><span class="cx">                         \
INVALID_SEARCH_FILTER, </span><span class="cx">                         new \
Object[]{&quot;Invalid value for attribute&quot;, name, value}); </span><span \
class="cx">             } </span><span class="cx">         } else { // Everything \
else is assumed to be equals. </span><del>-            return new SearchFilter(name, \
value); </del><ins>+            return new SearchFilter(getSearchAttribute(name), \
value); </ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Get the SearchAttribute instance for the specified policy \
attribute name. +     * @param attributeName The name of the policy attribubte
+     * @return The SearchAttribute instance, as required by {@link SearchFilter}.
+     */
+    public static SearchAttribute getSearchAttribute(String attributeName) {
+        switch(attributeName) {
+            case Privilege.NAME_ATTRIBUTE:
+                return Privilege.NAME_SEARCH_ATTRIBUTE;
+            case Privilege.DESCRIPTION_ATTRIBUTE:
+                return Privilege.DESCRIPTION_SEARCH_ATTRIBUTE;
+            case Privilege.APPLICATION_ATTRIBUTE:
+                return Privilege.APPLICATION_SEARCH_ATTRIBUTE;
+            case Privilege.CREATED_BY_ATTRIBUTE:
+                return Privilege.CREATED_BY_SEARCH_ATTRIBUTE;
+            case Privilege.CREATION_DATE_ATTRIBUTE:
+                return Privilege.CREATION_DATE_SEARCH_ATTRIBUTE;
+            case Privilege.LAST_MODIFIED_BY_ATTRIBUTE:
+                return Privilege.LAST_MODIFIED_BY_SEARCH_ATTRIBUTE;
+            case Privilege.LAST_MODIFIED_DATE_ATTRIBUTE:
+                return Privilege.LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE;
+            case Privilege.RESOURCE_TYPE_UUID_ATTRIBUTE:
+                return Privilege.RESOURCE_TYPE_UUID_SEARCH_ATTRIBUTE;
+            default:
+                return new SearchAttribute(attributeName, &quot;ou&quot;);
+        }
+    }
+
+    /**
</ins><span class="cx">      * Parses the SearchFilter formatted text into a tuple of \
sorts. </span><span class="cx">      * @param filter Non null string.
</span><span class="cx">      * @return Name, Operator, Value.
</span></span></pre></div>
<a id="trunkopenamopenamentitlementssrcmainjavaorgforgerockopenamupgradestepspolicyUpgradeResourceTypeStepjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-entitlements/src/main/java/org/forgerock/openam/upgrade/steps/policy/UpgradeResourceTypeStep.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-entitlements/src/main/java/org/forgerock/openam/upgrade/steps/policy/UpgradeResourceTypeStep.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-entitlements/src/main/java/org/forgerock/openam/upgrade/steps/policy/UpgradeResourceTypeStep.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx">     private void upgradePrivileges(PrivilegeManager pm, \
String appName, String resourceTypeUUID) </span><span class="cx">             throws \
UpgradeException { </span><span class="cx"> 
</span><del>-        final SearchFilter searchFilter = new SearchFilter(APPLICATION, \
appName); </del><ins>+        final SearchFilter searchFilter = new \
SearchFilter(Privilege.APPLICATION_SEARCH_ATTRIBUTE, appName); </ins><span \
class="cx">         try { </span><span class="cx">             final \
List&lt;Privilege&gt; privileges = pm.search(Collections.singleton(searchFilter)); \
</span><span class="cx">             for (Privilege privilege : privileges) { \
</span></span></pre></div> <a \
id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementApplicationDelegationTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationDelegationTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationDelegationTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationDelegationTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: ApplicationDelegationTest.java,v 1.2 2009/11/12 \
18:37:39 veiming Exp $ </span><span class="cx">  *
</span><del>- * Portions Copyrighted 2014-2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx"> 
</span><span class="cx">         Set&lt;SearchFilter&gt; filter = new \
HashSet&lt;SearchFilter&gt;(); </span><span class="cx">         filter.add(new \
SearchFilter( </span><del>-            Privilege.NAME_ATTRIBUTE, PRIVILEGE_NAME + \
&quot;*&quot;)); </del><ins>+            Privilege.NAME_SEARCH_ATTRIBUTE, \
PRIVILEGE_NAME + &quot;*&quot;)); </ins><span class="cx">         PrivilegeManager pm \
= PrivilegeManager.getInstance(&quot;/&quot;, </span><span class="cx">             \
testUserSubject); </span><span class="cx">         Set&lt;String&gt; names = \
pm.searchNames(filter); </span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementApplicationFilterTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationFilterTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationFilterTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationFilterTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: ApplicationFilterTest.java,v 1.2 2009/12/07 19:46:50 \
veiming Exp $ </span><span class="cx">  *
</span><del>- * Portions Copyrighted 2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx">         Subject userSubject = \
SubjectUtils.createSubject(userToken); </span><span class="cx"> 
</span><span class="cx">         Set&lt;SearchFilter&gt; filters = new \
HashSet&lt;SearchFilter&gt;(); </span><del>-        filters.add(new \
SearchFilter(Application.NAME_ATTRIBUTE, </del><ins>+        filters.add(new \
SearchFilter(Application.NAME_SEARCH_ATTRIBUTE, </ins><span class="cx">             \
&quot;ApplicationFilterTes*&quot;)); </span><span class="cx">         \
Set&lt;String&gt; names = ApplicationManager.search(userSubject, &quot;/&quot;, \
</span><span class="cx">             filters); </span><span class="lines">@@ -150,7 \
+150,7 @@ </span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         filters.clear();
</span><del>-        filters.add(new SearchFilter(Application.NAME_ATTRIBUTE, \
&quot;4rwrwr*&quot;)); </del><ins>+        filters.add(new \
SearchFilter(Application.NAME_SEARCH_ATTRIBUTE, &quot;4rwrwr*&quot;)); </ins><span \
class="cx">          </span><span class="cx">         names = \
ApplicationManager.search(userSubject, &quot;/&quot;, filters); </span><span \
class="cx">         if (!names.isEmpty()) { </span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementApplicationMetaDatajava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationMetaData.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationMetaData.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationMetaData.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: ApplicationMetaData.java,v 1.1 2009/09/25 05:52:56 \
veiming Exp $ </span><span class="cx">  *
</span><del>- * Portions Copyrighted 2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx"> 
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         Set&lt;SearchFilter&gt; filters = new \
HashSet&lt;SearchFilter&gt;(); </span><del>-        filters.add(new \
SearchFilter(Application.NAME_ATTRIBUTE, APPL_NAME)); </del><ins>+        \
filters.add(new SearchFilter(Application.NAME_SEARCH_ATTRIBUTE, APPL_NAME)); \
</ins><span class="cx">         Set&lt;String&gt; results = \
ApplicationManager.search( </span><span class="cx">             adminSubject, \
&quot;/&quot;, filters); </span><span class="cx">         if \
(!results.contains(APPL_NAME)) { </span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementDelegationPrivilegeTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/DelegationPrivilegeTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/DelegationPrivilegeTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/DelegationPrivilegeTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: DelegationPrivilegeTest.java,v 1.5 2009/12/17 \
18:03:51 veiming Exp $ </span><span class="cx">  *
</span><del>- * Portions Copyrighted 2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx"> 
</span><span class="cx">         Set&lt;SearchFilter&gt; filters = new \
HashSet&lt;SearchFilter&gt;(); </span><span class="cx">         String privilegeName \
= testParams.get(&quot;DELEGATE_PRIVILEGE_NAME&quot;); </span><del>-        \
filters.add(new SearchFilter(Privilege.NAME_ATTRIBUTE, privilegeName)); </del><ins>+  \
filters.add(new SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, privilegeName)); \
</ins><span class="cx">  </span><span class="cx">         Set&lt;String&gt; names = \
mgr.search(filters); </span><span class="cx">         if ((names == null) || \
names.isEmpty()) { </span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx"> 
</span><span class="cx">         Set&lt;SearchFilter&gt; filters = new \
HashSet&lt;SearchFilter&gt;(); </span><span class="cx">         String privilegeName \
= testParams.get(&quot;DELEGATE_PRIVILEGE_NAME&quot;); </span><del>-        \
filters.add(new SearchFilter(Privilege.NAME_ATTRIBUTE, privilegeName)); </del><ins>+  \
filters.add(new SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, privilegeName)); \
</ins><span class="cx">         Set&lt;String&gt; privilegeNames = \
mgr.search(filters); </span><span class="cx"> 
</span><span class="cx">         if ((privilegeNames != null) &amp;&amp; \
!privilegeNames.isEmpty()) { </span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementPrivilegeManagerTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/PrivilegeManagerTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/PrivilegeManagerTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/PrivilegeManagerTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -396,7 +396,7 @@
</span><span class="cx">             SubjectUtils.createSubject(adminToken));
</span><span class="cx"> 
</span><span class="cx">         Set&lt;SearchFilter&gt; psf = new \
HashSet&lt;SearchFilter&gt;(); </span><del>-        psf.add(new \
SearchFilter(Privilege.NAME_ATTRIBUTE, &quot;*&quot;)); </del><ins>+        \
psf.add(new SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, &quot;*&quot;)); \
</ins><span class="cx">         Set privilegeNames = prm.searchNames(psf); \
</span><span class="cx">         if (!privilegeNames.contains(PRIVILEGE_NAME)) { \
</span><span class="cx">               throw new Exception( </span><span \
class="lines">@@ -405,7 +405,7 @@ </span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         psf = new HashSet&lt;SearchFilter&gt;();
</span><del>-        psf.add(new SearchFilter(Privilege.DESCRIPTION_ATTRIBUTE,
</del><ins>+        psf.add(new SearchFilter(Privilege.DESCRIPTION_SEARCH_ATTRIBUTE,
</ins><span class="cx">             PRIVILEGE_DESC));
</span><span class="cx">         privilegeNames = prm.searchNames(psf);
</span><span class="cx">         if (!privilegeNames.contains(PRIVILEGE_NAME)) {
</span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentitypolicyMetaDataTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/MetaDataTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/MetaDataTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/MetaDataTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,13 +24,14 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: MetaDataTest.java,v 1.3 2009/10/14 03:18:42 veiming \
Exp $ </span><span class="cx">  *
</span><del>- * Portions Copyrighted 2014 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package com.sun.identity.policy;
</span><span class="cx"> 
</span><span class="cx"> import com.iplanet.sso.SSOException;
</span><span class="cx"> import com.iplanet.sso.SSOToken;
</span><ins>+import com.sun.identity.entitlement.Privilege;
</ins><span class="cx"> import com.sun.identity.entitlement.PrivilegeManager;
</span><span class="cx"> import com.sun.identity.entitlement.opensso.SubjectUtils;
</span><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="lines">@@ -127,7 +128,7 @@
</span><span class="cx">     ) throws Exception {
</span><span class="cx">         Set&lt;SearchFilter&gt; filter =
</span><span class="cx">             new HashSet&lt;SearchFilter&gt;();
</span><del>-        filter.add(new SearchFilter(&quot;creationdate&quot;, value, \
operator)); </del><ins>+        filter.add(new \
SearchFilter(Privilege.CREATION_DATE_SEARCH_ATTRIBUTE, value, operator)); </ins><span \
class="cx">         Set&lt;String&gt; privilegeNames = \
privilegMgr.searchNames(filter); </span><span class="cx"> 
</span><span class="cx">         if (!containCheckOnly) {
</span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentitypolicyReferralPolicyTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/ReferralPolicyTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/ReferralPolicyTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/ReferralPolicyTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: ReferralPolicyTest.java,v 1.2 2009/09/25 05:52:56 \
veiming Exp $ </span><span class="cx">  *
</span><del>- * Portions Copyrighted 2014 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package com.sun.identity.policy;
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx">         ReferralPrivilegeManager rfm = new \
ReferralPrivilegeManager(&quot;/&quot;, </span><span class="cx">             \
adminSubject); </span><span class="cx">         SearchFilter f = new SearchFilter(
</span><del>-            Privilege.NAME_ATTRIBUTE, &quot;*&quot;);
</del><ins>+            Privilege.NAME_SEARCH_ATTRIBUTE, &quot;*&quot;);
</ins><span class="cx">         ReferralPrivilege ref = \
rfm.findByName(REFERRAL_POLICY_NAME1); </span><span class="cx">         \
Map&lt;String, Set&lt;String&gt;&gt; map = ref.getMapApplNameToResources(); \
</span><span class="cx">         if ((map == null) || map.isEmpty()) { \
</span></span></pre></div> <a \
id="trunkopenamopenamrestsrcmainjavacomsunidentityrestPrivilegeResourcejava"></a> \
<div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/com/sun/identity/rest/PrivilegeResource.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/com/sun/identity/rest/PrivilegeResource.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/com/sun/identity/rest/PrivilegeResource.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx">  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><span class="cx">  * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: PrivilegeResource.java,v 1.5 2009/12/15 00:44:19 \
veiming Exp $ </span><span class="cx">  *
</span><del>- * Portions Copyrighted 2014 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package com.sun.identity.rest;
</span><span class="lines">@@ -33,6 +33,8 @@
</span><span class="cx"> import com.sun.identity.entitlement.Privilege;
</span><span class="cx"> import com.sun.identity.entitlement.PrivilegeManager;
</span><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><ins>+import com.sun.identity.entitlement.xacml3.SearchFilterFactory;
+
</ins><span class="cx"> import java.util.Collections;
</span><span class="cx"> import java.util.HashSet;
</span><span class="cx"> import java.util.List;
</span><span class="lines">@@ -239,7 +241,7 @@
</span><span class="cx">             if \
((attrName.equals(Privilege.LAST_MODIFIED_DATE_ATTRIBUTE)) || </span><span \
class="cx">                 (attrName.equals(Privilege.CREATION_DATE_ATTRIBUTE))) { \
</span><span class="cx">                 try { </span><del>-                    sf = \
new SearchFilter(attrName, </del><ins>+                    sf = new \
SearchFilter(SearchFilterFactory.getSearchAttribute(attrName), </ins><span \
class="cx">                         Long.parseLong(f.substring(idx + 1)), \
</span><span class="cx">                         \
SearchFilter.Operator.EQUALS_OPERATOR); </span><span class="cx">                 } \
catch (NumberFormatException e) { </span><span class="lines">@@ -247,7 +249,7 @@
</span><span class="cx">                     throw new EntitlementException(328, \
param); </span><span class="cx">                 }
</span><span class="cx">             } else {
</span><del>-                sf = new SearchFilter(attrName, f.substring(idx + 1));
</del><ins>+                sf = new \
SearchFilter(SearchFilterFactory.getSearchAttribute(attrName), f.substring(idx + 1)); \
</ins><span class="cx">             } </span><span class="cx">         }
</span><span class="cx">         return sf;
</span><span class="lines">@@ -263,7 +265,7 @@
</span><span class="cx">             if \
((attrName.equals(Privilege.LAST_MODIFIED_DATE_ATTRIBUTE)) || </span><span \
class="cx">                 (attrName.equals(Privilege.CREATION_DATE_ATTRIBUTE))) { \
</span><span class="cx">                 try { </span><del>-                    sf = \
new SearchFilter(attrName, </del><ins>+                    sf = new \
SearchFilter(SearchFilterFactory.getSearchAttribute(attrName), </ins><span \
class="cx">                         Long.parseLong(f.substring(idx + 1)), \
</span><span class="cx">                         \
SearchFilter.Operator.EQUALS_OPERATOR); </span><span class="cx">                 } \
catch (NumberFormatException e) { </span></span></pre></div>
<a id="trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsReferralsResourceV1java"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/ReferralsResourceV1.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/ReferralsResourceV1.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/ReferralsResourceV1.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx"> * information: &quot;Portions \
copyright [year] [name of copyright owner]&quot;. </span><span class="cx"> *
</span><del>-* Copyright 2014 ForgeRock AS.
</del><ins>+* Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx"> package org.forgerock.openam.forgerockrest.entitlements;
</span><span class="cx"> 
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">         this.debug = debug;
</span><span class="cx"> 
</span><span class="cx">         queryAttributes = new HashMap&lt;String, \
QueryAttribute&gt;(); </span><del>-        \
queryAttributes.put(&quot;applicationName&quot;, new QueryAttribute(STRING, \
Privilege.APPLICATION_ATTRIBUTE)); </del><ins>+        \
queryAttributes.put(&quot;applicationName&quot;, new QueryAttribute(STRING, \
Privilege.APPLICATION_SEARCH_ATTRIBUTE)); </ins><span class="cx"> 
</span><span class="cx">         \
mapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES); \
</span><span class="cx">     } </span></span></pre></div>
<a id="trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsqueryAttributeTypejava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/AttributeType.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/AttributeType.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/AttributeType.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,11 +11,12 @@
</span><span class="cx">  * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx">  * information: &quot;Portions \
copyright [year] [name of copyright owner]&quot;. </span><span class="cx">  *
</span><del>- * Copyright 2014 ForgeRock AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package \
org.forgerock.openam.forgerockrest.entitlements.query; </span><span class="cx"> 
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> import com.sun.identity.shared.DateUtils;
</span><span class="cx"> 
</span><span class="lines">@@ -30,7 +31,7 @@
</span><span class="cx"> public enum AttributeType {
</span><span class="cx">     STRING {
</span><span class="cx">         @Override
</span><del>-        public SearchFilter getFilter(String field, \
SearchFilter.Operator operator, Object value) { </del><ins>+        public \
SearchFilter getFilter(SearchAttribute field, SearchFilter.Operator operator, Object \
value) { </ins><span class="cx">             if (operator != \
SearchFilter.Operator.EQUALS_OPERATOR) { </span><span class="cx">                 \
throw new UnsupportedOperationException(&quot;Only equality supported for string \
attributes&quot;); </span><span class="cx">             }
</span><span class="lines">@@ -39,7 +40,7 @@
</span><span class="cx">     },
</span><span class="cx">     NUMBER {
</span><span class="cx">         @Override
</span><del>-        public SearchFilter getFilter(String field, \
SearchFilter.Operator operator, Object value) { </del><ins>+        public \
SearchFilter getFilter(SearchAttribute field, SearchFilter.Operator operator, Object \
value) { </ins><span class="cx">             try {
</span><span class="cx">                 return new SearchFilter(field, ((Number) \
value).longValue(), operator); </span><span class="cx">             } catch \
(ClassCastException ex) { </span><span class="lines">@@ -49,7 +50,7 @@
</span><span class="cx">     },
</span><span class="cx">     TIMESTAMP {
</span><span class="cx">         @Override
</span><del>-        public SearchFilter getFilter(String field, \
SearchFilter.Operator operator, Object value) { </del><ins>+        public \
SearchFilter getFilter(SearchAttribute field, SearchFilter.Operator operator, Object \
value) { </ins><span class="cx">             try {
</span><span class="cx">                 Date timestamp = \
DateUtils.stringToDate(value.toString()); </span><span class="cx">                 \
return new SearchFilter(field, timestamp.getTime(), operator); </span><span \
class="lines">@@ -70,5 +71,5 @@ </span><span class="cx">      * @throws \
UnsupportedOperationException if the operator is invalid for this attribute type. \
</span><span class="cx">      * @throws IllegalArgumentException if the value is not \
of a type that this attribute can handle. </span><span class="cx">      */
</span><del>-    public abstract SearchFilter getFilter(String field, \
SearchFilter.Operator operator, Object value); </del><ins>+    public abstract \
SearchFilter getFilter(SearchAttribute field, SearchFilter.Operator operator, Object \
value); </ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsqueryQueryAttributejava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/QueryAttribute.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/QueryAttribute.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/QueryAttribute.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,11 +11,12 @@
</span><span class="cx">  * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx">  * information: &quot;Portions \
copyright [year] [name of copyright owner]&quot;. </span><span class="cx">  *
</span><del>- * Copyright 2014 ForgeRock, AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package \
org.forgerock.openam.forgerockrest.entitlements.query; </span><span class="cx"> 
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> import org.forgerock.util.Reject;
</span><span class="cx"> 
</span><span class="lines">@@ -26,12 +27,12 @@
</span><span class="cx">  */
</span><span class="cx"> public final class QueryAttribute {
</span><span class="cx">     private final AttributeType type;
</span><del>-    private final String attributeName;
</del><ins>+    private final SearchAttribute attribute;
</ins><span class="cx"> 
</span><del>-    public QueryAttribute(AttributeType type, String attributeName) {
-        Reject.ifNull(type, attributeName);
</del><ins>+    public QueryAttribute(AttributeType type, SearchAttribute attribute) \
{ +        Reject.ifNull(type, attribute);
</ins><span class="cx">         this.type = type;
</span><del>-        this.attributeName = attributeName;
</del><ins>+        this.attribute = attribute;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span><span class="lines">@@ -45,6 +46,6 @@
</span><span class="cx">      */
</span><span class="cx">     public SearchFilter getFilter(SearchFilter.Operator \
operator, Object value) { </span><span class="cx">         Reject.ifNull(operator, \
value); </span><del>-        return type.getFilter(attributeName, operator, value);
</del><ins>+        return type.getFilter(attribute, operator, value);
</ins><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestguiceForgerockRestGuiceModulejava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -421,14 +421,14 @@
</span><span class="cx">         public Map&lt;String, QueryAttribute&gt; get() {
</span><span class="cx">             final Map&lt;String, QueryAttribute&gt; \
attributes = new HashMap&lt;String, QueryAttribute&gt;(); </span><span class="cx"> 
</span><del>-            attributes.put(&quot;name&quot;, new QueryAttribute(STRING, \
                Privilege.NAME_ATTRIBUTE));
-            attributes.put(&quot;description&quot;, new QueryAttribute(STRING, \
                Privilege.DESCRIPTION_ATTRIBUTE));
-            attributes.put(&quot;applicationName&quot;, new QueryAttribute(STRING, \
                Privilege.APPLICATION_ATTRIBUTE));
-            attributes.put(&quot;createdBy&quot;, new QueryAttribute(STRING, \
                Privilege.CREATED_BY_ATTRIBUTE));
-            attributes.put(&quot;creationDate&quot;, new QueryAttribute(TIMESTAMP, \
                Privilege.CREATION_DATE_ATTRIBUTE));
-            attributes.put(&quot;lastModifiedBy&quot;, new QueryAttribute(STRING, \
                Privilege.LAST_MODIFIED_BY_ATTRIBUTE));
-            attributes.put(&quot;lastModifiedDate&quot;, new \
                QueryAttribute(TIMESTAMP, Privilege.LAST_MODIFIED_DATE_ATTRIBUTE));
-            attributes.put(&quot;resourceTypeUuid&quot;, new QueryAttribute(STRING, \
Privilege.RESOURCE_TYPE_UUID_ATTRIBUTE)); </del><ins>+            \
attributes.put(&quot;name&quot;, new QueryAttribute(STRING, \
Privilege.NAME_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;description&quot;, new QueryAttribute(STRING, \
Privilege.DESCRIPTION_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;applicationName&quot;, new QueryAttribute(STRING, \
Privilege.APPLICATION_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;createdBy&quot;, new QueryAttribute(STRING, \
Privilege.CREATED_BY_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;creationDate&quot;, new QueryAttribute(TIMESTAMP, \
Privilege.CREATION_DATE_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;lastModifiedBy&quot;, new QueryAttribute(STRING, \
Privilege.LAST_MODIFIED_BY_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;lastModifiedDate&quot;, new QueryAttribute(TIMESTAMP, \
Privilege.LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;resourceTypeUuid&quot;, new QueryAttribute(STRING, \
Privilege.RESOURCE_TYPE_UUID_SEARCH_ATTRIBUTE)); </ins><span class="cx"> 
</span><span class="cx">             return attributes;
</span><span class="cx">         }
</span><span class="lines">@@ -442,12 +442,12 @@
</span><span class="cx">         public Map&lt;String, QueryAttribute&gt; get() {
</span><span class="cx">             final Map&lt;String, QueryAttribute&gt; \
attributes = new HashMap&lt;String, QueryAttribute&gt;(); </span><span class="cx"> 
</span><del>-            attributes.put(&quot;name&quot;, new QueryAttribute(STRING, \
                Application.NAME_ATTRIBUTE));
-            attributes.put(&quot;description&quot;, new QueryAttribute(STRING, \
                Application.DESCRIPTION_ATTRIBUTE));
-            attributes.put(&quot;createdBy&quot;, new QueryAttribute(STRING, \
                Application.CREATED_BY_ATTRIBUTE));
-            attributes.put(&quot;creationDate&quot;, new QueryAttribute(TIMESTAMP, \
                Application.CREATION_DATE_ATTRIBUTE));
-            attributes.put(&quot;lastModifiedBy&quot;, new QueryAttribute(STRING, \
                Application.LAST_MODIFIED_BY_ATTRIBUTE));
-            attributes.put(&quot;lastModifiedDate&quot;, new \
QueryAttribute(TIMESTAMP, Application.LAST_MODIFIED_DATE_ATTRIBUTE)); </del><ins>+    \
attributes.put(&quot;name&quot;, new QueryAttribute(STRING, \
Application.NAME_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;description&quot;, new QueryAttribute(STRING, \
Application.DESCRIPTION_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;createdBy&quot;, new QueryAttribute(STRING, \
Application.CREATED_BY_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;creationDate&quot;, new QueryAttribute(TIMESTAMP, \
Application.CREATION_DATE_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;lastModifiedBy&quot;, new QueryAttribute(STRING, \
Application.LAST_MODIFIED_BY_SEARCH_ATTRIBUTE)); +            \
attributes.put(&quot;lastModifiedDate&quot;, new QueryAttribute(TIMESTAMP, \
Application.LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE)); </ins><span class="cx"> 
</span><span class="cx">             return attributes;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkopenamopenamrestsrctestjavaorgforgerockopenamforgerockrestentitlementsApplicationsResourceTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/ApplicationsResourceTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/ApplicationsResourceTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/ApplicationsResourceTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -18,6 +18,7 @@
</span><span class="cx"> 
</span><span class="cx"> import com.sun.identity.entitlement.Application;
</span><span class="cx"> import com.sun.identity.entitlement.EntitlementException;
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> import com.sun.identity.shared.DateUtils;
</span><span class="cx"> import com.sun.identity.shared.debug.Debug;
</span><span class="lines">@@ -111,9 +112,9 @@
</span><span class="cx">         applicationWrapper = mock(ApplicationWrapper.class);
</span><span class="cx"> 
</span><span class="cx">         queryAttributes = new HashMap&lt;String, \
QueryAttribute&gt;(); </span><del>-        queryAttributes.put(STRING_ATTRIBUTE, new \
                QueryAttribute(AttributeType.STRING, STRING_ATTRIBUTE));
-        queryAttributes.put(NUMERIC_ATTRIBUTE, new \
                QueryAttribute(AttributeType.NUMBER, NUMERIC_ATTRIBUTE));
-        queryAttributes.put(DATE_ATTRIBUTE, new \
QueryAttribute(AttributeType.TIMESTAMP, DATE_ATTRIBUTE)); </del><ins>+        \
queryAttributes.put(STRING_ATTRIBUTE, new QueryAttribute(AttributeType.STRING, new \
SearchAttribute(STRING_ATTRIBUTE, &quot;ou&quot;))); +        \
queryAttributes.put(NUMERIC_ATTRIBUTE, new QueryAttribute(AttributeType.NUMBER, new \
SearchAttribute(NUMERIC_ATTRIBUTE, &quot;ou&quot;))); +        \
queryAttributes.put(DATE_ATTRIBUTE, new QueryAttribute(AttributeType.TIMESTAMP, new \
SearchAttribute(DATE_ATTRIBUTE, &quot;ou&quot;))); </ins><span class="cx"> 
</span><span class="cx">         applicationsResource = new ApplicationsResource(
</span><span class="cx">                 debug, applicationManagerWrapper, \
applicationTypeManagerWrapper, queryAttributes, resourceErrorHandler) { </span><span \
class="lines">@@ -1143,7 +1144,7 @@ </span><span class="cx">         \
applicationsResource.query(request, subject, &quot;/abc&quot;); </span><span \
class="cx">  </span><span class="cx">         // Then
</span><del>-        SearchFilter searchFilter = new SearchFilter(STRING_ATTRIBUTE, \
value); </del><ins>+        SearchFilter searchFilter = new SearchFilter(new \
SearchAttribute(STRING_ATTRIBUTE, &quot;ou&quot;), value); </ins><span class="cx">    \
verify(applicationManagerWrapper).search(eq(subject), eq(&quot;/abc&quot;), \
eq(asSet(searchFilter))); </span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1170,7 +1171,7 @@
</span><span class="cx">         applicationsResource.query(request, subject, \
&quot;/abc&quot;); </span><span class="cx"> 
</span><span class="cx">         // Then
</span><del>-        SearchFilter searchFilter = new SearchFilter(NUMERIC_ATTRIBUTE, \
value, expectedOperator); </del><ins>+        SearchFilter searchFilter = new \
SearchFilter(new SearchAttribute(NUMERIC_ATTRIBUTE, &quot;ou&quot;), value, \
expectedOperator); </ins><span class="cx">         \
verify(applicationManagerWrapper).search(eq(subject), eq(&quot;/abc&quot;), \
eq(asSet(searchFilter))); </span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1221,7 +1222,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Then
</span><span class="cx">         // Date should be converted into a time-stamp long \
value </span><del>-        SearchFilter searchFilter = new \
SearchFilter(DATE_ATTRIBUTE, value.getTime(), expectedOperator); </del><ins>+        \
SearchFilter searchFilter = new SearchFilter(new SearchAttribute(DATE_ATTRIBUTE, \
&quot;ou&quot;), value.getTime(), expectedOperator); </ins><span class="cx">         \
verify(applicationManagerWrapper).search(eq(subject), eq(&quot;/abc&quot;), \
eq(asSet(searchFilter))); </span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1251,8 +1252,8 @@
</span><span class="cx">         applicationsResource.query(request, subject, \
&quot;/abc&quot;); </span><span class="cx"> 
</span><span class="cx">         // Then
</span><del>-        SearchFilter searchFilter1 = new SearchFilter(STRING_ATTRIBUTE, \
                value1);
-        SearchFilter searchFilter2 = new SearchFilter(STRING_ATTRIBUTE, value2);
</del><ins>+        SearchFilter searchFilter1 = new SearchFilter(new \
SearchAttribute(STRING_ATTRIBUTE, &quot;ou&quot;), value1); +        SearchFilter \
searchFilter2 = new SearchFilter(new SearchAttribute(STRING_ATTRIBUTE, \
&quot;ou&quot;), value2); </ins><span class="cx">         \
verify(applicationManagerWrapper).search(eq(subject), eq(&quot;/abc&quot;), \
eq(asSet(searchFilter1, searchFilter2))); </span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkopenamopenamrestsrctestjavaorgforgerockopenamforgerockrestentitlementsPrivilegePolicyStoreTestjava"></a>
 <div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java	2015-04-30 \
                18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java	2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx">  * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx">  * information: &quot;Portions \
copyright [year] [name of copyright owner]&quot;. </span><span class="cx">  *
</span><del>- * Copyright 2014 ForgeRock AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> package org.forgerock.openam.forgerockrest.entitlements;
</span><span class="lines">@@ -19,6 +19,7 @@
</span><span class="cx"> import com.sun.identity.entitlement.EntitlementException;
</span><span class="cx"> import com.sun.identity.entitlement.Privilege;
</span><span class="cx"> import com.sun.identity.entitlement.PrivilegeManager;
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> import com.sun.identity.shared.DateUtils;
</span><span class="cx"> import org.forgerock.json.resource.QueryFilter;
</span><span class="lines">@@ -51,6 +52,9 @@
</span><span class="cx">     private static final String STRING_ATTRIBUTE = \
&quot;stringAttribute&quot;; </span><span class="cx">     private static final String \
DATE_ATTRIBUTE = &quot;dateAttribute&quot;; </span><span class="cx">     private \
static final String NUMERIC_ATTRIBUTE = &quot;numberAttribute&quot;; </span><ins>+    \
private static final SearchAttribute STRING_SEARCH_ATTRIBUTE = new \
SearchAttribute(STRING_ATTRIBUTE, &quot;ou&quot;); +    private static final \
SearchAttribute DATE_SEARCH_ATTRIBUTE = new SearchAttribute(DATE_ATTRIBUTE, \
&quot;ou&quot;); +    private static final SearchAttribute NUMERIC_SEARCH_ATTRIBUTE = \
new SearchAttribute(&quot;numberAttribute&quot;, &quot;ou&quot;); </ins><span \
class="cx">  </span><span class="cx">     private PrivilegeManager mockManager;
</span><span class="cx">     private PrivilegePolicyStore testStore;
</span><span class="lines">@@ -70,9 +74,9 @@
</span><span class="cx">         mockManager = mock(PrivilegeManager.class);
</span><span class="cx"> 
</span><span class="cx">         Map&lt;String, QueryAttribute&gt; queryAttributes = \
new HashMap&lt;String, QueryAttribute&gt;(); </span><del>-        \
queryAttributes.put(STRING_ATTRIBUTE, new QueryAttribute(AttributeType.STRING, \
                STRING_ATTRIBUTE));
-        queryAttributes.put(NUMERIC_ATTRIBUTE, new \
                QueryAttribute(AttributeType.NUMBER, NUMERIC_ATTRIBUTE));
-        queryAttributes.put(DATE_ATTRIBUTE, new \
QueryAttribute(AttributeType.TIMESTAMP, DATE_ATTRIBUTE)); </del><ins>+        \
queryAttributes.put(STRING_ATTRIBUTE, new QueryAttribute(AttributeType.STRING, \
STRING_SEARCH_ATTRIBUTE)); +        queryAttributes.put(NUMERIC_ATTRIBUTE, new \
QueryAttribute(AttributeType.NUMBER, NUMERIC_SEARCH_ATTRIBUTE)); +        \
queryAttributes.put(DATE_ATTRIBUTE, new QueryAttribute(AttributeType.TIMESTAMP, \
DATE_SEARCH_ATTRIBUTE)); </ins><span class="cx"> 
</span><span class="cx">         testStore = new PrivilegePolicyStore(mockManager, \
queryAttributes); </span><span class="cx">     }
</span><span class="lines">@@ -181,7 +185,7 @@
</span><span class="cx">         testStore.query(request);
</span><span class="cx"> 
</span><span class="cx">         // Then
</span><del>-        verify(mockManager).search(singleton(new \
SearchFilter(STRING_ATTRIBUTE, value))); </del><ins>+        \
verify(mockManager).search(singleton(new SearchFilter(STRING_SEARCH_ATTRIBUTE, \
value))); </ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @DataProvider(name = \
&quot;SupportedQueryOperators&quot;) </span><span class="lines">@@ -207,7 +211,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Then
</span><span class="cx">         verify(mockManager).search(singleton(
</span><del>-                new SearchFilter(NUMERIC_ATTRIBUTE, value, \
expectedOperator))); </del><ins>+                new \
SearchFilter(NUMERIC_SEARCH_ATTRIBUTE, value, expectedOperator))); </ins><span \
class="cx">     } </span><span class="cx"> 
</span><span class="cx">     @DataProvider(name = &quot;UnsupportedOperators&quot;)
</span><span class="lines">@@ -253,7 +257,7 @@
</span><span class="cx">         // Then
</span><span class="cx">         // Date should be converted into a time-stamp long \
value </span><span class="cx">         verify(mockManager).search(
</span><del>-                singleton(new SearchFilter(DATE_ATTRIBUTE, \
value.getTime(), expectedOperator))); </del><ins>+                singleton(new \
SearchFilter(DATE_SEARCH_ATTRIBUTE, value.getTime(), expectedOperator))); </ins><span \
class="cx">     } </span><span class="cx"> 
</span><span class="cx">     @Test(expectedExceptions = EntitlementException.class, \
expectedExceptionsMessageRegExp = &quot;.*not supported.*&quot;) </span><span \
class="lines">@@ -281,8 +285,8 @@ </span><span class="cx"> 
</span><span class="cx">         // Then
</span><span class="cx">         verify(mockManager).search(
</span><del>-                asSet(new SearchFilter(STRING_ATTRIBUTE, value1),
-                        new SearchFilter(STRING_ATTRIBUTE, value2)));
</del><ins>+                asSet(new SearchFilter(STRING_SEARCH_ATTRIBUTE, value1),
+                        new SearchFilter(STRING_SEARCH_ATTRIBUTE, value2)));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @Test(expectedExceptions = EntitlementException.class, \
expectedExceptionsMessageRegExp = &quot;.*'Or' not supported.*&quot;) \
</span></span></pre> </div>
</div>
<div id="footer">Copyright (c) by ForgeRock. All rights reserved.</div>

</body>
</html>



_______________________________________________
CommitOpenAM mailing list
CommitOpenAM@forgerock.org
https://lists.forgerock.org/mailman/listinfo/commitopenam


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic