Published using Google Docs
Modularity Changes
Updated automatically every 5 minutes

As we go through the modularity work we need to document all files that are moved or refactored.

2010/11/19

Task: Break out core into it’s own module

Refactor

org.kuali.rice.kim.bo.types.dto.AttributeSet

org.kuali.rice.core.xml.dto.AttributeSet

org.kuali.rice.core.jaxb.StringToKimEntityNameInfoMapAdapter

org.kuali.rice.kim.remote.jaxb.StringToKimEntityNameInfoMapAdapter

org.kuali.rice.core.jaxb.StringToKimEntityNamePrincipalInfoMapAdapter

org.kuali.rice.kim.remote.jaxb.StringToKimEntityNamePrincipalInfoMapAdapter

org.kuali.rice.core.jaxb.StringEntNmPrncpInfoMapEntry

org.kuali.rice.kim.remote.jaxb.StringEntNmPrncpInfoMapEntry

org.kuali.rice.core.jaxb.StringEntityNameInfoMapEntry

org.kuali.rice.kim.remote.jaxb.StringEntityNameInfoMapEntry

org.kuali.rice.kim.xml.GroupMembershipXmlDto

org.kuali.rice.core.xml.dto.GroupMembershipXmlDto

org.kuali.rice.kim.xml.GroupXmlDto

org.kuali.rice.core.xml.dto.GroupXmlDto

org.kuali.rice.kns.util.TypeUtils

org.kuali.rice.core.util.type.TypeUtils

org.kuali.rice.kns.util.KualiDecimal

org.kuali.rice.core.util.type.KualiDecimal

org.kuali.rice.kns.util.KualiInteger

org.kuali.rice.core.util.type.KualiInteger

org.kuali.rice.kns.util.AbstractKualiDecimal

org.kuali.rice.core.util.type.AbstractKualiDecimal

org.kuali.rice.kns.util.KualiPercent

org.kuali.rice.core.util.type.KualiPercent

org.kuali.rice.kns.util.TypeUtilsTest

org.kuali.rice.core.util.type.TypeUtilsTest

org.kuali.rice.kns.util.KualiDecimalTest

org.kuali.rice.core.util.type.KualiDecimalTest

org.kuali.rice.kcb.test.TestData.java

org.kuali.rice.kcb.test.KCBTestData.java

org.kuali.rice.core.xml.TestSchemaValidationErrorHandler.java

org.kuali.rice.core.xml.XmlTestSchemaValidationErrorHandler.java

org.kuali.rice.core.xml.TestSchemaLSResourceResolver.java

org.kuali.rice.core.xml.XmlTestSchemaLSResourceResolver.java

org.kuali.rice.ken.core.LifecycleBean

org.kuali.rice.core.lifecycle.LifecycleBean

org.kuali.rice.kns.service.DateTimeService

org.kuali.rice.core.api.DateTimeService

org.kuali.rice.kns.service.impl.DateTimeServiceImpl

org.kuali.rice.core.impl.DateTimeServiceImpl

KnsServiceLocator.getDateTimeService()

Moved to CoreApiServiceLocator.getDateTimeService()

RunModes (kew.mode, kim.mode, etc.) & Client Protocol (client.protocol)

they are now java enums.  The properties must be in all caps (ex: LOCAL, EMBEDDED).  We could have supported mixed case but it seems easy enough to just require all caps

can no longer extend rice constant classes (ex: KEWConstants)

they are constant classes - this makes no sense and is a bad practice!

new listener is required to use allow with the Spring Web-Aware contexts

 <listener>

<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>

</listener>

org.kuali.rice.kns.UserSession.addObject()

The method overloads that generate a object key were renamed to addObjectWithGeneratedKey b/c the overloads were confusing due to the method signatures of the overloads

org.kuali.rice.kns.UserSession.getWorkflowDocument(String docId)

org.kuali.rice.kns.UserSession.setWorkflowDocument(KualiWorkflowDocument workflowDocument)

These methods no longer exist

use

org.kuali.rice.kns.service.SessionDocumentService.getDocumentFromSession(UserSession userSession, String docId);

org.kuali.rice.kns.service.SessionDocumentService.addDocumentToUserSession(UserSession userSession, KualiWorkflowDocument document);

org.kuali.rice.kns.UserSession.getEditablePropertiesHistoryHolder()

method no longer exists

use

org.kuali.rice.kns.UserSession.getObjectMap().get(KNSConstants.EDITABLE_PROPERTIES_HISTORY_HOLDER_ATTR_NAME);

SQLBuilder.cleanDate()

SQLBuilder.cleanNumericOfValidOperators()

move to SQLUtils

SQLBuilder.getCleanedSearchableValues()

SQLBuilder.getSearchableValues()

SQLBuilder.getSearchableValueRecursive()

moved to DictionaryValidationServiceImpl as private methods - no longer publicly available.

org.kuali.rice.kns.*PostDataLoadEncryption*

all of these classes have been moved to development tools module in rice.

org.kuali.rice.kew.exception.InvalidXmlException

 org.kuali.rice.core.util.xml.XmlException

org.kuali.rice.ken.exception.InvalidXMLException

 org.kuali.rice.core.util.xml.XmlException

Util.jotNode, jotDocument, writeNode

Utilities.jotNode, jotDocument, writeNode

XmlJotter.jotNode, jotDocument, writeNode

XmlHelper.*

writeNode is replaced by jotNode

Deleted:

               

class deleted

notes:

org.kuali.rice.ken.core.Lifecycle

use org.kuali.rice.core.lifecycle.Lifecycle

org.kuali.rice.ken.core.BaseLifecycle

use org.kuali.rice.core.lifecycle.BaseLifecycle

org.kuali.rice.kew.bo.BaseWorkflowPersistable

no replacement

org.kuali.rice.kns.util.spring.AutoPopulatingList

use org.springframework.util.AutoPopulatingList

org.kuali.rice.kns.util.TypedArrayList

