Showing posts with label Mirana. Show all posts
Showing posts with label Mirana. Show all posts

Friday, March 17, 2017

Jetty

I using Jetty for HTML and servlets for Minda.  So far it has been pretty. 

Uh oh, I probably just jinxed it.

I always envisioned a web interface for Miranda - to do things like check status, add or modify users and for administering topics.  

I'm using Goolge's angularjs with this - which is probably overkill.  But I took an online class on angular so I'm going to use it.  So far things have worked out well.  The main problem is that the web site looks like something I would create: clunky and lacking in grace.

Tuesday, February 21, 2017

Miranda Testing

Currently, the strategy is to create a test class for each Miranda class, and put the tests for that class there.

When I say "every Miranda class," I don't actually mean it.  Classes that don't have interesting behavior (or put another way, boring classes) are exempt.

One of the perks of testing, is getting a chance to refactor code.  Classes which seemed like a good idea at the time can be "garbage collected" and removed.

TLS is still not working...

All hail netty!

Friday, February 10, 2017

Deletes and Synchronization

After some reflection, I have made the following decisions:

  • Deletes, in the case of users, topics and subscriptions, cause the status of the object to be changed.  Later on, they are garbage collected.
  • In the case of nodes, Miranda shall track the time of last connection.  If a long enough period of time goes by without a connect, the node is dropped.
  • In the case of nodes, users, topics and subscriptions, a synchronization involves merging the list of objects with the remote list.
  • Objects marked for deletion are not merged.
  • Messages and deliveries are never deleted, but may be garbage collected.
So when a new node connects, Miranda merges its lists of nodes, users, topics and subscriptions with the new node.

The garbage collection period and the amount of time to wait before throwing away old node, users, topics and subscriptions is configurable.