Ignore:
Timestamp:
06/30/13 12:48:20 (11 years ago)
Author:
psniegowski
Message:

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)

(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?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • java/main/src/main/java/com/framsticks/core/Instance.java

    r87 r88  
    11package com.framsticks.core;
    22
    3 import com.framsticks.communication.*;
    4 import com.framsticks.params.*;
     3import java.util.HashSet;
     4import java.util.Iterator;
     5import java.util.LinkedList;
     6import java.util.List;
     7import java.util.Set;
     8
     9import javax.annotation.Nonnull;
     10import javax.annotation.OverridingMethodsMustInvokeSuper;
     11
     12import org.apache.log4j.Logger;
     13
     14import com.framsticks.communication.File;
     15import com.framsticks.params.AccessInterface;
     16import com.framsticks.params.ConstructionException;
     17import com.framsticks.params.FramsClass;
     18import com.framsticks.params.ListAccess;
     19import com.framsticks.params.Param;
     20import com.framsticks.params.Registry;
     21import com.framsticks.params.ValueParam;
     22import com.framsticks.params.annotations.FramsClassAnnotation;
    523import com.framsticks.params.types.ObjectParam;
    624import com.framsticks.parsers.Loaders;
    725import com.framsticks.parsers.MultiParamLoader;
    8 import com.framsticks.util.*;
     26import com.framsticks.util.StateFunctor;
    927import com.framsticks.util.UnsupportedOperationException;
    1028import com.framsticks.util.dispatching.Dispatching;
    1129import com.framsticks.util.dispatching.Future;
     30import com.framsticks.util.dispatching.RunAt;
     31import com.framsticks.util.dispatching.Thread;
    1232import com.framsticks.util.lang.Casting;
    13 import org.apache.log4j.Logger;
    14 import com.framsticks.util.dispatching.RunAt;
    15 
    16 import java.util.*;
    1733
    1834/**
    1935 * @author Piotr Sniegowski
    2036 */
    21 public abstract class Instance extends Entity {
     37@FramsClassAnnotation
     38public abstract class Instance extends Thread<Instance> implements Entity {
    2239
    2340        private static final Logger log = Logger.getLogger(Instance.class.getName());
     
    2542        protected Node root;
    2643
    27         public Set<InstanceListener> listeners = new HashSet<InstanceListener>();
     44        protected Set<InstanceListener> listeners = new HashSet<InstanceListener>();
    2845
    2946        public Instance() {
    30         }
    31 
    32         @Override
    33         protected void run() {
    34                 super.run();
    35                 root = new Node(Param.build().name("Instance").id(name).type("o"), null);
    36                 com.framsticks.model.Package.register(registry);
     47                setName("entity");
    3748        }
    3849
     
    262273
    263274
    264         public FramsClass processFetchedInfo(File file) {
     275        public @Nonnull FramsClass processFetchedInfo(File file) {
    265276                assert isActive();
    266277                FramsClass framsClass = Loaders.loadFramsClass(file.getContent());
    267278                if ("/".equals(file.getPath())) {
    268279                        if (root.getParam().getContainedTypeName() == null) {
    269                                 root = new Node(Param.build().name("Instance").id(name).type("o " + framsClass.getId()), root.getObject());
     280                                root = new Node(Param.build().name("Instance").id(getName()).type("o " + framsClass.getId()), root.getObject());
    270281                        }
    271282                }
     
    346357                return getPath("/");
    347358        }
     359
     360        @Override
     361        @OverridingMethodsMustInvokeSuper
     362        protected void firstTask() {
     363                root = new Node(Param.build().name("Instance").id(getName()).type("o"), null);
     364                com.framsticks.model.Package.register(registry);
     365        }
     366
    348367}
    349368
Note: See TracChangeset for help on using the changeset viewer.