use org.springframework.util.AutoPopulatingList **this is highly impacting

org.kuali.rice.kns.util.Guid

use java.util.UUID.randomUUID()

org.kuali.rice.core.lifecycle.SpringLifeCycle

no replacement

org.kuali.rice.core.resourceloader.SpringLoader

no replacement

org.kuali.rice.core.config.event.AfterStartEvent

no replacement

org.kuali.rice.core.config.event.AfterStopEvent

no replacement

org.kuali.rice.core.config.event.BeforeStartEvent

no replacement

org.kuali.rice.core.config.event.BeforeStopEvent

no replacement

org.kuali.rice.core.config.event.RiceConfigEventListener

no replacement

org.kuali.rice.kns.service.impl.ConfigurableDateTimeServiceImpl

no replacement

org.kuali.rice.kns.service.ConfigurableDateTimeService

no replacement

org.kuali.rice.kns.mail.UnableToSendMessageError

no replacement

org.kuali.rice.kew.exception.InvalidWorkgroupException

no replacement

org.kuali.rice.core.exception.InvalidXmlException

no replacement

org.kuali.rice.core.exception.RiceException

no replacement

org.kuali.rice.ken.exception.NotificationMessageDelivererNotFoundException

no replacement

org.kuali.rice.kns.datadictionary.exception.OverrideEntryException

no replacement

org.kuali.rice.kns.exception.BusinessObjectNotFoundException

no replacement

org.kuali.rice.kns.exception.IllegalObjectStateException

no replacement

org.kuali.rice.kns.exception.MetadataException

no replacement

org.kuali.rice.kns.exception.ObjectNotABusinessObjectException

no replacement

org.kuali.rice.kns.exception.ReferentialIntegrityException

no replacement

org.kuali.rice.kns.exception.UnknownBusinessClassException

no replacement

org.kuali.rice.kew.web.session.UserSession

the kew UserSession has been combined with the kns version of the UserSession.  All kew related properties that were present in the kew UserSession are now stored in the objectMap on the kns UserSession.  You can access these properties using constants defined in rice.

See
KEWConstants.ACTION_LIST_FILTER_ATTR_NAME KEWConstants.UPDATE_ACTION_LIST_ATTR_NAME

KEWConstants.SORT_ORDER_ATTR_NAME

KEWConstants.SORT_CRITERIA_ATTR_NAME

KEWConstants.CURRENT_PAGE_ATTR_NAME

KEWConstants.HELP_DESK_ACTION_LIST_PRINCIPAL_ATTR_NAME

KEWConstants.HELP_DESK_ACTION_LIST_PERSON_ATTR_NAME

KEWConstants.PREFERENCES

KEWConstants.AUTHENTICATIONS

The UserPreferences that the kew UserSession used to initialize is now initialized by a ServletFilter called (UserPreferencesFilter) that must sit behind the UserLoginFilter

org.kuali.rice.kew.dto.KeyValueDTO

org.kuali.rice.core.util.KeyLabelPair

org.kuali.rice.kew.web.KeyValue

org.kuali.rice.kew.engine.node.KeyValuePair

org.kuali.rice.ksb.messaging.web.ValueLabelPair

org.kuali.rice.kns.web.comparator.KeyLabelComparator

It turns out that 99% of the cases rice needs a KeyValue pair of Strings.  For this the following was created:

KeyValue - an interface

AbstractKeyValue - an abstract class

ConcreteKeyValue - a comparable, mutable KeyValue class

use these classes instead.

Some of the old classes called the value field label.  The new classes all implement the KeyValue interfaces which makes the field names consistant.

org.kuali.rice.kns.web.listener.JstlConstantsInitListener

org.springframework.web.context.support.ServletContextAttributeExporter as a SpringBean

org.kuali.rice.core.util.JSTLConstants

replaced by ConstantsMap which is designed to be used as a SpringBean and exported to the ServletContext w/ org.springframework.web.context.support.ServletContextAttributeExporter

org.kuali.rice.kns.ConfigProperties

replace with

<bean id="ConfigProperties" class="org.kuali.rice.kns.util.JstlPropertyHolder">

<property name="properties"  value="#{kualiConfigurationService.allProperties}"/>

</bean>

org.kuali.rice.kns.web.RiceConfigurationListener

no replacement

org.kuali.rice.ken.bo.KenPersistableBusinessObjectBase

no replacement

org.kuali.rice.kew.batch.XmlConstants

use org.kuali.rice.kew.xml.XmlConstants

org.kuali.rice.core.resourceloader.ContextualConfigLock

use org.kuali.rice.core.config.ContextualConfigLock

org.kuali.rice.kim.bo.types.KimAttributeSet

no replacement

org.kuali.rice.core.web.struts.RiceActionServlet

extend org.apache.struts.action.ActionServlet directly

org.kuali.rice.kns.util.comparator.BeanPropertyComparator

use org.kuali.rice.kns.util.BeanPropertyComparator

org.kuali.rice.kns.exception.BeanComparisonException

org.kuali.rice.kns.util.comparator.BeanPropertyComparator.BeanComparisonException

org.kuali.rice.kns.bo.ConcurrentLockId

no replacement

org.kuali.rice.kns.service.ConfigurableDateService

no replacement

org.kuali.rice.kns.util.spring.ClassPathXmlApplicationContext

use org.springframework.context.support.ClassPathXmlApplicationContext

org.kuali.rice.core.resourceloader.ContextClassLoaderBinder

use
org.kuali.rice.core.util.ContextClassLoaderBinder

DocSearchUtils.getSqlFormattedDate()

SQLUtils.getSqlFormattedDate()

DocSearchUtils.getEntryFormattedDate()

SQLUtils.getEntryFormattedDate()

DocSearchUtils.convertStringDateToTimestamp()

SQLUtils.convertStringDateToTimestamp()

Utilities.convertTimestamp()

SQLUtils.convertTimestamp()

Utilities.convertCalendar()

SQLUtils.convertCalendar()

