03:51 Changeset [97] by psniegowski
HIGHLIGHTS: * add proper exception passing between communication sides: if exception occur during handling client request, it is automatically passed as comment to error response. * unify various functors into Future<T> * add FutureHandler?<T> using passed ExceptionHandler? * organize Connections functionalities in more granular way * add TrackConsole? it may be used to snoop communication between peers * fix algorithm choosing text controls in GUI * allow GUI testing in virtual frame buffer (xvfb) FEST had some problem with xvfb but workaround was found * add StatusBar? to show handled exceptions * add DirectConsole? to communicate with server by hand supports tab-completion based on requests history CHANGELOG: Further improve handling of exceptions in GUI. Add StatusBar? implementing ExceptionResultHandler?. Make completion processing asynchronous. Minor changes. Improve completion in console. Improve history in InteractiveConsole?. First working version of DirectConsole?. Minor changes. Make Connection.address non final. It is more suitable to use in configuration. Improvement of consoles. Improve PopupMenu? and closing of FrameJoinable?. Fix BrowserTest?. Found bug with FEST running under xvfb. JButtonFixture.click() is not working under xvfb. GuiTest? has wrapper which uses JButton.doClick() directly. Store CompositeParam? param in TreeNode?. Simplify ClientSideManagedConnection? connecting. There is now connectedFunctor needed, ApplicationRequests? can be send right after creation. They are buffered until the version and features are negotiated. Narow down interface of ClientSideManagedConnection?. Allow that connection specialization send only ApplicationRequests?. Improve policy of text control choosing. Change name of Genotype in BrowserTest?. Make BrowserTest? change name of Genotype. Minor change. First working draft of TrackConsole?. Simplify Consoles. More improvements with gui joinables. Unify initialization on gui joinables. More rework of Frame based entities. Refactorize structure of JFrames based entities. Extract GuiTest? from BrowserBaseTest?. Reorganize Console classes structure. Add Collection view to JoinableCollection?. Configure timeout in testing. Minor changes. Rework connections hierarchy. Add Mode to the get operation. Make get and set in Tree take PrimitiveParam?. Unify naming of operations. Make RunAt? use the given ExceptionHandler?. It wraps the virtual runAt() method call with try-catch passing exception to handler. Force RunAt? to include ExceptionHandler?. Improve ClientAtServer?. Minor change. Another sweep with FindBugs?. Rename Instance to Tree. Minor changes. Minor changes. Further clarify semantics of Futures. Add FutureHandler?. FutureHandler? is refinement of Future, that proxifies exception handling to ExceptionResultHandler? given at construction time. Remove StateFunctor? (use Future<Void> instead). Make Connection use Future<Void>. Unparametrize *ResponseFuture?. Remove StateCallback? not needed anymore. Distinguish between sides of ResponseFuture?. Base ResponseCallback? on Future (now ResponseFuture?). Make asynchronous store taking Future for flags. Implement storeValue in ObjectInstance?.


