• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Changeset
  • Next Changeset →

Changeset 2008

Show
Ignore:
Timestamp:
01/04/08 14:16:45 (11 months ago)
Author:
jmoore
Message:

StructuredAnnotations : First solid version of new model component

  • Search is disabled
  • Versions disabled
  • Major reworking of Details, hiding constructor (use copy())
  • Made SecureAction?.updateObject() take varargs
  • Top-level Annotation class no longer abstract
    • Required do to unloaded instantiation in ProxyCleanupFilter
  • Added OriginalFileLinks to top-level Job class
    • Having subclasses reference a class targeted for the superclass is unsupported
  • object.vm gets proper cascading, handles ordered collection methods
  • Fixed error in Child and ParentLinks
  • Fixed ExtendedMetadata's construction of field names (counts still broken)
  • Re-added mock_filters.hbm.xml
  • Handling ordered collections
    • Removed all query references to "defaultXyz" (SecSys uses LocalAdmin)
    • Must save parent of collection (Image/Experimenter)
    • Added use of index(p)
  • Upgrade to Spring 2.5
    • Fixed AOPAdapter
    • Fixed NPE in AbstractManagedContextTest
  • MAJOR REWORKING of all server-side and some other tests. (Next client-side)
    • Adding testing/ component

Conflicts:

components/server/src/ome/logic/PojosImpl.java
components/server/src/ome/services/query/PojosGetImagesQueryDefinition.java

Location:
trunk
Files:
28 added
44 modified

  • .classpath (modified) (2 diffs)
  • components/client/test/ome/client/itests/sec/UseSecurityTest.java (modified) (1 diff)
  • components/dsl/resources/ome/dsl/object.vm (modified) (24 diffs)
  • components/dsl/src/ome/dsl/Property.java (modified) (2 diffs)
  • components/model/build.xml (modified) (1 diff)
  • components/model/resources/mappings/annotations.ome.xml (modified) (1 diff)
  • components/model/resources/mappings/jobs.ome.xml (modified) (3 diffs)
  • components/model/resources/mock_filters.hbm.xml (added)
  • components/model/src/ome/model/internal/Details.java (modified) (6 diffs)
  • components/model/test/ome/model/itests/HibernateTest.java (modified) (6 diffs)
  • components/model/test/ome/model/itests/HibernateUtil.java (modified) (3 diffs)
  • components/model/test/ome/model/utests/SetsAndLinksTest.java (modified) (2 diffs)
  • components/server/resources/ome/services/security.xml (modified) (1 diff)
  • components/server/src/ome/logic/AdminImpl.java (modified) (10 diffs)
  • components/server/src/ome/logic/TypesImpl.java (modified) (1 diff)
  • components/server/src/ome/security/SecureAction.java (modified) (1 diff)
  • components/server/src/ome/security/SecuritySystem.java (modified) (1 diff)
  • components/server/src/ome/security/basic/BasicEventContext.java (modified) (2 diffs)
  • components/server/src/ome/security/basic/BasicSecuritySystem.java (modified) (8 diffs)
  • components/server/src/ome/security/basic/CurrentDetails.java (modified) (2 diffs)
  • components/server/src/ome/services/JobBean.java (modified) (1 diff)
  • components/server/src/ome/services/RenderingBean.java (modified) (1 diff)
  • components/server/src/ome/services/procs/ProcessManager.java (modified) (1 diff)
  • components/server/src/ome/services/query/PojosGetImagesQueryDefinition.java (modified) (2 diffs)
  • components/server/src/ome/tools/hibernate/ExtendedMetadata.java (modified) (3 diffs)
  • components/server/src/ome/tools/hibernate/ProxyCleanupFilter.java (modified) (1 diff)
  • components/server/src/ome/tools/spring/AOPAdapter.java (modified) (2 diffs)
  • components/server/test/ome/io/nio/itests/PixbufCreationUnitTest.java (modified) (1 diff)
  • components/server/test/ome/io/nio/itests/PixbufIOFixture.java (modified) (3 diffs)
  • components/server/test/ome/io/nio/itests/PlaneReadUnitTest.java (modified) (1 diff)
  • components/server/test/ome/io/nio/itests/PlaneWriteUnitTest.java (modified) (1 diff)
  • components/server/test/ome/server/itests/AbstractManagedContextTest.java (modified) (2 diffs)
  • components/server/test/ome/server/itests/PixelsServiceTest.java (modified) (2 diffs)
  • components/server/test/ome/server/itests/PojosDaoTest.java (modified) (2 diffs)
  • components/server/test/ome/server/itests/PojosServiceTest.java (modified) (3 diffs)
  • components/server/test/ome/server/itests/RenderingSettingsTest.java (modified) (2 diffs)
  • components/server/test/ome/server/itests/hibernate/ExtendedMetadataTest.java (modified) (1 diff)
  • components/server/test/ome/server/itests/query/GetImagesQueryTest.java (modified) (1 diff)
  • components/server/test/ome/server/itests/query/pojos/QueryTest.java (modified) (1 diff)
  • components/server/test/ome/server/itests/update/UpdateTest.java (modified) (9 diffs)
  • components/server/test/ome/server/utests/AbstractLoginMockTest.java (modified) (4 diffs)
  • components/server/test/ome/server/utests/DroolsUnitTest.java (modified) (1 diff)
  • components/server/test/ome/server/utests/sec/SecuritySystemTest.java (modified) (10 diffs)
  • components/server/test/ome/services/utests/HibernateUtilsTest.java (modified) (1 diff)
  • components/testing (added)
  • components/testing/.classpath (added)
  • components/testing/.project (added)
  • components/testing/build.xml (added)
  • components/testing/ivy.xml (added)
  • components/testing/resources (added)
  • components/testing/resources/ome (added)
  • components/testing/resources/ome/testing (added)
  • components/testing/resources/ome/testing/data.xml (added)
  • components/testing/resources/ome/testing/empty.xml (added)
  • components/testing/resources/test_data.properties (added)
  • components/testing/src (added)
  • components/testing/src/ome (added)
  • components/testing/src/ome/testing (added)
  • components/testing/src/ome/testing/CreatePojosFixture.java (added)
  • components/testing/src/ome/testing/FileUploader.java (added)
  • components/testing/src/ome/testing/MockServiceFactory.java (added)
  • components/testing/src/ome/testing/OMEData.java (added)
  • components/testing/src/ome/testing/ObjectFactory.java (added)
  • components/testing/src/ome/testing/Paths.java (added)
  • components/testing/src/ome/testing/SqlPropertiesParser.java (added)
  • components/testing/src/ome/testing/TestUtils.java (added)
  • components/testing/src/ome/testing/package.html (added)
  • components/testing/test (added)
  • components/testing/test/beanRefContext.xml (added)
  • components/testing/test/integration.testng.xml (added)
  • components/testing/test/unit.testng.xml (added)
  • etc/omero.properties (modified) (1 diff)