In general all rice Utility/Constants classes are final classes (not interfaces) with only static memebers, and private constructors.  These may impact clients if they were extending or instantiating one of these classes.

* the easiest (although possibly not the best) way to move away from implementing an interface based Constants class is to static import all of the Constants members.

for example:
import static org.kuali.rice.kew.xml.XmlConstants.*;

org.kuali.rice.core.dao.impl.GenericDaoJpa

no replacement

org.kuali.rice.kew.bo.KewPersistableBusinessObjectBase

org.kuali.rice.kns.bo.PersistableBusinessObjectBase

org.kuali.rice.kew.dto.RouteTemplateEntryDTO

no replacement

AuthenticationUserId

org.kuali.rice.kew.identity.PrincipalName

org.kuali.rice.kew.user.UserCapabilities

no replacement

org.kuali.rice.kim.bo.reference.DefaultableKimCode

no replacement

org.kuali.rice.core.config.SimpleNodeSettingsStore

no replacement

org.kuali.rice.core.config.spring.SimpleConfigFactoryBea

no replacement

org.kuali.rice.core.database.SpringConnectionFactoryManagedImpl

ask eric

org.kuali.rice.kns.util.spring.WorkflowSpringConnectionFactoryManagedImpl

ask eric

org.kuali.rice.core.jdbc.PreparedObject

no replacement

org.kuali.rice.core.jta.AtomikosTransactionManagerLookup

ask eric

org.kuali.rice.core.resourceloader.ResourceLoaderServiceFactoryBean

GRLFactoryBean

org.kuali.rice.core.resourceloader.RootResourceLoaderLifecycle

no replacement

org.kuali.rice.core.resourceloader.RiceSpringResourceLoaderConfigurer

no replacement

org.kuali.rice.core.util.ConcurrencyDetector

was a debugging tool that we felt was not that useful.  no replacement

org.kuali.rice.core.versions.*

an unfinished POC, no replacement

org.kuali.rice.core.web.RequestForwardingServlet

legacy, no replacement

org.kuali.rice.kcb.deliverer.impl.BrokenMessageDeliverer

no replacement

org.kuali.rice.kcb.quartz.MessageDeletionListener

not used, no replacement

org.kuali.rice.kcb.service.impl.KENIntegrationServiceAPIImpl

not used, no replacement

org.kuali.rice.kew.attribute.Attribute

not used, no replacement

org.kuali.rice.kew.attribute.Extension

not used, no replacement

org.kuali.rice.kew.attribute.ExtensionData

not used, no replacement

org.kuali.rice.kew.batch.InputStreamXmlDoc

not used, no replacement

org.kuali.rice.kew.docsearch.web.DocumentSearchColumnDecorator

not used, no replacement

org.kuali.rice.kew.docsearch.web.DocumentSearchDecorator

not used, no replacement

org.kuali.rice.kew.docsearch.web.DocumentSearchForm

not used, no replacement

org.kuali.rice.kew.export.Exportable

not used, no replacement

org.kuali.rice.kew.identity.IdentityType

not used, no replacement

org.kuali.rice.kew.lookupable.LookupForm

not used, no replacement

org.kuali.rice.kew.lookupable.WebLookupableDecorator

not used, no replacement

org.kuali.rice.kew.mail.service.impl.HardCodedActionListEmailServiceImpl

not used, no replacement

org.kuali.rice.kew.mail.service.impl.HardCodedEmailContentServiceImpl

not used, no replacement

org.kuali.rice.kew.ojb.IdentityTypeConversion

not used, no replacement

org.kuali.rice.kew.plugin.ClassLoaderPluginLoader

not used, no replacement

org.kuali.rice.kew.plugin.ModificationTracker

not used, no replacement

org.kuali.rice.kew.plugin.PluginUtils.PluginDirectoryFilter

not used, no replacement

org.kuali.rice.kew.removereplace.*

not used, no replacement

org.kuali.rice.kew.batch.StreamXmlDocCollection

not used, no replacement

org.kuali.rice.kew.routeheader.PartialAttributeContent

not used, no replacement

org.kuali.rice.kew.routeheader.Routable

not used, no replacement

org.kuali.rice.kew.routemodule.AdHocRouteModule

not used, no replacement

org.kuali.rice.kew.routemodule.BaseRouteModule

not used, no replacement

org.kuali.rice.kew.routemodule.DefaultRouteModule

not used, no replacement

org.kuali.rice.kew.routemodule.ExceptionRouteModule

not used, no replacement

org.kuali.rice.kew.routemodule.ParallelAdHocRouteModule

not used, no replacement

org.kuali.rice.kew.routemodule.RouteModuleException

not used, no replacement

org.kuali.rice.kew.rule.MyRules

not used, no replacement

org.kuali.rice.kew.rule.MyRules2

not used, no replacement

org.kuali.rice.kew.rule.RemoveReplaceRuleRoutingAttribute

not used, no replacement

org.kuali.rice.kew.service.WorkflowReports

not used, no replacement

org.kuali.rice.kew.validation.ValidationContext

not used, no replacement

org.kuali.rice.kew.web.AuthorizationResult

not used, no replacement

org.kuali.rice.kew.web.ContextSensitiveConverter

not used, no replacement

org.kuali.rice.kew.web.ConverterUtils

not used, no replacement

org.kuali.rice.kew.web.ModuleRelativeForwardAction

not used, no replacement

org.kuali.rice.kew.web.StrutsExceptionHandler

not used, no replacement

org.kuali.rice.kew.web.WorkflowRoutingForm

not used, no replacement

org.kuali.rice.kew.web.session.BasicAuthentication

not used, no replacement

org.kuali.rice.kew.workgroup.BaseWorkgroupId

not used, no replacement

org.kuali.rice.kew.workgroup.BaseWorkgroupMemberId

not used, no replacement

org.kuali.rice.kew.workgroup.WorkgroupCapabilities

not used, no replacement

org.kuali.rice.kew.xml.GroupNamespaceURIAllInOneFilterPOC

