uPortal 3 API Changes

Information on this page pertains to the uPortal 3 effort currently underway. This documentation does not apply to any version of uPortal 2 or the exploratory portal code archived in the SVN sandbox. For more information on this effort please read the uPortal 3 Development Documentation

Some APIs have changed or been removed in uPortal 3 in relation to uPortal 2 release. These changes are linked to or documented on this page.

General API Changes

The following APIs have been changed due to design constraints with the new features of uPortal 3.

Deprecated API Removal

The following APIs have were deprecated as of uPortal 2.6.0 and removed in uPortal 3. Each package, class or method listed has a description that details why it was removed and if there is a replacement what it is.

org.jasig.portal.services.StatsRecorder

The IStatsRecorder implementation is replaced with a much more flexible system based on the Spring ApplicationEventPublisher and Event Listeners. For more information see: Proposal to Deprecate IStatsRecorder

The removal of the following classes fall under this heading as well.

  • org.jasig.portal.services.stats.BaseStatsRecorder
  • org.jasig.portal.services.stats.DoNothingStatsRecorder
  • org.jasig.portal.services.stats.DoNothingStatsRecorderFactory
  • org.jasig.portal.services.stats.IStatsRecorderFactory
  • org.jasig.portal.services.stats.ListStatsRecorder
  • org.jasig.portal.services.stats.LoggingStatsRecorder
  • org.jasig.portal.services.stats.LoggingStatsRecorderFactory
  • org.jasig.portal.services.stats.MessageStatsRecorder
  • org.jasig.portal.services.stats.PrintingStatsRecorder
  • org.jasig.portal.services.stats.PrintingStatsRecorderFactory
  • org.jasig.portal.services.stats.RecordChannelAddedToLayoutWorkerTask
  • org.jasig.portal.services.stats.RecordChannelDefinitionModifiedWorkerTask
  • org.jasig.portal.services.stats.RecordChannelDefinitionPublishedWorkerTask
  • org.jasig.portal.services.stats.RecordChannelDefinitionRemovedWorkerTask
  • org.jasig.portal.services.stats.RecordChannelInstantiatedWorkerTask
  • org.jasig.portal.services.stats.RecordChannelMovedInLayoutWorkerTask
  • org.jasig.portal.services.stats.RecordChannelRemovedFromLayoutWorkerTask
  • org.jasig.portal.services.stats.RecordChannelRenderedWorkerTask
  • org.jasig.portal.services.stats.RecordChannelTargetedWorkerTask
  • org.jasig.portal.services.stats.RecordChannelUpdatedInLayoutWorkerTask
  • org.jasig.portal.services.stats.RecordFolderAddedToLayoutWorkerTask
  • org.jasig.portal.services.stats.RecordFolderMovedInLayoutWorkerTask
  • org.jasig.portal.services.stats.RecordFolderRemovedFromLayoutWorkerTask
  • org.jasig.portal.services.stats.RecordFolderUpdatedInLayoutWorkerTask
  • org.jasig.portal.services.stats.RecordLoginWorkerTask
  • org.jasig.portal.services.stats.RecordLogoutWorkerTask
  • org.jasig.portal.services.stats.RecordSessionCreatedWorkerTask
  • org.jasig.portal.services.stats.RecordSessionDestroyedWorkerTask
  • org.jasig.portal.services.stats.StatsRecorderWorkerTask
  • org.jasig.portal.services.stats.ThreadFiringStatsRecorder

org.jasig.portal.ChannelParameter#ChannelParameter(String, String, String)

Resolve the last parameter as a boolean and use the org.jasig.portal.ChannelParameter#ChannelParameter(String, String, boolean) constructor.

org.jasig.portal.InternalPortalException#getException()

Use the parent Throwable#getCause() method.

org.jasig.portal.LdapServices

Use org.jasig.portal.ldap.LdapServices instead.

org.jasig.portal.PortalEvent#PortalEvent(int)

Use the static singleton PortalEvents instead of creating them.

org.jasig.portal.PortalException

For allowRefresh() use isRefreshable(), allowReinstantiation() use isReinstantiable(), getRecordedException() use Throwable.getCause(), setRecordedException() use Throwable.initCause(Throwable).

org.jasig.portal.PropertiesManager

Use org.jasig.portal.properties.PropertiesManager instead.

org.jasig.portal.Version

Use VersionsManager.getInstance().getVersion(IPermission.PORTAL_FRAMEWORK) to access a similar Version class.

org.jasig.portal.channels.CError

Use org.jasig.portal.error.CError.

org.jasig.portal.concurrency.CachingException#CachingException()

Removed, use a constructor that provides a message or nested exception.

