JBoss Portal SVN: r6345 - trunk/core/src/main/org/jboss/portal/core/impl/model/portal/content.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-19 15:36:03 -0500 (Mon, 19 Feb 2007)
New Revision: 6345
Modified:
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/content/PortletContentRenderer.java
Log:
more verbose logging on portlet invoker exception during render on the console
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/content/PortletContentRenderer.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/content/PortletContentRenderer.java 2007-02-19 18:18:08 UTC (rev 6344)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/content/PortletContentRenderer.java 2007-02-19 20:36:03 UTC (rev 6345)
@@ -162,8 +162,12 @@
}
catch (PortletInvokerException e)
{
+ log.error("Portlet invoker exception during portlet window rendering", e);
+
+ //
if (e instanceof NoSuchPortletException)
{
+
throw new ResourceNotFoundException(((NoSuchPortletException)e).getPortletId());
}
else
19 years, 2 months
JBoss Portal SVN: r6344 - in trunk: identity/src/main/org/jboss/portal/identity/auth and 1 other directory.
by portal-commits@lists.jboss.org
Author: bdaw
Date: 2007-02-19 13:18:08 -0500 (Mon, 19 Feb 2007)
New Revision: 6344
Modified:
trunk/core/src/resources/portal-core-sar/conf/login-config.xml
trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java
trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java
Log:
- make user synchronized from LDAP enabled after creation.
Modified: trunk/core/src/resources/portal-core-sar/conf/login-config.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/login-config.xml 2007-02-19 18:09:29 UTC (rev 6343)
+++ trunk/core/src/resources/portal-core-sar/conf/login-config.xml 2007-02-19 18:18:08 UTC (rev 6344)
@@ -60,20 +60,21 @@
It is also possible to set option "synchronizeIdentity" to "false" so this module will act exactly like LdapExtLoginModule
but it will inject role defined in "additionalRole". For obvious reasons
this is designed to use with portal identity modules configured with DB and not LDAP-->
- <!--There is also SynchronizingLdapLoginModule which provide the same set of options on top of JBossSX LdapLoginModule-->
+ <!--There is also SynchronizingLDAPLoginModule which provide the same set of options on top of JBossSX LdapLoginModule-->
<!--<login-module code="org.jboss.portal.identity.auth.SynchronizingLDAPExtLoginModule" flag="required">
<module-option name="synchronizeIdentity">true</module-option>
- <module-option name="synchronizeRoles">false</module-option>
+ <module-option name="synchronizeRoles">true</module-option>
<module-option name="additionalRole">Authenticated</module-option>
<module-option name="defaultAssignedRole">User</module-option>
<module-option name="userModuleJNDIName">java:/portal/UserModule</module-option>
<module-option name="roleModuleJNDIName">java:/portal/RoleModule</module-option>
<module-option name="membershipModuleJNDIName">java:/portal/MembershipModule</module-option>
+ <module-option name="userProfileModuleJNDIName">java:/portal/UserProfileModule</module-option>
<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
- <module-option name="java.naming.provider.url">ldap://example.com:10389/</module-option>
+ <module-option name="java.naming.provider.url">ldap://dev39.qa.atl.jboss.com:10389/</module-option>
<module-option name="java.naming.security.authentication">simple</module-option>
<module-option name="bindDN">cn=Directory Manager</module-option>
- <module-option name="bindCredential">lolo</module-option>
+ <module-option name="bindCredential">qpq123qpq</module-option>
<module-option name="baseCtxDN">ou=People,o=test,dc=portal,dc=qa,dc=atl,dc=jboss,dc=com</module-option>
<module-option name="baseFilter">(uid={0})</module-option>
<module-option name="rolesCtxDN">ou=Roles,o=test,dc=portal,dc=qa,dc=atl,dc=jboss,dc=com</module-option>
@@ -82,6 +83,7 @@
<module-option name="roleRecursion">-1</module-option>
<module-option name="searchTimeLimit">10000</module-option>
<module-option name="searchScope">SUBTREE_SCOPE</module-option>
+ <module-option name="allowEmptyPasswords">false</module-option>
</login-module>-->
Modified: trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java 2007-02-19 18:09:29 UTC (rev 6343)
+++ trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java 2007-02-19 18:18:08 UTC (rev 6344)
@@ -29,6 +29,7 @@
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.Role;
import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.UserProfileModule;
import org.jboss.portal.common.transaction.Transactions;
import javax.security.auth.Subject;
@@ -49,6 +50,9 @@
*/
public class SynchronizingLDAPExtLoginModule extends LdapExtLoginModule
{
+ private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(SynchronizingLDAPExtLoginModule.class);
+
+
protected String additionalRole;
protected String defaultAssignedRole;
protected String synchronizeIdentity;
@@ -56,11 +60,13 @@
protected String userModuleJNDIName;
protected String roleModuleJNDIName;
protected String membershipModuleJNDIName;
+ protected String userProfileModuleJNDIName;
private UserModule userModule;
private RoleModule roleModule;
private MembershipModule membershipModule;
+ private UserProfileModule userProfileModule;
public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options)
{
@@ -71,6 +77,7 @@
userModuleJNDIName = (String)options.get("userModuleJNDIName");
roleModuleJNDIName = (String)options.get("roleModuleJNDIName");
membershipModuleJNDIName = (String)options.get("membershipModuleJNDIName");
+ userProfileModuleJNDIName = (String)options.get("userProfileModuleJNDIName");
additionalRole = (String)options.get("additionalRole");
synchronizeIdentity = (String)options.get("synchronizeIdentity");
synchronizeRoles = (String)options.get("synchronizeRoles");
@@ -81,6 +88,7 @@
log.trace("userModuleJNDIName = " + userModuleJNDIName);
log.trace("roleModuleJNDIName = " + roleModuleJNDIName);
log.trace("membershipModuleJNDIName = " + membershipModuleJNDIName);
+ log.trace("userProfileModuleJNDIName = " + userProfileModuleJNDIName);
log.trace("synchronizeIdentity = " + synchronizeIdentity);
log.trace("synchronizeRoles = " + synchronizeRoles);
log.trace("defaultAssignedRole = " + defaultAssignedRole);
@@ -128,7 +136,21 @@
return membershipModule;
}
+ protected UserProfileModule getUserProfileModule() throws Exception
+ {
+ if (userProfileModule == null)
+ {
+ userProfileModule = (UserProfileModule)new InitialContext().lookup(userProfileModuleJNDIName);
+ }
+ if (userProfileModule == null)
+ {
+ throw new IdentityException("Cannot obtain UserProfileModule using JNDI name:" + userProfileModuleJNDIName);
+ }
+ return userProfileModule;
+ }
+
+
protected boolean validatePassword(String string, String string1)
{
boolean validate = super.validatePassword(string, string1);
@@ -233,6 +255,8 @@
if (user == null)
{
user = getUserModule().createUser(name, password);
+ getUserProfileModule().setProperty(user, User.INFO_USER_ENABLED, Boolean.TRUE);
+
}
Set rolesToAssign = new HashSet();
Modified: trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java 2007-02-19 18:09:29 UTC (rev 6343)
+++ trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java 2007-02-19 18:18:08 UTC (rev 6344)
@@ -29,6 +29,7 @@
import org.jboss.portal.identity.IdentityException;
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.Role;
+import org.jboss.portal.identity.UserProfileModule;
import org.jboss.portal.common.transaction.Transactions;
import javax.security.auth.Subject;
@@ -49,6 +50,8 @@
*/
public class SynchronizingLDAPLoginModule extends LdapLoginModule
{
+ private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(SynchronizingLDAPLoginModule.class);
+
protected String additionalRole;
protected String defaultAssignedRole;
protected String synchronizeIdentity;
@@ -56,21 +59,23 @@
protected String userModuleJNDIName;
protected String roleModuleJNDIName;
protected String membershipModuleJNDIName;
+ protected String userProfileModuleJNDIName;
private UserModule userModule;
private RoleModule roleModule;
private MembershipModule membershipModule;
+ private UserProfileModule userProfileModule;
public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options)
{
super.initialize(subject, callbackHandler, sharedState, options);
- // Get data
userModuleJNDIName = (String)options.get("userModuleJNDIName");
roleModuleJNDIName = (String)options.get("roleModuleJNDIName");
membershipModuleJNDIName = (String)options.get("membershipModuleJNDIName");
+ userProfileModuleJNDIName = (String)options.get("userProfileModuleJNDIName");
additionalRole = (String)options.get("additionalRole");
synchronizeIdentity = (String)options.get("synchronizeIdentity");
synchronizeRoles = (String)options.get("synchronizeRoles");
@@ -81,6 +86,7 @@
log.trace("userModuleJNDIName = " + userModuleJNDIName);
log.trace("roleModuleJNDIName = " + roleModuleJNDIName);
log.trace("membershipModuleJNDIName = " + membershipModuleJNDIName);
+ log.trace("userProfileModuleJNDIName = " + userProfileModuleJNDIName);
log.trace("synchronizeIdentity = " + synchronizeIdentity);
log.trace("synchronizeRoles = " + synchronizeRoles);
log.trace("defaultAssignedRole = " + defaultAssignedRole);
@@ -128,7 +134,21 @@
return membershipModule;
}
+ protected UserProfileModule getUserProfileModule() throws Exception
+ {
+ if (userProfileModule == null)
+ {
+ userProfileModule = (UserProfileModule)new InitialContext().lookup(userProfileModuleJNDIName);
+ }
+ if (userProfileModule == null)
+ {
+ throw new IdentityException("Cannot obtain UserProfileModule using JNDI name:" + userProfileModuleJNDIName);
+ }
+ return userProfileModule;
+ }
+
+
protected boolean validatePassword(String string, String string1)
{
boolean validate = super.validatePassword(string, string1);
@@ -233,6 +253,7 @@
if (user == null)
{
user = getUserModule().createUser(name, password);
+ getUserProfileModule().setProperty(user, User.INFO_USER_ENABLED, Boolean.TRUE);
}
Set rolesToAssign = new HashSet();
19 years, 2 months
JBoss Portal SVN: r6343 - trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-02-19 13:09:29 -0500 (Mon, 19 Feb 2007)
New Revision: 6343
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/RegistrationInfo.java
Log:
- Improvements to refresh method.
- Started cleaning-up code to move to persistent implementation.
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java 2007-02-19 16:08:59 UTC (rev 6342)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/ProducerInfo.java 2007-02-19 18:09:29 UTC (rev 6343)
@@ -61,10 +61,26 @@
public class ProducerInfo
{
private final Logger log = Logger.getLogger(getClass());
- private EndpointConfigurationInfo endpointConfigurationInfo;
- private RegistrationInfo registrationInfo;
- private String producerId;
+
+ // Persistent information
+
+ /** Configuration of the remote WS endpoints */
+ private EndpointConfigurationInfo persistentEndpointInfo;
+
+ /** Registration information */
+ private RegistrationInfo persistentRegistrationInfo;
+
+ /** The Producer's identifier */
+ private String persistentId;
+
+ /** The cache expiration duration (in seconds) for cached values */
+ private Integer persitentExpirationCacheSeconds;
+
+ // Transient information
+
+ /** The Cookie handling policy required by the Producer */
private CookieProtocol requiresInitCookie;
+
private boolean isInitialized;
/** The Producer-Offered Portlets (handle -> WSRPPortlet) */
@@ -73,10 +89,7 @@
/** Portlet groups. */
private Map portletGroups;
- /** The cache expiration duration (in seconds) for cached values */
- private Integer expirationCacheSeconds;
-
- /** . */
+ /** Time at which the cache expires */
private long expirationTimeMillis;
/** The service description request sent to producer before registration happens. */
@@ -98,29 +111,29 @@
public ProducerInfo()
{
unregisteredServiceDescriptionRequest = initUnregisteredServiceDescriptionRequest();
- endpointConfigurationInfo = new EndpointConfigurationInfo(this);
- registrationInfo = RegistrationInfo.REGISTRATION_NOT_NEEDED;
+ persistentEndpointInfo = new EndpointConfigurationInfo(this);
+ persistentRegistrationInfo = RegistrationInfo.REGISTRATION_NOT_NEEDED;
}
public EndpointConfigurationInfo getEndpointConfigurationInfo()
{
- return endpointConfigurationInfo;
+ return persistentEndpointInfo;
}
void setEndpointConfigurationInfo(EndpointConfigurationInfo endpointConfigurationInfo)
{
- this.endpointConfigurationInfo = endpointConfigurationInfo;
+ this.persistentEndpointInfo = endpointConfigurationInfo;
}
public RegistrationInfo getRegistrationInfo()
{
- return registrationInfo;
+ return persistentRegistrationInfo;
}
void setRegistrationInfo(RegistrationInfo registrationInfo)
{
- this.registrationInfo = registrationInfo;
+ this.persistentRegistrationInfo = registrationInfo;
}
CookieProtocol getRequiresInitCookie()
@@ -128,74 +141,80 @@
return requiresInitCookie;
}
- private boolean isInitialized()
- {
- return isInitialized;
- }
-
+ /**
+ * Refreshes the producer's information from the service description if required.
+ *
+ * @param forceRefresh whether or not to force a refresh regardless of whether one would have been required based on
+ * cache expiration
+ * @return <code>true</code> if the producer's information just was refreshed, <code>false</code>
+ * @throws PortletInvokerException
+ */
public boolean refresh(boolean forceRefresh) throws PortletInvokerException
{
ServiceDescription serviceDescription;
// might neeed a different cache value: right now, we cache the whole producer info but we might want to cache
// POPs and rest of producer info separetely...
- if (forceRefresh || isCacheExpired() || !isInitialized())
+ if (forceRefresh || isCacheExpired())
{
- log.debug("ProducerInfo refresh needed for producer '" + producerId + "'");
+ log.debug("ProducerInfo refresh needed for producer '" + persistentId + "'");
serviceDescription = getServiceDescription();
// do we need to call initCookie or not?
requiresInitCookie = serviceDescription.getRequiresInitCookie();
+ // do we need to register?
if (serviceDescription.isRequiresRegistration())
{
-
- if (registrationInfo == null)
+ // only process service description if consumer is not already registered
+ if (!persistentRegistrationInfo.isRegistrationValid())
{
- registrationInfo = new RegistrationInfo(this);
- }
+ // if this producer info was set up without any registration information, create one
+ if (RegistrationInfo.REGISTRATION_NOT_NEEDED == persistentRegistrationInfo)
+ {
+ persistentRegistrationInfo = new RegistrationInfo(this);
+ }
- // only process service description if consumer is not already registered
- if (!registrationInfo.isRegistrationValid())
- {
// check if the configured registration information is correct and if we can get the service description
- if (registrationInfo.initialize(serviceDescription, getId()))
+ if (persistentRegistrationInfo.initialize(serviceDescription, getId()))
{
try
{
log.debug("Attempting registration");
- RegistrationContext registrationContext = endpointConfigurationInfo.getRegistrationService()
- .register(registrationInfo.getRegistrationData());
+ RegistrationContext registrationContext = persistentEndpointInfo.getRegistrationService()
+ .register(persistentRegistrationInfo.getRegistrationData());
if (registrationContext == null)
{
- throw new PortletInvokerException("Received null response after registration from producer '" + producerId + "'");
+ throw new PortletInvokerException("Received null response after registration from producer '" + persistentId + "'");
}
//todo: hook to registration subsystem correctly Registration should deal with state and
// it should be possible to create a RegistrationContext from a Registration
- registrationInfo.setRegistrationContext(registrationContext);
+ persistentRegistrationInfo.setRegistrationContext(registrationContext);
log.info("Successfully registered with handle: '" + registrationContext.getRegistrationHandle() + "'");
}
catch (Exception e)
{
- registrationInfo.resetRegistration();
- throw new PortletInvokerException("Couldn't register with producer '" + producerId + "'", e);
+ persistentRegistrationInfo.resetRegistration();
+ throw new PortletInvokerException("Couldn't register with producer '" + persistentId + "'", e);
}
log.debug("Requesting service description after registration");
extractOfferedPortlets(getServiceDescription());
- isInitialized = true;
+ return true;
}
else
{
log.info("Consumer is not ready to be registered with producer because of missing or invalid registration information.");
- isInitialized = false;
+ throw new PortletInvokerException("Consumer is not ready to be registered with producer because of missing or invalid registration information.");
}
}
-
- // refresh the offered portlets
- extractOfferedPortlets(serviceDescription);
- isInitialized = true;
+ else
+ {
+ // registration is valid: just refresh the offered portlets
+ extractOfferedPortlets(serviceDescription);
+ return true;
+ }
}
else
{
@@ -203,32 +222,21 @@
setRegistrationInfo(RegistrationInfo.REGISTRATION_NOT_NEEDED);
setServiceDescriptionRequest(getUnregisteredServiceDescriptionRequest());
extractOfferedPortlets(serviceDescription);
- isInitialized = true;
+ return true;
}
-
- //todo: could extract more information here...
-
- if (isInitialized)
- {
- resetCacheTimerIfNeeded();
- }
- else
- {
- log.warn("Producer is NOT initialized.");
- }
}
- return isInitialized;
+ return false;
}
public String getId()
{
- return producerId;
+ return persistentId;
}
public void setId(String id)
{
- this.producerId = id;
+ this.persistentId = id;
}
/**
@@ -269,6 +277,9 @@
popsMap = Collections.EMPTY_MAP;
}
+ //todo: could extract more information here... and rename method more appropriately
+ resetCacheTimerIfNeeded();
+
return popsMap;
}
@@ -288,7 +299,7 @@
{
log.warn("Portlet '" + portletHandle
+ "' uses the GET method in forms. Since we don't handle this, this portlet will be excluded from " +
- "the list of offered portlets for producer " + producerId);
+ "the list of offered portlets for producer " + persistentId);
}
else
{
@@ -334,7 +345,7 @@
gpd.setUserContext(null); // todo: deal with user context!!
try
{
- PortletDescriptionResponse response = endpointConfigurationInfo.getPortletManagementService().getPortletDescription(gpd);
+ PortletDescriptionResponse response = persistentEndpointInfo.getPortletManagementService().getPortletDescription(gpd);
ParameterValidation.throwIllegalArgExceptionIfNull(response, "PortletDescriptionResponse");
return createWSRPPortletFromPortletDescription(response.getPortletDescription());
}
@@ -344,20 +355,20 @@
}
catch (Exception e)
{
- throw new InvokerUnavailableException("Couldn't access remote producer '" + producerId + "'", e);
+ throw new InvokerUnavailableException("Couldn't access remote producer '" + persistentId + "'", e);
}
}
}
public Map getPortletGroupMap() throws PortletInvokerException
{
- refreshPOPsIfNeeded();
+ refresh(false);
return portletGroups;
}
public Map getPortletMap() throws PortletInvokerException
{
- refreshPOPsIfNeeded();
+ refresh(false);
return popsMap;
}
@@ -365,26 +376,15 @@
private boolean useCache()
{
- return expirationCacheSeconds != null && expirationCacheSeconds.intValue() > 0;
+ return persitentExpirationCacheSeconds != null && persitentExpirationCacheSeconds.intValue() > 0;
}
- private void refreshPOPsIfNeeded() throws PortletInvokerException
- {
- refresh(false);
- if (isCacheExpired())
- {
- extractOfferedPortlets(getServiceDescription());
-
- resetCacheTimerIfNeeded();
- }
- }
-
private void resetCacheTimerIfNeeded()
{
if (useCache())
{
// reset expiration time
- expirationTimeMillis = System.currentTimeMillis() + (expirationCacheSeconds.intValue() * 1000);
+ expirationTimeMillis = System.currentTimeMillis() + (persitentExpirationCacheSeconds.intValue() * 1000);
}
}
@@ -399,12 +399,12 @@
public Integer getExpirationCacheSeconds()
{
- return expirationCacheSeconds;
+ return persitentExpirationCacheSeconds;
}
public void setExpirationCacheSeconds(Integer expirationCacheSeconds)
{
- this.expirationCacheSeconds = expirationCacheSeconds;
+ this.persitentExpirationCacheSeconds = expirationCacheSeconds;
}
private ServiceDescription getServiceDescription() throws PortletInvokerException
@@ -416,7 +416,7 @@
ServiceDescription serviceDescription;
try
{
- serviceDescription = endpointConfigurationInfo.getServiceDescriptionService().getServiceDescription(request);
+ serviceDescription = persistentEndpointInfo.getServiceDescriptionService().getServiceDescription(request);
if (serviceDescription != null)
{
@@ -435,7 +435,7 @@
log.debug("Caught Exception in getServiceDescription:\n", e);
Throwable cause = e.getCause();
throw new InvokerUnavailableException("Problem getting service description for producer "
- + producerId, cause == null ? e : cause);
+ + persistentId, cause == null ? e : cause);
}
}
@@ -475,12 +475,12 @@
private RegistrationContext getRegistrationContext()
{
- return registrationInfo.getRegistrationContext();
+ return persistentRegistrationInfo.getRegistrationContext();
}
public void resetRegistration() throws PortletInvokerException
{
- registrationInfo.resetRegistration();
+ persistentRegistrationInfo.resetRegistration();
refresh(true);
}
@@ -493,7 +493,7 @@
WSRP_v1_PortletManagement_PortType service = getEndpointConfigurationInfo().getPortletManagementService();
GetPortletPropertyDescription request = WSRPTypeFactory.createSimpleGetPortletPropertyDescription(portletHandle);
- request.setRegistrationContext(registrationInfo.getRegistrationContext());
+ request.setRegistrationContext(persistentRegistrationInfo.getRegistrationContext());
request.setUserContext(null); // todo: fix me!
return service.getPortletPropertyDescription(request);
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/RegistrationInfo.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/RegistrationInfo.java 2007-02-19 16:08:59 UTC (rev 6342)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/RegistrationInfo.java 2007-02-19 18:09:29 UTC (rev 6343)
@@ -58,10 +58,10 @@
private final Logger log = Logger.getLogger(getClass());
private Registration registration;
private boolean requiresRegistration;
- private Map registrationProperties;
- private RegistrationData registrationData;
- private boolean isRegistrationValid;
- private RegistrationContext registrationContext; // todo: remove
+ private Map registrationProperties; // todo: remove and compute from registration
+ private transient RegistrationData registrationData;
+ private boolean isRegistrationValid; // todo: remove and compute from registration
+ private RegistrationContext registrationContext; // todo: remove and compute from registration
private String consumerName;
public RegistrationInfo(ProducerInfo producerInfo)
@@ -72,7 +72,6 @@
requiresRegistration = true;
}
-
private RegistrationInfo()
{
consumerName = WSRPConstants.DEFAULT_CONSUMER_NAME;
@@ -160,7 +159,8 @@
public void removeRegistrationProperty(String name)
{
ParameterValidation.throwIllegalArgExceptionIfNullOrEmpty(name, "registration property name", "RegistrationInfo.removeRegistrationProperty");
- if (registrationProperties == null || getOrCreateRegistrationPropertiesMap(false).remove(name) == null)
+ Map propertiesMap = getOrCreateRegistrationPropertiesMap(false);
+ if (propertiesMap == null || propertiesMap.remove(name) == null)
{
throw new IllegalArgumentException("Cannot remove inexistent registration property '" + name + "'");
}
@@ -168,6 +168,7 @@
private Map getOrCreateRegistrationPropertiesMap(boolean forceCreate)
{
+ // todo: get from registration
if (forceCreate && registrationProperties == null)
{
registrationProperties = new HashMap();
19 years, 2 months
JBoss Portal SVN: r6342 - in trunk/wsrp/src/main/org/jboss/portal: wsrp and 1 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-19 11:08:59 -0500 (Mon, 19 Feb 2007)
New Revision: 6342
Modified:
trunk/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/PortletManagementTestCase.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java
trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/WSRPConsumerImpl.java
Log:
on consumer wsrp setProperties propagate the registration context to the producer
Modified: trunk/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/PortletManagementTestCase.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/PortletManagementTestCase.java 2007-02-19 15:52:27 UTC (rev 6341)
+++ trunk/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/PortletManagementTestCase.java 2007-02-19 16:08:59 UTC (rev 6342)
@@ -184,7 +184,7 @@
WSRPTypeFactory.createProperty("prefName2", "en", "newPrefValue2")
};
propertyList.setProperties(properties);
- SetPortletProperties setPortletProperties = WSRPTypeFactory.createSetPortletProperties(portletContext, propertyList);
+ SetPortletProperties setPortletProperties = WSRPTypeFactory.createSetPortletProperties(null, portletContext, propertyList);
PortletContext response = portletManagementService.setPortletProperties(setPortletProperties);
GetPortletProperties getPortletProperties = WSRPTypeFactory.createGetPortletProperties(null, response);
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java 2007-02-19 15:52:27 UTC (rev 6341)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/WSRPTypeFactory.java 2007-02-19 16:08:59 UTC (rev 6342)
@@ -789,12 +789,15 @@
* @return
* @since 2.6
*/
- public static SetPortletProperties createSetPortletProperties(PortletContext portletContext, PropertyList propertyList)
+ public static SetPortletProperties createSetPortletProperties(
+ RegistrationContext registrationContext,
+ PortletContext portletContext,
+ PropertyList propertyList)
{
ParameterValidation.throwIllegalArgExceptionIfNull(portletContext, "PortletContext");
ParameterValidation.throwIllegalArgExceptionIfNull(propertyList, "PropertyList");
- return new SetPortletProperties(null, portletContext, null, propertyList);
+ return new SetPortletProperties(registrationContext, portletContext, null, propertyList);
}
/**
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/WSRPConsumerImpl.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/WSRPConsumerImpl.java 2007-02-19 15:52:27 UTC (rev 6341)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/WSRPConsumerImpl.java 2007-02-19 16:08:59 UTC (rev 6342)
@@ -382,7 +382,7 @@
propertyList.setProperties((Property[])updates.toArray(new Property[0]));
propertyList.setResetProperties((ResetProperty[])resets.toArray(new ResetProperty[0]));
SetPortletProperties setPortletProperties =
- WSRPTypeFactory.createSetPortletProperties(WSRPUtils.convertToWSRPPortletContext(portletContext), propertyList);
+ WSRPTypeFactory.createSetPortletProperties(getRegistrationContext(), WSRPUtils.convertToWSRPPortletContext(portletContext), propertyList);
try
{
19 years, 2 months
JBoss Portal SVN: r6341 - in trunk/identity/src/main/org/jboss/portal: test/identity and 1 other directory.
by portal-commits@lists.jboss.org
Author: bdaw
Date: 2007-02-19 10:52:27 -0500 (Mon, 19 Feb 2007)
New Revision: 6341
Modified:
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPRoleImpl.java
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserImpl.java
trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java
Log:
- hashCode() implementation for LDAPUserImpl and LDAPRoleImpl
Modified: trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPRoleImpl.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPRoleImpl.java 2007-02-19 15:44:53 UTC (rev 6340)
+++ trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPRoleImpl.java 2007-02-19 15:52:27 UTC (rev 6341)
@@ -89,6 +89,28 @@
this.dn = dn;
}
+
+ public boolean equals(Object obj)
+ {
+ if (!(obj instanceof Role))
+ {
+ return super.equals(obj);
+ }
+
+
+ Role r = (Role)obj;
+ if (r.getId().toString().equals(getId().toString()))
+ {
+ return true;
+ }
+ return false;
+ }
+
+ public int hashCode()
+ {
+ return id.hashCode() * 13 + 5;
+ }
+
public String getName()
{
return this.name;
Modified: trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserImpl.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserImpl.java 2007-02-19 15:44:53 UTC (rev 6340)
+++ trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserImpl.java 2007-02-19 15:52:27 UTC (rev 6341)
@@ -27,6 +27,7 @@
import org.jboss.portal.identity.IdentityContext;
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.UserProfileModule;
+import org.jboss.portal.identity.Role;
import org.jboss.portal.common.util.Tools;
import java.security.NoSuchAlgorithmException;
@@ -104,6 +105,27 @@
}
+ public boolean equals(Object obj)
+ {
+ if (!(obj instanceof User))
+ {
+ return super.equals(obj);
+ }
+
+
+ User u = (User)obj;
+ if (u.getId().toString().equals(getId().toString()))
+ {
+ return true;
+ }
+ return false;
+ }
+
+ public int hashCode()
+ {
+ return id.hashCode()*13 + 5;
+ }
+
public void updatePassword(String password)
{
if (password == null)
Modified: trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java 2007-02-19 15:44:53 UTC (rev 6340)
+++ trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java 2007-02-19 15:52:27 UTC (rev 6341)
@@ -529,6 +529,10 @@
assertEquals(1, users.size());
+ users = userModule.findUsers(10,10);
+
+ assertEquals(1, users.size());
+
users = userModule.findUsers(10,20);
assertEquals(1, users.size());
19 years, 2 months
JBoss Portal SVN: r6340 - trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-19 10:44:53 -0500 (Mon, 19 Feb 2007)
New Revision: 6340
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java
Log:
fix WSRPPortletInfo.getKeys() implementation which was returning the entry set of the key set leading to CCE
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java 2007-02-19 15:42:37 UTC (rev 6339)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java 2007-02-19 15:44:53 UTC (rev 6340)
@@ -493,7 +493,7 @@
public Set getKeys()
{
- return Collections.unmodifiableSet(preferences.entrySet());
+ return Collections.unmodifiableSet(preferences.keySet());
}
public PreferenceInfo getPreference(String key) throws IllegalArgumentException
19 years, 2 months
JBoss Portal SVN: r6339 - trunk/core/src/main/org/jboss/portal/core/impl/portlet/state.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-19 10:42:37 -0500 (Mon, 19 Feb 2007)
New Revision: 6339
Modified:
trunk/core/src/main/org/jboss/portal/core/impl/portlet/state/PersistentConsumer.java
Log:
fixing NPE due to the fact that the PersistenceConsumer returns a null ConsumerCapabilities object (the test one just return an empty POJO, it seems to be enough)
Modified: trunk/core/src/main/org/jboss/portal/core/impl/portlet/state/PersistentConsumer.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/portlet/state/PersistentConsumer.java 2007-02-19 15:25:50 UTC (rev 6338)
+++ trunk/core/src/main/org/jboss/portal/core/impl/portlet/state/PersistentConsumer.java 2007-02-19 15:42:37 UTC (rev 6339)
@@ -28,6 +28,7 @@
import org.jboss.portal.registration.DuplicateRegistrationException;
import org.jboss.portal.registration.RegistrationException;
import org.jboss.portal.registration.RegistrationStatus;
+import org.jboss.portal.registration.impl.ConsumerCapabilitiesImpl;
import java.util.Collection;
import java.util.Collections;
@@ -54,6 +55,10 @@
private Set relatedRegistrations;
private PersistentConsumerGroup relatedGroup;
+ // Runtime state
+
+ private ConsumerCapabilities capabilities = new ConsumerCapabilitiesImpl();;
+
/**
* Manager constructor.
*
@@ -189,12 +194,12 @@
public ConsumerCapabilities getCapabilities()
{
- return null;
+ return capabilities;
}
public void setCapabilities(ConsumerCapabilities capabilities)
{
-
+ this.capabilities = capabilities;
}
public void setGroup(ConsumerGroup group) throws RegistrationException, DuplicateRegistrationException
19 years, 2 months
JBoss Portal SVN: r6338 - trunk/wsrp/src/main/org/jboss/portal/wsrp/producer.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-19 10:25:50 -0500 (Mon, 19 Feb 2007)
New Revision: 6338
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/RegistrationHandler.java
Log:
simplified too many statements on one line making hard to figure out what is causing NPE
Modified: trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/RegistrationHandler.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/RegistrationHandler.java 2007-02-19 15:20:35 UTC (rev 6337)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/producer/RegistrationHandler.java 2007-02-19 15:25:50 UTC (rev 6338)
@@ -131,10 +131,16 @@
capabilities.setSupportedWindowStates(windowStates);
}
- capabilities.setSupportedUserProfileData(getListFromArray(registrationData.getCustomUserProfileData(), false));
- capabilities.setSupportedUserScopes(getListFromArray(registrationData.getConsumerUserScopes(), false));
- capabilities.setSupportsGetMethod(registrationData.isMethodGetSupported());
+ //
+ String[] customUserProfileData = registrationData.getCustomUserProfileData();
+ String[] consumerUserScopes = registrationData.getConsumerUserScopes();
+ boolean isMethodGetSupported = registrationData.isMethodGetSupported();
+ //
+ capabilities.setSupportedUserProfileData(getListFromArray(customUserProfileData, false));
+ capabilities.setSupportedUserScopes(getListFromArray(consumerUserScopes, false));
+ capabilities.setSupportsGetMethod(isMethodGetSupported);
+
// update RegistrationLocal for downstream use of Registration data
RegistrationLocal.setRegistration(registration);
}
19 years, 2 months
JBoss Portal SVN: r6337 - in trunk/core-admin/src: main/org/jboss/portal/core/portlet/management and 2 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-19 10:20:35 -0500 (Mon, 19 Feb 2007)
New Revision: 6337
Modified:
trunk/core-admin/src/bin/portal-admin-war/images/management/management.css
trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/plugins/preferences.xhtml
trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/portlets.xhtml
Log:
- moved some html attributes in management.css
- corrected the portlet manager to show portlet state description
Modified: trunk/core-admin/src/bin/portal-admin-war/images/management/management.css
===================================================================
--- trunk/core-admin/src/bin/portal-admin-war/images/management/management.css 2007-02-19 14:31:50 UTC (rev 6336)
+++ trunk/core-admin/src/bin/portal-admin-war/images/management/management.css 2007-02-19 15:20:35 UTC (rev 6337)
@@ -28,4 +28,8 @@
border-width: 1px;
padding: 4px;
margin: 2px;
+}
+
+img.scroller {
+ border:thin solid black;
}
\ No newline at end of file
Modified: trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java
===================================================================
--- trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java 2007-02-19 14:31:50 UTC (rev 6336)
+++ trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java 2007-02-19 15:20:35 UTC (rev 6337)
@@ -312,7 +312,7 @@
//
PreferenceInfo prefs = prefsInfo.getPreference(key);
- Value value = new StringValue();
+ Value value = new StringValue("not available");
Boolean readOnly = prefs.isReadOnly();
//
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/plugins/preferences.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/plugins/preferences.xhtml 2007-02-19 14:31:50 UTC (rev 6336)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/plugins/preferences.xhtml 2007-02-19 15:20:35 UTC (rev 6337)
@@ -4,7 +4,6 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk">
-<br/>
<h:panelGroup
id="panel2"
rendered="#{preferences != null}">
@@ -41,7 +40,6 @@
action="#{action.selectRow}">
<h:graphicImage
value="/images/management/edit.png"
- border="0"
alt="Edit"
style="vertical-align:middle;"/>
</h:commandLink>
@@ -50,7 +48,6 @@
action="#{action.deleteCell}">
<h:graphicImage
value="/images/management/delete.png"
- border="0"
alt="Delete"
style="vertical-align:middle;"/>
</h:commandLink>
Modified: trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/portlets.xhtml
===================================================================
--- trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/portlets.xhtml 2007-02-19 14:31:50 UTC (rev 6336)
+++ trunk/core-admin/src/resources/portal-admin-war/WEB-INF/jsp/management/portlets.xhtml 2007-02-19 15:20:35 UTC (rev 6337)
@@ -8,7 +8,7 @@
<br/><br/>
<h:panelGrid
id="federateddropdown">
- <h:form name="menu">
+ <h:form>
<h:selectOneMenu
id="menu"
value="#{portletmgr.selectedFederatedId}">
@@ -24,7 +24,7 @@
columnClasses="menu,,content">
<h:panelGroup
id="panel1">
-<h:form name="portlets">
+<h:form>
<t:dataTable
id="portletsTable"
var="portlet"
@@ -37,12 +37,14 @@
<f:facet name="header">
<t:commandSortHeader columnName="id">
<f:facet name="ascending">
- <t:graphicImage value="/images/management/up.png"
- rendered="true" border="0"/>
+ <t:graphicImage
+ value="/images/management/up.png"
+ rendered="true"/>
</f:facet>
<f:facet name="descending">
- <t:graphicImage value="/images/management/down.png"
- rendered="true" border="0"/>
+ <t:graphicImage
+ value="/images/management/down.png"
+ rendered="true"/>
</f:facet>
<h:outputText value="Id"/>
</t:commandSortHeader>
@@ -59,12 +61,14 @@
<f:facet name="header">
<t:commandSortHeader columnName="name">
<f:facet name="ascending">
- <t:graphicImage value="/images/management/up.png"
- rendered="true" border="0"/>
+ <t:graphicImage
+ value="/images/management/up.png"
+ rendered="true"/>
</f:facet>
<f:facet name="descending">
- <t:graphicImage value="/images/management/down.png"
- rendered="true" border="0"/>
+ <t:graphicImage
+ value="/images/management/down.png"
+ rendered="true"/>
</f:facet>
<h:outputText value="Name"/>
</t:commandSortHeader>
@@ -87,12 +91,14 @@
<f:facet name="header">
<t:commandSortHeader columnName="description">
<f:facet name="ascending">
- <t:graphicImage value="/images/management/up.png"
- rendered="true" border="0"/>
+ <t:graphicImage
+ value="/images/management/up.png"
+ rendered="true"/>
</f:facet>
<f:facet name="descending">
- <t:graphicImage value="/images/management/down.png"
- rendered="true" border="0"/>
+ <t:graphicImage
+ value="/images/management/down.png"
+ rendered="true"/>
</f:facet>
<h:outputText value="Description"/>
</t:commandSortHeader>
@@ -106,22 +112,22 @@
paginator="true" paginatorMaxPages="9"
paginatorActiveColumnStyle="font-weight:bold;">
<f:facet name="first">
- <t:graphicImage url="/images/management/first.png" border="1"/>
+ <t:graphicImage styleClass="scroller" url="/images/management/first.png"/>
</f:facet>
<f:facet name="last">
- <t:graphicImage url="/images/management/last.png" border="1"/>
+ <t:graphicImage styleClass="scroller" url="/images/management/last.png"/>
</f:facet>
<f:facet name="previous">
- <t:graphicImage url="/images/management/left.png" border="1"/>
+ <t:graphicImage styleClass="scroller" url="/images/management/left.png"/>
</f:facet>
<f:facet name="next">
- <t:graphicImage url="/images/management/right.png" border="1"/>
+ <t:graphicImage styleClass="scroller" url="/images/management/right.png"/>
</f:facet>
<f:facet name="fastforward">
- <t:graphicImage url="/images/management/fast-forward.png" border="1"/>
+ <t:graphicImage styleClass="scroller" url="/images/management/fast-forward.png"/>
</f:facet>
<f:facet name="fastrewind">
- <t:graphicImage url="/images/management/fast-rewind.png" border="1"/>
+ <t:graphicImage styleClass="scroller" url="/images/management/fast-rewind.png"/>
</f:facet>
</t:dataScroller>
</h:form>
@@ -132,11 +138,11 @@
<h:panelGroup id="pg2">
<div align="center">
<h:form id="plugin_nav">
- <h:panelGrid id="pg3" columns="5" border="0" cellspacing="0" cellpadding="0" rowClasses="vertTop">
+ <h:panelGrid id="pg3" columns="3" border="0" cellspacing="0" cellpadding="0" rowClasses="vertTop">
<h:commandLink
action="#{portletmgr.selectPlugin}"
style="#{portletmgr.selectedPlugin == 'manager' ? 'font-weight:bold' : ''}">
- <h:graphicImage value="/images/management/manage.png" style="vertical-align:middle;border-width:0"/>
+ <h:graphicImage value="/images/management/manage.png" style="vertical-align:middle;border-width:1"/>
<h:outputText> </h:outputText>
<h:outputText value="Manager"/>
<f:param name="plugin" value="manager"/>
@@ -144,17 +150,8 @@
<h:outputText>   </h:outputText>
<h:commandLink
action="#{portletmgr.selectPlugin}"
- style="#{portletmgr.selectedPlugin == 'security' ? 'font-weight:bold' : ''}">
- <h:graphicImage value="/images/management/security.png" style="vertical-align:middle;border-width:0"/>
- <h:outputText> </h:outputText>
- <h:outputText value="Security"/>
- <f:param name="plugin" value="security"/>
- </h:commandLink>
- <h:outputText>   </h:outputText>
- <h:commandLink
- action="#{portletmgr.selectPlugin}"
style="#{portletmgr.selectedPlugin == 'preferences' ? 'font-weight:bold' : ''}">
- <h:graphicImage value="/images/management/preferences.png" style="vertical-align:middle;border-width:0"/>
+ <h:graphicImage value="/images/management/preferences.png" style="vertical-align:middle"/>
<h:outputText> </h:outputText>
<h:outputText value="Preferences"/>
<f:param name="plugin" value="preferences"/>
@@ -165,20 +162,12 @@
<h:panelGroup
id="pg4"
rendered="#{portletmgr.selectedPortlet != null}">
- <!--
- <h:panelGroup
- rendered="#{portletmgr.selectedPlugin == 'security'}">
- <ui:include src="/WEB-INF/jsp/management/plugins/security.xhtml">
- <ui:param name="auth" value="#{portletmgr.auth}"/>
- </ui:include>
- </h:panelGroup>
- -->
<h:panelGroup
rendered="#{portletmgr.selectedPlugin == 'manager'}">
<ui:include src="/WEB-INF/jsp/management/plugins/portlet/manager.xhtml"/>
</h:panelGroup>
<h:panelGroup
- rendered="#{instancemgr.selectedPlugin == 'preferences'}">
+ rendered="#{portletmgr.selectedPlugin == 'preferences'}">
<ui:include src="/WEB-INF/jsp/management/plugins/preferences.xhtml">
<ui:param name="preferences" value="#{portletmgr.selectedPreferences}"/>
</ui:include>
19 years, 2 months
JBoss Portal SVN: r6336 - trunk/core/src/resources/portal-core-sar/conf/identity.
by portal-commits@lists.jboss.org
Author: bdaw
Date: 2007-02-19 09:31:50 -0500 (Mon, 19 Feb 2007)
New Revision: 6336
Modified:
trunk/core/src/resources/portal-core-sar/conf/identity/profile-config.xml
Log:
- make regdate user property writable
Modified: trunk/core/src/resources/portal-core-sar/conf/identity/profile-config.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/identity/profile-config.xml 2007-02-19 14:23:24 UTC (rev 6335)
+++ trunk/core/src/resources/portal-core-sar/conf/identity/profile-config.xml 2007-02-19 14:31:50 UTC (rev 6336)
@@ -104,7 +104,7 @@
<property>
<name>portal.user.registration-date</name>
<type>java.util.Date</type>
- <access-mode>read-only</access-mode>
+ <access-mode>read-write</access-mode>
<usage>mandatory</usage>
<display-name xml:lang="en">Registration date</display-name>
<description xml:lang="en">Registration date of user</description>
19 years, 2 months