not used, no replacement

org.kuali.rice.kew.xml.GroupNamespaceURIEliminationFilterPOC

not used, no replacement

org.kuali.rice.kew.xml.GroupNamespaceURIHandlerPOC

not used, no replacement

org.kuali.rice.kew.xml.GroupNamespaceURIMemberTransformationFilterPOC

not used, no replacement

org.kuali.rice.kew.xml.GroupNamespaceURITransformationFilterPOC

not used, no replacement

org.kuali.rice.kew.xml.GroupXmlJAXBParser

not used, no replacement

org.kuali.rice.kim.bo.RiceNamespace

not used, no replacement

org.kuali.rice.kim.bo.options.AffiliationTypeValuesFinder

not used, no replacement

org.kuali.rice.kim.bo.ui.KimAttributeDataComparator

not used, no replacement

org.kuali.rice.kim.lookup.GroupLookupable

not used, no replacement

org.kuali.rice.kim.lookup.valuefinder.NextEntityIdFinder

not used, no replacement

org.kuali.rice.kns.bo.AdHocRouteRecipientId

not used, no replacement

org.kuali.rice.kns.lookup.DictionaryLookupableHelperServiceImpl

not used, no replacement

org.kuali.rice.kns.util.AssertionUtils

not used and rice does not want to support this utility, no replacement

org.kuali.rice.kns.util.ColumnMetadata

not used, no replacement

org.kuali.rice.kim.rule.event.ui.AddPersonDocumentDelegationMemberQualifierEvent

not used, no replacement

org.kuali.rice.core.xml.ChainedXMLFilter

not used, no replacement

org.kuali.rice.core.xml.ChainedXMLFilterBase

not used, no replacement

org.kuali.rice.core.xml.InitialXMLFilter

not used, no replacement

org.kuali.rice.core.xml.PassthruXMLFilter

not used, no replacement

org.kuali.rice.core.xml.XMLExporterBase

not used, no replacement

org.kuali.rice.core.xml.XMLImportExportServiceBase

not used, no replacement

org.kuali.rice.core.xml.XMLImporterBase

not used, no replacement

org.kuali.rice.core.xml.XMLInputFilterDefinition

not used, no replacement

org.kuali.rice.core.xml.XMLInputFilterEntry

not used, no replacement

org.kuali.rice.core.xml.XMLRenameFilter

not used, no replacement

org.kuali.rice.core.xml.schema.RiceSchemaValidationEventCollector

not used, no replacement

org.kuali.rice.core.xml.schema.RiceSchemaValidationFilter

not used, no replacement

org.kuali.rice.core.xml.schema.RiceXmlSchemaFactory

not used, no replacement

org.kuali.rice.core.xml.schema.SchemaLSResourceResolver

not used, no replacement

org.kuali.rice.core.xml.schema.SchemaValidationErrorHandler

not used, no replacement

org.kuali.rice.core.xml.XmlTestSchemaLSResourceResolver

not used, no replacement

org.kuali.rice.core.xml.XmlTestSchemaValidationErrorHandler

not used, no replacement

org.kuali.rice.kew.engine.transition.LoopTransitionEngine

**this was attached to the following jira: KULRICE-864

as its incomplete work

org.kuali.rice.core.xml.dto.DataXmlDto

not used, no replacement

org.kuali.rice.core.xml.dto.GroupMembershipXmlDto

not used, no replacement

org.kuali.rice.core.xml.dto.GroupXmlDto

not used, no replacement

org.kuali.rice.core.xml.dto.KimNamespaceConstants

not used, no replacement

org.kuali.rice.kew.batch.KEWXmlDataLoaderLifecycle

move to internal testing tools since it should only be used by rice unit tests, no replacement

org.kuali.rice.kim.service.PersonService

removed the parameterized type (? extends Person), ee KULRICE-4871 for more details

ExceptionUtils

use org.apache.commons.lang.exception. ExceptionUtils

Util.readFully()

use org.apache.commons.lang.is.IOUtils.toByteArray()

Utilities.collectionEquivalent

CollectionUtils.collectionEquivalent

Utilities.isEmpty(Collection)

use org.apache.commons.lang.collection.CollectionUtils.isEmpty

Utilities.equals (Object a, Object b)

use org.apache.common.lang.ObjectUtils.equals()

ObjectUtils.nullsafeEquals()

use org.apache.common.lang.ObjectUtils.equals()

Utilities.isEmpty(String)

org.apache.common.lang.StringUtils.isEmpty()

org.kuali.rice.kns.util.DateUtils

use org.apache.common.lang.DateUtils if possible

org.kuali.rice.kns.util.NumberUtils

use org.apache.common.lang.NumberUtils if possible

BaseResourceLoader.wrap()

use BaseResourceLoader.postProcessService()

MessageMap.isEmpty()

use MessageMap.hasNoErrors()

MessageMap.clear()

use MessageMap.clearErrorMessages()

MessageMap.entrySet()

use MessageMap.getAllPropertiesAndErrors()

MessageMap.get()

use MessageMap.getErrorMessagesForProperty()

MessageMap.keySet()

use MessageMap.getAllPropertiesWithErrors()

MessageMap.remove()

use MessageMap.removeAllErrorMessagesForProperty()

MessageMap.size()

use MessageMap.getNumberOfPropertiesWithErrors()

MessageMap.put()

no replacement

MessageMap.putAll()

no replacement

MessageMap.containsValue()

no replacement

MessageMap.values()

no replacement

KSBConstants.

SERVICE_NAMESPACE

MESSAGE_PERSISTENCE

MESSAGING_OFF

MESSAGE_DELIVERY

INJECTED_EXCEPTION_MESSAGE_SCHEDULER_KEY

FIXED_POOL_SIZE

ROUTE_QUEUE_MAX_RETRY_ATTEMPTS_KEY

ROUTE_QUEUE_MAX_RETRY_ATTEMPTS_OVERRIDE_KEY ROUTE_QUEUE_TIME_INCREMENT_KEY IMMEDIATE_EXCEPTION_ROUTING