20:29 Changeset [96] by psniegowski
HIGHLIGHTS: * cleanup Instance management * extract Instance interface * extract Instance common algorithms to InstanceUtils? * fix closing issues: Ctrl+C or window close button properly shutdown whole program * add tests regarding connecting to ObjectInstance? hosted by Java Framsticks framework * fix parsing and printing of all request types * hide exception passing in special handle method of closures * substantially improve readability of closures * basically enable use of exception in asynchronous closures (thrown exception is transported back to the caller) * implement call request on both sides CHANGELOG: Further improve calling. Improve instance calling. Calling is working on both sides. Improve exception handling in testing. Waiters do not supercede other apllication exception being thrown. Finished parsing and printing of all request types (with tests). Move implementation and tests of request parsing to Request. Add tests for Requests. Improve waits in asynchronours tests. Extract more algorithms to InstanceUtils?. Extract Instance.resolve to InstanceUtils?. Improve naming. Improve passing exception in InstanceClient?. Hide calling of passed functor in StateCallback?. Hide Exception passing in asynchronous closures. Hide exception passing in Future. Make ResponseCallback? an abstract class. Make Future an abstract class. Minor change. Move getPath to Path.to() Move bindAccess to InstanceUtils?. Extract common things to InstanceUtils?. Fix synchronization bug in Connection. Move resolve to InstanceUtils?. Allow names of Joinable to be dynamic. Add support for set request server side. More fixes in communication. Fix issues with parsing in connection. Cut new line characters when reading. More improvements. Migrate closures to FramsticksException?. Several changes. Extract resolveAndFetch to InstanceUtils? algorithms. Test resolving and fetching. More fixes with function signature deduction. Do not print default values in SimpleAbstractAccess?. Add test of FramsClass? printing. Improve FramsticksException? messages. Add explicit dispatcher synchronization feature. Rework assertions in tests. Previous solution was not generic enough. Allow addition of joinables to collection after start. Extract SimulatorInstance? from RemoteInstance?. Remove PrivateJoinableCollection?. Improve connections. Move shutdown hook to inside the Monitor. It should work in TestNG tests, but it seems that hooks are not called. In ServerTest? client connects to testing server. Move socket initialization to receiver thread. Add proper closing on Ctrl+C (don't use signals). Fix bugs with server accepting connections. Merge Entity into Joinable. Reworking ServerInstance?. Extract more algorithm to InstanceUtils?. Extract some common functionality from AbstractInstance?. Functions were placed in InstanceUtils?. Hide registry of Instance. Use ValueParam? in Instance interface. Minor change. Extract Instance interface. Old Instance is now AbstractInstance?.


00:21 Changeset [95] by sz
muscles encoded in a "new" way in f1 genotypes now behave as in "old" f1 (default values of their "power" and "range" properties depend on f1 modifiers)
00:10 Changeset [94] by sz
fixed model.def double Model appearance


22:37 Changeset [93] by Maciej Komosinski
every param.set(value) produces a helpful warning when the "value" exceeds allowed range for this param, e.g. > World.wrldtyp=5; [WARN] Param::set - Setting 'World.wrldtyp = 5' exceeded allowed range (too big). Adjusted to 2. > World.wrldtyp=-5; [WARN] Param::set - Setting 'World.wrldtyp = -5' exceeded allowed range (too small). Adjusted to 0.
22:31 Changeset [92] by Maciej Komosinski
SString::valueOf(value) can handle more argument types
22:29 Changeset [91] by Maciej Komosinski
better and simpler memory management (allocation/deallocation); malloc/free -> new[]/delete[]
16:20 Changeset [90] by psniegowski
HIGHLIGHTS: * add ObjectInstance? for holding local object trees * fix params ordering issue in automically created FramsClasses? * support for automated Builders in XmlLoader? * fix bug preventing multiple GUI tests in single test run * implement Groups in FramsClass? * improve ProcedureParam?: * calling in ObjectInstance? * support in GUI CHANGELOG: Make ProcedureParam? hold only ValueParams?. Use id instead of names when naming gui components internally. Basic procedure calling in GUI. The actual procedure call is currently only backed by the ObjectInstance?. Add UnimplementedException?. Improve naming of various gui elements. Allow easy navigating in FEST Swing testing. Add optional explicit order attribute to FramsClassAnnotation?. That's because java reflection does return declared members in any specific order. That ordering is needed only for classes that have no representation in framsticks and need a deterministic ordering of params. Add ControlOwner? interface. Add test for procedure calling in Browser. First version of ParamAnnotation? for procedures. Development of ProcedureParam?. Add draft version of ProcedureParam? implementation in ReflectionAccess?. Allow viewing FramsClasses? in gui Browser. Extract ResourceBuilder? from ModelBuilder?. Remove internalId from Param. It was currently completely not utilised. Whether it is still needed after introduction of ParamAnnotation? is arguable. Add remaining param attributes to ParamAnnotation?. Change AutoBuilder? semantics. AutoBuilder? returns list of objects that are to be appended with methods @AutoAppendAnnotation?. This allows to omit explicit addition of ModelPackage? to instance if the instance uses ModelBuilder? (registration of ModelPackage? comes from schema). Fix params ordering problem in auto created FramsClasses?. Improve ObjectInstance?. Several fixes to ModelBuilder?. Improve test for ObjectInstance? in Browser. Make initialization of robot static. With robot recreated for second browser test, the test hanged deep in AWT. Add base convenience base test for Browser tests. More tests to ObjectInstance?. Rename Dispatcher.invokeLater() to dispatch(). Add assertDispatch. It allows assertions in other threads, than TestNGInvoker. Assertions are gathered after each method invocation and rethrown. Use timeOut annotation attribute for tests involving some waiting. Remove firstTask method (merge with joinableStart). Clean up leftovers. Remove unused FavouritesXMLFactory (the reading part is already completely done with generic XmlLoader?, and writing part will be done based on the same approach if needed). Move UserFavourite? to the com.framsticks.gui.configuration package. Remove GenotypeBrowser? as to specific. This functionality will be available in ObjectInstance?. Add interface ParamsPackage?. Package containing registration of Java classes meant to use with ReflectionAccess? may be in Instance using configuration. Minor changes. Make Group immutable. Add AutoBuilder? interface extending Builder - only those would be used to automatically build from XML. Fix groups in FramsClass?. Minor naming cleanup in Registry. Add ModelComponent? interface. All class creating the Model are implementing that interface. Extract Model.build into ModelBuilder?. ModelBuilder? will be compatible with other builders and allow using it from configuration. Fix NeuroConnection?. Add synchronous get operation for dispatchers. Rename JoinableMonitor? to Monitor. Add ObjectInstance?. This class is mainly for demonstration and testing purposes. Improve FramsServer? runner. * improve ExternalProcess? runner, * runner can kill the server but also react properly, when the server exists on it's own, * set default path to search for framsticks server installation, * add LoggingOutputListener?.


17:05 Changeset [89] by sz
all test applications are compilable again
12:48 Changeset [88] by psniegowski
HIGHLIGHTS: * loading f0 schema with XmlLoader? * use XmlLoader? to load configuration * introduce unified fork-join model of various entities (Instances, Connections, GUI Frames, etc.), all those entities clean up gracefully on shutdown, which may be initialized by user or by some entity * basing on above, simplify several organizing classes (Observer, main class) * add ExternalProcess? runner and it's extension: FramsServer? (to host native frams server process from Java level) CHANGELOG: Remove redundant Observer class. Clean up in AbstractJoinable?. Update ExternalProcess? class to changes in joining model. Another sweep through code with FindBugs?. Find bug with not joining RemoteInstance?. Joining almost works. Much improved joining model. More improvement to joining model. Add logging messages around joinable operations. Rename methods in AbstractJoinable?. Improve Joinable. Rewrite of entity structure. More simplifications with entities. Further improve joinables. Let Frame compose from JFrame instead of inheriting. Add join classes. Improvements of closing. Add Builder interface. Add FramsServerTest?.xml FramsServer? may be configured through xml. Make Framsticks main class an Observer of Entities. Make Observer a generic type. Remove variables regarding to removed endpoint. Simplify observer (remove endpoints). More changes to Observer and Endpoint. Minor improvements. Add OutputListener? to ExternalProcess?. Improve testing of ExternalProcess?. Add ExternalProcess? runner. Rename the Program class to Framsticks. Migrate Program to use XmlLoader? configuration. First steps with configuration using XmlLoader?. Fix several bugs. Move all f0 classes to apriopriate package. XmlLoader? is able to load Schema. XmlLoader? is loading classes and props. Add GroupBuilder?.


11:56 Changeset [87] by psniegowski
HIGHLIGHTS: * FramsClass? and contained Param are now immutable classes (like String), which allows to refer to them concurrently without synchronization (which for example in turn simplifies GUI management) * also make Path immutable (which was earlier only assumed) * add global cache for FramsClasses? created solely and automatically on base of Java classes. * add global cache for ReflectionAccess?.Backend precomputed proxy representations basing on given FramsClass? * above changes greatly improved GUI responsivness during browsing * furtherly improve Param class hierarchy * allow to inject actions on state changes into MultiParamLoader? * add more tests CHANGELOG: Add StatusListener? to MultiParamLoader?. Minor refactorization in MultiParamLoader?. First step with auto append. Add SchemaTest?. Improve Registry. Clean up in Registry. Work out Registry. Use annotations for Param. Fix ListChange?. Improve fluent interface of the FramsClassBuilder?. Done caching of ReflectionAccess?.Backend Fix hashCode of Pair. A step on a way to cache ReflectionAccess?.Backend Make SimpleAbstractAccess?.framsClass a final field. Add static cache for FramsClasses? based on java. Only classes created strictly and automatically based on java classes are using this cache. Make all Params immutable. Many improvement to make Param immutable. Make PrimitiveParam? generic type. Several changes to make Param immutable. Make FramsClass? immutable. Another improvement to Path immutability. Several improvements to Path. Improve PathTest?. Configurarable MutabilityDetector?.


13:27 Changeset [86] by psniegowski
HIGHLIGHTS: * use java annotations to mark classes and fields to be used when: * using java classes with ReflectionAccess? to represent remote objects with FramsClass? description found by "info ..." requests * to build up FramsClass? representation of objects not present at remote server * allow using primitive types (instead of wraping counterparts) in reflected classes * rework FramsClass? creation process (add FramsClassBuilder?) * add more tests CHANGELOG: Prepare model.World class. Minor change. Use primitive types for Genotype and Creature classes. Use primitive types in model.Neuro* classes. Use primitive types in model.Joint* classes. Use primitive types in model.Part* classes. Fix primitive values. Extract FramsClassBuilder?. Add tests of Model classes. More fixes. Refactorize out ParamCandidate?. Several fixes. Fix all regressions after introducing annotations. Use annotations throughout the project. Add exception classes. Improve creation of FramsClass?. More changes. Many changes regarding annotations. Annotate classes in com.framsticks.model package. Remove manual FramsClass? constructor. Construct FramsClass? for Creature. Add test. Add default values to the ParamAnnotation?. Add ParamBuilderTest? and ParamAnnotation?. Add FramsClassAnnotation?.


13:38 Changeset [85] by psniegowski
HIGHLIGHTS: * upgrade to Java 7 * use try-multi-catch clauses * use try-with-resources were appropriate * configure FindBugs? (use mvn site and then navigate in browser to the report) * remove most bugs found * parametrize Dispatching environment (Dispatcher, RunAt?) to enforce more control on the place of closures actual call CHANGELOG: Rework FavouritesXMLFactory. FindBugs?. Thread start. FindBugs?. Minor change. FindBugs?. Iterate over entrySet. FindBugs?. Various. FindBug?. FindBug?. Encoding. FindBug?. Final fields. FindBug?. Remove synchronization bug in ClientConnection?. Experiments with findbugs. Finish parametrization. Make RunAt? an abstract class. More changes in parametrization. More changes in parametrizing dispatching. Several changes to parametrize tasks. Rename Runnable to RunAt?. Add specific framsticks Runnable. Add JSR305 (annotations). Add findbugs reporting. More improvements to ParamBuilder? wording. Make FramsClass? accept also ParamBuilder?. Change wording of ParamBuilder?. Change wording of Request creation. Use Java 7 exception catch syntax. Add ScopeEnd? class. Upgrade to Java 7.


21:51 Changeset [84] by psniegowski
HIGHLIGHTS: * simplification of entities management model * cleanup around params (improve hierarchy) * migrate from JUnit to TestNG * introduce FEST to automatically test GUI * improve slider control * loosen synchronization between gui tree and backend representation * and many other bug fixes NOTICE: * a great many of lines is changed only because of substituting spaces with tabs CHANGELOG (oldest changes at the bottom): Some cleaning after fix found. Fix bug with tree. More changes with TreeNodes?. Finally fix issue with tree. Improve gui tree management. Decouple update of values from fetch request in gui. Minor changes. Minor changes. Minor change. Change Path construction wording. More fixes to SliderControl?. Fix SliderControl?. Fix SliderControl?. Minor improvement. Several changes. Make NumberParam? a generic class. Add robot to the gui test. Setup common testing logging configuration. Remove Parameters class. Remove entityOwner from Parameters. Move name out from Parameters class. Move configuration to after the construction. Simplify observers and endpoints. Remove superfluous configureEntity overrides. Add dependency on fest-swing-testng. Use FEST for final print test. Use FEST for more concise and readable assertions. Divide test of F0Parser into multiple methods. Migrate to TestNG Minor change. Change convention from LOGGER to log. Fix reporting of errors during controls filling. Bound maximal height of SliderControl?. Minor improvements. Improve tooltips for controls. Also use Delimeted in more places. Move static control utilities to Gui. Rename package gui.components to controls. Some cleaning in controls. Improve Param classes placing. Move ValueParam?, PrimitiveParam? and CompositeParam? one package up. Improve ParamBuilder?. Move getDef to ValueParam? and PrimitiveParam?. Move getMax and getDef to ValueParam?. Move getMin to ValueParam?. Upgrade to laters apache commons versions. Use filterInstanceof extensively. Add instanceof filters. Make ValueParam? in many places of Param. Place assertions about ValueParam?. Add ValueParam? Rename ValueParam? to PrimitiveParam? Minor changes. Several improvements to params types. Add NumberParam?. Add TextControl? component. Add .swp files to .gitignore Greatly improved slider component. Some improvements. Make Param.reassign return also a state. Add IterableIterator?. Several changes. * Move util classes to better packages. * Remove warnings from eclim. Several improvements. Fix bug with BooleanParam?. Some experiments with visualization. Another fix to panel management. Improve panel management. Some refactorization around panels. Add root class for panel.
Note: See TracTimeline for information about the timeline view.