title: Controlling the order of PicoContainer startup
body: <p>I have been tasked with doing some refactoring work on how we start up applications.  Basically we have a bunch of console apps which were depending on the GUI application startup code, causing bogus dependencies which have kick-on effects for which libraries we need to ship, and which dependencies other modules need to declare.</p>
  
  <p>So I have written a simple startup framework where I basically just throw a bunch of Runnable objects into a list and then run them in order - and it works.</p>
  
  <p>But I was thinking - we already have PicoContainer in our project, so all these things that need to be run on startup could potentially be thrown into a PicoContainer, and if they implement Startable they will start...</p>
  
  <p>But in some cases we want to specify the ordering between them.  For example, I don't want any other component writing to the log before we write a header into the log indicating that the application is starting up.  I know I can introduce ordering by introducing injection dependencies, but this feels like a hack in this case - I would need to add the log header writer as a dependency for every other component which might write to the log, which isn't great at all.</p>
  
  <p>Nonetheless it seems like it would be nice to control the order of PicoContainer startup, so is there perhaps some other way?</p>
  
  <p>Alternatively I could just keep it simple and stick to my list of Runnable.  It does, after all, work.</p>