ALLOW_SYNC_EXCEPTION_ROUTING

KSB_ALLOW_SELF_SIGNED_SSL

KSB_MESSAGE_DATASOURCE

KSB_MESSAGE_NON_TRANSACTIONAL_DATASOURCE

KSB_REGISTRY_DATASOURCE

KSB_MESSAGE_DATASOURCE_JNDI

KSB_MESSAGE_NON_TRANSACTIONAL_DATASOURCE_JNDI

KSB_REGISTRY_DATASOURCE_JNDI

USE_QUARTZ_DATABASE

KSB_ALTERNATE_ENDPOINTS

KSB_ALTERNATE_ENDPOINT_LOCATIONS

LOAD_KNS_MODULE_CONFIGURATION

use KSBConstants.Config.*

KSBServiceLocator.

OBJECT_REMOTER

SERVICE_REMOVER_SERVICE THREAD_POOL_SERVICE

REMOTED_SERVICE_REGISTRY

REPEAT_TOPIC_INVOKING_QUEUE

ENCRYPTION_SERVICE

DIGITAL_SIGNATURE_SERVICE JAVA_SECURITY_MANAGEMENT_SERVICE

CACHE_ADMINISTRATOR_FACTORY

JTA_TRANSACTION_MANAGER

SCHEDULED_THREAD_POOL_SERVICE

BUS_ADMIN_SERVICE

MESSAGE_ENTITY_MANAGER_FACTORY

REGISTRY_ENTITY_MANAGER_FACTORY

KSBConstants.ServiceNames.*

ConfigContext.getRootConfig()

ConfigContext.getCurrentContextConfig()

Config.DEFAULT_NOTE_CLASS

use Config.DEFAULT_KEW_NOTE_CLASS

Config.getDefaultNoteClass()

Config.getDefaultKewNoteClass()

Config.overrideProperty()

Config.putProperty()

IdentityHelperService.getGroupId()

use IdentityManagementService

IdentityHelperService.getPrincipal()

use IdentityManagementService

IdentityHelperService.getGroupRecipient()

use IdentityManagementService

KualiWorkflowDocument.getInitiatorNetworkId()

use KualiWorkflowDocument.getInitiatorPrincipalId instead

*note this returns the principalID not principalName

KualiWorkflowDocument.getRoutedByUserNetworkId()

use KualiWorkflowDocument.getRoutedByPrincipalId()

*note this returns the principalID not principalName

actionlist.outbox.default.preference.on is no longer a valid parameter

use userOptions.default.useOutBox

org.kuali.rice.core.util.WriterOutputStream

use org.apache.commons.io.output.WriterOutputStream

RiceDebugUtils

use org.apache.commons.lang.ExceptionUtils.getStacktrace()

ParameterServerService

use: KNSServiceLocatorWeb.getRiceApplicationConfigurationMediationService().getNonDatabaseComponents();

ParameterService.setParameterForTesting()

no direct replacement

org.kuali.rice.kns.util.Timer

no direct replacement.  Used org.apache.commons.lang.StopWatch to replace in rice code.

Utilities.getKNSParameterValue()

use ClientParameterService.getParameterValueAsString()

Utilities.getKNSParameterBooleanValue()

use ClientParameterService.getParameterValueAsBoolean()

DerbyPlatform

use DerbyDatabasePlatform

MySQLPlatform

use MySQLDatabasePlatform

Oracle9iPlatform

use Oracle9iDatabasePlatform

Formatter.isBlank()

use commons StringUtils.isBlank()

KRAMetaRuleExpression

use MetaRuleExpression

UiDocumentServiceImpl.getFullMemberName()

UiDocumentServiceImpl.getMemberFullName()

DocumentDaoOjb.saveMaintainableBusinessObject

use BusinessObjectService.linkAndSave()

DocumentDaoJpa.saveMaintainableBusinessObject

use BusinessObjectService.linkAndSave()

LookupUtils.applySearchResultsLimit(Criteria criteria, DatabasePlatform platform)

LookupUtils.applySearchResultsLimit(Class businessObjectClass, Criteria criteria, DatabasePlatform platform)

DocumentServiceImpl.setKualiRuleService(KualiRuleService)

no replacement

DocumentServiceImpl.setDictionaryValidationService(DictionaryValidationService)

no replacement

DocumentServiceImpl.setMaintenanceDocumentService(MaintenanceDocumentService)

no replacement

ContextClassLoaderProxy.getInterfacesToProxyIncludeSpring()

use ContextClassLoaderProxy.getInterfacesToProxy()

DocumentTypeDTO.getDocTypeName()

use DocumentTypeDTO.getDocTypeLabel()

DocumentTypeDTO.setDocTypeName(String)

DocumentTypeDTO.setDocTypeLabel(String)

jstl function ${kfunc:getKNSParameterValue}

use struts form properties to hold parameter values or scriplets in extreme cases - if this is needed we can revist introducing jstl functions for parameters

StandaloneInitializeListener

changed kew.bootstrap.spring.file to web.bootstrap.spring.file configuration parameter name - KULRICE-5014

12/21/2010

Note Refactoring

Related Jira: KULRICE-4862

Refactoring Proposal: https://wiki.kuali.org/x/iIFgEg

Change Log:

org.kuali.rice.kns.service.NoteService

  • Fixed some improper and missing use of generic types
  • was using ArrayList instead of List on getByRemoteObjectId
  • was using raw List types elsewhere
  • Removed uncessary use of “throws Exception” from various methods on this service
  • moved sendNoteRouteNotification to DocumentService
  • modified createNote method so that it takes the principal id of the author
  • this allows the internal implementation to not have to use the GlobalVariables to determine the author
  • removed extractNoteProperty because it is no longer needed after the refactoring

org.kuali.rice.kns.service.impl.NoteServiceImpl

  • Implemented proper usage of generic types
  • Modified to support changes and improvements to the NoteService interface

