[[BackLinksMenu]] [[TicketQuery(summary=PRO_LIB_CORE_COMMONS_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == Check the Properties Library. If there is something to fix, fix it - inappropriate use of some kinds of properties, !JavaDoc missing and so on. == Task requirements == * Go through Properties Library * Add !JavaDoc where necessary. * Check for mistakes (for example a property is an auto property but should be a resource property) * Check the design * Make diagrams * Add some unit tests if necessary. == Task result == * The result should be source code. == Implementation idea == * Make diagrams in the design section. == Related == * [wiki:PRO_LIB_CORE_TUTORIAL] can be useful. == How to demo == * Open the project in eclipse. * Demonstrate properties library. * Show that there is no !JavaDoc missing. * Show the wiki page where the diagrams are. * Run the unit tests. = Design = * Documentation * Very well documented. Only org.sophie2.core.prolib.exp.!ProExpSequenceNode misses !JavaDoc. * Unit tests * The unit tests for the properties are enough. * Some tests fail because some beans can't be destroyed. * There are some deprecated classes. All their dependences should be removed. * !BidiListBinding * !BaseListBinding * !BaseObjectBinding * !BiObjectBinding * !ComposingListBinding * !ListBinding * !SimpleBidiListBinding * !ObjectBinding * !UniObjectBinding * !ObserveValue * Parent - children relations should be removed and replaced with @Own annotation (but it is subject of another task) * Children property is deprecated and its usage should be replaced with @Own annotation * Multithreading issues - The library should provide support for multithreading. * Support of multithreading - it should be provided that properties are executed in multithreads (using !ThreadLocal) * The demo test [source:/trunk/sophie2-platform/modules/org.sophie2.core/src/test/java/org/sophie2/core/prolib/MultiThreadTest.java] * (Optional if there is time) Check the library to prevent Memory Leaks. * (Optional if there is time) Remove all "@!SuppressWarnings("all")" from the tests and remove all the warnings from the tests. * (Optional if there is time) The structure of tests should be improved. Some tests could be moved to more appropriate packages. == Diagrams == === Properties Hierarchy === [[Image(source:/trunk/sophie2-platform/modules/org.sophie2.core/doc/Properties.png)]] [[BR]] [[BR]] [[BR]] === List properties hierarchy === [[Image(source:/trunk/sophie2-platform/modules/org.sophie2.core/doc/ProList.png)]] [[BR]] [[BR]] [[BR]] === Changes === [[Image(source:/trunk/sophie2-platform/modules/org.sophie2.core/doc/Changes.png)]] [[BR]] [[BR]] [[BR]] === Binding hierarchy === * It is the existing bindings hierarchy but bindings are '''deprecated'''. [[Image(source:/trunk/sophie2-platform/modules/org.sophie2.core/doc/Deprecated.png)]] = Implementation = = Testing = = Comments = = Log = [[Include(wiki:PRO_LIB_CORE_COMMONS_R0_LOG)]]