JBoss Portal SVN: r6335 - 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 09:23:24 -0500 (Mon, 19 Feb 2007)
New Revision: 6335
Modified:
trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java
Log:
removed obsolete getDefaultValue() from WSRPPortletInfo
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 14:17:19 UTC (rev 6334)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java 2007-02-19 14:23:24 UTC (rev 6335)
@@ -532,12 +532,10 @@
public Boolean isReadOnly()
{
- return null; // cannot be determined, so returning null per javadoc
+ // cannot be determined, so returning null per javadoc
+ // note : it will be possible to implement it using WSRP 2.0 which defines this notion
+ // in the protocol
+ return null;
}
-
- public Value getDefaultValue()
- {
- return null; // cannot be determined, so returning null per javadoc
- }
}
}
19 years, 2 months
JBoss Portal SVN: r6334 - 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 09:17:19 -0500 (Mon, 19 Feb 2007)
New Revision: 6334
Added:
trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java
trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java
Removed:
trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLdapExtLoginModule.java
trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLdapLoginModule.java
Modified:
trunk/core/src/resources/portal-core-sar/conf/login-config.xml
Log:
- correct class naming
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 13:37:02 UTC (rev 6333)
+++ trunk/core/src/resources/portal-core-sar/conf/login-config.xml 2007-02-19 14:17:19 UTC (rev 6334)
@@ -61,7 +61,7 @@
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-->
- <!--<login-module code="org.jboss.portal.identity.auth.SynchronizingLdapExtLoginModule" flag="required">
+ <!--<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="additionalRole">Authenticated</module-option>
Copied: trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java (from rev 6333, trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLdapExtLoginModule.java)
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java (rev 0)
+++ trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPExtLoginModule.java 2007-02-19 14:17:19 UTC (rev 6334)
@@ -0,0 +1,335 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.identity.auth;
+
+import org.jboss.security.auth.spi.LdapExtLoginModule;
+import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.RoleModule;
+import org.jboss.portal.identity.MembershipModule;
+import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.Role;
+import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.common.transaction.Transactions;
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.callback.CallbackHandler;
+import javax.naming.InitialContext;
+import javax.transaction.TransactionManager;
+import java.util.Map;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.Enumeration;
+import java.security.acl.Group;
+import java.security.Principal;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot com">Boleslaw Dawidowicz</a>
+ * @version $Revision: 0.1 $
+ */
+public class SynchronizingLDAPExtLoginModule extends LdapExtLoginModule
+{
+ protected String additionalRole;
+ protected String defaultAssignedRole;
+ protected String synchronizeIdentity;
+ protected String synchronizeRoles;
+ protected String userModuleJNDIName;
+ protected String roleModuleJNDIName;
+ protected String membershipModuleJNDIName;
+
+
+ private UserModule userModule;
+ private RoleModule roleModule;
+ private MembershipModule membershipModule;
+
+ 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");
+ additionalRole = (String)options.get("additionalRole");
+ synchronizeIdentity = (String)options.get("synchronizeIdentity");
+ synchronizeRoles = (String)options.get("synchronizeRoles");
+ defaultAssignedRole = (String)options.get("defaultAssignedRole");
+
+ // Some info
+ log.trace("additionalRole = " + additionalRole);
+ log.trace("userModuleJNDIName = " + userModuleJNDIName);
+ log.trace("roleModuleJNDIName = " + roleModuleJNDIName);
+ log.trace("membershipModuleJNDIName = " + membershipModuleJNDIName);
+ log.trace("synchronizeIdentity = " + synchronizeIdentity);
+ log.trace("synchronizeRoles = " + synchronizeRoles);
+ log.trace("defaultAssignedRole = " + defaultAssignedRole);
+ }
+
+ protected UserModule getUserModule() throws Exception
+ {
+ if (userModule == null)
+ {
+ userModule = (UserModule)new InitialContext().lookup(userModuleJNDIName);
+ }
+ if (userModule == null)
+ {
+ throw new IdentityException("Cannot obtain UserModule using JNDI name:" + userModuleJNDIName);
+ }
+
+ return userModule;
+ }
+
+ protected RoleModule getRoleModule() throws Exception
+ {
+
+ if (roleModule == null)
+ {
+ roleModule = (RoleModule)new InitialContext().lookup(roleModuleJNDIName);
+ }
+ if (roleModule == null)
+ {
+ throw new IdentityException("Cannot obtain RoleModule using JNDI name:" + roleModuleJNDIName);
+ }
+ return roleModule;
+ }
+
+ protected MembershipModule getMembershipModule() throws Exception
+ {
+
+ if (membershipModule == null)
+ {
+ membershipModule = (MembershipModule)new InitialContext().lookup(membershipModuleJNDIName);
+ }
+ if (membershipModule == null)
+ {
+ throw new IdentityException("Cannot obtain MembershipModule using JNDI name:" + membershipModuleJNDIName);
+ }
+ return membershipModule;
+ }
+
+
+ protected boolean validatePassword(String string, String string1)
+ {
+ boolean validate = super.validatePassword(string, string1);
+
+ if (validate && isSynchronizeIdentity())
+ {
+ try
+ {
+ performSynchronization(getUsername(), string);
+ }
+ catch (Throwable e)
+ {
+ log.warn("Failed to sychronize identity of user: " + string, e);
+ }
+ }
+
+ return validate;
+ }
+
+ protected Group[] getRoleSets() throws LoginException
+ {
+ Group[] rolesGroup = super.getRoleSets();
+ if (additionalRole != null)
+ {
+ try
+ {
+ for (int i = 0; i < rolesGroup.length; i++)
+ {
+ Group group = rolesGroup[i];
+ if (group.getName().equals("Roles"))
+ {
+ group.addMember(createIdentity(additionalRole));
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ //just a try
+ log.error("Error when adding additional role: ", e);
+ }
+ }
+ return rolesGroup;
+ }
+
+ /** Subclass to use the PortalPrincipal to make the username easier to retrieve by the portal. */
+ protected Principal createIdentity(String username) throws Exception
+ {
+ return new UserPrincipal(username);
+ }
+
+ private void performSynchronization(final String name, final String password) throws Exception
+ {
+ final Group[] group = super.getRoleSets();
+
+ log.debug("$$Synchronizing user: " + name);
+
+ if (log.isDebugEnabled())
+ {
+ for (int i = 0; i < group.length; i++)
+ {
+ Group group1 = group[i];
+ log.debug("$$Role Group: " + group1.getName());
+ Enumeration xx = group1.members();
+ while (xx.hasMoreElements())
+ {
+ Principal o = (Principal)xx.nextElement();
+ log.debug("$$Principal in group: " + o.getName() + "; " + o.toString());
+
+ }
+ }
+ }
+ try
+ {
+ TransactionManager tm = (TransactionManager)new InitialContext().lookup("java:/TransactionManager");
+ Transactions.required(tm, new Transactions.Runnable()
+ {
+ public Object run() throws Exception
+ {
+ try
+ {
+
+
+ User user = null;
+ //check if user exist
+ try
+ {
+
+ user = getUserModule().findUserByUserName(name);
+
+ //synchronize password from LDAP to DB
+ if (!user.validatePassword(password))
+ {
+ user.updatePassword(password);
+ }
+ }
+ catch (Exception e)
+ {
+ // nothing as user can simply not exist
+ }
+
+ //if not try to synchronize it
+ if (user == null)
+ {
+ user = getUserModule().createUser(name, password);
+ }
+
+ Set rolesToAssign = new HashSet();
+
+ //now check and try synchronize all the roles
+ if (isSynchronizeRoles())
+ {
+
+ //based on code implementation its just one SimpleGroup called "Roles"
+ Group roleGroup = group[0];
+ Enumeration en = roleGroup.members();
+ while (en.hasMoreElements())
+ {
+ Principal p = (Principal)en.nextElement();
+ String roleName = p.getName();
+ log.debug("$$Processing role principal object related to current user: " + roleName);
+ //check if such role is present
+
+ Role role = null;
+ try
+ {
+ role = getRoleModule().findRoleByName(roleName);
+ }
+ catch (Exception e)
+ {
+ //
+ }
+
+ if (role == null)
+ {
+ try
+ {
+ role = getRoleModule().createRole(roleName, roleName);
+ }
+ catch (Throwable e)
+ {
+ log.warn("Error when trying to synchronize role: " + roleName, e);
+ continue;
+ }
+ }
+
+ rolesToAssign.add(role);
+ }
+ }
+
+ if (defaultAssignedRole != null)
+ {
+ try
+ {
+ rolesToAssign.add(getRoleModule().findRoleByName(defaultAssignedRole));
+ }
+ catch(Exception e)
+ {
+ //
+ log.warn("Cannot find defaultAssignedRole: " + defaultAssignedRole, e);
+ }
+ }
+
+ if (rolesToAssign.size() > 0)
+ {
+ getMembershipModule().assignRoles(user, rolesToAssign);
+ }
+
+ return null;
+
+ }
+ catch (Exception e)
+ {
+ throw new LoginException(e.toString());
+ }
+ }
+ });
+ }
+ catch (Exception e)
+ {
+ Throwable cause = e.getCause();
+ throw new LoginException(cause.toString());
+ }
+ }
+
+ protected boolean isSynchronizeIdentity()
+ {
+ if (synchronizeIdentity != null && synchronizeIdentity.equalsIgnoreCase("false"))
+ {
+ return Boolean.FALSE.booleanValue();
+ }
+ return Boolean.TRUE.booleanValue();
+ }
+
+ protected boolean isSynchronizeRoles()
+ {
+ if (synchronizeRoles != null && synchronizeRoles.equalsIgnoreCase("false"))
+ {
+ return Boolean.FALSE.booleanValue();
+ }
+ return Boolean.TRUE.booleanValue();
+ }
+
+
+}
Copied: trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java (from rev 6333, trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLdapLoginModule.java)
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java (rev 0)
+++ trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLDAPLoginModule.java 2007-02-19 14:17:19 UTC (rev 6334)
@@ -0,0 +1,335 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.identity.auth;
+
+import org.jboss.security.auth.spi.LdapLoginModule;
+import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.RoleModule;
+import org.jboss.portal.identity.MembershipModule;
+import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.Role;
+import org.jboss.portal.common.transaction.Transactions;
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.callback.CallbackHandler;
+import javax.naming.InitialContext;
+import javax.transaction.TransactionManager;
+import java.util.Map;
+import java.util.Enumeration;
+import java.util.Set;
+import java.util.HashSet;
+import java.security.acl.Group;
+import java.security.Principal;
+
+/**
+ * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot com">Boleslaw Dawidowicz</a>
+ * @version $Revision: 0.1 $
+ */
+public class SynchronizingLDAPLoginModule extends LdapLoginModule
+{
+ protected String additionalRole;
+ protected String defaultAssignedRole;
+ protected String synchronizeIdentity;
+ protected String synchronizeRoles;
+ protected String userModuleJNDIName;
+ protected String roleModuleJNDIName;
+ protected String membershipModuleJNDIName;
+
+
+ private UserModule userModule;
+ private RoleModule roleModule;
+ private MembershipModule membershipModule;
+
+ 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");
+ additionalRole = (String)options.get("additionalRole");
+ synchronizeIdentity = (String)options.get("synchronizeIdentity");
+ synchronizeRoles = (String)options.get("synchronizeRoles");
+ defaultAssignedRole = (String)options.get("defaultAssignedRole");
+
+ // Some info
+ log.trace("additionalRole = " + additionalRole);
+ log.trace("userModuleJNDIName = " + userModuleJNDIName);
+ log.trace("roleModuleJNDIName = " + roleModuleJNDIName);
+ log.trace("membershipModuleJNDIName = " + membershipModuleJNDIName);
+ log.trace("synchronizeIdentity = " + synchronizeIdentity);
+ log.trace("synchronizeRoles = " + synchronizeRoles);
+ log.trace("defaultAssignedRole = " + defaultAssignedRole);
+ }
+
+ protected UserModule getUserModule() throws Exception
+ {
+ if (userModule == null)
+ {
+ userModule = (UserModule)new InitialContext().lookup(userModuleJNDIName);
+ }
+ if (userModule == null)
+ {
+ throw new IdentityException("Cannot obtain UserModule using JNDI name:" + userModuleJNDIName);
+ }
+
+ return userModule;
+ }
+
+ protected RoleModule getRoleModule() throws Exception
+ {
+
+ if (roleModule == null)
+ {
+ roleModule = (RoleModule)new InitialContext().lookup(roleModuleJNDIName);
+ }
+ if (roleModule == null)
+ {
+ throw new IdentityException("Cannot obtain RoleModule using JNDI name:" + roleModuleJNDIName);
+ }
+ return roleModule;
+ }
+
+ protected MembershipModule getMembershipModule() throws Exception
+ {
+
+ if (membershipModule == null)
+ {
+ membershipModule = (MembershipModule)new InitialContext().lookup(membershipModuleJNDIName);
+ }
+ if (membershipModule == null)
+ {
+ throw new IdentityException("Cannot obtain MembershipModule using JNDI name:" + membershipModuleJNDIName);
+ }
+ return membershipModule;
+ }
+
+
+ protected boolean validatePassword(String string, String string1)
+ {
+ boolean validate = super.validatePassword(string, string1);
+
+ if (validate && isSynchronizeIdentity())
+ {
+ try
+ {
+ performSynchronization(getUsername(), string);
+ }
+ catch (Throwable e)
+ {
+ log.warn("Failed to sychronize identity of user: " + string, e);
+ }
+ }
+
+ return validate;
+ }
+
+ protected Group[] getRoleSets() throws LoginException
+ {
+ Group[] rolesGroup = super.getRoleSets();
+ if (additionalRole != null)
+ {
+ try
+ {
+ for (int i = 0; i < rolesGroup.length; i++)
+ {
+ Group group = rolesGroup[i];
+ if (group.getName().equals("Roles"))
+ {
+ group.addMember(createIdentity(additionalRole));
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ //just a try
+ log.error("Error when adding additional role: ", e);
+ }
+ }
+ return rolesGroup;
+ }
+
+ /** Subclass to use the PortalPrincipal to make the username easier to retrieve by the portal. */
+ protected Principal createIdentity(String username) throws Exception
+ {
+ return new UserPrincipal(username);
+ }
+
+ private void performSynchronization(final String name, final String password) throws Exception
+ {
+ final Group[] group = super.getRoleSets();
+
+ log.debug("$$Synchronizing user: " + name);
+
+ if (log.isDebugEnabled())
+ {
+ for (int i = 0; i < group.length; i++)
+ {
+ Group group1 = group[i];
+ log.debug("$$Role Group: " + group1.getName());
+ Enumeration xx = group1.members();
+ while (xx.hasMoreElements())
+ {
+ Principal o = (Principal)xx.nextElement();
+ log.debug("$$Principal in group: " + o.getName() + "; " + o.toString());
+
+ }
+ }
+ }
+ try
+ {
+ TransactionManager tm = (TransactionManager)new InitialContext().lookup("java:/TransactionManager");
+ Transactions.required(tm, new Transactions.Runnable()
+ {
+ public Object run() throws Exception
+ {
+ try
+ {
+
+
+ User user = null;
+ //check if user exist
+ try
+ {
+
+ user = getUserModule().findUserByUserName(name);
+
+ //synchronize password from LDAP to DB
+ if (!user.validatePassword(password))
+ {
+ user.updatePassword(password);
+ }
+ }
+ catch (Exception e)
+ {
+ // nothing as user can simply not exist
+ }
+
+ //if not try to synchronize it
+ if (user == null)
+ {
+ user = getUserModule().createUser(name, password);
+ }
+
+ Set rolesToAssign = new HashSet();
+
+ //now check and try synchronize all the roles
+ if (isSynchronizeRoles())
+ {
+
+ //based on code implementation its just one SimpleGroup called "Roles"
+ Group roleGroup = group[0];
+ Enumeration en = roleGroup.members();
+ while (en.hasMoreElements())
+ {
+ Principal p = (Principal)en.nextElement();
+ String roleName = p.getName();
+ log.debug("$$Processing role principal object related to current user: " + roleName);
+ //check if such role is present
+
+ Role role = null;
+ try
+ {
+ role = getRoleModule().findRoleByName(roleName);
+ }
+ catch (Exception e)
+ {
+ //
+ }
+
+ if (role == null)
+ {
+ try
+ {
+ role = getRoleModule().createRole(roleName, roleName);
+ }
+ catch (Throwable e)
+ {
+ log.warn("Error when trying to synchronize role: " + roleName, e);
+ continue;
+ }
+ }
+
+ rolesToAssign.add(role);
+ }
+ }
+
+ if (defaultAssignedRole != null)
+ {
+ try
+ {
+ rolesToAssign.add(getRoleModule().findRoleByName(defaultAssignedRole));
+ }
+ catch(Exception e)
+ {
+ //
+ log.warn("Cannot find defaultAssignedRole: " + defaultAssignedRole, e);
+ }
+ }
+
+ if (rolesToAssign.size() > 0)
+ {
+ getMembershipModule().assignRoles(user, rolesToAssign);
+ }
+
+ return null;
+
+ }
+ catch (Exception e)
+ {
+ throw new LoginException(e.toString());
+ }
+ }
+ });
+ }
+ catch (Exception e)
+ {
+ Throwable cause = e.getCause();
+ throw new LoginException(cause.toString());
+ }
+ }
+
+ protected boolean isSynchronizeIdentity()
+ {
+ if (synchronizeIdentity != null && synchronizeIdentity.equalsIgnoreCase("false"))
+ {
+ return Boolean.FALSE.booleanValue();
+ }
+ return Boolean.TRUE.booleanValue();
+ }
+
+ protected boolean isSynchronizeRoles()
+ {
+ if (synchronizeRoles != null && synchronizeRoles.equalsIgnoreCase("false"))
+ {
+ return Boolean.FALSE.booleanValue();
+ }
+ return Boolean.TRUE.booleanValue();
+ }
+
+
+}
Deleted: 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 13:37:02 UTC (rev 6333)
+++ trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLdapExtLoginModule.java 2007-02-19 14:17:19 UTC (rev 6334)
@@ -1,335 +0,0 @@
-/*
-* JBoss, a division of Red Hat
-* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-
-package org.jboss.portal.identity.auth;
-
-import org.jboss.security.auth.spi.LdapExtLoginModule;
-import org.jboss.portal.identity.UserModule;
-import org.jboss.portal.identity.RoleModule;
-import org.jboss.portal.identity.MembershipModule;
-import org.jboss.portal.identity.User;
-import org.jboss.portal.identity.Role;
-import org.jboss.portal.identity.IdentityException;
-import org.jboss.portal.common.transaction.Transactions;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.callback.CallbackHandler;
-import javax.naming.InitialContext;
-import javax.transaction.TransactionManager;
-import java.util.Map;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.Enumeration;
-import java.security.acl.Group;
-import java.security.Principal;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot com">Boleslaw Dawidowicz</a>
- * @version $Revision: 0.1 $
- */
-public class SynchronizingLdapExtLoginModule extends LdapExtLoginModule
-{
- protected String additionalRole;
- protected String defaultAssignedRole;
- protected String synchronizeIdentity;
- protected String synchronizeRoles;
- protected String userModuleJNDIName;
- protected String roleModuleJNDIName;
- protected String membershipModuleJNDIName;
-
-
- private UserModule userModule;
- private RoleModule roleModule;
- private MembershipModule membershipModule;
-
- 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");
- additionalRole = (String)options.get("additionalRole");
- synchronizeIdentity = (String)options.get("synchronizeIdentity");
- synchronizeRoles = (String)options.get("synchronizeRoles");
- defaultAssignedRole = (String)options.get("defaultAssignedRole");
-
- // Some info
- log.trace("additionalRole = " + additionalRole);
- log.trace("userModuleJNDIName = " + userModuleJNDIName);
- log.trace("roleModuleJNDIName = " + roleModuleJNDIName);
- log.trace("membershipModuleJNDIName = " + membershipModuleJNDIName);
- log.trace("synchronizeIdentity = " + synchronizeIdentity);
- log.trace("synchronizeRoles = " + synchronizeRoles);
- log.trace("defaultAssignedRole = " + defaultAssignedRole);
- }
-
- protected UserModule getUserModule() throws Exception
- {
- if (userModule == null)
- {
- userModule = (UserModule)new InitialContext().lookup(userModuleJNDIName);
- }
- if (userModule == null)
- {
- throw new IdentityException("Cannot obtain UserModule using JNDI name:" + userModuleJNDIName);
- }
-
- return userModule;
- }
-
- protected RoleModule getRoleModule() throws Exception
- {
-
- if (roleModule == null)
- {
- roleModule = (RoleModule)new InitialContext().lookup(roleModuleJNDIName);
- }
- if (roleModule == null)
- {
- throw new IdentityException("Cannot obtain RoleModule using JNDI name:" + roleModuleJNDIName);
- }
- return roleModule;
- }
-
- protected MembershipModule getMembershipModule() throws Exception
- {
-
- if (membershipModule == null)
- {
- membershipModule = (MembershipModule)new InitialContext().lookup(membershipModuleJNDIName);
- }
- if (membershipModule == null)
- {
- throw new IdentityException("Cannot obtain MembershipModule using JNDI name:" + membershipModuleJNDIName);
- }
- return membershipModule;
- }
-
-
- protected boolean validatePassword(String string, String string1)
- {
- boolean validate = super.validatePassword(string, string1);
-
- if (validate && isSynchronizeIdentity())
- {
- try
- {
- performSynchronization(getUsername(), string);
- }
- catch (Throwable e)
- {
- log.warn("Failed to sychronize identity of user: " + string, e);
- }
- }
-
- return validate;
- }
-
- protected Group[] getRoleSets() throws LoginException
- {
- Group[] rolesGroup = super.getRoleSets();
- if (additionalRole != null)
- {
- try
- {
- for (int i = 0; i < rolesGroup.length; i++)
- {
- Group group = rolesGroup[i];
- if (group.getName().equals("Roles"))
- {
- group.addMember(createIdentity(additionalRole));
- }
- }
- }
- catch (Exception e)
- {
- //just a try
- log.error("Error when adding additional role: ", e);
- }
- }
- return rolesGroup;
- }
-
- /** Subclass to use the PortalPrincipal to make the username easier to retrieve by the portal. */
- protected Principal createIdentity(String username) throws Exception
- {
- return new UserPrincipal(username);
- }
-
- private void performSynchronization(final String name, final String password) throws Exception
- {
- final Group[] group = super.getRoleSets();
-
- log.debug("$$Synchronizing user: " + name);
-
- if (log.isDebugEnabled())
- {
- for (int i = 0; i < group.length; i++)
- {
- Group group1 = group[i];
- log.debug("$$Role Group: " + group1.getName());
- Enumeration xx = group1.members();
- while (xx.hasMoreElements())
- {
- Principal o = (Principal)xx.nextElement();
- log.debug("$$Principal in group: " + o.getName() + "; " + o.toString());
-
- }
- }
- }
- try
- {
- TransactionManager tm = (TransactionManager)new InitialContext().lookup("java:/TransactionManager");
- Transactions.required(tm, new Transactions.Runnable()
- {
- public Object run() throws Exception
- {
- try
- {
-
-
- User user = null;
- //check if user exist
- try
- {
-
- user = getUserModule().findUserByUserName(name);
-
- //synchronize password from LDAP to DB
- if (!user.validatePassword(password))
- {
- user.updatePassword(password);
- }
- }
- catch (Exception e)
- {
- // nothing as user can simply not exist
- }
-
- //if not try to synchronize it
- if (user == null)
- {
- user = getUserModule().createUser(name, password);
- }
-
- Set rolesToAssign = new HashSet();
-
- //now check and try synchronize all the roles
- if (isSynchronizeRoles())
- {
-
- //based on code implementation its just one SimpleGroup called "Roles"
- Group roleGroup = group[0];
- Enumeration en = roleGroup.members();
- while (en.hasMoreElements())
- {
- Principal p = (Principal)en.nextElement();
- String roleName = p.getName();
- log.debug("$$Processing role principal object related to current user: " + roleName);
- //check if such role is present
-
- Role role = null;
- try
- {
- role = getRoleModule().findRoleByName(roleName);
- }
- catch (Exception e)
- {
- //
- }
-
- if (role == null)
- {
- try
- {
- role = getRoleModule().createRole(roleName, roleName);
- }
- catch (Throwable e)
- {
- log.warn("Error when trying to synchronize role: " + roleName, e);
- continue;
- }
- }
-
- rolesToAssign.add(role);
- }
- }
-
- if (defaultAssignedRole != null)
- {
- try
- {
- rolesToAssign.add(getRoleModule().findRoleByName(defaultAssignedRole));
- }
- catch(Exception e)
- {
- //
- log.warn("Cannot find defaultAssignedRole: " + defaultAssignedRole, e);
- }
- }
-
- if (rolesToAssign.size() > 0)
- {
- getMembershipModule().assignRoles(user, rolesToAssign);
- }
-
- return null;
-
- }
- catch (Exception e)
- {
- throw new LoginException(e.toString());
- }
- }
- });
- }
- catch (Exception e)
- {
- Throwable cause = e.getCause();
- throw new LoginException(cause.toString());
- }
- }
-
- protected boolean isSynchronizeIdentity()
- {
- if (synchronizeIdentity != null && synchronizeIdentity.equalsIgnoreCase("false"))
- {
- return Boolean.FALSE.booleanValue();
- }
- return Boolean.TRUE.booleanValue();
- }
-
- protected boolean isSynchronizeRoles()
- {
- if (synchronizeRoles != null && synchronizeRoles.equalsIgnoreCase("false"))
- {
- return Boolean.FALSE.booleanValue();
- }
- return Boolean.TRUE.booleanValue();
- }
-
-
-}
Deleted: 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 13:37:02 UTC (rev 6333)
+++ trunk/identity/src/main/org/jboss/portal/identity/auth/SynchronizingLdapLoginModule.java 2007-02-19 14:17:19 UTC (rev 6334)
@@ -1,335 +0,0 @@
-/*
-* JBoss, a division of Red Hat
-* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-
-package org.jboss.portal.identity.auth;
-
-import org.jboss.security.auth.spi.LdapLoginModule;
-import org.jboss.portal.identity.UserModule;
-import org.jboss.portal.identity.RoleModule;
-import org.jboss.portal.identity.MembershipModule;
-import org.jboss.portal.identity.IdentityException;
-import org.jboss.portal.identity.User;
-import org.jboss.portal.identity.Role;
-import org.jboss.portal.common.transaction.Transactions;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.callback.CallbackHandler;
-import javax.naming.InitialContext;
-import javax.transaction.TransactionManager;
-import java.util.Map;
-import java.util.Enumeration;
-import java.util.Set;
-import java.util.HashSet;
-import java.security.acl.Group;
-import java.security.Principal;
-
-/**
- * @author <a href="mailto:boleslaw dot dawidowicz at redhat anotherdot com">Boleslaw Dawidowicz</a>
- * @version $Revision: 0.1 $
- */
-public class SynchronizingLdapLoginModule extends LdapLoginModule
-{
- protected String additionalRole;
- protected String defaultAssignedRole;
- protected String synchronizeIdentity;
- protected String synchronizeRoles;
- protected String userModuleJNDIName;
- protected String roleModuleJNDIName;
- protected String membershipModuleJNDIName;
-
-
- private UserModule userModule;
- private RoleModule roleModule;
- private MembershipModule membershipModule;
-
- 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");
- additionalRole = (String)options.get("additionalRole");
- synchronizeIdentity = (String)options.get("synchronizeIdentity");
- synchronizeRoles = (String)options.get("synchronizeRoles");
- defaultAssignedRole = (String)options.get("defaultAssignedRole");
-
- // Some info
- log.trace("additionalRole = " + additionalRole);
- log.trace("userModuleJNDIName = " + userModuleJNDIName);
- log.trace("roleModuleJNDIName = " + roleModuleJNDIName);
- log.trace("membershipModuleJNDIName = " + membershipModuleJNDIName);
- log.trace("synchronizeIdentity = " + synchronizeIdentity);
- log.trace("synchronizeRoles = " + synchronizeRoles);
- log.trace("defaultAssignedRole = " + defaultAssignedRole);
- }
-
- protected UserModule getUserModule() throws Exception
- {
- if (userModule == null)
- {
- userModule = (UserModule)new InitialContext().lookup(userModuleJNDIName);
- }
- if (userModule == null)
- {
- throw new IdentityException("Cannot obtain UserModule using JNDI name:" + userModuleJNDIName);
- }
-
- return userModule;
- }
-
- protected RoleModule getRoleModule() throws Exception
- {
-
- if (roleModule == null)
- {
- roleModule = (RoleModule)new InitialContext().lookup(roleModuleJNDIName);
- }
- if (roleModule == null)
- {
- throw new IdentityException("Cannot obtain RoleModule using JNDI name:" + roleModuleJNDIName);
- }
- return roleModule;
- }
-
- protected MembershipModule getMembershipModule() throws Exception
- {
-
- if (membershipModule == null)
- {
- membershipModule = (MembershipModule)new InitialContext().lookup(membershipModuleJNDIName);
- }
- if (membershipModule == null)
- {
- throw new IdentityException("Cannot obtain MembershipModule using JNDI name:" + membershipModuleJNDIName);
- }
- return membershipModule;
- }
-
-
- protected boolean validatePassword(String string, String string1)
- {
- boolean validate = super.validatePassword(string, string1);
-
- if (validate && isSynchronizeIdentity())
- {
- try
- {
- performSynchronization(getUsername(), string);
- }
- catch (Throwable e)
- {
- log.warn("Failed to sychronize identity of user: " + string, e);
- }
- }
-
- return validate;
- }
-
- protected Group[] getRoleSets() throws LoginException
- {
- Group[] rolesGroup = super.getRoleSets();
- if (additionalRole != null)
- {
- try
- {
- for (int i = 0; i < rolesGroup.length; i++)
- {
- Group group = rolesGroup[i];
- if (group.getName().equals("Roles"))
- {
- group.addMember(createIdentity(additionalRole));
- }
- }
- }
- catch (Exception e)
- {
- //just a try
- log.error("Error when adding additional role: ", e);
- }
- }
- return rolesGroup;
- }
-
- /** Subclass to use the PortalPrincipal to make the username easier to retrieve by the portal. */
- protected Principal createIdentity(String username) throws Exception
- {
- return new UserPrincipal(username);
- }
-
- private void performSynchronization(final String name, final String password) throws Exception
- {
- final Group[] group = super.getRoleSets();
-
- log.debug("$$Synchronizing user: " + name);
-
- if (log.isDebugEnabled())
- {
- for (int i = 0; i < group.length; i++)
- {
- Group group1 = group[i];
- log.debug("$$Role Group: " + group1.getName());
- Enumeration xx = group1.members();
- while (xx.hasMoreElements())
- {
- Principal o = (Principal)xx.nextElement();
- log.debug("$$Principal in group: " + o.getName() + "; " + o.toString());
-
- }
- }
- }
- try
- {
- TransactionManager tm = (TransactionManager)new InitialContext().lookup("java:/TransactionManager");
- Transactions.required(tm, new Transactions.Runnable()
- {
- public Object run() throws Exception
- {
- try
- {
-
-
- User user = null;
- //check if user exist
- try
- {
-
- user = getUserModule().findUserByUserName(name);
-
- //synchronize password from LDAP to DB
- if (!user.validatePassword(password))
- {
- user.updatePassword(password);
- }
- }
- catch (Exception e)
- {
- // nothing as user can simply not exist
- }
-
- //if not try to synchronize it
- if (user == null)
- {
- user = getUserModule().createUser(name, password);
- }
-
- Set rolesToAssign = new HashSet();
-
- //now check and try synchronize all the roles
- if (isSynchronizeRoles())
- {
-
- //based on code implementation its just one SimpleGroup called "Roles"
- Group roleGroup = group[0];
- Enumeration en = roleGroup.members();
- while (en.hasMoreElements())
- {
- Principal p = (Principal)en.nextElement();
- String roleName = p.getName();
- log.debug("$$Processing role principal object related to current user: " + roleName);
- //check if such role is present
-
- Role role = null;
- try
- {
- role = getRoleModule().findRoleByName(roleName);
- }
- catch (Exception e)
- {
- //
- }
-
- if (role == null)
- {
- try
- {
- role = getRoleModule().createRole(roleName, roleName);
- }
- catch (Throwable e)
- {
- log.warn("Error when trying to synchronize role: " + roleName, e);
- continue;
- }
- }
-
- rolesToAssign.add(role);
- }
- }
-
- if (defaultAssignedRole != null)
- {
- try
- {
- rolesToAssign.add(getRoleModule().findRoleByName(defaultAssignedRole));
- }
- catch(Exception e)
- {
- //
- log.warn("Cannot find defaultAssignedRole: " + defaultAssignedRole, e);
- }
- }
-
- if (rolesToAssign.size() > 0)
- {
- getMembershipModule().assignRoles(user, rolesToAssign);
- }
-
- return null;
-
- }
- catch (Exception e)
- {
- throw new LoginException(e.toString());
- }
- }
- });
- }
- catch (Exception e)
- {
- Throwable cause = e.getCause();
- throw new LoginException(cause.toString());
- }
- }
-
- protected boolean isSynchronizeIdentity()
- {
- if (synchronizeIdentity != null && synchronizeIdentity.equalsIgnoreCase("false"))
- {
- return Boolean.FALSE.booleanValue();
- }
- return Boolean.TRUE.booleanValue();
- }
-
- protected boolean isSynchronizeRoles()
- {
- if (synchronizeRoles != null && synchronizeRoles.equalsIgnoreCase("false"))
- {
- return Boolean.FALSE.booleanValue();
- }
- return Boolean.TRUE.booleanValue();
- }
-
-
-}
19 years, 2 months
JBoss Portal SVN: r6333 - in trunk/identity/src/main/org/jboss/portal: test/identity and 2 other directories.
by portal-commits@lists.jboss.org
Author: bdaw
Date: 2007-02-19 08:37:02 -0500 (Mon, 19 Feb 2007)
New Revision: 6333
Modified:
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java
trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java
trunk/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPSimpleUserModuleTestCase.java
Log:
- correct bug in offset/limit searches
Modified: trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java 2007-02-19 12:47:47 UTC (rev 6332)
+++ trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java 2007-02-19 13:37:02 UTC (rev 6333)
@@ -42,6 +42,7 @@
import java.util.List;
import java.util.Iterator;
import java.util.LinkedList;
+import java.util.Collections;
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw Dawidowicz</a>
@@ -398,7 +399,31 @@
//if exception was thrown - propagate it, if not....
if (role != null)
{
- return getUsers(role, userNameFilter);
+ Set users = getUsers(role, userNameFilter);
+
+
+
+ int size = users.size();
+
+ if (offset == 0 && size <= limit)
+ {
+ return users;
+ }
+
+ Collections.sort(Tools.toList(users.iterator()), new LDAPUserImpl.LDAPUserComparator());
+
+ if (offset + limit <= size)
+ {
+ return Tools.toSet(Tools.toList(users.iterator()).subList(offset, offset + limit).iterator());
+ }
+ else if (offset >= size)
+ {
+ return new HashSet();
+ }
+
+
+ return Tools.toSet(Tools.toList(users.iterator()).subList(offset, size).iterator());
+
}
else
{
Modified: trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java 2007-02-19 12:47:47 UTC (rev 6332)
+++ trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java 2007-02-19 13:37:02 UTC (rev 6333)
@@ -41,6 +41,7 @@
import java.util.List;
import java.util.Iterator;
import java.util.LinkedList;
+import java.util.Collections;
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw Dawidowicz</a>
@@ -387,7 +388,30 @@
//if exception was thrown - propagate it, if not....
if (role != null)
{
- return getUsers(role, userNameFilter);
+ Set users = getUsers(role, userNameFilter);
+
+
+
+ int size = users.size();
+
+ if (offset == 0 && size <= limit)
+ {
+ return users;
+ }
+
+ Collections.sort(Tools.toList(users.iterator()), new LDAPUserImpl.LDAPUserComparator());
+
+ if (offset + limit <= size)
+ {
+ return Tools.toSet(Tools.toList(users.iterator()).subList(offset, offset + limit).iterator());
+ }
+ else if (offset >= size)
+ {
+ return new HashSet();
+ }
+
+
+ return Tools.toSet(Tools.toList(users.iterator()).subList(offset, size).iterator());
}
else
{
Modified: trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java 2007-02-19 12:47:47 UTC (rev 6332)
+++ trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java 2007-02-19 13:37:02 UTC (rev 6333)
@@ -293,25 +293,31 @@
int size = uf.size();
- if (offset == 0 && size <= (offset+limit))
+ if (offset == 0 && size <= limit)
{
return Tools.toSet(uf.iterator());
}
+
+ Collections.sort(uf, new LDAPUserImpl.LDAPUserComparator());
+
+ if (offset + limit <= size)
+ {
+ return Tools.toSet(uf.subList(offset, offset + limit).iterator());
+ }
else if (offset >= size)
{
return new HashSet();
}
- else if (offset + limit > size)
- {
- limit = size;
- }
- Collections.sort(uf, new LDAPUserImpl.LDAPUserComparator());
+ return Tools.toSet(uf.subList(offset, size).iterator());
- return Tools.toSet(uf.subList(offset, offset + limit).iterator());
+ //should not happen
+
+
+
}
public int getUserCount() throws IdentityException, IllegalArgumentException
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 12:47:47 UTC (rev 6332)
+++ trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java 2007-02-19 13:37:02 UTC (rev 6333)
@@ -501,8 +501,78 @@
ctx.commit();
}
+ public void testFindUsers2() throws Exception
+ {
+ ctx.begin();
+ userModule.createUser("test1", "test1");
+ userModule.createUser("test2", "test2");
+ userModule.createUser("test3", "test3");
+ userModule.createUser("test4", "test4");
+ userModule.createUser("test5", "test5");
+ userModule.createUser("test6", "test6");
+ userModule.createUser("test7", "testx");
+ userModule.createUser("test8", "testx");
+
+ assertEquals(11, userModule.getUserCount());
+
+ Set users = userModule.findUsers(0, 4);
+
+ assertEquals(4, users.size());
+
+ users = userModule.findUsers(0, 10);
+
+ assertEquals(10, users.size());
+
+ users = userModule.findUsers(10,1);
+
+ assertEquals(1, users.size());
+
+ users = userModule.findUsers(10,20);
+
+ assertEquals(1, users.size());
+
+ userModule.createUser("test9", "testx");
+ userModule.createUser("test10", "testx");
+ userModule.createUser("test11", "testx");
+ userModule.createUser("test12", "testx");
+ userModule.createUser("test13", "testx");
+ userModule.createUser("test14", "testx");
+ userModule.createUser("test15", "testx");
+ userModule.createUser("test16", "testx");
+ userModule.createUser("test17", "testx");
+ userModule.createUser("test18", "testx");
+ userModule.createUser("test19", "testx");
+ userModule.createUser("test20", "testx");
+ userModule.createUser("test21", "testx");
+ userModule.createUser("test22", "testx");
+ userModule.createUser("test23", "testx");
+
+ assertEquals(26, userModule.getUserCount());
+
+ users = userModule.findUsers(10, 10);
+
+ assertEquals(10, users.size());
+
+ users = userModule.findUsers(20, 1);
+
+ assertEquals(1, users.size());
+
+ users = userModule.findUsers(20, 6);
+
+ assertEquals(6, users.size());
+
+ users = userModule.findUsers(20, 10);
+
+ assertEquals(6, users.size());
+ ctx.commit();
+ }
+
+
+
+
+
//
public void populate() throws Exception
{
Modified: trunk/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java 2007-02-19 12:47:47 UTC (rev 6332)
+++ trunk/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java 2007-02-19 13:37:02 UTC (rev 6333)
@@ -124,6 +124,11 @@
utc.testFindUsers();
}
+ public void testFindUsers2() throws Exception
+ {
+ utc.testFindUsers2();
+ }
+
public void testCreateUser() throws Exception
{
utc.testCreateUser();
Modified: trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java 2007-02-19 12:47:47 UTC (rev 6332)
+++ trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java 2007-02-19 13:37:02 UTC (rev 6333)
@@ -123,6 +123,11 @@
utc.testFindUsers();
}
+ public void testFindUsers2() throws Exception
+ {
+ utc.testFindUsers2();
+ }
+
public void testCreateUser() throws Exception
{
utc.testCreateUser();
Modified: trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPSimpleUserModuleTestCase.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPSimpleUserModuleTestCase.java 2007-02-19 12:47:47 UTC (rev 6332)
+++ trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPSimpleUserModuleTestCase.java 2007-02-19 13:37:02 UTC (rev 6333)
@@ -179,4 +179,7 @@
assertTrue(u.validatePassword("1testPassword1"));
}
+
+
+
}
19 years, 2 months
JBoss Portal SVN: r6332 - in trunk: core-admin/src/main/org/jboss/portal/core/portlet/management and 1 other directory.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-19 07:47:47 -0500 (Mon, 19 Feb 2007)
New Revision: 6332
Modified:
trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/LazyPortalObjectTreeNode.java
trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortalObjectManagerBean.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PortalObjectImpl.java
Log:
don't display children of dashboard contexts in admin portlet for now
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PortalObjectImpl.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PortalObjectImpl.java 2007-02-19 12:26:51 UTC (rev 6331)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PortalObjectImpl.java 2007-02-19 12:47:47 UTC (rev 6332)
@@ -496,12 +496,9 @@
PortalObjectImpl parent = (PortalObjectImpl)getParent();
// We need the parent to find out the context details
- if (parent instanceof ContextImpl)
+ if (this instanceof ContextImpl)
{
- ContextImpl context = (ContextImpl)parent;
-
- //
- String dashboard = context.getDeclaredProperty("dashboard");
+ String dashboard = getDeclaredProperty("dashboard");
if ("true".equals(dashboard))
{
String dashboardId = getName();
Modified: trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/LazyPortalObjectTreeNode.java
===================================================================
--- trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/LazyPortalObjectTreeNode.java 2007-02-19 12:26:51 UTC (rev 6331)
+++ trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/LazyPortalObjectTreeNode.java 2007-02-19 12:47:47 UTC (rev 6332)
@@ -23,11 +23,7 @@
package org.jboss.portal.core.portlet.management;
import org.apache.myfaces.custom.tree2.TreeNode;
-import org.jboss.portal.core.model.portal.PortalContainer;
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.core.model.portal.Portal;
import org.jboss.portal.core.model.portal.PortalObject;
-import org.jboss.portal.core.model.portal.Window;
import org.jboss.portal.core.model.portal.PortalObjectId;
import java.util.ArrayList;
@@ -45,6 +41,41 @@
/** The serialVersionUID */
private static final long serialVersionUID = 7253085860667670643L;
+ public static LazyPortalObjectTreeNode newInstance(PortalObject object)
+ {
+ if (object.isDashboard())
+ {
+ return new DashboardNode(object);
+ }
+ else
+ {
+ return new LazyPortalObjectTreeNode(object);
+ }
+ }
+
+ private static class DashboardNode extends LazyPortalObjectTreeNode
+ {
+ public DashboardNode(PortalObject object)
+ {
+ super(object);
+ }
+
+ public List getChildren()
+ {
+ return Collections.EMPTY_LIST;
+ }
+
+ public boolean isLeaf()
+ {
+ return true;
+ }
+
+ public int getChildCount()
+ {
+ return 0;
+ }
+ }
+
/** . */
private PortalObject object;
@@ -57,7 +88,7 @@
/** . */
private String type;
- public LazyPortalObjectTreeNode(PortalObject object)
+ protected LazyPortalObjectTreeNode(PortalObject object)
{
this.object = object;
this.description = object.getName();
@@ -97,11 +128,13 @@
{
public int compare(Object o1, Object o2)
{
- int high1 = getOrder(o1);
- int high2 = getOrder(o2);
+ PortalObject po1 = (PortalObject)o1;
+ PortalObject po2 = (PortalObject)o2;
+ int high1 = po1.getType();
+ int high2 = po2.getType();
if (high1 == high2)
{
- return ((PortalObject)o1).getName().compareTo(((PortalObject)o2).getName());
+ return po1.getName().compareTo(po2.getName());
}
else
{
@@ -112,7 +145,7 @@
for (int i = 0; i < children.size(); i++)
{
PortalObject child = (PortalObject)children.get(i);
- children.set(i, new LazyPortalObjectTreeNode(child));
+ children.set(i, LazyPortalObjectTreeNode.newInstance(child));
}
}
return children;
@@ -152,25 +185,4 @@
{
return object.getChildren().size();
}
-
- private static int getOrder(Object o)
- {
- if (o instanceof PortalContainer)
- {
- return 0;
- }
- if (o instanceof Portal)
- {
- return 1;
- }
- if (o instanceof Page)
- {
- return 2;
- }
- if (o instanceof Window)
- {
- return 3;
- }
- return 4;
- }
}
Modified: trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortalObjectManagerBean.java
===================================================================
--- trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortalObjectManagerBean.java 2007-02-19 12:26:51 UTC (rev 6331)
+++ trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortalObjectManagerBean.java 2007-02-19 12:47:47 UTC (rev 6332)
@@ -404,7 +404,7 @@
public TreeNode getTreeData()
{
PortalObject root = portalObjectContainer.getRootObject();
- return new LazyPortalObjectTreeNode(root);
+ return LazyPortalObjectTreeNode.newInstance(root);
}
public SelectItem[] getInstanceItems()
19 years, 2 months
JBoss Portal SVN: r6331 - in trunk: core/src/main/org/jboss/portal/test/core/state and 13 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-19 07:26:51 -0500 (Mon, 19 Feb 2007)
New Revision: 6331
Modified:
trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java
trunk/core/src/main/org/jboss/portal/test/core/model/instance/InstanceContainerTestCase.java
trunk/core/src/main/org/jboss/portal/test/core/state/ProducerTestCase.java
trunk/core/src/main/org/jboss/portlet/JBossPortletPreferences.java
trunk/portlet-federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java
trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerInvoker.java
trunk/portlet/src/main/org/jboss/portal/portlet/container/info/ContainerPreferenceInfo.java
trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletPreferencesImpl.java
trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletRequestImpl.java
trunk/portlet/src/main/org/jboss/portal/portlet/info/PreferenceInfo.java
trunk/portlet/src/main/org/jboss/portal/portlet/state/AbstractPropertyContext.java
trunk/portlet/src/main/org/jboss/portal/portlet/state/PropertyContext.java
trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java
trunk/portlet/src/main/org/jboss/portal/portlet/support/info/PreferenceInfoSupport.java
trunk/portlet/src/main/org/jboss/portal/portlet/support/info/PreferencesInfoSupport.java
trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java
trunk/portlet/src/main/org/jboss/portal/test/portlet/info/PortletInfoTest.java
trunk/portlet/src/main/org/jboss/portal/test/portlet/info/PreferenceInfoTest.java
trunk/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java
trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java
trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java
Log:
removed the defaultValue from the PreferenceInfo interface in order to simplify the implementations of the PreferenceInfo interfaces
Modified: trunk/core/src/main/org/jboss/portal/test/core/model/instance/InstanceContainerTestCase.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/test/core/model/instance/InstanceContainerTestCase.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/core/src/main/org/jboss/portal/test/core/model/instance/InstanceContainerTestCase.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -56,7 +56,6 @@
import org.jboss.portal.portlet.PortletContext;
import org.jboss.portal.portlet.PortletInvoker;
import org.jboss.portal.portlet.PortletInvokerException;
-import org.jboss.portal.portlet.support.info.PreferencesInfoSupport;
import org.jboss.portal.portlet.info.MetaInfo;
import org.jboss.portal.portlet.invocation.ActionInvocation;
import org.jboss.portal.portlet.invocation.PortletInvocation;
@@ -120,8 +119,6 @@
public TestPortletSupport()
{
- PreferencesInfoSupport prefs = this.info.getPreferencesSupport();
- prefs.addPreference("_abc", new StringValue("_def"));
this.info.getMetaSupport().setDisplayName("Foo");
}
@@ -317,13 +314,8 @@
public void testConfigureInstance() throws Exception
{
- portletContainer.addPortlet("MyPortlet", new PortletSupport()
- {
- {
- PreferencesInfoSupport prefs = info.getPreferencesSupport();
- prefs.addPreference("abc", new StringValue("def"));
- }
- });
+ PortletInvokerSupport.InternalPortlet internalPortlet = portletContainer.addInternalPortlet("MyPortlet", new PortletSupport());
+ internalPortlet.addPreference("abc", new StringValue("def"));
//
Instance instance = instanceContainer.createDefinition("MyInstance", "MyPortlet", true);
@@ -424,13 +416,14 @@
public void execute() throws Exception
{
- portletContainer.addPortlet("MyPortlet", new TestPortletSupport()
+ PortletInvokerSupport.InternalPortlet internalPortlet = portletContainer.addInternalPortlet("MyPortlet", new TestPortletSupport()
{
public PortletInvocationResponse execute()
{
return TestCloneBeforeWrite.this.execute(this);
}
});
+ internalPortlet.addPreference("_abc", new StringValue("_def"));
String popId = getSinglePOP().getContext().getId();
//
@@ -694,7 +687,7 @@
public void testDestroyCCPInstance() throws Exception
{
- portletContainer.addPortlet("MyPortlet", new TestPortletSupport()
+ PortletInvokerSupport.InternalPortlet internalPortlet = portletContainer.addInternalPortlet("MyPortlet", new TestPortletSupport()
{
public PortletInvocationResponse execute()
{
@@ -702,6 +695,7 @@
return null;
}
});
+ internalPortlet.addPreference("_abc", new StringValue("_def"));
// Create the instance
TransactionAssert.beginTransaction();
@@ -762,7 +756,8 @@
public void testRecreate() throws Exception
{
- portletContainer.addPortlet("MyPortlet", new TestPortletSupport());
+ PortletInvokerSupport.InternalPortlet internalPortlet = portletContainer.addInternalPortlet("MyPortlet", new TestPortletSupport());
+ internalPortlet.addPreference("_abc", new StringValue("_def"));
//
TransactionAssert.beginTransaction();
@@ -790,7 +785,8 @@
public void testCreateDefinitionThrowsDuplicateInstanceException() throws PortletInvokerException, DuplicateInstanceException
{
- portletContainer.addPortlet("MyPortlet", new TestPortletSupport());
+ PortletInvokerSupport.InternalPortlet internalPortlet = portletContainer.addInternalPortlet("MyPortlet", new TestPortletSupport());
+ internalPortlet.addPreference("_abc", new StringValue("_def"));
//
TransactionAssert.beginTransaction();
Modified: trunk/core/src/main/org/jboss/portal/test/core/state/ProducerTestCase.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/test/core/state/ProducerTestCase.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/core/src/main/org/jboss/portal/test/core/state/ProducerTestCase.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -55,7 +55,6 @@
import org.jboss.portal.portlet.state.SimplePropertyMap;
import org.jboss.portal.portlet.state.producer.PortletState;
import org.jboss.portal.portlet.state.producer.PortletStateContext;
-import org.jboss.portal.portlet.support.info.PreferencesInfoSupport;
import org.jboss.portal.portlet.test.ActionContextImpl;
import org.jboss.portal.portlet.test.InstanceContextImpl;
import org.jboss.portal.portlet.test.UserContextImpl;
@@ -214,10 +213,9 @@
runtimeContext.addBean("HibernateConfig", HibernateSupport.getConfig(dataSourceConfigParameter.getName()));
runtimeContext.start();
- portletContainer.addPortlet("SimplePortlet", new PortletSupport()
+ PortletInvokerSupport.InternalPortlet internalSimplePortlet = portletContainer.addInternalPortlet("SimplePortlet", new PortletSupport()
{
{
- info.getPreferencesSupport().addPreference("abc", new StringValue("def"));
info.getMetaSupport().setDisplayName("SimplePortlet");
}
@@ -228,14 +226,10 @@
return null;
}
});
+ internalSimplePortlet.addPreference("abc", new StringValue("def"));
- portletContainer.addPortlet("CloningPortlet", new PortletSupport()
+ PortletInvokerSupport.InternalPortlet internalCloningPortlet = portletContainer.addInternalPortlet("CloningPortlet", new PortletSupport()
{
- {
- PreferencesInfoSupport prefs = info.getPreferencesSupport();
- prefs.addPreference("abc", new StringValue("def"));
- }
-
public PortletInvocationResponse invoke(PortletInvocation invocation)
{
AbstractPropertyContext props = (AbstractPropertyContext)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE, PortletInvocation.PREFERENCES_ATTRIBUTE);
@@ -243,14 +237,10 @@
return null;
}
});
+ internalCloningPortlet.addPreference("abc", new StringValue("def"));
- portletContainer.addPortlet("CloneFailedCloningPortlet", new PortletSupport()
+ PortletInvokerSupport.InternalPortlet internalCloneFailedCloningPortlet = portletContainer.addInternalPortlet("CloneFailedCloningPortlet", new PortletSupport()
{
- {
- PreferencesInfoSupport prefs = info.getPreferencesSupport();
- prefs.addPreference("abc", new StringValue("def"));
- }
-
public PortletInvocationResponse invoke(PortletInvocation invocation)
{
try
@@ -265,14 +255,10 @@
return null;
}
});
+ internalCloneFailedCloningPortlet.addPreference("abc", new StringValue("def"));
- portletContainer.addPortlet("CloningPortletThrowingRuntimeException", new PortletSupport()
+ PortletInvokerSupport.InternalPortlet internalCloningPortletThrowingRuntimeException = portletContainer.addInternalPortlet("CloningPortletThrowingRuntimeException", new PortletSupport()
{
- {
- PreferencesInfoSupport prefs = info.getPreferencesSupport();
- prefs.addPreference("abc", new StringValue("def"));
- }
-
public PortletInvocationResponse invoke(PortletInvocation invocation)
{
AbstractPropertyContext props = (AbstractPropertyContext)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE, PortletInvocation.PREFERENCES_ATTRIBUTE);
@@ -280,6 +266,7 @@
throw new RuntimeException("custom_message");
}
});
+ internalCloningPortletThrowingRuntimeException.addPreference("abc", new StringValue("def"));
// Create registration
if (useRegistration)
Modified: trunk/core/src/main/org/jboss/portlet/JBossPortletPreferences.java
===================================================================
--- trunk/core/src/main/org/jboss/portlet/JBossPortletPreferences.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/core/src/main/org/jboss/portlet/JBossPortletPreferences.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -25,6 +25,7 @@
import org.jboss.portal.common.util.ProxyInfo;
import org.jboss.portal.portlet.impl.jsr168.PortletPreferencesImpl;
import org.jboss.portal.portlet.state.PropertyContext;
+import org.jboss.portal.portlet.container.info.ContainerPreferencesInfo;
import javax.portlet.PreferencesValidator;
import java.lang.reflect.InvocationHandler;
@@ -44,11 +45,12 @@
public JBossPortletPreferences(
PropertyContext manager,
+ ContainerPreferencesInfo containerPrefs,
PreferencesValidator validator,
int mode,
ProxyInfo proxyInfo)
{
- super(manager, validator, mode);
+ super(manager, containerPrefs, validator, mode);
this.proxyInfo = proxyInfo;
}
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-18 14:40:32 UTC (rev 6330)
+++ trunk/core-admin/src/main/org/jboss/portal/core/portlet/management/PortletManagerBean.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -37,6 +37,7 @@
import org.jboss.logging.Logger;
import org.jboss.portal.common.util.LocalizedString;
import org.jboss.portal.common.value.Value;
+import org.jboss.portal.common.value.StringValue;
import org.jboss.portal.core.model.instance.InstanceContainer;
import org.jboss.portal.faces.matrix.Cell;
import org.jboss.portal.faces.matrix.Row;
@@ -311,7 +312,7 @@
//
PreferenceInfo prefs = prefsInfo.getPreference(key);
- Value value = prefs.getDefaultValue();
+ Value value = new StringValue();
Boolean readOnly = prefs.isReadOnly();
//
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerInvoker.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerInvoker.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerInvoker.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -33,11 +33,14 @@
import org.jboss.portal.portlet.PortletInvoker;
import org.jboss.portal.portlet.PortletInvokerException;
import org.jboss.portal.portlet.container.info.ContainerPortletInfo;
+import org.jboss.portal.portlet.container.info.ContainerPreferencesInfo;
+import org.jboss.portal.portlet.container.info.ContainerPreferenceInfo;
import org.jboss.portal.portlet.info.PortletInfo;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.state.PropertyChange;
import org.jboss.portal.portlet.state.PropertyMap;
+import org.jboss.portal.portlet.state.SimplePropertyMap;
import java.util.HashMap;
import java.util.HashSet;
@@ -202,22 +205,56 @@
}
}
- public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
{
- throw new UnsupportedOperationException();
+ PortletImpl portlet = (PortletImpl)portlets.get(portletContext.getId());
+ if (portlet == null)
+ {
+ throw new NoSuchPortletException(portletContext.getId());
+ }
+ ContainerPortletInfo info = (ContainerPortletInfo)portlet.getInfo();
+ ContainerPreferencesInfo prefs = (ContainerPreferencesInfo)info.getPreferences();
+ PropertyMap result = new SimplePropertyMap();
+ for (Iterator i = keys.iterator();i.hasNext();)
+ {
+ String key = (String)i.next();
+ ContainerPreferenceInfo pref = prefs.getContainerPreference(key);
+ if (pref != null)
+ {
+ result.put(key, pref.getDefaultValue());
+ }
+ }
+ return result;
}
- public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
{
- throw new UnsupportedOperationException();
+ PortletImpl portlet = (PortletImpl)portlets.get(portletContext.getId());
+ if (portlet == null)
+ {
+ throw new NoSuchPortletException(portletContext.getId());
+ }
+ ContainerPortletInfo info = (ContainerPortletInfo)portlet.getInfo();
+ ContainerPreferencesInfo prefs = (ContainerPreferencesInfo)info.getPreferences();
+ PropertyMap result = new SimplePropertyMap();
+ for (Iterator i = prefs.getKeys().iterator();i.hasNext();)
+ {
+ String key = (String)i.next();
+ ContainerPreferenceInfo pref = prefs.getContainerPreference(key);
+ if (pref != null)
+ {
+ result.put(key, pref.getDefaultValue());
+ }
+ }
+ return result;
}
- public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
{
throw new UnsupportedOperationException();
}
- public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
{
throw new UnsupportedOperationException();
}
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/container/info/ContainerPreferenceInfo.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/container/info/ContainerPreferenceInfo.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/container/info/ContainerPreferenceInfo.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -68,6 +68,11 @@
return readOnly;
}
+ /**
+ * Return the value provided by the portlet.xml deployment descriptor.
+ *
+ * @return the preference value associated with this preference meta data
+ */
public Value getDefaultValue()
{
return value;
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletPreferencesImpl.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletPreferencesImpl.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletPreferencesImpl.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -27,6 +27,8 @@
import org.jboss.portal.common.value.Value;
import org.jboss.portal.portlet.state.PropertyChange;
import org.jboss.portal.portlet.state.PropertyContext;
+import org.jboss.portal.portlet.container.info.ContainerPreferenceInfo;
+import org.jboss.portal.portlet.container.info.ContainerPreferencesInfo;
import javax.portlet.PortletPreferences;
import javax.portlet.PreferencesValidator;
@@ -66,6 +68,9 @@
protected final PreferencesValidator validator;
/** . */
+ protected final ContainerPreferencesInfo containerPrefs;
+
+ /** . */
protected final int mode;
/** Keep track of updates */
@@ -73,11 +78,13 @@
public PortletPreferencesImpl(
PropertyContext prefs,
+ ContainerPreferencesInfo containerPrefs,
PreferencesValidator validator,
int mode)
{
this.prefs = prefs;
this.validator = validator;
+ this.containerPrefs = containerPrefs;
this.mode = mode;
this.updates = new HashMap();
}
@@ -115,7 +122,7 @@
private Value getValue(String key)
{
- Value value;
+ Value value = null;
PropertyChange change = (PropertyChange)updates.get(key);
if (change != null)
{
@@ -125,7 +132,11 @@
}
else
{
- value = prefs.getPortletValue(key);
+ ContainerPreferenceInfo containerPref = containerPrefs.getContainerPreference(key);
+ if (containerPref != null)
+ {
+ value = containerPref.getDefaultValue();
+ }
}
}
else
@@ -136,7 +147,11 @@
// If does not exist or read only use what the default one
if (value == null || isReadOnly(key))
{
- value = prefs.getPortletValue(key);
+ ContainerPreferenceInfo containerPref = containerPrefs.getContainerPreference(key);
+ if (containerPref != null)
+ {
+ value = containerPref.getDefaultValue();
+ }
}
}
return value;
@@ -279,10 +294,10 @@
super(10);
//
- for (Iterator i = prefs.getPortletKeys().iterator(); i.hasNext();)
+ for (Iterator i = containerPrefs.getKeys().iterator(); i.hasNext();)
{
String key = (String)i.next();
- String[] value = prefs.getPortletValue(key).asStringArray();
+ String[] value = containerPrefs.getContainerPreference(key).getDefaultValue().asStringArray();
String[] clone = new String[value.length];
System.arraycopy(value, 0, clone, 0, value.length);
super.put(key, clone);
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletRequestImpl.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletRequestImpl.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/impl/jsr168/PortletRequestImpl.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -29,6 +29,7 @@
import org.jboss.portal.portlet.container.PortletContainer;
import org.jboss.portal.portlet.container.info.ContainerPortletInfo;
import org.jboss.portal.portlet.container.info.ContentTypes;
+import org.jboss.portal.portlet.container.info.ContainerPreferencesInfo;
import org.jboss.portal.portlet.impl.jsr168.metadata.PortletApplicationMetaData;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.spi.InstanceContext;
@@ -109,11 +110,12 @@
this.portalContext = new PortalContextImpl(invocation.getPortalContext());
this.parameters = null;
+ //
int mode = this instanceof RenderRequest ? PortletPreferencesImpl.RENDER : PortletPreferencesImpl.ACTION;
PropertyContext prefs = (PropertyContext)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE, PortletInvocation.PREFERENCES_ATTRIBUTE);
PreferencesValidator validator = container.getPreferencesValidator();
-
- this.preferences = new PortletPreferencesImpl(prefs, validator, mode);
+ ContainerPreferencesInfo containerPrefs = (ContainerPreferencesInfo)container.getInfo().getPreferences();
+ this.preferences = new PortletPreferencesImpl(prefs, containerPrefs, validator, mode);
}
// PLT.11.1.1
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/info/PreferenceInfo.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/info/PreferenceInfo.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/info/PreferenceInfo.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -69,5 +69,5 @@
*
* @return the default value
*/
- Value getDefaultValue();
+// Value getDefaultValue();
}
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/state/AbstractPropertyContext.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/AbstractPropertyContext.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/AbstractPropertyContext.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -134,16 +134,6 @@
return portletPrefs.getKeys();
}
- public Value getPortletValue(String key) throws IllegalArgumentException
- {
- PreferenceInfo pref = portletPrefs.getPreference(key);
- if (pref != null)
- {
- return pref.getDefaultValue();
- }
- return null;
- }
-
public boolean isReadOnly(String key) throws IllegalArgumentException
{
PreferenceInfo pref = portletPrefs.getPreference(key);
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/state/PropertyContext.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/PropertyContext.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/PropertyContext.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -76,15 +76,6 @@
Set getPortletKeys() throws IllegalArgumentException;
/**
- * Return for a key a value or null if no suitable value is found.
- *
- * @param key the requested key
- * @return the found value or null
- * @throws IllegalArgumentException if the key or the array is null
- */
- Value getPortletValue(String key) throws IllegalArgumentException;
-
- /**
* Say if the property key is marked as read only or not.
*
* @param key the requested key
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -56,6 +56,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import java.util.HashSet;
+import java.util.Map;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -194,7 +196,7 @@
AccessMode access = instanceCtx.getAccessMode();
// Get a state contxt for the portlet context
- InternalPortletContext context = getStateContext(portletContext);
+ InternalContext context = getStateContext(portletContext);
// If it is a producer offered portlet we consider read-write as read-only
if (context.isStateful() == false && access == AccessMode.READ_WRITE)
@@ -203,10 +205,10 @@
}
// Get the portlet container and set it on invocation
- Portlet portlet = portletInvoker.getPortlet(PortletContext.createPortletContext(context.getPortletId()));
+ Portlet portlet = portletInvoker.getPortlet(context.getPortletContext());
if (portlet == null)
{
- throw new NoSuchPortletException("Portlet " + context.getPortletId() + " not found", context.getPortletId());
+ throw new NoSuchPortletException("Portlet " + context.getPortletContext() + " not found", context.getPortletId());
}
// Create prefs
@@ -218,7 +220,7 @@
PortletInvocationResponse response;
try
{
- invocation.setAttribute(PortletInvocation.REQUEST_SCOPE, PortletInvocation.PORTLET_CONTEXT_ATTRIBUTE, PortletContext.createPortletContext(context.getPortletId()));
+ invocation.setAttribute(PortletInvocation.REQUEST_SCOPE, PortletInvocation.PORTLET_CONTEXT_ATTRIBUTE, context.getPortletContext());
invocation.setAttribute(PortletInvocation.REQUEST_SCOPE, PortletInvocation.PREFERENCES_ATTRIBUTE, prefs);
invocation.setInfo(info);
@@ -283,18 +285,7 @@
else
{
// Add the missing mutable portlet state
- for (Iterator i = prefsInfo.getKeys().iterator(); i.hasNext();)
- {
- String key = (String)i.next();
- if (!newPrefs.keySet().contains(key))
- {
- PreferenceInfo pref = prefsInfo.getPreference(key);
- if (Boolean.FALSE.equals(pref.isReadOnly()))
- {
- newPrefs.setProperty(key, pref.getDefaultValue());
- }
- }
- }
+ getPropertiesFromMetaData(portlet.getContext(), newPrefs);
// Create the new state
String cloneStateId = persistenceManager.createState(context.getPortletId(), newPrefs);
@@ -354,7 +345,7 @@
//
String portletId = portletContext.getId();
- InternalPortletContext context = getStateContext(portletContext);
+ InternalContext context = getStateContext(portletContext);
boolean useStore = stateManagementPolicy.persistLocally();
//
@@ -385,14 +376,8 @@
}
else
{
- PropertyMap originalState = getPropertiesFromMetaData(portletId);
PropertyMap newState = new SimplePropertyMap();
- for (Iterator i = originalState.keySet().iterator(); i.hasNext();)
- {
- String key = (String)i.next();
- Value originalValue = originalState.getProperty(key);
- newState.setProperty(key, originalValue);
- }
+ getPropertiesFromMetaData(portletContext, newState);
if (useStore)
{
String cloneId = persistenceManager.createState(portletId, newState);
@@ -472,7 +457,7 @@
//
String portletId = portletContext.getId();
- InternalPortletContext context = getStateContext(portletContext);
+ InternalContext context = getStateContext(portletContext);
//
if (context.isStateful())
@@ -483,40 +468,29 @@
PropertyMap props = new SimplePropertyMap(statefulContext.getProperties());
// Dereference the portlet
- String referencedPortletId = context.getPortletId();
+ PortletContext refPortletContext = context.getPortletContext();
- // Get the container
- Portlet referencedPortlet = portletInvoker.getPortlet(PortletContext.createPortletContext(referencedPortletId));
+ // Get the referenced portlet
+ Portlet refPortlet = portletInvoker.getPortlet(refPortletContext);
// We need the referenced portlet
- if (referencedPortlet == null)
+ if (refPortlet == null)
{
- throw new PortletInvokerException("The portlet " + referencedPortletId + " referenced by this clone " + portletId + " is not available");
+ throw new PortletInvokerException("The portlet " + refPortletContext + " referenced by this clone " + portletId + " is not available");
}
- // Get the portlet info
- PortletInfo referencedPortletInfo = referencedPortlet.getInfo();
+ //
+ getPropertiesFromMetaData(refPortletContext, props);
- // Add missing or read only properties from the referenced portlet
- PreferencesInfo prefs = referencedPortletInfo.getPreferences();
- for (Iterator i = prefs.getKeys().iterator(); i.hasNext();)
- {
- String key = (String)i.next();
- PreferenceInfo pref = prefs.getPreference(key);
- if (Boolean.TRUE.equals(pref.isReadOnly()) || !props.keySet().contains(pref.getKey()))
- {
- Value defaultValue = pref.getDefaultValue();
- props.setProperty(key, (Value)defaultValue.clone());
- }
- }
-
//
return props;
}
else
{
// Get the container
- return getPropertiesFromMetaData(context.getPortletId());
+ PropertyMap props = new SimplePropertyMap();
+ getPropertiesFromMetaData(context.getPortletContext(), props);
+ return props;
}
}
@@ -541,7 +515,7 @@
//
String portletId = portletContext.getId();
- InternalPortletContext context = getStateContext(portletContext);
+ InternalContext context = getStateContext(portletContext);
//
if (context.isStateful() == false)
@@ -550,16 +524,13 @@
}
StatefulContext statefulContext = (StatefulContext)context;
- // Dereference the portlet
- String referencedPortletId = context.getPortletId();
-
// Get the container
- Portlet referencedPortlet = portletInvoker.getPortlet(PortletContext.createPortletContext(referencedPortletId));
+ Portlet referencedPortlet = portletInvoker.getPortlet(context.getPortletContext());
// We need the referenced portlet
if (referencedPortlet == null)
{
- throw new PortletInvokerException("The portlet " + referencedPortletId + " referenced by this clone " + portletId + " is not available");
+ throw new PortletInvokerException("The portlet " + context.getPortletContext() + " referenced by this clone " + portletId + " is not available");
}
// Get the portlet info
@@ -620,7 +591,7 @@
}
else
{
- return marshall(referencedPortletId, properties);
+ return marshall(context.getPortletId(), properties);
}
}
@@ -641,29 +612,40 @@
/**
* Retrieve the properties from the portlet meta data.
*
- * @param portletId the portlet id
+ * @param portletContext the portlet context
* @return the properties
* @throws PortletInvokerException
*/
- private PropertyMap getPropertiesFromMetaData(String portletId) throws PortletInvokerException
+ private void getPropertiesFromMetaData(PortletContext portletContext, PropertyMap props) throws PortletInvokerException
{
//
- Portlet portlet = portletInvoker.getPortlet(PortletContext.createPortletContext(portletId));
+ Portlet portlet = portletInvoker.getPortlet(portletContext);
// The prefs info
PreferencesInfo prefs = portlet.getInfo().getPreferences();
- // Get the state
- PropertyMap property = new SimplePropertyMap();
+ // Collect missing or read only properties from the referenced portlet
+ Set keys = new HashSet();
for (Iterator i = prefs.getKeys().iterator(); i.hasNext();)
{
String key = (String)i.next();
PreferenceInfo pref = prefs.getPreference(key);
- property.setProperty(key, (Value)pref.getDefaultValue().clone());
+ if (Boolean.TRUE.equals(pref.isReadOnly()) || !props.keySet().contains(pref.getKey()))
+ {
+ keys.add(key);
+ }
}
- //
- return property;
+ // Get the missing or read only properties from the referenced portlet properties
+ // and add them to the actual state
+ PropertyMap refPreferencesInfo = portletInvoker.getProperties(portletContext, keys);
+ for (Iterator i = refPreferencesInfo.entrySet().iterator();i.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ String key = (String)entry.getKey();
+ Value value = (Value)entry.getValue();
+ props.setProperty(key, (Value)value.clone());
+ }
}
/**
@@ -674,7 +656,7 @@
* @throws NoSuchPortletException if the underlying state does not exist
* @throws InvalidPortletIdException if the state id is not valid
*/
- private InternalPortletContext getStateContext(final PortletContext portletContext) throws NoSuchPortletException, InvalidPortletIdException
+ private InternalContext getStateContext(final PortletContext portletContext) throws NoSuchPortletException, InvalidPortletIdException
{
byte[] bytes = portletContext.getState();
if (bytes == null)
@@ -719,24 +701,28 @@
/**
* An internal portlet context that describe how the portlet was obtained.
*/
- private abstract static class InternalPortletContext
+ private abstract static class InternalContext
{
/** . */
private final String portletId;
+ /** . */
+ private final PortletContext portletContext;
+
/**
* @return true if the context represent a cloned portlet
*/
public abstract boolean isStateful();
- public InternalPortletContext(String portletId)
+ public InternalContext(String portletId)
{
if (portletId == null)
{
throw new IllegalArgumentException();
}
this.portletId = portletId;
+ this.portletContext = PortletContext.createPortletContext(portletId);
}
/**
@@ -746,12 +732,17 @@
{
return portletId;
}
+
+ public PortletContext getPortletContext()
+ {
+ return portletContext;
+ }
}
/**
* Describe delegate portlets.
*/
- private static class StatelessContext extends InternalPortletContext
+ private static class StatelessContext extends InternalContext
{
public StatelessContext(String portletId)
{
@@ -767,7 +758,7 @@
/**
* A cloned portlet that points to a delegate portlet.
*/
- private abstract static class StatefulContext extends InternalPortletContext
+ private abstract static class StatefulContext extends InternalContext
{
/** . */
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/support/info/PreferenceInfoSupport.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/support/info/PreferenceInfoSupport.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/support/info/PreferenceInfoSupport.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -23,7 +23,6 @@
package org.jboss.portal.portlet.support.info;
import org.jboss.portal.common.util.LocalizedString;
-import org.jboss.portal.common.value.Value;
import org.jboss.portal.portlet.info.PreferenceInfo;
import java.util.Locale;
@@ -47,34 +46,20 @@
/** . */
private Boolean readOnly;
- /** . */
- private Value defaultValue;
-
public PreferenceInfoSupport(String key)
{
this.key = key;
this.displayName = new LocalizedString("Display name of " + key, Locale.ENGLISH);
this.description = new LocalizedString("Description of " + key, Locale.ENGLISH);
this.readOnly = null;
- this.defaultValue = null;
}
- public PreferenceInfoSupport(String key, Value defaultValue)
+ public PreferenceInfoSupport(String key, Boolean readOnly)
{
this.key = key;
this.displayName = new LocalizedString("Display name of " + key, Locale.ENGLISH);
this.description = new LocalizedString("Description of " + key, Locale.ENGLISH);
- this.readOnly = Boolean.FALSE;
- this.defaultValue = defaultValue;
- }
-
- public PreferenceInfoSupport(String key, Value defaultValue, Boolean readOnly)
- {
- this.key = key;
- this.displayName = new LocalizedString("Display name of " + key, Locale.ENGLISH);
- this.description = new LocalizedString("Description of " + key, Locale.ENGLISH);
this.readOnly = readOnly;
- this.defaultValue = defaultValue;
}
public String getKey()
@@ -102,16 +87,6 @@
this.readOnly = readOnly;
}
- public Value getDefaultValue()
- {
- return defaultValue;
- }
-
- public void setDefaultValue(Value defaultValue)
- {
- this.defaultValue = defaultValue;
- }
-
public void setDisplayName(LocalizedString displayName)
{
this.displayName = displayName;
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/support/info/PreferencesInfoSupport.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/support/info/PreferencesInfoSupport.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/support/info/PreferencesInfoSupport.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -69,13 +69,8 @@
preferences.put(key, new PreferenceInfoSupport(key));
}
- public void addPreference(String key, Value value)
+ public void addPreference(String key, Boolean readOnly)
{
- preferences.put(key, new PreferenceInfoSupport(key, value));
+ preferences.put(key, new PreferenceInfoSupport(key, readOnly));
}
-
- public void addPreference(String key, Value value, Boolean readOnly)
- {
- preferences.put(key, new PreferenceInfoSupport(key, value, readOnly));
- }
}
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/test/support/PortletInvokerSupport.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -35,12 +35,15 @@
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.state.PropertyChange;
import org.jboss.portal.portlet.state.PropertyMap;
+import org.jboss.portal.portlet.state.SimplePropertyMap;
+import org.jboss.portal.common.value.Value;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.Iterator;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -59,24 +62,15 @@
public void setValid(String portletId, boolean valid)
{
- if (portletId == null)
- {
- throw new IllegalArgumentException();
- }
- InternalPortlet portlet = (InternalPortlet)portlets.get(portletId);
- if (portlet == null)
- {
- throw new IllegalArgumentException();
- }
- portlet.setValid(valid);
+ getInternalPortlet(portletId).valid = valid;
}
- public PortletInvokerSupport addPortlet(String portletId, PortletInfoSupport info)
+ public InternalPortlet addInternalPortlet(String portletId, PortletInfoSupport info)
{
- return addPortlet(portletId, new PortletSupport(info));
+ return addInternalPortlet(portletId, new PortletSupport(info));
}
- public PortletInvokerSupport addPortlet(String portletId, PortletSupport support)
+ public InternalPortlet addInternalPortlet(String portletId, PortletSupport support)
{
if (portletId == null)
{
@@ -91,10 +85,10 @@
{
throw new IllegalStateException();
}
- return this;
+ return portlet;
}
- public PortletInvokerSupport removePortlet(String portletId)
+ public PortletInvokerSupport removeInternalPortlet(String portletId)
{
if (portlets.remove(portletId) == null)
{
@@ -103,6 +97,20 @@
return this;
}
+ public InternalPortlet getInternalPortlet(String portletId)
+ {
+ if (portletId == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ InternalPortlet portlet = (InternalPortlet)portlets.get(portletId);
+ if (portlet == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ return portlet;
+ }
+
public Set getPortlets()
{
return new HashSet(portlets.values());
@@ -139,7 +147,7 @@
return portlet;
}
- private static class InternalPortlet implements Portlet
+ public static class InternalPortlet implements Portlet
{
/** . */
@@ -151,6 +159,9 @@
/** . */
private boolean valid;
+ /** . */
+ private Map state;
+
public InternalPortlet(String portletId, PortletSupport support)
{
if (portletId == null)
@@ -164,8 +175,21 @@
this.portletContext = PortletContext.createPortletContext(portletId);
this.support = support;
this.valid = true;
+ this.state = new HashMap();
}
+ public void addPreference(String key, Value value)
+ {
+ support.getInfoSupport().getPreferencesSupport().addPreference(key);
+ state.put(key, value);
+ }
+
+ public void addPreference(String key, Value value, Boolean readOnly)
+ {
+ support.getInfoSupport().getPreferencesSupport().addPreference(key, readOnly);
+ state.put(key, value);
+ }
+
public PortletContext getContext()
{
return portletContext;
@@ -185,33 +209,50 @@
{
return valid;
}
+ }
- public void setValid(boolean valid)
+ public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ {
+ InternalPortlet internalPortlet = internalGetPortlet(portletContext);
+ PropertyMap props = new SimplePropertyMap();
+ for (Iterator i = keys.iterator();i.hasNext();)
{
- this.valid = valid;
+ String key = (String)i.next();
+ Value value = (Value)internalPortlet.state.get(key);
+ if (value != null)
+ {
+ props.put(key, value.clone());
+ }
}
+ return props;
}
- public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
{
- throw new UnsupportedOperationException();
+ InternalPortlet internalPortlet = internalGetPortlet(portletContext);
+ PropertyMap props = new SimplePropertyMap();
+ for (Iterator i = internalPortlet.state.keySet().iterator();i.hasNext();)
+ {
+ String key = (String)i.next();
+ Value value = (Value)internalPortlet.state.get(key);
+ if (value != null)
+ {
+ props.put(key, value.clone());
+ }
+ }
+ return props;
}
- public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ public PortletContext createClone(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
{
throw new UnsupportedOperationException();
}
- public PropertyMap getProperties(PortletContext portletContext, Set keys) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
+ public List destroyClones(List portletContexts) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
{
throw new UnsupportedOperationException();
}
- public PropertyMap getProperties(PortletContext portletContext) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
- {
- throw new UnsupportedOperationException();
- }
-
public PortletContext setProperties(PortletContext portletContext, PropertyChange[] changes) throws IllegalArgumentException, PortletInvokerException, UnsupportedOperationException
{
throw new UnsupportedOperationException();
Modified: trunk/portlet/src/main/org/jboss/portal/test/portlet/info/PortletInfoTest.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/test/portlet/info/PortletInfoTest.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/test/portlet/info/PortletInfoTest.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -45,7 +45,7 @@
public DriverResponse execute(ServerInvocation invocation, HttpTestContext testContext)
{
//This asserts only .isRemotable() as rest is checked in other tests
- PortletContainer container = (PortletContainer)registry.getPortletApplication("/test-info").getPortletContainer("RemotablePortlet1");
+ PortletContainer container = registry.getPortletApplication("/test-info").getPortletContainer("RemotablePortlet1");
PortletInfo info = container.getInfo();
ExtendedAssert.assertEquals(Boolean.TRUE, info.isRemotable());
@@ -57,11 +57,11 @@
ExtendedAssert.assertNotNull(info.getSecurity());
ExtendedAssert.assertNotNull(info.getSession());
- container = (PortletContainer)registry.getPortletApplication("/test-info").getPortletContainer("RemotablePortlet2");
+ container = registry.getPortletApplication("/test-info").getPortletContainer("RemotablePortlet2");
info = container.getInfo();
ExtendedAssert.assertEquals(Boolean.FALSE, info.isRemotable());
- container = (PortletContainer)registry.getPortletApplication("/test-info").getPortletContainer("RemotablePortlet3");
+ container = registry.getPortletApplication("/test-info").getPortletContainer("RemotablePortlet3");
info = container.getInfo();
ExtendedAssert.assertEquals(Boolean.TRUE, info.isRemotable());
Modified: trunk/portlet/src/main/org/jboss/portal/test/portlet/info/PreferenceInfoTest.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/test/portlet/info/PreferenceInfoTest.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/test/portlet/info/PreferenceInfoTest.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -22,11 +22,10 @@
******************************************************************************/
package org.jboss.portal.test.portlet.info;
-import org.jboss.portal.portlet.container.PortletApplicationRegistry;
import org.jboss.portal.portlet.container.PortletContainer;
+import org.jboss.portal.portlet.container.info.ContainerPreferencesInfo;
+import org.jboss.portal.portlet.container.info.ContainerPreferenceInfo;
import org.jboss.portal.portlet.info.PortletInfo;
-import org.jboss.portal.portlet.info.PreferenceInfo;
-import org.jboss.portal.portlet.info.PreferencesInfo;
import org.jboss.portal.server.ServerInvocation;
import org.jboss.portal.common.test.driver.response.EndTestResponse;
import org.jboss.portal.common.test.driver.DriverResponse;
@@ -54,10 +53,10 @@
//
PortletInfo info = container.getInfo();
- PreferencesInfo prefsInfo = info.getPreferences();
+ ContainerPreferencesInfo prefsInfo = (ContainerPreferencesInfo)info.getPreferences();
//
- PreferenceInfo prefInfo = prefsInfo.getPreference("localized_pref");
+ ContainerPreferenceInfo prefInfo = prefsInfo.getContainerPreference("localized_pref");
ExtendedAssert.assertEquals("localized_pref", prefInfo.getKey());
ExtendedAssert.assertEquals("english localized description", prefInfo.getDescription().getString(Locale.ENGLISH, false));
ExtendedAssert.assertEquals("polish localized description", prefInfo.getDescription().getString(new Locale("pl"), false));
@@ -73,28 +72,28 @@
ExtendedAssert.assertTrue(keys.contains("multi_pref_bis"));
//
- prefInfo = prefsInfo.getPreference("single_pref");
+ prefInfo = prefsInfo.getContainerPreference("single_pref");
ExtendedAssert.assertEquals("single_pref", prefInfo.getKey());
String[] values = prefInfo.getDefaultValue().asStringArray();
ExtendedAssert.assertEquals(new String[]{"single_pref_value"}, values);
ExtendedAssert.assertTrue(!prefInfo.isReadOnly().booleanValue());
//
- prefInfo = prefsInfo.getPreference("multi_pref");
+ prefInfo = prefsInfo.getContainerPreference("multi_pref");
ExtendedAssert.assertEquals("multi_pref", prefInfo.getKey());
values = prefInfo.getDefaultValue().asStringArray();
ExtendedAssert.assertEquals(new String[]{"multi_pref_value_1", "multi_pref_value_2"}, values);
ExtendedAssert.assertTrue(!prefInfo.isReadOnly().booleanValue());
//
- prefInfo = prefsInfo.getPreference("single_pref_bis");
+ prefInfo = prefsInfo.getContainerPreference("single_pref_bis");
ExtendedAssert.assertEquals("single_pref_bis", prefInfo.getKey());
values = prefInfo.getDefaultValue().asStringArray();
ExtendedAssert.assertEquals(new String[]{"single_pref_value"}, values);
ExtendedAssert.assertTrue(prefInfo.isReadOnly().booleanValue());
//
- prefInfo = prefsInfo.getPreference("multi_pref_bis");
+ prefInfo = prefsInfo.getContainerPreference("multi_pref_bis");
ExtendedAssert.assertEquals("multi_pref_bis", prefInfo.getKey());
values = prefInfo.getDefaultValue().asStringArray();
ExtendedAssert.assertEquals(new String[]{"multi_pref_value_1", "multi_pref_value_2"}, values);
Modified: trunk/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/test/portlet/state/AbstractStatefulPortletInvokerTestCase.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -26,6 +26,7 @@
import org.jboss.portal.common.util.CollectionBuilder;
import org.jboss.portal.common.util.LocalizedString;
import org.jboss.portal.common.value.StringValue;
+import org.jboss.portal.common.value.Value;
import org.jboss.portal.portlet.InvalidPortletIdException;
import org.jboss.portal.portlet.NoSuchPortletException;
import org.jboss.portal.portlet.Portlet;
@@ -147,6 +148,16 @@
/**
*
*/
+ protected abstract void addPreference(PortletContext popRef, String key, Value defaultValue);
+
+ /**
+ *
+ */
+ protected abstract void addPreference(PortletContext popRef, String key, Value defaultValue, Boolean readOnly);
+
+ /**
+ *
+ */
protected final PortletContext createPOPRef(PortletInfoSupport portletInfo) throws PortletInvokerException
{
PortletSupport portletSupport = new PortletSupport(portletInfo);
@@ -255,11 +266,13 @@
{
PortletInfoSupport info = new PortletInfoSupport();
info.getMetaSupport().setDisplayName("MyPortlet");
- info.getPreferencesSupport().addPreference("abc", new StringValue("def"));
+ PortletContext popCtx = createPOPRef(info);
+ addPreference(popCtx, "abc", new StringValue("def"));
- PortletContext popCtx = createPOPRef(info);
+ //
PortletContext ccp1Ctx = createClone(popCtx);
+
// Check state
PropertyMap expected = new SimplePropertyMap();
expected.setProperty("abc", new StringValue("def"));
@@ -537,9 +550,9 @@
public void testGetPOPProperties() throws Exception
{
PortletInfoSupport info = new PortletInfoSupport();
- info.getPreferencesSupport().addPreference("abc", new StringValue("def"));
- info.getPreferencesSupport().addPreference("ghi", new StringValue("jkl"), Boolean.TRUE);
PortletContext popCtx = createPOPRef(info);
+ addPreference(popCtx, "abc", new StringValue("def"));
+ addPreference(popCtx, "ghi", new StringValue("jkl"), Boolean.TRUE);
//
PropertyMap props = getProperties(popCtx);
@@ -558,11 +571,11 @@
public void testGetCCPProperties() throws Exception
{
PortletInfoSupport info = new PortletInfoSupport();
- info.getPreferencesSupport().addPreference("abc", new StringValue("def"));
- info.getPreferencesSupport().addPreference("ghi", new StringValue("jkl"));
- info.getPreferencesSupport().addPreference("mno", new StringValue("pqr"), Boolean.TRUE);
- info.getPreferencesSupport().addPreference("stu", new StringValue("vwx"), Boolean.TRUE);
PortletContext popCtx = createPOPRef(info);
+ addPreference(popCtx, "abc", new StringValue("def"));
+ addPreference(popCtx, "ghi", new StringValue("jkl"));
+ addPreference(popCtx, "mno", new StringValue("pqr"), Boolean.TRUE);
+ addPreference(popCtx, "stu", new StringValue("vwx"), Boolean.TRUE);
//
PortletContext ccpCtx = createClone(popCtx);
@@ -643,11 +656,11 @@
public void testSetCCPProperties() throws Exception
{
PortletInfoSupport info = new PortletInfoSupport();
- info.getPreferencesSupport().addPreference("override_update", new StringValue("override_update_portlet_value"));
- info.getPreferencesSupport().addPreference("override_reset", new StringValue("override_reset_portlet_value"));
- info.getPreferencesSupport().addPreference("override_create", new StringValue("override_create_portlet_value"));
- info.getPreferencesSupport().addPreference("readonly_create", new StringValue("readonly_create_portlet_value"), Boolean.TRUE);
PortletContext popCtx = createPOPRef(info);
+ addPreference(popCtx, "override_update", new StringValue("override_update_portlet_value"));
+ addPreference(popCtx, "override_reset", new StringValue("override_reset_portlet_value"));
+ addPreference(popCtx, "override_create", new StringValue("override_create_portlet_value"));
+ addPreference(popCtx, "readonly_create", new StringValue("readonly_create_portlet_value"), Boolean.TRUE);
//
PortletContext ccpCtx = createClone(popCtx);
@@ -697,7 +710,6 @@
public void testInvokeCloneBeforeWriteWithUpdate() throws Exception
{
PortletInfoSupport info = new PortletInfoSupport();
- info.getPreferencesSupport().addPreference("abc", new StringValue("def"));
PortletSupport portletSupport = new PortletSupport(info)
{
public PortletInvocationResponse invoke(PortletInvocation invocation)
@@ -708,6 +720,7 @@
}
};
PortletContext popCtx = createPOPRef(portletSupport);
+ addPreference(popCtx, "abc", new StringValue("def"));
//
ActionInvocation invocation = createAction(popCtx, AccessMode.CLONE_BEFORE_WRITE);
@@ -729,7 +742,6 @@
final Boolean[] ise = {Boolean.FALSE};
PortletInfoSupport info = new PortletInfoSupport();
- info.getPreferencesSupport().addPreference("abc", new StringValue("def"));
PortletSupport portletSupport = new PortletSupport(info)
{
public PortletInvocationResponse invoke(PortletInvocation invocation)
@@ -748,6 +760,7 @@
}
};
PortletContext popCtx = createPOPRef(portletSupport);
+ addPreference(popCtx, "abc", new StringValue("def"));
//
ActionInvocation invocation = createAction(popCtx, AccessMode.READ_ONLY);
@@ -762,7 +775,6 @@
public void testInvokeReadWriteWithUpdate() throws Exception
{
PortletInfoSupport info = new PortletInfoSupport();
- info.getPreferencesSupport().addPreference("abc", new StringValue("def"));
PortletSupport portletSupport = new PortletSupport(info)
{
public PortletInvocationResponse invoke(PortletInvocation invocation)
@@ -773,6 +785,9 @@
}
};
PortletContext popCtx = createPOPRef(portletSupport);
+ addPreference(popCtx, "abc", new StringValue("def"));
+
+ //
PortletContext ccpCtx = createClone(popCtx);
//
Modified: trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ConsumerStatefulPortletInvokerTestCase.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -41,6 +41,7 @@
import org.jboss.portal.portlet.test.InstanceContextImpl;
import org.jboss.portal.portlet.test.support.PortletInvokerSupport;
import org.jboss.portal.portlet.test.support.PortletSupport;
+import org.jboss.portal.common.value.Value;
import java.util.Collections;
import java.util.List;
@@ -108,27 +109,27 @@
protected Portlet getPortlet(PortletContext portletRef) throws PortletInvokerException
{
- return consumer.getPortlet((PortletContext)portletRef);
+ return consumer.getPortlet(portletRef);
}
protected PortletContext createPOPRef(PortletSupport portletSupport) throws PortletInvokerException
{
- container.addPortlet("PortletId", portletSupport);
+ container.addInternalPortlet("PortletId", portletSupport);
Portlet portlet = getSinglePOP();
return portlet.getContext();
}
protected PortletContext createNonExistingPOPRef() throws PortletInvokerException
{
- container.addPortlet("NonExistingPortletId", new PortletInfoSupport());
+ container.addInternalPortlet("NonExistingPortletId", new PortletInfoSupport());
PortletContext popContext = getSinglePOP().getContext();
- container.removePortlet("NonExistingPortletId");
+ container.removeInternalPortlet("NonExistingPortletId");
return popContext;
}
protected PortletContext createInvalidPOPRef() throws PortletInvokerException
{
- container.addPortlet("InvalidPortletId", new PortletInfoSupport());
+ container.addInternalPortlet("InvalidPortletId", new PortletInfoSupport());
PortletContext popContext = getSinglePOP().getContext();
container.setValid("InvalidPortletId", false);
return popContext;
@@ -137,11 +138,21 @@
protected PortletContext createLocalClone(PortletContext portletRef) throws Exception
{
stateManagementPolicy.setPersistLocally(true);
- PortletContext cloneRef = consumer.createClone((PortletContext)portletRef);
+ PortletContext cloneRef = consumer.createClone(portletRef);
stateManagementPolicy.setPersistLocally(persistLocally);
return cloneRef;
}
+ protected void addPreference(PortletContext popRef, String key, Value defaultValue)
+ {
+ container.getInternalPortlet(popRef.getId()).addPreference(key, defaultValue);
+ }
+
+ protected void addPreference(PortletContext popRef, String key, Value defaultValue, Boolean readOnly)
+ {
+ container.getInternalPortlet(popRef.getId()).addPreference(key, defaultValue, readOnly);
+ }
+
protected void destroyClone(PortletContext portletRef) throws Exception
{
assertEquals(Collections.EMPTY_LIST, consumer.destroyClones(Collections.singletonList(portletRef)));
@@ -154,23 +165,23 @@
protected PortletContext createClone(PortletContext portletRef) throws PortletInvokerException
{
- return consumer.createClone((PortletContext)portletRef);
+ return consumer.createClone(portletRef);
}
protected PortletContext setProperties(PortletContext portletRef, PropertyChange[] changes) throws PortletInvokerException
{
- consumer.setProperties((PortletContext)portletRef, changes);
+ consumer.setProperties(portletRef, changes);
return portletRef;
}
protected PropertyMap getProperties(PortletContext portletRef) throws PortletInvokerException
{
- return consumer.getProperties((PortletContext)portletRef);
+ return consumer.getProperties(portletRef);
}
protected PropertyMap getProperties(PortletContext portletRef, Set keys) throws PortletInvokerException
{
- return consumer.getProperties((PortletContext)portletRef, keys);
+ return consumer.getProperties(portletRef, keys);
}
protected List destroyClones(List portletRefs) throws PortletInvokerException
@@ -180,7 +191,7 @@
protected String getPortletId(PortletContext portletRef) throws PortletInvokerException
{
- return ((PortletContext)portletRef).getId();
+ return (portletRef).getId();
}
protected void invoke(PortletInvocation invocation) throws PortletInvokerException
Modified: trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet/src/main/org/jboss/portal/test/portlet/state/ProducerStatefulPortletInvokerTestCase.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -39,6 +39,7 @@
import org.jboss.portal.portlet.test.support.PortletInvokerSupport;
import org.jboss.portal.portlet.test.support.PortletSupport;
import org.jboss.portal.portlet.support.info.PortletInfoSupport;
+import org.jboss.portal.common.value.Value;
import java.util.Collections;
import java.util.List;
@@ -99,22 +100,22 @@
protected PortletContext createPOPRef(PortletSupport portletSupport) throws PortletInvokerException
{
- container.addPortlet("PortletId", portletSupport);
+ container.addInternalPortlet("PortletId", portletSupport);
Portlet portlet = getSinglePOP();
return portlet.getContext();
}
protected PortletContext createNonExistingPOPRef()
{
- container.addPortlet("NonExistingPortletId", new PortletInfoSupport());
+ container.addInternalPortlet("NonExistingPortletId", new PortletInfoSupport());
PortletContext popCtx = getSinglePOP().getContext();
- container.removePortlet("NonExistingPortletId");
+ container.removeInternalPortlet("NonExistingPortletId");
return popCtx;
}
protected PortletContext createInvalidPOPRef()
{
- container.addPortlet("InvalidPortletId", new PortletInfoSupport());
+ container.addInternalPortlet("InvalidPortletId", new PortletInfoSupport());
PortletContext popCtx = getSinglePOP().getContext();
container.setValid("InvalidPortletId", false);
return popCtx;
@@ -123,11 +124,21 @@
protected PortletContext createLocalClone(PortletContext portletRef) throws Exception
{
stateManagementPolicy.setPersistLocally(true);
- PortletContext cloneContext = producer.createClone((PortletContext)portletRef);
+ PortletContext cloneContext = producer.createClone(portletRef);
stateManagementPolicy.setPersistLocally(persistLocally);
return cloneContext;
}
+ protected void addPreference(PortletContext popRef, String key, Value defaultValue)
+ {
+ container.getInternalPortlet(popRef.getId()).addPreference(key, defaultValue);
+ }
+
+ protected void addPreference(PortletContext popRef, String key, Value defaultValue, Boolean readOnly)
+ {
+ container.getInternalPortlet(popRef.getId()).addPreference(key, defaultValue, readOnly);
+ }
+
protected void destroyClone(PortletContext portletRef) throws Exception
{
assertEquals(Collections.EMPTY_LIST, producer.destroyClones(Collections.singletonList(portletRef)));
Modified: trunk/portlet-federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java
===================================================================
--- trunk/portlet-federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java 2007-02-18 14:40:32 UTC (rev 6330)
+++ trunk/portlet-federation/src/main/org/jboss/portal/test/portlet/federation/FederatingPortletInvokerTestCase.java 2007-02-19 12:26:51 UTC (rev 6331)
@@ -73,7 +73,7 @@
fooInfo.getMetaSupport().setDisplayName("FooPortlet");
// Wire
- federatedInvoker.addPortlet("MyPortlet", federatedPortlet);
+ federatedInvoker.addInternalPortlet("MyPortlet", federatedPortlet);
federatingInvoker.registerInvoker(new PortletInvokerRegistrationImpl("foo", federatedInvoker));
// Basic setup
19 years, 2 months
JBoss Portal SVN: r6330 - trunk/build/ide/intellij/idea60/modules/core-admin.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-18 09:40:32 -0500 (Sun, 18 Feb 2007)
New Revision: 6330
Modified:
trunk/build/ide/intellij/idea60/modules/core-admin/core-admin.iml
Log:
core-admin idea project classpath update
Modified: trunk/build/ide/intellij/idea60/modules/core-admin/core-admin.iml
===================================================================
--- trunk/build/ide/intellij/idea60/modules/core-admin/core-admin.iml 2007-02-17 22:45:54 UTC (rev 6329)
+++ trunk/build/ide/intellij/idea60/modules/core-admin/core-admin.iml 2007-02-18 14:40:32 UTC (rev 6330)
@@ -62,7 +62,38 @@
<SOURCES />
</library>
</orderEntry>
+ <orderEntry type="module" module-name="faces" />
+ <orderEntry type="module" module-name="core" />
+ <orderEntry type="module-library">
+ <library>
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/../../../../../../thirdparty/apache-tomahawk/lib/tomahawk.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module" module-name="identity" />
+ <orderEntry type="module" module-name="portlet" />
+ <orderEntry type="module" module-name="common" />
+ <orderEntry type="module" module-name="theme" />
+ <orderEntry type="module" module-name="api" />
+ <orderEntry type="module" module-name="security" />
+ <orderEntry type="module-library">
+ <library>
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/../../../../../../thirdparty/jbossas/core-libs/lib/jboss-common.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
+ <orderEntry type="module" module-name="format" />
<orderEntryProperties />
</component>
+ <component name="VcsManagerConfiguration">
+ <option name="ACTIVE_VCS_NAME" value="svn" />
+ <option name="USE_PROJECT_VCS" value="false" />
+ </component>
</module>
19 years, 2 months
JBoss Portal SVN: r6329 - in trunk/format: src/main/org/jboss/portal/format/util and 1 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-17 17:45:54 -0500 (Sat, 17 Feb 2007)
New Revision: 6329
Added:
trunk/format/src/main/org/jboss/portal/format/util/RangeBrowser.java
trunk/format/src/main/org/jboss/portal/test/format/RangeBrowserTestCase.java
Removed:
trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java
trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java
Modified:
trunk/format/build.xml
Log:
renamed list browser -> range browser
Modified: trunk/format/build.xml
===================================================================
--- trunk/format/build.xml 2007-02-17 22:34:22 UTC (rev 6328)
+++ trunk/format/build.xml 2007-02-17 22:45:54 UTC (rev 6329)
@@ -237,7 +237,7 @@
<x-test>
<test todir="${test.reports}" name="org.jboss.portal.test.format.BBCodeHTML2HTMLTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.format.BBCodeHTML2TextTestCase"/>
- <test todir="${test.reports}" name="org.jboss.portal.test.format.ListBrowserTestCase"/>
+ <test todir="${test.reports}" name="org.jboss.portal.test.format.RangeBrowserTestCase"/>
</x-test>
<x-classpath>
<pathelement location="${build.classes}"/>
Deleted: trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java
===================================================================
--- trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java 2007-02-17 22:34:22 UTC (rev 6328)
+++ trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java 2007-02-17 22:45:54 UTC (rev 6329)
@@ -1,229 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.format.util;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
- */
-public class ListBrowser
-{
-
- /** . */
- private State state;
-
- /** . */
- private Range leftRange;
-
- /** . */
- private Range middleRange;
-
- /** . */
- private Range rightRange;
-
- public ListBrowser(int from, int to, int width, int index)
- {
- updateState(new State(from, to, width, index));
- }
-
- public int getFrom()
- {
- return state.from;
- }
-
- public void setFrom(int from)
- {
- updateState(new State(from, state.to, state.width, state.index));
- }
-
- public int getTo()
- {
- return state.to;
- }
-
- public void setTo(int to)
- {
- updateState(new State(state.from, to, state.width, state.index));
- }
-
- public int getWidth()
- {
- return state.width;
- }
-
- public void setWidth(int width)
- {
- updateState(new State(state.from, state.to, width, state.index));
- }
-
- public int getIndex()
- {
- return state.index;
- }
-
- public void setIndex(int index)
- {
- updateState(new State(state.from, state.to, state.width, index));
- }
-
- private void updateState(State state)
- {
- this.state = state;
-
- //
- compute();
- }
-
- private void compute()
- {
- leftRange = middleRange = rightRange = null;
-
- //
- if (state.to - state.from <= state.width * 3)
- {
- middleRange = new Range(state.from, state.to);
- }
- else
- {
- int leftTo = state.from + state.width;
- int rightFrom = state.to - state.width;
- int middleFrom = state.index - (state.width - 1) / 2;
- int middleTo = middleFrom + state.width;
-
- //
- if (middleFrom <= leftTo)
- {
- if (middleTo > leftTo)
- {
- leftRange = new Range(state.from, middleTo);
- }
- else
- {
- leftRange = new Range(state.from, leftTo);
- }
- rightRange = new Range(rightFrom, state.to);
- }
- else if (middleTo >= rightFrom)
- {
- if (middleFrom < rightFrom)
- {
- rightRange = new Range(middleFrom, state.to);
- }
- else
- {
- rightRange = new Range(rightFrom, state.to);
- }
- leftRange = new Range(state.from, leftTo);
- }
- else
- {
- leftRange = new Range(state.from, leftTo);
- middleRange = new Range(middleFrom, middleTo);
- rightRange = new Range(rightFrom, state.to);
- }
- }
- }
-
- public Range getLeftRange()
- {
- return leftRange;
- }
-
- public Range getMiddleRange()
- {
- return middleRange;
- }
-
- public Range getRightRange()
- {
- return rightRange;
- }
-
- public static class Range
- {
-
- /** . */
- private final int from;
-
- /** . */
- private final int to;
-
- public Range(int from, int to)
- {
- this.from = from;
- this.to = to;
- }
-
- public int getFrom()
- {
- return from;
- }
-
- public int getTo()
- {
- return to;
- }
- }
-
- private static class State
- {
-
- /** Lower inclusive bound. */
- private final int from;
-
- /** Upper exclusive bound. */
- private final int to;
-
- /** . */
- private final int width;
-
- /** . */
- private final int index;
-
- public State(int from, int to, int width, int index)
- {
- if (from > to)
- {
- throw new IllegalArgumentException();
- }
- if (index < from)
- {
- throw new IllegalArgumentException();
- }
- if (index >= to)
- {
- throw new IllegalArgumentException();
- }
- if (width < 1)
- {
- throw new IllegalArgumentException();
- }
-
- //
- this.from = from;
- this.to = to;
- this.width = Math.min(width, to - from);
- this.index = index;
- }
- }
-}
Copied: trunk/format/src/main/org/jboss/portal/format/util/RangeBrowser.java (from rev 6328, trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java)
===================================================================
--- trunk/format/src/main/org/jboss/portal/format/util/RangeBrowser.java (rev 0)
+++ trunk/format/src/main/org/jboss/portal/format/util/RangeBrowser.java 2007-02-17 22:45:54 UTC (rev 6329)
@@ -0,0 +1,231 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.format.util;
+
+/**
+ * A range browser which is useful to provide a visual representation of a range browser.
+ *
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class RangeBrowser
+{
+
+ /** . */
+ private State state;
+
+ /** . */
+ private Range leftRange;
+
+ /** . */
+ private Range middleRange;
+
+ /** . */
+ private Range rightRange;
+
+ public RangeBrowser(int from, int to, int width, int index)
+ {
+ updateState(new State(from, to, width, index));
+ }
+
+ public int getFrom()
+ {
+ return state.from;
+ }
+
+ public void setFrom(int from)
+ {
+ updateState(new State(from, state.to, state.width, state.index));
+ }
+
+ public int getTo()
+ {
+ return state.to;
+ }
+
+ public void setTo(int to)
+ {
+ updateState(new State(state.from, to, state.width, state.index));
+ }
+
+ public int getWidth()
+ {
+ return state.width;
+ }
+
+ public void setWidth(int width)
+ {
+ updateState(new State(state.from, state.to, width, state.index));
+ }
+
+ public int getIndex()
+ {
+ return state.index;
+ }
+
+ public void setIndex(int index)
+ {
+ updateState(new State(state.from, state.to, state.width, index));
+ }
+
+ private void updateState(State state)
+ {
+ this.state = state;
+
+ //
+ compute();
+ }
+
+ private void compute()
+ {
+ leftRange = middleRange = rightRange = null;
+
+ //
+ if (state.to - state.from <= state.width * 3)
+ {
+ middleRange = new Range(state.from, state.to);
+ }
+ else
+ {
+ int leftTo = state.from + state.width;
+ int rightFrom = state.to - state.width;
+ int middleFrom = state.index - (state.width - 1) / 2;
+ int middleTo = middleFrom + state.width;
+
+ //
+ if (middleFrom <= leftTo)
+ {
+ if (middleTo > leftTo)
+ {
+ leftRange = new Range(state.from, middleTo);
+ }
+ else
+ {
+ leftRange = new Range(state.from, leftTo);
+ }
+ rightRange = new Range(rightFrom, state.to);
+ }
+ else if (middleTo >= rightFrom)
+ {
+ if (middleFrom < rightFrom)
+ {
+ rightRange = new Range(middleFrom, state.to);
+ }
+ else
+ {
+ rightRange = new Range(rightFrom, state.to);
+ }
+ leftRange = new Range(state.from, leftTo);
+ }
+ else
+ {
+ leftRange = new Range(state.from, leftTo);
+ middleRange = new Range(middleFrom, middleTo);
+ rightRange = new Range(rightFrom, state.to);
+ }
+ }
+ }
+
+ public Range getLeftRange()
+ {
+ return leftRange;
+ }
+
+ public Range getMiddleRange()
+ {
+ return middleRange;
+ }
+
+ public Range getRightRange()
+ {
+ return rightRange;
+ }
+
+ public static class Range
+ {
+
+ /** . */
+ private final int from;
+
+ /** . */
+ private final int to;
+
+ public Range(int from, int to)
+ {
+ this.from = from;
+ this.to = to;
+ }
+
+ public int getFrom()
+ {
+ return from;
+ }
+
+ public int getTo()
+ {
+ return to;
+ }
+ }
+
+ private static class State
+ {
+
+ /** Lower inclusive bound. */
+ private final int from;
+
+ /** Upper exclusive bound. */
+ private final int to;
+
+ /** . */
+ private final int width;
+
+ /** . */
+ private final int index;
+
+ public State(int from, int to, int width, int index)
+ {
+ if (from > to)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (index < from)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (index >= to)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (width < 1)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ this.from = from;
+ this.to = to;
+ this.width = Math.min(width, to - from);
+ this.index = index;
+ }
+ }
+}
Deleted: trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java
===================================================================
--- trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java 2007-02-17 22:34:22 UTC (rev 6328)
+++ trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java 2007-02-17 22:45:54 UTC (rev 6329)
@@ -1,733 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
-package org.jboss.portal.test.format;
-
-import junit.framework.TestCase;
-import org.jboss.portal.format.util.ListBrowser;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
- */
-public class ListBrowserTestCase extends TestCase
-{
-
- public void test_3_11()
- {
- ListBrowser model = new ListBrowser(0, 11, 3, 0);
-
- //
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(8, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(1);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(8, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(2);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(4, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(8, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(3);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(5, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(8, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(4);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(6, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(8, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(5);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNotNull(middleRange);
- assertEquals(4, middleRange.getFrom());
- assertEquals(7, middleRange.getTo());
- assertNotNull(rightRange);
- assertEquals(8, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(6);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(5, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(7);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(6, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(8);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(7, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(9);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(8, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
-
- //
- model.setIndex(10);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(8, rightRange.getFrom());
- assertEquals(11, rightRange.getTo());
- }
-
- public void test_3_10()
- {
- ListBrowser model = new ListBrowser(0, 10, 3, 0);
-
- //
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(7, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(1);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(7, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(2);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(4, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(7, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(3);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(5, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(7, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(4);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(6, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(7, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(5);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(4, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(6);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(5, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(7);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(6, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(8);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(7, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
-
- //
- model.setIndex(9);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(7, rightRange.getFrom());
- assertEquals(10, rightRange.getTo());
- }
-
- public void test_3_inf_10()
- {
- for (int j = 1;j < 10;j++)
- {
- for (int i = 0;i < j;i++)
- {
- ListBrowser model = new ListBrowser(0, j, 3, i);
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- String msg = "testing with i=" +i + " j=" + j;
- assertNull(msg, leftRange);
- assertNotNull(msg, middleRange);
- assertEquals(msg, 0, middleRange.getFrom());
- assertEquals(msg, j, middleRange.getTo());
- assertNull(msg, rightRange);
- }
- }
- }
-
- public void test_2_8()
- {
- ListBrowser model = new ListBrowser(0, 8, 2, 0);
-
- //
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(6, rightRange.getFrom());
- assertEquals(8, rightRange.getTo());
-
- //
- model.setIndex(1);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(6, rightRange.getFrom());
- assertEquals(8, rightRange.getTo());
-
- //
- model.setIndex(2);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(4, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(6, rightRange.getFrom());
- assertEquals(8, rightRange.getTo());
-
- //
- model.setIndex(3);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNotNull(middleRange);
- assertEquals(3, middleRange.getFrom());
- assertEquals(5, middleRange.getTo());
- assertNotNull(rightRange);
- assertEquals(6, rightRange.getFrom());
- assertEquals(8, rightRange.getTo());
-
- //
- model.setIndex(4);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(4, rightRange.getFrom());
- assertEquals(8, rightRange.getTo());
-
- //
- model.setIndex(5);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(5, rightRange.getFrom());
- assertEquals(8, rightRange.getTo());
-
- //
- model.setIndex(6);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(6, rightRange.getFrom());
- assertEquals(8, rightRange.getTo());
-
- //
- model.setIndex(7);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(6, rightRange.getFrom());
- assertEquals(8, rightRange.getTo());
- }
-
- public void test_2_7()
- {
- ListBrowser model = new ListBrowser(0, 7, 2, 0);
-
- //
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(5, rightRange.getFrom());
- assertEquals(7, rightRange.getTo());
-
- //
- model.setIndex(1);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(3, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(5, rightRange.getFrom());
- assertEquals(7, rightRange.getTo());
-
- //
- model.setIndex(2);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(4, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(5, rightRange.getFrom());
- assertEquals(7, rightRange.getTo());
-
- //
- model.setIndex(3);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(3, rightRange.getFrom());
- assertEquals(7, rightRange.getTo());
-
- //
- model.setIndex(4);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(4, rightRange.getFrom());
- assertEquals(7, rightRange.getTo());
-
- //
- model.setIndex(5);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(5, rightRange.getFrom());
- assertEquals(7, rightRange.getTo());
-
- //
- model.setIndex(6);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(5, rightRange.getFrom());
- assertEquals(7, rightRange.getTo());
- }
-
- public void test_2_inf_7()
- {
- for (int j = 1;j < 7;j++)
- {
- for (int i = 0;i < j;i++)
- {
- ListBrowser model = new ListBrowser(0, j, 2, i);
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- String msg = "testing with i=" +i + " j=" + j;
- assertNull(msg, leftRange);
- assertNotNull(msg, middleRange);
- assertEquals(msg, 0, middleRange.getFrom());
- assertEquals(msg, j, middleRange.getTo());
- assertNull(msg, rightRange);
- }
- }
- }
-
- public void test_1_5()
- {
- ListBrowser model = new ListBrowser(0, 5, 1, 0);
-
- //
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(1, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(4, rightRange.getFrom());
- assertEquals(5, rightRange.getTo());
-
- //
- model.setIndex(1);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(4, rightRange.getFrom());
- assertEquals(5, rightRange.getTo());
-
- //
- model.setIndex(2);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(1, leftRange.getTo());
- assertNotNull(middleRange);
- assertEquals(2, middleRange.getFrom());
- assertEquals(3, middleRange.getTo());
- assertNotNull(rightRange);
- assertEquals(4, rightRange.getFrom());
- assertEquals(5, rightRange.getTo());
-
- //
- model.setIndex(3);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(1, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(3, rightRange.getFrom());
- assertEquals(5, rightRange.getTo());
-
- //
- model.setIndex(4);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(1, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(4, rightRange.getFrom());
- assertEquals(5, rightRange.getTo());
- }
-
- public void test_1_4()
- {
- ListBrowser model = new ListBrowser(0, 4, 1, 0);
-
- //
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(1, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(3, rightRange.getFrom());
- assertEquals(4, rightRange.getTo());
-
- //
- model.setIndex(1);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(2, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(3, rightRange.getFrom());
- assertEquals(4, rightRange.getTo());
-
- //
- model.setIndex(2);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(1, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(2, rightRange.getFrom());
- assertEquals(4, rightRange.getTo());
-
- //
- model.setIndex(3);
- leftRange = model.getLeftRange();
- middleRange = model.getMiddleRange();
- rightRange = model.getRightRange();
- assertNotNull(leftRange);
- assertEquals(0, leftRange.getFrom());
- assertEquals(1, leftRange.getTo());
- assertNull(middleRange);
- assertNotNull(rightRange);
- assertEquals(3, rightRange.getFrom());
- assertEquals(4, rightRange.getTo());
- }
-
- public void test_1_inf_4()
- {
- for (int j = 1;j < 4;j++)
- {
- for (int i = 0;i < j;i++)
- {
- ListBrowser model = new ListBrowser(0, j, 1, i);
- ListBrowser.Range leftRange = model.getLeftRange();
- ListBrowser.Range middleRange = model.getMiddleRange();
- ListBrowser.Range rightRange = model.getRightRange();
- String msg = "testing with i=" +i + " j=" + j;
- assertNull(msg, leftRange);
- assertNotNull(msg, middleRange);
- assertEquals(msg, 0, middleRange.getFrom());
- assertEquals(msg, j, middleRange.getTo());
- assertNull(msg, rightRange);
- }
- }
- }
-
- public void testThrowIAE()
- {
- contructionFail(0, 0, 1, 0);
-
- //
- contructionFail(0, 1, 1, -1);
- contructionFail(0, 1, 1, 2);
-
- //
- contructionFail(0, 1, 0, 0);
- }
-
- private void contructionFail(int from, int to, int width, int index)
- {
- try
- {
- new ListBrowser(from, to, width, index);
- fail("Was expecting failure for from=" + from + "to=" + to + " width=" + width + " index=" + index);
- }
- catch (IllegalArgumentException expected)
- {
- }
- }
-}
Copied: trunk/format/src/main/org/jboss/portal/test/format/RangeBrowserTestCase.java (from rev 6328, trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java)
===================================================================
--- trunk/format/src/main/org/jboss/portal/test/format/RangeBrowserTestCase.java (rev 0)
+++ trunk/format/src/main/org/jboss/portal/test/format/RangeBrowserTestCase.java 2007-02-17 22:45:54 UTC (rev 6329)
@@ -0,0 +1,733 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.format;
+
+import junit.framework.TestCase;
+import org.jboss.portal.format.util.RangeBrowser;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class RangeBrowserTestCase extends TestCase
+{
+
+ public void test_3_11()
+ {
+ RangeBrowser model = new RangeBrowser(0, 11, 3, 0);
+
+ //
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(4, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(5, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(6, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(5);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNotNull(middleRange);
+ assertEquals(4, middleRange.getFrom());
+ assertEquals(7, middleRange.getTo());
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(6);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(7);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(8);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(9);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(10);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+ }
+
+ public void test_3_10()
+ {
+ RangeBrowser model = new RangeBrowser(0, 10, 3, 0);
+
+ //
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(4, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(5, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(6, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(5);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(6);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(7);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(8);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(9);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+ }
+
+ public void test_3_inf_10()
+ {
+ for (int j = 1;j < 10;j++)
+ {
+ for (int i = 0;i < j;i++)
+ {
+ RangeBrowser model = new RangeBrowser(0, j, 3, i);
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ String msg = "testing with i=" +i + " j=" + j;
+ assertNull(msg, leftRange);
+ assertNotNull(msg, middleRange);
+ assertEquals(msg, 0, middleRange.getFrom());
+ assertEquals(msg, j, middleRange.getTo());
+ assertNull(msg, rightRange);
+ }
+ }
+ }
+
+ public void test_2_8()
+ {
+ RangeBrowser model = new RangeBrowser(0, 8, 2, 0);
+
+ //
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(4, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNotNull(middleRange);
+ assertEquals(3, middleRange.getFrom());
+ assertEquals(5, middleRange.getTo());
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(5);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(6);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(7);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+ }
+
+ public void test_2_7()
+ {
+ RangeBrowser model = new RangeBrowser(0, 7, 2, 0);
+
+ //
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(4, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(5);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(6);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+ }
+
+ public void test_2_inf_7()
+ {
+ for (int j = 1;j < 7;j++)
+ {
+ for (int i = 0;i < j;i++)
+ {
+ RangeBrowser model = new RangeBrowser(0, j, 2, i);
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ String msg = "testing with i=" +i + " j=" + j;
+ assertNull(msg, leftRange);
+ assertNotNull(msg, middleRange);
+ assertEquals(msg, 0, middleRange.getFrom());
+ assertEquals(msg, j, middleRange.getTo());
+ assertNull(msg, rightRange);
+ }
+ }
+ }
+
+ public void test_1_5()
+ {
+ RangeBrowser model = new RangeBrowser(0, 5, 1, 0);
+
+ //
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNotNull(middleRange);
+ assertEquals(2, middleRange.getFrom());
+ assertEquals(3, middleRange.getTo());
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+ }
+
+ public void test_1_4()
+ {
+ RangeBrowser model = new RangeBrowser(0, 4, 1, 0);
+
+ //
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(4, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(4, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(2, rightRange.getFrom());
+ assertEquals(4, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(4, rightRange.getTo());
+ }
+
+ public void test_1_inf_4()
+ {
+ for (int j = 1;j < 4;j++)
+ {
+ for (int i = 0;i < j;i++)
+ {
+ RangeBrowser model = new RangeBrowser(0, j, 1, i);
+ RangeBrowser.Range leftRange = model.getLeftRange();
+ RangeBrowser.Range middleRange = model.getMiddleRange();
+ RangeBrowser.Range rightRange = model.getRightRange();
+ String msg = "testing with i=" +i + " j=" + j;
+ assertNull(msg, leftRange);
+ assertNotNull(msg, middleRange);
+ assertEquals(msg, 0, middleRange.getFrom());
+ assertEquals(msg, j, middleRange.getTo());
+ assertNull(msg, rightRange);
+ }
+ }
+ }
+
+ public void testThrowIAE()
+ {
+ contructionFail(0, 0, 1, 0);
+
+ //
+ contructionFail(0, 1, 1, -1);
+ contructionFail(0, 1, 1, 2);
+
+ //
+ contructionFail(0, 1, 0, 0);
+ }
+
+ private void contructionFail(int from, int to, int width, int index)
+ {
+ try
+ {
+ new RangeBrowser(from, to, width, index);
+ fail("Was expecting failure for from=" + from + "to=" + to + " width=" + width + " index=" + index);
+ }
+ catch (IllegalArgumentException expected)
+ {
+ }
+ }
+}
19 years, 2 months
JBoss Portal SVN: r6328 - in trunk/format: src/main/org/jboss/portal/format/util and 1 other directories.
by portal-commits@lists.jboss.org
Author: julien(a)jboss.com
Date: 2007-02-17 17:34:22 -0500 (Sat, 17 Feb 2007)
New Revision: 6328
Added:
trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java
trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java
Modified:
trunk/format/build.xml
Log:
range browser util
Modified: trunk/format/build.xml
===================================================================
--- trunk/format/build.xml 2007-02-16 23:29:59 UTC (rev 6327)
+++ trunk/format/build.xml 2007-02-17 22:34:22 UTC (rev 6328)
@@ -228,9 +228,16 @@
<target name="tests" depends="compile">
<execute-tests>
+ <x-sysproperty>
+<!--
+ <jvmarg value="-Xdebug"/>
+ <jvmarg value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"/>
+-->
+ </x-sysproperty>
<x-test>
<test todir="${test.reports}" name="org.jboss.portal.test.format.BBCodeHTML2HTMLTestCase"/>
<test todir="${test.reports}" name="org.jboss.portal.test.format.BBCodeHTML2TextTestCase"/>
+ <test todir="${test.reports}" name="org.jboss.portal.test.format.ListBrowserTestCase"/>
</x-test>
<x-classpath>
<pathelement location="${build.classes}"/>
Added: trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java
===================================================================
--- trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java (rev 0)
+++ trunk/format/src/main/org/jboss/portal/format/util/ListBrowser.java 2007-02-17 22:34:22 UTC (rev 6328)
@@ -0,0 +1,229 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.format.util;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ListBrowser
+{
+
+ /** . */
+ private State state;
+
+ /** . */
+ private Range leftRange;
+
+ /** . */
+ private Range middleRange;
+
+ /** . */
+ private Range rightRange;
+
+ public ListBrowser(int from, int to, int width, int index)
+ {
+ updateState(new State(from, to, width, index));
+ }
+
+ public int getFrom()
+ {
+ return state.from;
+ }
+
+ public void setFrom(int from)
+ {
+ updateState(new State(from, state.to, state.width, state.index));
+ }
+
+ public int getTo()
+ {
+ return state.to;
+ }
+
+ public void setTo(int to)
+ {
+ updateState(new State(state.from, to, state.width, state.index));
+ }
+
+ public int getWidth()
+ {
+ return state.width;
+ }
+
+ public void setWidth(int width)
+ {
+ updateState(new State(state.from, state.to, width, state.index));
+ }
+
+ public int getIndex()
+ {
+ return state.index;
+ }
+
+ public void setIndex(int index)
+ {
+ updateState(new State(state.from, state.to, state.width, index));
+ }
+
+ private void updateState(State state)
+ {
+ this.state = state;
+
+ //
+ compute();
+ }
+
+ private void compute()
+ {
+ leftRange = middleRange = rightRange = null;
+
+ //
+ if (state.to - state.from <= state.width * 3)
+ {
+ middleRange = new Range(state.from, state.to);
+ }
+ else
+ {
+ int leftTo = state.from + state.width;
+ int rightFrom = state.to - state.width;
+ int middleFrom = state.index - (state.width - 1) / 2;
+ int middleTo = middleFrom + state.width;
+
+ //
+ if (middleFrom <= leftTo)
+ {
+ if (middleTo > leftTo)
+ {
+ leftRange = new Range(state.from, middleTo);
+ }
+ else
+ {
+ leftRange = new Range(state.from, leftTo);
+ }
+ rightRange = new Range(rightFrom, state.to);
+ }
+ else if (middleTo >= rightFrom)
+ {
+ if (middleFrom < rightFrom)
+ {
+ rightRange = new Range(middleFrom, state.to);
+ }
+ else
+ {
+ rightRange = new Range(rightFrom, state.to);
+ }
+ leftRange = new Range(state.from, leftTo);
+ }
+ else
+ {
+ leftRange = new Range(state.from, leftTo);
+ middleRange = new Range(middleFrom, middleTo);
+ rightRange = new Range(rightFrom, state.to);
+ }
+ }
+ }
+
+ public Range getLeftRange()
+ {
+ return leftRange;
+ }
+
+ public Range getMiddleRange()
+ {
+ return middleRange;
+ }
+
+ public Range getRightRange()
+ {
+ return rightRange;
+ }
+
+ public static class Range
+ {
+
+ /** . */
+ private final int from;
+
+ /** . */
+ private final int to;
+
+ public Range(int from, int to)
+ {
+ this.from = from;
+ this.to = to;
+ }
+
+ public int getFrom()
+ {
+ return from;
+ }
+
+ public int getTo()
+ {
+ return to;
+ }
+ }
+
+ private static class State
+ {
+
+ /** Lower inclusive bound. */
+ private final int from;
+
+ /** Upper exclusive bound. */
+ private final int to;
+
+ /** . */
+ private final int width;
+
+ /** . */
+ private final int index;
+
+ public State(int from, int to, int width, int index)
+ {
+ if (from > to)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (index < from)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (index >= to)
+ {
+ throw new IllegalArgumentException();
+ }
+ if (width < 1)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ this.from = from;
+ this.to = to;
+ this.width = Math.min(width, to - from);
+ this.index = index;
+ }
+ }
+}
Added: trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java
===================================================================
--- trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java (rev 0)
+++ trunk/format/src/main/org/jboss/portal/test/format/ListBrowserTestCase.java 2007-02-17 22:34:22 UTC (rev 6328)
@@ -0,0 +1,733 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.format;
+
+import junit.framework.TestCase;
+import org.jboss.portal.format.util.ListBrowser;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ListBrowserTestCase extends TestCase
+{
+
+ public void test_3_11()
+ {
+ ListBrowser model = new ListBrowser(0, 11, 3, 0);
+
+ //
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(4, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(5, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(6, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(5);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNotNull(middleRange);
+ assertEquals(4, middleRange.getFrom());
+ assertEquals(7, middleRange.getTo());
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(6);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(7);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(8);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(9);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+
+ //
+ model.setIndex(10);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(8, rightRange.getFrom());
+ assertEquals(11, rightRange.getTo());
+ }
+
+ public void test_3_10()
+ {
+ ListBrowser model = new ListBrowser(0, 10, 3, 0);
+
+ //
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(4, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(5, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(6, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(5);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(6);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(7);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(8);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+
+ //
+ model.setIndex(9);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(7, rightRange.getFrom());
+ assertEquals(10, rightRange.getTo());
+ }
+
+ public void test_3_inf_10()
+ {
+ for (int j = 1;j < 10;j++)
+ {
+ for (int i = 0;i < j;i++)
+ {
+ ListBrowser model = new ListBrowser(0, j, 3, i);
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ String msg = "testing with i=" +i + " j=" + j;
+ assertNull(msg, leftRange);
+ assertNotNull(msg, middleRange);
+ assertEquals(msg, 0, middleRange.getFrom());
+ assertEquals(msg, j, middleRange.getTo());
+ assertNull(msg, rightRange);
+ }
+ }
+ }
+
+ public void test_2_8()
+ {
+ ListBrowser model = new ListBrowser(0, 8, 2, 0);
+
+ //
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(4, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNotNull(middleRange);
+ assertEquals(3, middleRange.getFrom());
+ assertEquals(5, middleRange.getTo());
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(5);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(6);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+
+ //
+ model.setIndex(7);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(6, rightRange.getFrom());
+ assertEquals(8, rightRange.getTo());
+ }
+
+ public void test_2_7()
+ {
+ ListBrowser model = new ListBrowser(0, 7, 2, 0);
+
+ //
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(3, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(4, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(5);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+
+ //
+ model.setIndex(6);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(5, rightRange.getFrom());
+ assertEquals(7, rightRange.getTo());
+ }
+
+ public void test_2_inf_7()
+ {
+ for (int j = 1;j < 7;j++)
+ {
+ for (int i = 0;i < j;i++)
+ {
+ ListBrowser model = new ListBrowser(0, j, 2, i);
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ String msg = "testing with i=" +i + " j=" + j;
+ assertNull(msg, leftRange);
+ assertNotNull(msg, middleRange);
+ assertEquals(msg, 0, middleRange.getFrom());
+ assertEquals(msg, j, middleRange.getTo());
+ assertNull(msg, rightRange);
+ }
+ }
+ }
+
+ public void test_1_5()
+ {
+ ListBrowser model = new ListBrowser(0, 5, 1, 0);
+
+ //
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNotNull(middleRange);
+ assertEquals(2, middleRange.getFrom());
+ assertEquals(3, middleRange.getTo());
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+
+ //
+ model.setIndex(4);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(4, rightRange.getFrom());
+ assertEquals(5, rightRange.getTo());
+ }
+
+ public void test_1_4()
+ {
+ ListBrowser model = new ListBrowser(0, 4, 1, 0);
+
+ //
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(4, rightRange.getTo());
+
+ //
+ model.setIndex(1);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(2, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(4, rightRange.getTo());
+
+ //
+ model.setIndex(2);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(2, rightRange.getFrom());
+ assertEquals(4, rightRange.getTo());
+
+ //
+ model.setIndex(3);
+ leftRange = model.getLeftRange();
+ middleRange = model.getMiddleRange();
+ rightRange = model.getRightRange();
+ assertNotNull(leftRange);
+ assertEquals(0, leftRange.getFrom());
+ assertEquals(1, leftRange.getTo());
+ assertNull(middleRange);
+ assertNotNull(rightRange);
+ assertEquals(3, rightRange.getFrom());
+ assertEquals(4, rightRange.getTo());
+ }
+
+ public void test_1_inf_4()
+ {
+ for (int j = 1;j < 4;j++)
+ {
+ for (int i = 0;i < j;i++)
+ {
+ ListBrowser model = new ListBrowser(0, j, 1, i);
+ ListBrowser.Range leftRange = model.getLeftRange();
+ ListBrowser.Range middleRange = model.getMiddleRange();
+ ListBrowser.Range rightRange = model.getRightRange();
+ String msg = "testing with i=" +i + " j=" + j;
+ assertNull(msg, leftRange);
+ assertNotNull(msg, middleRange);
+ assertEquals(msg, 0, middleRange.getFrom());
+ assertEquals(msg, j, middleRange.getTo());
+ assertNull(msg, rightRange);
+ }
+ }
+ }
+
+ public void testThrowIAE()
+ {
+ contructionFail(0, 0, 1, 0);
+
+ //
+ contructionFail(0, 1, 1, -1);
+ contructionFail(0, 1, 1, 2);
+
+ //
+ contructionFail(0, 1, 0, 0);
+ }
+
+ private void contructionFail(int from, int to, int width, int index)
+ {
+ try
+ {
+ new ListBrowser(from, to, width, index);
+ fail("Was expecting failure for from=" + from + "to=" + to + " width=" + width + " index=" + index);
+ }
+ catch (IllegalArgumentException expected)
+ {
+ }
+ }
+}
19 years, 2 months
JBoss Portal SVN: r6327 - trunk/wsrp/src/resources/portal-wsrp-sar/META-INF.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-02-16 18:29:59 -0500 (Fri, 16 Feb 2007)
New Revision: 6327
Modified:
trunk/wsrp/src/resources/portal-wsrp-sar/META-INF/jboss-service.xml
Log:
- Corrected comment.
Modified: trunk/wsrp/src/resources/portal-wsrp-sar/META-INF/jboss-service.xml
===================================================================
--- trunk/wsrp/src/resources/portal-wsrp-sar/META-INF/jboss-service.xml 2007-02-16 23:29:18 UTC (rev 6326)
+++ trunk/wsrp/src/resources/portal-wsrp-sar/META-INF/jboss-service.xml 2007-02-16 23:29:59 UTC (rev 6327)
@@ -108,7 +108,7 @@
<attribute name="ConfigLocation">conf/config.xml</attribute>
</mbean>
- <!-- Configure a consumer that is the portal itself -->
+ <!-- Deployer for *-wsrp.xml files. Deploys default-wsrp.xml which contains the 'self' consumer -->
<mbean code="org.jboss.portal.wsrp.deployment.WSRPDeployer" name="portal.wsrp:service=WSRPDeployer">
<attribute name="DefaultWSRPLocation">default-wsrp.xml</attribute>
<depends optional-attribute-name="FederatingPortletInvoker" proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
19 years, 2 months
JBoss Portal SVN: r6326 - in trunk/wsrp/src: resources/portal-wsrp-war/WEB-INF and 1 other directory.
by portal-commits@lists.jboss.org
Author: chris.laprun(a)jboss.com
Date: 2007-02-16 18:29:18 -0500 (Fri, 16 Feb 2007)
New Revision: 6326
Added:
trunk/wsrp/src/main/org/jboss/portal/wsrp/servlet/WSDLPortFixFilter.java
Modified:
trunk/wsrp/src/resources/portal-wsrp-war/WEB-INF/web.xml
Log:
- Created Filter to fix ports in WSDL returned by JBoss WS 1.0.3.sp1 and below since JBWS doesn't handle port
change very gracefully. This is kinda fixed in 1.0.4.GA but it has other issues that make it impossible to
use (doesn't transmit cookies properly). JBWS 1.2.1 should behave properly but we can't wait for it...
This class should be removed when we can switch to JBWS 1.2.1...
Added: trunk/wsrp/src/main/org/jboss/portal/wsrp/servlet/WSDLPortFixFilter.java
===================================================================
--- trunk/wsrp/src/main/org/jboss/portal/wsrp/servlet/WSDLPortFixFilter.java (rev 0)
+++ trunk/wsrp/src/main/org/jboss/portal/wsrp/servlet/WSDLPortFixFilter.java 2007-02-16 23:29:18 UTC (rev 6326)
@@ -0,0 +1,319 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2007, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
+ ******************************************************************************/
+
+package org.jboss.portal.wsrp.servlet;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * A Filter that fixes the ports returned by JBWS. This is a hack and this class will be removed when JBWS 1.2.1 is
+ * available. This includes code from URLTools that has been duplicated and simplified here for either inclusion.
+ * Post-processing based on a <a href="http://www.ftponline.com/javapro/2002_02/magazine/features/kjones/default...">Java
+ * Pro article</a>.
+ *
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ * @since 2.6
+ */
+public class WSDLPortFixFilter implements Filter
+{
+ private String processedWSDL;
+ private StringWriter cachedWriter;
+
+ public void init(FilterConfig filterConfig) throws ServletException
+ {
+ }
+
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
+ {
+ doFilter((HttpServletRequest)servletRequest, (HttpServletResponse)servletResponse, filterChain);
+ }
+
+ public void doFilter(HttpServletRequest req, HttpServletResponse resp, FilterChain chain) throws IOException, ServletException
+ {
+ // only process if we request the WSDL
+ if ("wsdl".equalsIgnoreCase(req.getQueryString()))
+ {
+ // wrap the response to capture the data and be able to post-process it later
+ WSDLProcessorResponseWrapper wrappedResponse = new WSDLProcessorResponseWrapper(resp);
+
+ // continue processing
+ chain.doFilter(req, wrappedResponse);
+
+ // get the data
+ String wsdl = wrappedResponse.getData();
+
+ // if we don't have any data, just finish
+ if (wsdl == null || wsdl.length() == 0)
+ {
+ return;
+ }
+
+ // create the processed wsdl if required and cache the value
+ synchronized (this)
+ {
+ if (processedWSDL == null)
+ {
+ processedWSDL = replaceURLsBy(wsdl, new PortReplacementGenerator(req.getServerPort()));
+ cachedWriter = new StringWriter(processedWSDL.length());
+ cachedWriter.write(processedWSDL);
+ }
+ }
+
+ resp.setContentType("text/xml");
+
+ resp.setContentLength(cachedWriter.toString().length());
+
+ resp.getWriter().print(cachedWriter.toString());
+ }
+ else
+ {
+ chain.doFilter(req, resp);
+ }
+ }
+
+ public void destroy()
+ {
+ }
+
+ /** ServletOutputStream backed by a ByteArrayOutputStream to capture data (and more importantly access it later) */
+ private static class ByteArrayServletStream extends ServletOutputStream
+ {
+ ByteArrayOutputStream baos;
+
+ ByteArrayServletStream(ByteArrayOutputStream baos)
+ {
+ this.baos = baos;
+ }
+
+ public void write(int param) throws java.io.IOException
+ {
+ baos.write(param);
+ }
+ }
+
+ /** Hybrid PrintWriter / ServletOutputStream to capture the data during the filtering process */
+ private static class ByteArrayPrintWriter
+ {
+ private ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ private PrintWriter pw = new PrintWriter(baos);
+ private ServletOutputStream sos = new ByteArrayServletStream(baos);
+
+ public PrintWriter getWriter()
+ {
+ return pw;
+ }
+
+ public ServletOutputStream getStream()
+ {
+ return sos;
+ }
+
+ byte[] toByteArray()
+ {
+ return baos.toByteArray();
+ }
+
+ public String toString()
+ {
+ return baos.toString();
+ }
+ }
+
+ /** Response wrapper using the hybrid PrintWriter / ServletOutputStream */
+ public class WSDLProcessorResponseWrapper extends HttpServletResponseWrapper
+ {
+ public WSDLProcessorResponseWrapper(HttpServletResponse response)
+ {
+ super(response);
+ }
+
+ ByteArrayPrintWriter bapw = new ByteArrayPrintWriter();
+
+ public PrintWriter getWriter()
+ {
+ return bapw.getWriter();
+ }
+
+ public ServletOutputStream getOutputStream() throws IOException
+ {
+ return bapw.getStream();
+ }
+
+ public String getData()
+ {
+ return bapw.toString();
+ }
+ }
+
+ // === Code duplicated from URLTools for easier inclusion === //
+
+ private static final Pattern LINK = Pattern.compile("(?:location)\\s*=\\s*('|\")\\s*([^'\"]*)\\s*('|\")",
+ Pattern.CASE_INSENSITIVE);
+
+ public static final String HTTP_PREFIX = "http://";
+ public static final String HTTPS_PREFIX = "https://";
+
+ public static boolean isNetworkURL(String url)
+ {
+ if (url == null || url.length() == 0)
+ {
+ return false;
+ }
+
+ return url.startsWith(HTTP_PREFIX) || url.startsWith(HTTPS_PREFIX);
+ }
+
+ public static URLMatch[] extractURLsFrom(String markup)
+ {
+ int length;
+ if (markup != null && (length = markup.length()) != 0)
+ {
+ Matcher matcher = LINK.matcher(markup);
+ int currentIndex = 0;
+ List links = new ArrayList();
+ while (matcher.find(currentIndex) && currentIndex < length)
+ {
+ links.add(new URLMatch(matcher.start(2), matcher.end(2), matcher.group(2)));
+ currentIndex = matcher.end();
+ }
+
+ return (URLMatch[])links.toArray(new URLMatch[0]);
+ }
+ throw new IllegalArgumentException("Cannot extract URLs from a null or empty markup string!");
+ }
+
+ public static String replaceURLsBy(String markup, URLReplacementGenerator generator)
+ {
+
+ URLMatch[] urls = extractURLsFrom(markup);
+ if (urls.length > 0)
+ {
+ StringBuffer newMarkup = new StringBuffer(markup.length());
+ int currentIndex = 0;
+ for (int i = 0; i < urls.length; i++)
+ {
+ URLMatch url = urls[i];
+ newMarkup.append(markup.substring(currentIndex, url.getStart())).append(generator.getReplacementFor(i, url));
+ currentIndex = url.getEnd();
+ }
+ newMarkup.append(markup.substring(currentIndex));
+ markup = newMarkup.toString();
+ }
+ return markup;
+ }
+
+ public static class URLMatch
+ {
+ private int start;
+ private int end;
+ private String urlAsString;
+
+ private URLMatch(int start, int end, String urlAsString)
+ {
+ this.start = start;
+ this.end = end;
+ this.urlAsString = urlAsString;
+ }
+
+ public int getStart()
+ {
+ return start;
+ }
+
+ public int getEnd()
+ {
+ return end;
+ }
+
+ public String getURLAsString()
+ {
+ return urlAsString;
+ }
+ }
+
+ public abstract static class URLReplacementGenerator
+ {
+ public abstract String getReplacementFor(int currentIndex, URLMatch currentMatch);
+ }
+
+ public static class PortReplacementGenerator extends URLReplacementGenerator
+ {
+ private int replacementPort;
+
+ public PortReplacementGenerator(int replacementPort)
+ {
+ this.replacementPort = replacementPort;
+ }
+
+ public String getReplacementFor(int currentIndex, URLMatch currentMatch)
+ {
+ return replaceServerPortInURL(currentMatch.getURLAsString(), replacementPort);
+ }
+ }
+
+ public static String replaceServerPortInURL(String url, int newPort)
+ {
+ if (!isNetworkURL(url))
+ {
+ return url;
+ }
+
+ StringBuffer buf = new StringBuffer(url);
+ int afterProtocol = url.indexOf("://") + 3;
+ int beforePort = url.indexOf(':', afterProtocol);
+ int afterPort;
+
+ if (beforePort != -1)
+ {
+ afterPort = url.indexOf('/', beforePort);
+ buf.delete(beforePort + 1, afterPort);
+ buf.insert(beforePort + 1, newPort);
+ }
+ else
+ {
+ // port number was not present
+ afterPort = url.indexOf('/', afterProtocol);
+ buf.insert(afterPort, ":" + newPort);
+ }
+
+ return buf.toString();
+ }
+}
Property changes on: trunk/wsrp/src/main/org/jboss/portal/wsrp/servlet/WSDLPortFixFilter.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/wsrp/src/resources/portal-wsrp-war/WEB-INF/web.xml
===================================================================
--- trunk/wsrp/src/resources/portal-wsrp-war/WEB-INF/web.xml 2007-02-16 21:18:32 UTC (rev 6325)
+++ trunk/wsrp/src/resources/portal-wsrp-war/WEB-INF/web.xml 2007-02-16 23:29:18 UTC (rev 6326)
@@ -36,6 +36,10 @@
<filter-name>TransactionFilter</filter-name>
<filter-class>org.jboss.portal.wsrp.servlet.TransactionFilter</filter-class>
</filter>
+ <filter>
+ <filter-name>WSDLPortFixFilter</filter-name>
+ <filter-class>org.jboss.portal.wsrp.servlet.WSDLPortFixFilter</filter-class>
+ </filter>
<filter-mapping>
<filter-name>ServletAccessFilter</filter-name>
<url-pattern>/*</url-pattern>
@@ -44,6 +48,10 @@
<filter-name>TransactionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+ <filter-mapping>
+ <filter-name>WSDLPortFixFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
<!--<listener>
<description>Listen for session events so that we can call releaseSessions appropriately</description>
19 years, 2 months