org.kuali.rice.kns.bo.PersistableBusinessObject

  • Removed methods:
  • isBoNotesSupport
  • getBoNote
  • addNote
  • deleteNote
  • getBoNotes
  • setAutoIncrementSet
  • Removed implementation of PersistenceBrokerAware interface, moved to PersistableBusinessObjectBase
  • Implemented proper use of generic types

org.kuali.rice.kns.bo.PersistableBusinessObjectBase

  • Moved “implements PersistenceBrokerAware” from PersistableBusinessObject to PersistableBusinessObjectBase
  • Refactored all OJB persistence hooks so that they are marked as final and delegate to the corresponding JPA hook methods.  JPA hook methods are protected.
  • People upgrading will simply need to change the name and signature of the method they are implementing, note that the new method signatures are protected
  • afterDelete -> postRemove
  • afterInsert -> postPersist
  • afterLookup -> postLoad
  • afterUpdate -> postUpdate
  • beforeDelete -> preRemove
  • beforeInsert -> prePersist
  • beforeUpdate -> preUpdate
  • Removed members:
  • List boNotes
  • Boolean thisNotesSupport
  • notesSupportCache
  • boolean autoIncrementSet
  • noteService (static member)
  • attachmentService
  • Removed methods:
  • isBoNotesSupport
  • supportsBoNotes
  • retrieveBoNotes
  • saveNotes
  • linkNoteRemoteObjectId
  • getBoNotes
  • setBoNotes
  • getBoNote
  • addNote
  • deleteNote
  • getNoteService
  • hasNoteAttachments
  • isAutoIncrementSet
  • setAutoIncrement
  • getAttachmentService
  • getNoteService
  • Removed notes-related body of following methods, majority of this code ended up in the DocumentServiceImpl class.
  • afterInsert(PersistenceBroker)
  • afterUpdate(PersistenceBroker)
  • afterInsert()
  • afterUpdate()
  • Implemented proper usage of generic types

org.kuali.rice.kns.service.DocumentService

  • Implemented proper usage of generic types
  • Removed “throws Exception” from signature for createNoteFromDocument
  • Removed methods:
  • addNoteToDocument - no longer necessary, replaced with “addNote” method on Document
  • getNoteParent - no longer needed because of removal of addNoteToDocument, can call getNoteTarget on Document to determine this now
  • Added methods:
  • saveDocumentNotes
  • sendNoteRouteNotification - moved from NoteService

org.kuali.rice.kns.service.impl.DocumentServiceImpl

  • Implemented proper usage of generic types including related changes defined in DocumentService interface
  • Added a “loadNotes” method and modified postProcessDocument to invoke it
  • Added logic to persist notes to the “validateAndPersistDocument” method
  • Moved sendRouteRouteNotification method implementation here
  • Modified createNoteFromDocument so that it used Document.getNoteType and Document.getNoteTarget
  • Removed implementation of the following methods:
  • addNoteToDocument
  • getNoteParent

org.kuali.rice.kns.document.Document

  • Implemented proper usage of generic types
  • Added methods:
  • getNoteType
  • getNoteTarget
  • addNote
  • getNotes
  • getNote
  • removeNote
  • Removed methods:
  • getDocumentBusinessObject (moved to MaintenanceDocument)

org.kuali.rice.kns.document.DocumentBase

  • Removed members:
  • PersistableBusinessObject documentBusinessObject
  • Added members:
  • List<Note> notes - replaces the list of notes that were coming from the PersistableBusinessObjectBase class
  • noteService
  • attachmentService
  • Removed methods:
  • getDocumentBusinessObject - this method was moved to MaintenanceDocumentBase where it is still useful.  It is effectively replaced by the new getNoteTarget method on DocumentBase.
  • afterLookup - had no code in it so no need to override it
  • Added methods:
  • getNoteTarget
  • addNote
  • removeNote
  • getNote
  • getNotes
  • setNotes
  • getAttachmentService
  • getNoteService
  • Removed the body of processAfterRetrieve method, it was calling a method to load notes onto the DocumentHeader which was not needed
  • Modified addCopyErrorDocumentNote so that it uses the new addNote method on DocumentBase instead of DocumentService.addNoteToDocument
  • In toCopy() removed the line which called:
  • getDocumentBusinessObject().getBoNotes();
  • The notes were never saved to a local variable, so does not appear that this did anything.

org.kuali.rice.kns.document.MaintenanceDocument

  • Moved the getDocumentBusinessObject method from Document interface to this interface

org.kuali.rice.kns.document.MaintenanceDocumentBase

  • Added code to populateMaintainablesFromXmlDocumentContents so that notes which are associated with the BO are restored from maintainable XML if they exist there
  • added private method getNotesFromXml to implement this
  • Added code to populateXmlDocumentContentsFromMaintainables so that Notes xml is populated to the maintainable XML if “bo notes” are enabled
  • Added code to doRouteStatusChange so that notes are saved when the maintenance doc is finalized
  • Modified processAfterRetrieve so that super.processRetrieve is called at the end of the method instead of the beginning.  This is because this method establishes the note target and the loading of newMaintainableObject needs to occur first before this can be successful.
  • Overrode getNoteTarget so that it returns getDocumentBusinessObject if “bo notes” are enabled.
  • Overrode getNoteType so that it returns the “BO” NoteType if “bo notes” are enabled.
  • Modified OJB hook methods (like afterDelete, afterLookup, etc.) to override the appropriate new methods as per the changes to PersistableBusinessObjectBase

org.kuali.rice.kns.service.AttachmentService

  • Modified moveAttachmentWherePending so that it took a single Note instead of a List of notes and an object id
  • This new version of the method is used by NoteServiceImpl.save(Note)

org.kuali.rice.kns.service.impl.AttachmentServiceImpl

  • Implemented moveAttachmentWherePending so that it adds some validation on incoming parameters and operates on a single note