Legend:

Unmodified
Added
Removed
  • trunk/.classpath

    r2004 r2008  
    22<classpath> 
    33        <classpathentry kind="src" path="components/model/target/generated/src"/> 
     4        <classpathentry kind="src" path="components/romio/resources"/> 
     5        <classpathentry kind="src" path="components/romio/src"/> 
     6        <classpathentry kind="src" path="components/romio/test"/> 
    47        <classpathentry kind="src" path="components/model/target/generated/resources"/> 
    58        <classpathentry kind="src" path="components/model/src"/> 
    … …  
    3942        <classpathentry kind="src" output="target/eclipse-common" path="components/common/target/generated/src"/> 
    4043        <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
     44        <classpathentry kind="lib" path="target/libs/acegi-security.jar"/> 
     45        <classpathentry kind="lib" path="target/libs/activemq-core.jar"/> 
     46        <classpathentry kind="lib" path="target/libs/ant.jar"/> 
     47        <classpathentry kind="lib" path="target/libs/ant-launcher.jar"/> 
     48        <classpathentry kind="lib" path="target/libs/antlr.jar"/> 
     49        <classpathentry kind="lib" path="target/libs/asm.jar"/> 
     50        <classpathentry kind="lib" path="target/libs/asm-attrs.jar"/> 
     51        <classpathentry kind="lib" path="target/libs/bio-formats.jar"/> 
     52        <classpathentry kind="lib" path="target/libs/cglib.jar"/> 
     53        <classpathentry kind="lib" path="target/libs/commons-beanutils.jar"/> 
     54        <classpathentry kind="lib" path="target/libs/commons-codec.jar"/> 
     55        <classpathentry kind="lib" path="target/libs/commons-collections.jar"/> 
     56        <classpathentry kind="lib" path="target/libs/commons-dbcp.jar"/> 
     57        <classpathentry kind="lib" path="target/libs/commons-io.jar"/> 
     58        <classpathentry kind="lib" path="target/libs/commons-lang.jar"/> 
     59        <classpathentry kind="lib" path="target/libs/commons-logging.jar"/> 
     60        <classpathentry kind="lib" path="target/libs/commons-pool.jar"/> 
     61        <classpathentry kind="lib" path="target/libs/dbunit.jar"/> 
     62        <classpathentry kind="lib" path="target/libs/dom4j.jar"/> 
     63        <classpathentry kind="lib" path="target/libs/drools-all-jdk5.jar"/> 
     64        <classpathentry kind="lib" path="target/libs/ehcache.jar"/> 
     65        <classpathentry kind="lib" path="target/libs/freemarker.jar"/> 
     66        <classpathentry kind="lib" path="target/libs/groovy.jar"/> 
     67        <classpathentry kind="lib" path="target/libs/hibernate.jar" sourcepath="/Users/josh/lib/hibernate-3.2.5.ga"/> 
    4168        <classpathentry kind="lib" path="target/libs/hibernate-annotations.jar"/> 
    4269        <classpathentry kind="lib" path="target/libs/hibernate-commons-annotations.jar"/> 
    4370        <classpathentry kind="lib" path="target/libs/hibernate-search.jar"/> 
     71        <classpathentry kind="lib" path="target/libs/hibernate-tools.jar"/> 
    4472        <classpathentry kind="lib" path="target/libs/hibernate-validator.jar"/> 
     73        <classpathentry kind="lib" path="target/libs/ice.jar"/> 
     74        <classpathentry kind="lib" path="target/libs/jamon.jar"/> 
     75        <classpathentry kind="lib" path="target/libs/jbossall-client.jar"/> 
     76        <classpathentry kind="lib" path="target/libs/jboss-annotations-ejb3.jar"/> 
     77        <classpathentry kind="lib" path="target/libs/jboss-ejb3.jar"/> 
     78        <classpathentry kind="lib" path="target/libs/jboss-ejb3x.jar"/> 
     79        <classpathentry kind="lib" path="target/libs/jboss-j2ee.jar"/> 
     80        <classpathentry kind="lib" path="target/libs/jbosssx.jar"/> 
     81        <classpathentry kind="lib" path="target/libs/jdtcore.jar"/> 
     82        <classpathentry kind="lib" path="target/libs/jmock.jar"/> 
     83        <classpathentry kind="lib" path="target/libs/jtidy.jar"/> 
     84        <classpathentry kind="lib" path="target/libs/junit.jar"/> 
     85        <classpathentry kind="lib" path="target/libs/ldaptemplate.jar"/> 
     86        <classpathentry kind="lib" path="target/libs/log4j.jar"/> 
    4587        <classpathentry kind="lib" path="target/libs/lucene-core.jar"/> 
     88        <classpathentry kind="lib" path="target/libs/ome-java.jar"/> 
    4689        <classpathentry kind="lib" path="target/libs/persistence-api.jar"/> 
    47         <classpathentry exported="true" kind="lib" path="target/libs/acegi-security.jar"/> 
    48         <classpathentry exported="true" kind="lib" path="target/libs/activemq-core.jar"/> 
    49         <classpathentry exported="true" kind="lib" path="target/libs/ant.jar"/> 
    50         <classpathentry exported="true" kind="lib" path="target/libs/ant-launcher.jar"/> 
    51         <classpathentry exported="true" kind="lib" path="target/libs/antlr.jar"/> 
    52         <classpathentry exported="true" kind="lib" path="target/libs/asm.jar"/> 
    53         <classpathentry exported="true" kind="lib" path="target/libs/asm-attrs.jar"/> 
    54         <classpathentry exported="true" kind="lib" path="target/libs/bio-formats.jar"/> 
    55         <classpathentry exported="true" kind="lib" path="target/libs/blitz.jar"/> 
    56         <classpathentry exported="true" kind="lib" path="target/libs/cglib.jar"/> 
    57         <classpathentry exported="true" kind="lib" path="target/libs/commons-codec.jar"/> 
    58         <classpathentry exported="true" kind="lib" path="target/libs/commons-collections.jar"/> 
    59         <classpathentry exported="true" kind="lib" path="target/libs/commons-dbcp.jar"/> 
    60         <classpathentry exported="true" kind="lib" path="target/libs/commons-io.jar"/> 
    61         <classpathentry exported="true" kind="lib" path="target/libs/commons-lang.jar"/> 
    62         <classpathentry exported="true" kind="lib" path="target/libs/commons-logging.jar"/> 
    63         <classpathentry exported="true" kind="lib" path="target/libs/commons-pool.jar"/> 
    64         <classpathentry exported="true" kind="lib" path="target/libs/dbunit.jar"/> 
    65         <classpathentry exported="true" kind="lib" path="target/libs/dom4j.jar"/> 
    66         <classpathentry exported="true" kind="lib" path="target/libs/drools-all-jdk5.jar"/> 
    67         <classpathentry exported="true" kind="lib" path="target/libs/ehcache.jar"/> 
    68         <classpathentry exported="true" kind="lib" path="target/libs/groovy.jar"/> 
    69         <classpathentry exported="true" kind="lib" path="target/libs/hibernate.jar"/> 
    70         <classpathentry exported="true" kind="lib" path="target/libs/hibernate-tools.jar"/> 
    71         <classpathentry exported="true" kind="lib" path="target/libs/ice.jar"/> 
    72         <classpathentry exported="true" kind="lib" path="target/libs/importer.jar"/> 
    73         <classpathentry exported="true" kind="lib" path="target/libs/jamon.jar"/> 
    74         <classpathentry exported="true" kind="lib" path="target/libs/jbossall-client.jar"/> 
    75         <classpathentry exported="true" kind="lib" path="target/libs/jboss-annotations-ejb3.jar"/> 
    76         <classpathentry exported="true" kind="lib" path="target/libs/jboss-ejb3.jar"/> 
    77         <classpathentry exported="true" kind="lib" path="target/libs/jboss-ejb3x.jar"/> 
    78         <classpathentry exported="true" kind="lib" path="target/libs/jbosssx.jar"/> 
    79         <classpathentry exported="true" kind="lib" path="target/libs/jdtcore.jar"/> 
    80         <classpathentry exported="true" kind="lib" path="target/libs/jmock.jar"/> 
    81         <classpathentry exported="true" kind="lib" path="target/libs/jtidy.jar"/> 
    82         <classpathentry exported="true" kind="lib" path="target/libs/junit.jar"/> 
    83         <classpathentry exported="true" kind="lib" path="target/libs/ldaptemplate.jar"/> 
    84         <classpathentry exported="true" kind="lib" path="target/libs/log4j.jar"/> 
    85         <classpathentry exported="true" kind="lib" path="target/libs/postgresql.jar"/> 
    86         <classpathentry exported="true" kind="lib" path="target/libs/qdox.jar"/> 
    87         <classpathentry exported="true" kind="lib" path="target/libs/quartz.jar"/> 
    88         <classpathentry exported="true" kind="lib" path="target/libs/romio.jar"/> 
    89         <classpathentry exported="true" kind="lib" path="target/libs/spring.jar" sourcepath="lib/repository/spring-sources-2.5.jar"/> 
    90         <classpathentry exported="true" kind="lib" path="target/libs/spring-mock.jar"/> 
    91         <classpathentry exported="true" kind="lib" path="target/libs/testng.jar"/> 
    92         <classpathentry exported="true" kind="lib" path="target/libs/velocity.jar"/> 
    93         <classpathentry exported="true" kind="lib" path="target/libs/velocity-tools-generic.jar"/> 
    94         <classpathentry exported="true" kind="lib" path="target/libs/xerces.jar"/> 
    95         <classpathentry exported="true" kind="lib" path="target/libs/xml-apis.jar"/> 
    96         <classpathentry exported="true" kind="lib" path="target/libs/commons-beanutils.jar"/> 
    97         <classpathentry exported="true" kind="lib" path="target/libs/jboss-j2ee.jar"/> 
    98         <classpathentry exported="true" kind="lib" path="target/libs/client.jar"/> 
    99         <classpathentry exported="true" kind="lib" path="target/libs/ome-java.jar"/> 
     90        <classpathentry kind="lib" path="target/libs/postgresql.jar"/> 
     91        <classpathentry kind="lib" path="target/libs/qdox.jar"/> 
     92        <classpathentry kind="lib" path="target/libs/quartz.jar"/> 
     93        <classpathentry kind="lib" path="target/libs/spring.jar"/> 
     94        <classpathentry kind="lib" path="target/libs/spring-mock.jar"/> 
     95        <classpathentry kind="lib" path="target/libs/testng.jar"/> 
     96        <classpathentry kind="lib" path="target/libs/velocity.jar"/> 
     97        <classpathentry kind="lib" path="target/libs/velocity-tools-generic.jar"/> 
     98        <classpathentry kind="lib" path="target/libs/xerces.jar"/> 
     99        <classpathentry kind="lib" path="target/libs/xml-apis.jar"/> 
    100100        <classpathentry kind="output" path="target/eclipse-bin"/> 
    101101</classpath> 
  • trunk/components/client/test/ome/client/itests/sec/UseSecurityTest.java

    r2004 r2008  
    749749 
    750750    protected Details d(IObject _i, Object _o) { 
    751         Details retVal = new Details(_i.getDetails()); 
     751        Details retVal = _i.getDetails().copy(); 
    752752        // prevent error on different update event versions. 
    753753        retVal.setCreationEvent(null); 
  • trunk/components/dsl/resources/ome/dsl/object.vm

    r2004 r2008  
    1010#set($efilter = "${type.table}_event_filter") 
    1111#set($pfilter = "${type.table}_perms_filter") 
     12#set($cascadeEjb = "javax.persistence.CascadeType.MERGE,") 
     13#set($cascadeEjb = "$cascadeEjb javax.persistence.CascadeType.PERSIST,") 
     14#set($cascadeEjb = "$cascadeEjb javax.persistence.CascadeType.REFRESH") 
     15#set($cascadeHib = "org.hibernate.annotations.CascadeType.LOCK,") 
     16#set($cascadeHib = "$cascadeHib org.hibernate.annotations.CascadeType.MERGE,") 
     17#set($cascadeHib = "$cascadeHib org.hibernate.annotations.CascadeType.PERSIST,") 
     18#set($cascadeHib = "$cascadeHib org.hibernate.annotations.CascadeType.REPLICATE,") 
     19#set($cascadeHib = "$cascadeHib org.hibernate.annotations.CascadeType.REFRESH,") 
     20#set($cascadeHib = "$cascadeHib org.hibernate.annotations.CascadeType.SAVE_UPDATE,") 
     21#set($cascadeHib = "$cascadeHib org.hibernate.annotations.CascadeType.EVICT") 
     22## 
    1223## 
    1324## 
    … …  
    6172    @org.hibernate.annotations.Filter(name="${efilter}", condition=":eventId = event_id"), 
    6273    @org.hibernate.annotations.Filter(name="${pfilter}", condition=":permsStr = permissions"), 
    63     @org.hibernate.annotations.Filter(name="securityFilter", condition = "true") 
     74    @org.hibernate.annotations.Filter(name="securityFilter") 
    6475}) 
    6576#end 
    … …  
    101112)  
    102113#end############################################################ 
    103 @org.hibernate.search.annotations.Indexed(index="FullText") 
     114//TODO@org.hibernate.search.annotations.Indexed(index="FullText") 
    104115@org.hibernate.search.annotations.ClassBridge( 
    105116    name="details",  
    … …  
    283294    * locking. 
    284295    */ 
    285     @javax.persistence.Version  
    286296    @javax.persistence.Column(name="version")  
     297    // @javax.persistence.Version  
    287298//TODO mark off #118 if this succeeds, otherwise, completely remove versions and test updateEvent 
    288299    public Integer getVersion() { 
    … …  
    346357##  generate the appropriate methods. 
    347358## 
    348  
    349     protected ${prop.fieldType} ${prop.name} = ${prop.fieldInitializer}; 
    350  
    351 #if($prop.class.name == "ome.dsl.EntryField")#############################TYPE 
    352 ## 
    353 ##  EntryFields are handled by ome/dsl/data.vm, since each of the entries isn't 
    354 ##  a real property but rather an enum value for the database. However, they  
    355 ##  are not even returned by $type.classProperties only $type.properties 
    356 ## 
    357 #elseif($prop.one2Many)###################################################TYPE 
    358359## 
    359360## SETUP 
    360361## 
    361 ## TODO IS this all_delete_orphan 
    362 #set( $cascadeEjb = "javax.persistence.CascadeType.MERGE, javax.persistence.CascadeType.PERSIST, javax.persistence.CascadeType.REFRESH" ) 
    363 #if($prop.isLink) 
    364 #set( $cascadeHib = "org.hibernate.annotations.CascadeType.ALL, org.hibernate.annotations.CascadeType.DELETE_ORPHAN" ) 
    365 #else 
    366 #set( $cascadeHib = "org.hibernate.annotations.CascadeType.LOCK, org.hibernate.annotations.CascadeType.MERGE, org.hibernate.annotations.CascadeType.PERSIST, org.hibernate.annotations.CascadeType.REPLICATE, org.hibernate.annotations.CascadeType.REFRESH, org.hibernate.annotations.CascadeType.SAVE_UPDATE" ); 
    367 #end 
     362## Property to be used only within the property loop which is guaranteed to be reset 
     363## This is used only for one-to-many (collection-valued) relationships 
     364## If this is a link, cascadeHibCollection will be reset to all-delete-orphan 
     365#set( $cascadeHibCollection = ${cascadeHib} ) 
     366## 
    368367#if( $prop.isLink ) 
    369368#set( $LinkType = ${prop.type} ) 
    … …  
    376375#set( $next = "parent" ) 
    377376#set( $other = "child" ) 
     377#set( $cascadeHibCollection = "org.hibernate.annotations.CascadeType.ALL, org.hibernate.annotations.CascadeType.DELETE_ORPHAN" ) 
    378378#elseif($prop.class.name == "ome.dsl.ParentLink") 
    379379#set( $order = "addition, this" ) 
    380380#set( $next = "child" ) 
    381381#set( $other = "parent" ) 
     382#set( $cascadeHibCollection = "org.hibernate.annotations.CascadeType.ALL, org.hibernate.annotations.CascadeType.DELETE_ORPHAN" ) 
    382383#end 
    383384#end##isLink 
     385## 
     386    protected ${prop.fieldType} ${prop.name} = ${prop.fieldInitializer}; 
     387 
     388#if($prop.class.name == "ome.dsl.EntryField")#############################TYPE 
     389## 
     390##  EntryFields are handled by ome/dsl/data.vm, since each of the entries isn't 
     391##  a real property but rather an enum value for the database. However, they  
     392##  are not even returned by $type.classProperties only $type.properties 
     393## 
     394#elseif($prop.one2Many)###################################################TYPE 
    384395## 
    385396## 
    … …  
    404415    * Values are indexed by the column "index" on ${prop.type} 
    405416    */ 
     417    @javax.persistence.JoinColumn(name="${prop.inverse}", nullable=false) 
    406418    @javax.persistence.OneToMany(fetch=javax.persistence.FetchType.LAZY, cascade={${cascadeEjb}}) 
    407     @javax.persistence.JoinColumn(name="${prop.foreignKey}", nullable=false) 
    408     /* 
    409     $prop 
    410     */ 
    411     @org.hibernate.annotations.Cascade({$cascadeHib}) 
    412419    @org.hibernate.annotations.IndexColumn(name="index", nullable=false) 
    413420#else 
    … …  
    415422    */ 
    416423    @javax.persistence.OneToMany(mappedBy="${prop.inverse}", fetch=javax.persistence.FetchType.LAZY, cascade={${cascadeEjb}}) 
    417     @org.hibernate.annotations.Cascade({$cascadeHib}) 
    418 #end 
     424#end 
     425    @org.hibernate.annotations.Cascade({${cascadeHibCollection}}) 
    419426## 
    420427## 
    … …  
    422429## TODO Can these be set on list  
    423430    @org.hibernate.annotations.Filters({ 
    424         @org.hibernate.annotations.Filter(name="securityFilter", condition = "true"), 
     431        @org.hibernate.annotations.Filter(name="securityFilter"), 
    425432        @org.hibernate.annotations.Filter(name=OWNER_FILTER_${prop.nameUpper}, condition=":ownerId = owner_id"), 
    426433        @org.hibernate.annotations.Filter(name=GROUP_FILTER_${prop.nameUpper}, condition=":groupId = group_id"), 
    … …  
    429436    }) 
    430437#end 
    431     @org.hibernate.annotations.ForeignKey(name="${type.table}_fk_one_to_many", inverseName="${prop.shortType}_fk_one_to_many_inverse") 
    432438    protected ${prop.fieldType} get${prop.nameCapped}() { 
    433439        preGetter( ${prop.nameUpper} ); 
    … …  
    525531        } 
    526532        get${prop.nameCapped}().add( target ); 
    527         target.set${prop.inverseCapped} ( this ); 
     533        // If this relationship is not ordered, then we will  
     534        // "attempt" the setting even if it is loaded. 
     535        if (target.isLoaded() || !${prop.ordered} ) { 
     536            target.set${prop.inverseCapped} ( this ); 
     537       } 
    528538    } 
    529539 
    … …  
    540550        while ( it.hasNext() ) { 
    541551            ${prop.type} target = it.next(); 
    542             target.set${prop.inverseCapped} ( this ); 
     552            // If this relationship is not ordered, then we will  
     553            // "attempt" the setting even if it is loaded. 
     554            if (target.isLoaded() || !${prop.ordered} ) { 
     555                target.set${prop.inverseCapped} ( this ); 
     556            } 
    543557        } 
    544558    } 
    … …  
    553567        } 
    554568        get${prop.nameCapped}().remove( target ); 
    555         target.set${prop.inverseCapped} ( null ); 
     569        if (target.isLoaded() || !${prop.ordered} ) { 
     570            target.set${prop.inverseCapped} ( null ); 
     571        } 
    556572    } 
    557573 
    … …  
    568584        while ( it.hasNext() ) { 
    569585            ${prop.type} target = it.next(); 
    570             target.set${prop.inverseCapped} ( null ); 
     586            if (target.isLoaded() || !${prop.ordered} ) { 
     587                target.set${prop.inverseCapped} ( null ); 
     588            } 
    571589        } 
    572590    } 
    … …  
    629647     * Gets the first element of ${prop.name} which can be interpreted as the 
    630648     * primary or default element in some situations. If there is not first 
    631      * element, an {@link IndexOutOfBoundsException} is throws. 
     649     * element, an {@link IndexOutOfBoundsException} is throws. This method 
     650     * will also throw an {@link ApiUsageException} if the collection is 
     651     * unloaded. See {@link #sizeOf${prop.nameCapped}()} for more information. 
    632652     */ 
    633653    @javax.persistence.Transient 
    … …  
    646666     * given element. If the given element is not in the list, an  
    647667     * {@link IndexOutBoundException} will be thrown. Returns the swapped  
    648      * element. 
     668     * element. This method 
     669     * will also throw an {@link ApiUsageException} if the collection is 
     670     * unloaded. See {@link #sizeOf${prop.nameCapped}()} for more information. 
    649671     */ 
    650672    public ${prop.type} setPrimary${prop.shortType}(${prop.type} element) 
    … …  
    853875    * Many-to-one field ${type.id}.${prop.name} (${prop.type}) 
    854876    */ 
    855     @javax.persistence.ManyToOne( cascade = {}, targetEntity = ${prop.type}.class) 
     877    @javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY, cascade = {${cascadeEjb}}, targetEntity = ${prop.type}.class) 
     878    @org.hibernate.annotations.Cascade({${cascadeHib}}) 
    856879    @javax.persistence.JoinColumn(name="${prop.name}", nullable=${prop.nullable},  
    857880        unique=${prop.unique}, insertable=${prop.insert}, updatable=${prop.update}) 
    … …  
    11981221 
    11991222#if(!$type.superclass) 
    1200     private static class Details extends ome.model.internal.Details { 
     1223    public static class Details extends ome.model.internal.Details { 
    12011224 
    12021225        private final static long serialVersionUID = 0000000030000020301L; 
    12031226 
     1227        public ome.model.internal.Details newInstance() { 
     1228            return new Details(); 
     1229        } 
     1230         
    12041231        @javax.persistence.Embedded 
    12051232        public ome.model.internal.Permissions getPermissions() { 
    … …  
    12071234        } 
    12081235 
    1209         @javax.persistence.ManyToOne 
     1236        @javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY, cascade = {${cascadeEjb}}) 
     1237        @org.hibernate.annotations.Cascade({${cascadeHib}}) 
    12101238        @javax.persistence.JoinColumn(name = "external_id", nullable = true, unique = true, insertable = true, updatable = false) 
    12111239        @org.hibernate.annotations.ForeignKey(name = "FK${type.table}_external_id_externalinfo") 
    … …  
    12161244#if(!$type.global) 
    12171245        @Override 
    1218         @javax.persistence.ManyToOne(cascade = {}) 
     1246        @javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY, cascade = {${cascadeEjb}}) 
     1247        @org.hibernate.annotations.Cascade({${cascadeHib}}) 
    12191248        @javax.persistence.JoinColumn(name = "owner_id", nullable = false, unique = false, insertable = true, updatable = true) 
    12201249        @org.hibernate.annotations.ForeignKey(name = "FK${type.table}_owner_id_experimenter") 
    … …  
    12241253 
    12251254        @Override 
    1226         @javax.persistence.ManyToOne(cascade = {}) 
     1255        @javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY, cascade = {${cascadeEjb}}) 
     1256        @org.hibernate.annotations.Cascade({${cascadeHib}}) 
    12271257        @javax.persistence.JoinColumn(name = "creation_id", nullable = false, unique = false, insertable = true, updatable = false) 
    12281258        @org.hibernate.annotations.ForeignKey(name = "FK${type.table}_creation_id_event") 
    … …  
    12321262 
    12331263        @Override 
    1234         @javax.persistence.ManyToOne(cascade = {}) 
     1264        @javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY, cascade = {${cascadeEjb}}) 
     1265        @org.hibernate.annotations.Cascade({${cascadeHib}}) 
    12351266        @javax.persistence.JoinColumn(name = "group_id", nullable = false, unique = false, insertable = true, updatable = true) 
    12361267        @org.hibernate.annotations.ForeignKey(name = "FK${type.table}_group_id_experimentergroup") 
    … …  
    12411272#if(!$type.immutable) 
    12421273        @Override 
    1243         @javax.persistence.ManyToOne 
     1274        @javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY, cascade = {${cascadeEjb}}) 
     1275        @org.hibernate.annotations.Cascade({${cascadeHib}}) 
    12441276        @javax.persistence.JoinColumn(name = "update_id", nullable = false, unique = false, insertable = true, updatable = true) 
    12451277        @org.hibernate.annotations.ForeignKey(name = "FK${type.table}_update_id_event") 
    … …  
    12471279            return super.getUpdateEvent(); 
    12481280        } 
     1281#else 
     1282       /** 
     1283        * Overrides {@link ome.model.internal.Details#getUpdateEvent()} to 
     1284        * always return null. 
     1285        */ 
     1286        @Override 
     1287        @javax.persistence.Transient 
     1288        public ome.model.meta.Event getUpdateEvent() { 
     1289            return null; 
     1290        } 
     1291 
     1292       /** 
     1293        * Overrides {@link ome.model.internal.Details#setUpdateEvent(ome.model.meta.Event)} to 
     1294        * do nothing. 
     1295        */ 
     1296        @Override 
     1297        public void setUpdateEvent(ome.model.meta.Event event) { 
     1298            // do nothing 
     1299        } 
     1300        
    12491301#end 
    12501302#end 
  • trunk/components/dsl/src/ome/dsl/Property.java

    r2002 r2008  
    589589    public ChildLink(SemanticType st, Properties attrs) { 
    590590        super(st, attrs); 
    591         setForeignKey("parent"); 
    592         setInverse("child"); 
     591        setForeignKey("child"); 
     592        setInverse("parent"); 
    593593    } 
    594594 
    … …  
    603603    public ParentLink(SemanticType st, Properties attrs) { 
    604604        super(st, attrs); 
    605         setForeignKey("child"); 
    606         setInverse("parent"); 
     605        setForeignKey("parent"); 
     606        setInverse("child"); 
    607607    } 
    608608 
  • trunk/components/model/build.xml

    r2002 r2008