Changeset 876 for branches/features/grailsUpgrade/grails-app
- Timestamp:
- Mar 21, 2011, 5:07:36 PM (14 years ago)
- Location:
- branches/features/grailsUpgrade/grails-app/conf
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/features/grailsUpgrade/grails-app/conf/BootStrap.groovy
r814 r876 1 1 class BootStrap 2 2 { 3 4 def sessionFactory // used by isDirty().5 def grailsApplication // used by isDirty().6 3 def createDataService 7 4 8 5 def init = { servletContext -> 9 10 /** Add isDirty() to domainClasses.11 * @todo remove after upgrading to Grails-1.3 >.12 * See: http://grails.1312388.n4.nabble.com/beforeUpdate-Compare-with-previous-set-value-isDirty-not-working-in-Events-td1695661.html13 */14 addDirtyCheckMethods()15 6 16 7 /** Environment specific settings. … … 46 37 } 47 38 48 private void addDirtyCheckMethods() {49 for (dc in grailsApplication.domainClasses) {50 addDirtyCheckMethods dc.clazz.metaClass51 }52 }53 54 private void addDirtyCheckMethods(metaClass) {55 metaClass.isDirty = { ->56 def session = sessionFactory.currentSession57 def entry = findEntityEntry(delegate, session)58 if (!entry) {59 return false60 }61 62 Object[] values = entry.persister.getPropertyValues(delegate, session.entityMode)63 def dirtyProperties = entry.persister.findDirty(values, entry.loadedState, delegate, session)64 return dirtyProperties != null65 }66 67 metaClass.isDirty = { String fieldName ->68 def session = sessionFactory.currentSession69 def entry = findEntityEntry(delegate, session)70 if (!entry) {71 return false72 }73 74 Object[] values = entry.persister.getPropertyValues(delegate, session.entityMode)75 int[] dirtyProperties = entry.persister.findDirty(values, entry.loadedState, delegate, session)76 int fieldIndex = entry.persister.propertyNames.findIndexOf { fieldName == it }77 return fieldIndex in dirtyProperties78 }79 80 metaClass.getDirtyPropertyNames = { ->81 def session = sessionFactory.currentSession82 def entry = findEntityEntry(delegate, session)83 if (!entry) {84 return []85 }86 87 Object[] values = entry.persister.getPropertyValues(delegate, session.entityMode)88 int[] dirtyProperties = entry.persister.findDirty(values, entry.loadedState, delegate, session)89 def names = []90 for (index in dirtyProperties) {91 names << entry.persister.propertyNames[index]92 }93 names94 }95 96 metaClass.getPersistentValue = { String fieldName ->97 def session = sessionFactory.currentSession98 def entry = findEntityEntry(delegate, session, false)99 if (!entry) {100 return null101 }102 103 int fieldIndex = entry.persister.propertyNames.findIndexOf { fieldName == it }104 return fieldIndex == -1 ? null : entry.loadedState[fieldIndex]105 }106 }107 108 private findEntityEntry(instance, session, boolean forDirtyCheck = true) {109 def entry = session.persistenceContext.getEntry(instance)110 if (!entry) {111 return null112 }113 114 if (forDirtyCheck && !entry.requiresDirtyCheck(instance) && entry.loadedState) {115 return null116 }117 118 entry119 }120 121 39 } // end class -
branches/features/grailsUpgrade/grails-app/conf/BuildConfig.groovy
r636 r876 29 29 delete file: "${stagingDir}/WEB-INF/lib/poi-3.0.2-FINAL-20080204.jar" 30 30 delete file: "${stagingDir}/WEB-INF/lib/facebook-2.0.4.jar" 31 // Included by searchable plugin.32 delete file: "${stagingDir}/WEB-INF/lib/compass-2.1.0.jar"33 delete file: "${stagingDir}/WEB-INF/lib/compass-2.1.0-src.jar"34 delete file: "${stagingDir}/WEB-INF/lib/lucene-core.jar"35 delete file: "${stagingDir}/WEB-INF/lib/lucene-analyzers.jar"36 delete file: "${stagingDir}/WEB-INF/lib/lucene-highlighter.jar"37 delete file: "${stagingDir}/WEB-INF/lib/lucene-queries.jar"38 delete file: "${stagingDir}/WEB-INF/lib/lucene-snowball.jar"39 delete file: "${stagingDir}/WEB-INF/lib/lucene-spellchecker.jar"40 31 } 41 32 … … 51 42 52 43 repositories { 44 grailsHome() 53 45 grailsPlugins() 54 grails Home()46 grailsCentral() 55 47 56 48 // uncomment the below to enable remote dependency resolution … … 77 69 } 78 70 79 runtime ('org.compass-project:compass:2.1.4')80 runtime ('org.apache.lucene:lucene-core:2.4.1')81 runtime ('org.apache.lucene:lucene-analyzers:2.4.1')82 runtime ('org.apache.lucene:lucene-highlighter:2.4.1')83 runtime ('org.apache.lucene:lucene-queries:2.4.1')84 runtime ('org.apache.lucene:lucene-snowball:2.4.1')85 runtime ('org.apache.lucene:lucene-spellchecker:2.4.1')86 87 71 runtime ('org.apache.ant:ant:1.7.1') 88 72 runtime ('org.apache.ant:ant-launcher:1.7.1')
Note: See TracChangeset
for help on using the changeset viewer.