org.kuali.rice.kns.util.KNSConstants.NoteTypeEnum

  • Since getNoteType was added to the Document interface, promoted this enum up to a top-level enum (as opposed to an inner class enum inside of KNSConstants).
  • Changed BUSINESS_OBJECT_NOTE_TYPE to just BUSINESS_OBJECT
  • Changed DOCUMENT_HEADER_NOTE_TYPE to just DOCUMENT_HEADER
  • In both these cases the _NOTE_TYPE is really redundant since it’s defined on the NoteType enum

org.kuali.rice.kns.service.impl.XmlObjectSerializerServiceImpl

  • Added a custom implementation of XStream so that note xml that was originally attached to PersistableBusinessObjects is discarded when the XML is loaded.  This was

notes.tag

  • Removed attributes:
  • notesBo - notes.tag was written in such a way that it has to be used in conjunction with a document, so there’s no real reason to need to pass this into the tag when it will always be derived from the document’s list of notes
  • noteType - note type is now determined by calling Document.getNoteType so there is no need to pass this in any longer
  • Modified the internal implementation of this tag so that it reflects the fact that the notes are now maintained on the Document and so appropriate methods and attribute names are referenced.

KualiMaintenanceDocument.jsp

  • Modified the section of the JSP where the <kul:notes> tag is included.  It no longer needs to check boNotesEnabled on the MaintenanceDocument.  This is handled internal to notes.tag now by a call to Document.getNoteType (hence the removal of notesBo and noteType attributes from notes.tag)

2011/03/21

Task: Break out eDocLite into it’s own module

Refactorings:

org.kuali.rice.kew.edl.*

In general, moved all of these files to the org.kuali.rice.edl.impl.* package

org.kuali.rice.kew.edl.WorkflowFunctions

Moved to org.kuali.rice.edl.framework.util.EDLFunctions

  • Any person who has created custom stylesheets might have a declaration like follows in some or all of their custom EDLs:
  • <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my-class="xalan://org.kuali.rice.kew.edl.WorkflowFunctions">
  • It will need to be changed to:
  • <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my-class="xalan://org.kuali.rice.edl.framework.util.EDLFunctions">
  • Additionally, the “widgets” stylesheet will also need to be reingested.  If an institution has customized widgets, they should export and update by hand.
  • If they want to get the updated version of widgets.xml, it is available in scripts/upgrades/1.0.3 to 1.1.0/xml-ingest-updates/03-24-2011-default-widgets.xml

org.kuali.rice.kew.edl.EDocLitePostProcessor

  • Moved to: org.kuali.rice.edl.framework.workflow.EDocLitePostProcessor
  • Requires updates to KREW_DOC_TYP_T table, see 2011-03-23.sql upgrade script

org.kuali.rice.kew.edl.EDLDatabasePostProcessor

  • Moved to: org.kuali.rice.edl.framework.workflow.EDocLiteDatabasePostProcessor
  • Requires updates to KREW_DOC_TYP_T table, see 2011-03-23.sql upgrade script

2011/03/24

Task: Move XML import/export framework to the core

Refactorings:

org.kuali.rice.kew.batch.*.*XmlDoc*.java, org.kuali.rice.kew.batch.*XmlDocCollection.java

  • Moved from “impl” module to “core-api”
  • In the org.kuali.rice.core.api.impex.xml package

org.kuali.rice.kew.export.ExportDataSet

  • Moved to core-api module
  • Moved to package org.kuali.rice.core.api.impex
  • Modified so that it doesn’t have references to KEW objects.  Instead contains a generic hash map of datasets to export
  • Create KewExportDataSet as part of kew-impl in order to help with translating back and forth between the generic and type-safe datasets

org.kuali.rice.kew.batch.XmlIngesterService, org.kuali.rice.kew.xml.export.XmlExporterService

  • Moved to core-api module
  • Moved to package org.kuali.rice.core.api.impex.xml

org.kuali.rice.kew.xml.XmlLoader, org.kuali.rice.kew.xml.export.XmlExporter

  • Moved to core-framework module
  • Moved to package org.kuali.rice.core.framework.impex.xml

KewServiceLocator references to xml import/export classes

Moved these to appropriate Core*ServiceLocator classes

Various other “impl” classes

In general moved things from org.kuali.rice.kew.batch or org.kualir.rice.kew.export and other such packages to org.kuali.rice.core.api.impex.xml, org.kuali.rice.core.framework.impex.xml, or org.kuali.rice.core.impl.impex.xml

Ingester GUI

Moved under a new “core” web module, with corresponding struts module

Milestone 4

4-18-2011 to 5-6-2011

Moved

TargetedInvocationHandler

Moved to package org.kuali.rice.core.api.reflect

org.kuali.rice.core.jaxb.*

Moved to package org.kuali.rice.core.api.util.jaxb.*

In the package “org.kuali.rice.kns.util.spring”

  • AnnotationAndNameMatchingTransactionAttributeSource
  • ClassOrMethodAnnotationFilter
  • ClassOrMethodAnnotationMatcher
  • ClassOrMethodAnnotationPointcut

Moved to package org.kuali.rice.core.impl.util.spring

Removed

AdapterAttributeSetToHashMap

AttributeSetList

AttributeEntry

No replacement, do not appear to be used anymore

AttributeSet

now use Map<String, String>

Milestone 5

KSB Refactoring

Jira for this work: https://jira.kuali.org/browse/KULRICE-4816

Details on the impacting changes and other information is documented here: https://wiki.kuali.org/x/T3dyEg

Milestone 6

KEW Refactoring

https://docs.google.com/a/kuali.org/document/d/1YVyQZQlqqVKCEZbFmyhSAsnjNxbvl55n3iXeut1ems8/edit?hl=en_US

1/3/2011 - Random Notes on the KNS “Notes” Refactoring

- Creation of krad-app-framework

- starting with krad-bo

- Move the following files to krad-bo

* -- org.kuali.rice.kns.service.BusinessObjectSerializerService

* -- org.kuali.rice.kns.service.BusinessObjectService