org.jasig.portal.utils.DocumentFactory

  • getDocumentFromStream(InputStream) use getDocumentFromStream(InputStream, String) to provide an identifier for the document being created.
  • getDocumentFromStream(InputStream, EntityResolver) use getDocumentFromStream(InputStream, EntityResolver, String) to provide an identifier for the document being created.

org.jasig.portal.services.LogService

Use Commons Logging APIs instead.

org.jasig.portal.utils.AddressTester

Use org.jasig.portal.services.HttpClientManager#getNewHTTPClient() instead.

org.jasig.portal.utils.IPortalDocument

Use DOM3 Documents instead. This all removed org.jasig.portal.utils.PortalDocumentImpl and org.jasig.portal.utils.PortalDocumentImplTest

org.jasig.portal.RDBMServices#closePreparedStatement(PreparedStatement)

Use #closeStatement(Statement) instead.

org.jasig.portal.services.PersonDirectory

The following methods have been removed:

  • #instance() use #getPersonAttributeDao() instead.
  • #getRestrictedPerson(String) use #createRestrictedPerson() and IPersonAttributeDao#getUserAttributes(String) and RestrictedPerson#setAttributes(Map) instead.
  • #getPropertyNamesIterator() use IPersonAttributeDao#getPossibleUserAttributeNames() instead.
  • #getUserDirectoryInformation(String) use IPersonAttributeDao#getUserAttributes(String) instead.
  • #getUserDirectoryInformation(String, IPerson) use IPersonAttributeDao#getUserAttributes(String) and IPerson#setAttributes(Map) instead.

The following classes were removed and all references changed to point to stand alone person directory library. Use org.jasig.services.persondir instead of org.jasig.portal.services.persondir

  • org.jasig.portal.services.persondir.support.legacy.LegacyPersonAttributeDao.java
  • org.jasig.portal.services.persondir.support.legacy.PersonDirInfo.java
  • org.jasig.portal.services.persondir.support.legacy.PersonDirInfoAdaptor.java
  • org.jasig.portal.services.persondir.support.legacy.PersonDirXmlParser.java
  • org.jasig.portal.services.persondir.support.merger.IAttributeMerger.java
  • org.jasig.portal.services.persondir.support.merger.MultivaluedAttributeMerger.java
  • org.jasig.portal.services.persondir.support.merger.NoncollidingAttributeAdder.java
  • org.jasig.portal.services.persondir.support.merger.ReplacingAttributeAdder.java
  • org.jasig.portal.services.persondir.support.AbstractDefaultQueryPersonAttributeDao.java
  • org.jasig.portal.services.persondir.support.CachingPersonAttributeDaoImpl.java
  • org.jasig.portal.services.persondir.support.CascadingPersonAttributeDao.java
  • org.jasig.portal.services.persondir.support.EchoPersonAttributeDaoImpl.java
  • org.jasig.portal.services.persondir.support.JdbcPersonAttributeDaoImpl.java
  • org.jasig.portal.services.persondir.support.LdapPersonAttributeDaoImpl.java
  • org.jasig.portal.services.persondir.support.MergingPersonAttributeDaoImpl.java
  • org.jasig.portal.services.persondir.support.MultivaluedPersonAttributeUtils.java
  • org.jasig.portal.services.persondir.support.StubPersonAttributeDao.java
  • org.jasig.portal.services.persondir.IPersonAttributeDao.java

org.jasig.portal.security.provider.CacheLdapSecurityContext

Use org.jasig.portal.security.provider.SimpleLdapSecurityContext chained with org.jasig.portal.security.provider.CacheSecurityContext instead.
This also removes org.jasig.portal.security.provider.CacheLdapSecurityContextFactory

org.jasig.portal.security.PortalSecurityException#PortalSecurityException()

Removed, use a constructor that provides a message or nested exception.

org.jasig.portal.properties.MissingPropertiesServlet

Removed, CMissingProperties is used instead.

org.jasig.portal.concurrency.CachingException#getExceptionCode()

Unused and always returned 0.

org.jasig.portal.concurrency.LockingException#LockingException()

Removed, use a constructor that provides a message or nested exception.

org.jasig.portal.jndi.JNDIManager

Deprecated. Use the org.jasig.portal.jndi.IJndiManager interface configured in the Spring application context under the name 'jndiManager'

org.jasig.portal.UserInstanceManager

Deprecated. Use the org.jasig.portal.user.IUserInstanceManager interface configured in the Spring application context under the name 'userInstanceManager'

org.jasig.portal.ChannelRegistryStoreFactory

Deprecated. Use the bean named 'channelRegistryStore' from the Spring application context.

org.jasig.portal.utils.ResourceLoader

Removed getResourceAsFile and getResourceAsFileString. getResourceAsStream and getResourceAsURL should be used instead.