Skip to content

Changes

#313 (May 3, 2020, 1:05:08 PM)

  1. Version von "maven-site-plugin" angehoben und vereinheitlicht, um "java.lang.ClassNotFoundException: org.apache.maven.doxia.siterenderer.DocumentContent"-Fehlermeldung zu umgehen — Christoph Schulz / detail

#310 (May 26, 2016, 6:25:18 PM)

  1. Die Operationssignaturen von UserObjectFactory wurde auf IAnyType umgestellt. — hfi413uh / detail

#309 (May 26, 2016, 5:40:17 PM)

  1. Fehler in AspectJ korrigiert. — hfi413uh / detail

#308 (May 26, 2016, 5:15:17 PM)

  1. Generiertes Exception Modell geändert:
    - Mehrfachvererbung durch Delegation (generierte Exceptions leiten von AbstractExceptionLayer ab)
    - Testfälle angepasst — hfi413uh / detail

#307 (Apr 15, 2016, 11:45:46 PM)

  1. Context: re-enable test cases — Christoph Schulz / detail
  2. Context: differentiate between construction a fresh object and construction of an object to be loaded from the database
    * This differentiation is necessary as the code for the constructors differs. The constructor for the fresh object initializes its attributes with sensible defaults, while the constructor for the object to be loaded (subsequently called "load constructor") does not initialize anything (because the stored values should not be overwritten)
    * The old solution of suppressing database calls while constructing objects from within UserObjectFactory.createSpecificUserType() does not really work well because it prohibits any sensible initialization of a fresh object with sensible defaults (or with parameters passed). In fact, any state changes local to the object being constructed were thrown away!
    * To solve this problem, every non-interface class now has an additional constructor with a parameter of type UserObject. This parameter is simply passed upwards the class hierarchy until AnyType is reached.
    * The AnyType(UserObject) constructor simply stores the object away. From this moment, accessing the object's members is backed up by the database. This replaces the old method of calling setObject() as soon as the whole object has been created.
    * The old AnyType default constructor remains as-is, and the corresponding UserObject gets set by using setObject() by an advice of AnyTypeDbAspect directly after returning from that constructor. This means that also for freshly created objects, any state changes in any constructor of a subclass of AnyType (or any method called from it) are backed up by the database.
    * In the AnyTypeDb aspect, the "factoryInit" pointcut and all references to it have been removed as it is not needed anymore. In addition, some superfluous calls to owner.valid.add() have been removed.
    * To be able to pass the UserObject to AnyType's constructor, UserObjectFactory.createSpecificUserType() now has a parameter of type UserObject. Each class implementing UserObjectFactory calls the corresponding class constructor, forwarding the UserObject parameter.
    * All relevant AnyType subclasses have been extended accordingly, i.e. (Mutable|Persistent)(List|Map) and their corresponding factory classes.
    * The Context test classes have also been adapted. Here, all final attributes had to be changed to non-final because the load constructor is required by Java to initialize the final fields without knowing how to do it. (The "solution" to use an assignment like "this.field = this.field;" is esoteric, provokes warnings and is not very user-friendly.)

    In addition, the Generator had to be adjusted:
    * A new class GenExternalClassClass can be used for referencing external non-interface classes. It is similar to GenExternalInterfaceClass. It is used to be able to generate parameters of type UserObject which is not an interface type. The GenClassClass visitors had to be extended accordingly.
    * The FactoryTransformer now generates a createSpecificUserType() method per class which calls the corresponding load constructor. As the "userObject" parameter is simply passed, there is no need to generate "null" arguments, so the getNullParameterInit() method has been removed.
    * The OperationAttributeTransformer implements the new createLoadConstructor() operation which creates a suitable load constructor (including a "super(userObject);" statement), and calls this operation when handling a ClassType or a ProductType. CAVEAT: This direct super() call has to be revised when implementing multiple inheritance!
    * The InheritanceTransformer now never calls maybeAddSuperConstructorCall() anymore, as this is problematic: This method considered only the first constructor of the superclass as target of super(), which may be wrong. And in our case, it _is_ wrong because we do not want e.g. the ProductType constructor receiving parameters for the product components to be extended by a UserObject parameter to be passed to the load constructor of the abstract product class, but rather we want that constructor to call the corresponding constructor of the superclass expecting the product components to be passed. — Christoph Schulz / detail

#306 (Apr 15, 2016, 11:30:46 PM)

  1. Context: ensure that aspects are built in non-test mode, such that the Context aspect can be woven into dependent projects (all WTF-generated projects!) — Christoph Schulz / detail
  2. ApplicationStarter: use getPropertiesReaderFile() by default (which falls back to getPropertiesReaderOracle() if the property file cannot be found), such that changes in the Oracle configuration of WTF projects are respected — Christoph Schulz / detail

#304 (Apr 15, 2016, 6:45:42 PM)

  1. ObjectFactoryProvider: don't use wrong IDs for built-in types (and use the named constants provided by the persistence project!) — Christoph Schulz / detail

#301 (Mar 23, 2016, 8:20:21 PM)

  1. Minor improvement of comments — Gasch Soeren / detail

#297 (Dec 13, 2015, 9:15:06 PM)

  1. Context, Context-db, Context-nodb, Editor, PartsList:
    - Removed Projects Context-db and Context-nodb
        - Tests of of Context-db now reside in Context-db
        - Dependencies adjusted — Gasch Soeren / detail

#296 (Dec 13, 2015, 8:30:10 PM)

  1. Context: Switched project encoding to utf8 — Gasch Soeren / detail

#294 (Dec 8, 2015, 9:35:06 PM)

  1. Improved comments — Gasch Soeren / detail

#293 (Dec 8, 2015, 8:06:00 PM)

  1. Context
    - Code formatting — Gasch Soeren / detail

#291 (Dec 8, 2015, 6:50:09 PM)

  1. Some changes that fixed the test cases... do not know why, but it works :-/ — Hoyer Steffen / detail

#290 (Dec 8, 2015, 5:10:08 PM)

  1. Context (dependent on commit 3755 in Generator project)
    - Rename of static variable to match conventions — Gasch Soeren / detail

#289 (Dec 8, 2015, 4:20:07 PM)

  1. Context
    - Small improvments
         - Corrected modifier order
         - Added javadoc links — Gasch Soeren / detail

#288 (Dec 7, 2015, 11:10:28 AM)

  1. Context:
    - Small improvement of comments — Gasch Soeren / detail