* -- org.kuali.rice.kns.service.InactivateableFromToService

* -- org.kuali.rice.kns.service.KeyValuesService

* -- org.kuali.rice.kns.service.PersistenceService

* -- org.kuali.rice.kns.service.PersistenceStructureService

-- org.kuali.rice.kns.bo.GlobalBusinessObjectDetailBase

-- org.kuali.rice.kns.bo.GlobalBusinessObject

-- org.kuali.rice.kns.bo.TransientBusinessObjectBase

-- org.kuali.rice.kns.bo.PersistableBusinessObjectExtensionBase

* -- org.kuali.rice.kns.bo.PersistableBusinessObject

-- org.kuali.rice.kns.bo.PersistableBusinessObjectBase

* -- org.kuali.rice.kns.bo.PersistableBusinessObjectExtension

-- org.kuali.rice.kns.bo.BusinessObjectBase

-- org.kuali.rice.kns.bo.GlobalBusinessObjectDetail

-- org.kuali.rice.kns.bo.BusinessObjectRelationship

-- org.kuali.rice.kns.bo.KualiCodeBase

-- org.kuali.rice.kns.bo.Exporter

-- org.kuali.rice.kns.util.OjbCharBooleanConversion

-- org.kuali.rice.kns.util.OjbCharBooleanFieldAIConversion

-- org.kuali.rice.kns.util.OjbCharBooleanFieldConversion

-- org.kuali.rice.kns.util.OjbDecimalKualiPercentFieldConversion

-- org.kuali.rice.kns.util.OjbDecimalPercentageFieldConversion

-- org.kuali.rice.kns.util.OjbKualiCodeConversion

-- org.kuali.rice.kns.util.OjbKualiDecimalFieldConversion

-- org.kuali.rice.kns.util.OjbKualiEncryptDecryptFieldConversion

-- org.kuali.rice.kns.util.OjbKualiHashFieldConversion

-- org.kuali.rice.kns.util.OjbKualiIntegerFieldConversion

-- org.kuali.rice.kns.util.OjbKualiIntegerPercentageFieldConversion

-- org.kuali.rice.kns.util.OjbKualiPercentFieldConversion

-- org.kuali.rice.kns.util.HibernateImmutableValueUserType

-- org.kuali.rice.kns.util.HibernateKualiCharBooleanAIType

-- org.kuali.rice.kns.util.HibernateKualiCodeType

-- org.kuali.rice.kns.util.HibernateKualiDecimalFieldType

-- org.kuali.rice.kns.util.HibernateKualiDecimalPercentFieldType

-- org.kuali.rice.kns.util.HibernateKualiDecimalPercentageFieldType

-- org.kuali.rice.kns.util.HibernateKualiEncryptDecryptUserType

-- org.kuali.rice.kns.util.HibernateKualiHashType

-- org.kuali.rice.kns.util.HibernateKualiIntegerFieldType

-- org.kuali.rice.kns.util.HibernateKualiIntegerPercentFieldType

-- org.kuali.rice.kns.util.HibernateKualiIntegerPercentageFieldType

-- org.kuali.rice.kns.util.HibernateKualiPercentFieldType

-- org.kuali.rice.kns.util.ExternalizableBusinessObjectUtils

* -- org.kuali.rice.kns.util.ForeignKeyFieldsPopulationState

* -- org.kuali.rice.kns.exception.ClassNotPersistableException

* -- org.kuali.rice.kns.exception.DuplicateKeyException

* -- org.kuali.rice.kns.exception.ExportNotSupportedException

* -- org.kuali.rice.kns.exception.ObjectNotABusinessObjectRuntimeException

* -- org.kuali.rice.kns.exception.PessimisticLockingException

-- org.kuali.rice.kns.document.authorization.PessimisticLock

-- org.kuali.rice.kns.authorization.BusinessObjectAuthorizer

-- org.kuali.rice.kns.bo.InactivatableFromToImpl

- new ones added, not in original plan

-- org.kuali.rice.kns.bo.Attachment

-- org.kuali.rice.kns.bo.Note

- move the sendNoteRouteNotification method on NoteService to the DocumentService

need a way to define notes support for documents in DD?  See classes like PaymentRequestDocument.java in KNS which overrides the isBoNotesSupport method.

Determining whether or note is allowed is based on the BusinessObjectEntry in the data dictionary

- this works well for standard business objects

- on Documents, the notes tag actually calls documentheader.getBoNotes

-- DocumentHeader.xml datadictionary file always returns true for notes support

-- isBoNotesSupported on the Document class is actually never called

--- in KFS some classes (like PaymentRequestDocument) override the isBoNotesSupport method but this is not necessary since it is never called

--- there is no way to disable note support for document that i can see

--- so removing isBoNotesSupported from PersistableBusinessObjectBase should not pose a problem to client applications provided they are defining things properly through the DD

- Move notes stuff to app framework

org.kuali.rice.kns.service.AttachmentService, org.kuali.rice.kns.service.NoteService, org.kuali.rice.kns.bo.Attachment, org.kuali.rice.kns.bo.Note, org.kuali.rice.kns.bo.NoteType, org.kuali.rice.kns.bo.PersistableAttachment, org.kuali.rice.kns.bo.PersistableAttachmentBase    

   

- remove get

- add a getNotes onto the Document class

- instead of implementing "isBoNotesSupport" on the document, implement "Document.getNoteType()"

- don't need the "extract note property" method on note service anymore

- remove DocumentService.getNoteParent and KualiDocumentActionBase.getNoteParent, replace with a call to Document.getNoteTarget

- replace DocumentService.addNote call to Document.addNote

- move getDocumentBusinessObject from the Document interface to the MaintenanceDocument interface

-- on the main Document interface it is effectively replaced by getNoteTarget()

Don't like the fact that you have to manually override getNoteType.  Since we only support two note types this should be handled automatically i think!

- Figure out if we need to provide a utility to convert legacy BO xml and move the notes to the document portion of the xml!