Hi Andy, > What sort of JMX operations do you have in mind? Reset? Query stats?
Mostly querying stats, but I haven't spent time thinking about it. I was mostly reflecting on the idea that text-based interfaces are increasingly popular as a sort of command interface- take quicksilver, ubiquity, twitter bots, wolphram alpha, to name but a few. So if ESME revolves around text messages, it makes a lot of sense to me that we can use messages as a command interface. I'm experimenting with different ideas (not all are good, mind you). > I went through the code base this weekend and so far I think I have a pretty > good idea of how things are working. I am a little confused with one thing > however. > > What exactly does the scala.actors.Actor.link method do? What does it mean > to "link" an actor to another? No books ( Programming in Scala, Beginning > Scala, Definitive Guide to LIFT), scaladocs or blogs I have found give an > explanation, but I see it peppered through the ESME and LIFT codebase. I couldn't provide a better answer than Erik, who is deeply involved with Scala actors. There was a sort of boom of Scala books during last year, but unfortunately the best way to learn about some of the tricky stuff in detail is the source... For me, it was very instructive reading the source especially of Lift and was the main source of information before the excellent Lift book got out. I suggest that you write down all questions you have and ask, this way someone can document it, blog about it, etc. It will certainly be useful to the next people coming to Scala. > Also, the touch method on the Distributor, MessagePullActor and > ScedulerActor is used to load the class like an empty init method, am I > correct in this? After the touch method is called in Boot.scala the class is > initialized which ends with a StartMeUp message sent to the loading Actor ( > loading users in the case of the Distributor ). Correct? Even without calling the empty touch method the code will run, but in this way initialization is triggered at ESME startup rather than when the first message is sent. I think that's the only purpose "touch" serves. Actually that's how David has done it with Distributor and UserActor and I have followed this pattern for MessagePullActor and SchedulerActor. > I just want to make sure I understand things correctly before I go coding > wildly and blindly. Good idea, but don't be too afraid to experiment, too- it's the best way to learn. At first you will not be committing directly, so use the fact that your code will be reviewed to your advantage. > I should be able to start throwing some code together in the next few days. Great to know you're having fun! Vassil
