org.kuali.rice.krad.datadictionary
Class ReloadingDataDictionary

java.lang.Object
  extended by org.kuali.rice.krad.datadictionary.DataDictionary
      extended by org.kuali.rice.krad.datadictionary.ReloadingDataDictionary
All Implemented Interfaces:
no.geosoft.cc.io.FileListener, URLMonitor.URLContentChangedListener, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

public class ReloadingDataDictionary
extends DataDictionary
implements no.geosoft.cc.io.FileListener, URLMonitor.URLContentChangedListener, org.springframework.context.ApplicationContextAware

Extends the DataDictionary to add reloading of changed dictionary files without a restart of the web container

To use modify the "dataDictionaryService" spring definition (KRADSpringBeans.xml) and change the constructor arg bean class from "org.kuali.rice.krad.datadictionary.DataDictionary" to "ReloadingDataDictionary"

NOTE: For Development Purposes Only!

Author:
Kuali Rice Team (rice.collab@kuali.org)

Field Summary
 
Fields inherited from class org.kuali.rice.krad.datadictionary.DataDictionary
beanValidationFiles, ddBeans, ddIndex, ddMapper, moduleDictionaryFiles, moduleLoadOrder, persistenceStructureService, uifIndex, validateEBOs, xmlReader
 
Constructor Summary
ReloadingDataDictionary()
           
 
Method Summary
 void fileChanged(File file)
          Call back when a dictionary file is changed.
 void parseDataDictionaryConfigurationFiles(boolean allowConcurrentValidation)
          After dictionary has been loaded, determine the source files and add them to the monitor
 void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
           
 void urlContentChanged(URL url)
           
 
Methods inherited from class org.kuali.rice.krad.datadictionary.DataDictionary
addConfigFileLocation, addModuleDictionaryFile, buildReadDescriptor, buildSimpleReadDescriptor, containsDictionaryObject, getAllInactivationBlockingMetadatas, getAttributeClass, getBeanNamesForNamespace, getBusinessObjectClassNames, getBusinessObjectEntries, getBusinessObjectEntry, getBusinessObjectEntryForConcreteClass, getCollectionElementClass, getDataObjectEntry, getDictionaryObject, getDictionaryObjectEntry, getDocumentEntries, getDocumentEntry, getFileResource, getMaintenanceDocumentEntryForBusinessObjectClass, getModuleDictionaryFiles, getModuleLoadOrder, getNamespaceForBeanDefinition, getPersistenceStructureService, getViewById, getViewByTypeIndex, getViewPropertiesById, getViewPropertiesByType, getViewsForType, indexSource, indexSource, isCollectionPropertyOf, isPropertyOf, loadDictionaryBeans, performBeanOverrides, performDictionaryPostProcessing, setDataDictionaryMapper, setModuleDictionaryFiles, setModuleLoadOrder, setupProcessor, validateDD, validateDD, viewByTypeExist
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReloadingDataDictionary

public ReloadingDataDictionary()
Method Detail

parseDataDictionaryConfigurationFiles

public void parseDataDictionaryConfigurationFiles(boolean allowConcurrentValidation)
After dictionary has been loaded, determine the source files and add them to the monitor

Overrides:
parseDataDictionaryConfigurationFiles in class DataDictionary
Parameters:
allowConcurrentValidation - - indicates whether the indexing should occur on a different thread or the same thread
See Also:
DataDictionary.parseDataDictionaryConfigurationFiles(boolean)

fileChanged

public void fileChanged(File file)
Call back when a dictionary file is changed. Calls the spring bean reader to reload the file (which will override beans as necessary and destroy singletons) and runs the indexer

Specified by:
fileChanged in interface no.geosoft.cc.io.FileListener
See Also:
FileListener.fileChanged(java.io.File)

urlContentChanged

public void urlContentChanged(URL url)
Specified by:
urlContentChanged in interface URLMonitor.URLContentChangedListener

setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
                           throws org.springframework.beans.BeansException
Specified by:
setApplicationContext in interface org.springframework.context.ApplicationContextAware
Throws:
org.springframework.beans.BeansException


Copyright © 2005-2012 The Kuali Foundation. All Rights Reserved.