title: Looking for Java clever task scheduler and executor
body: <p>I'm looking for a Java task scheduler that has a specific feature set before I stumble into developing it myself. </p>
  
  <p>It's not so much of a scheduler, but a logic gate that determines which tasks in a set (<em>T</em>) can be executed now (e.g. passed off to a ThreadPoolExecutor) and which tasks must wait for some future condition.</p>
  
  <p>This is an example of what I would like to implement:  Consider various attributes that might be associated with each task:</p>
  
  <ul>
  <li>Foo: Foo tasks can only be executed one at a time, so <em>T.foo2</em> cannot start until <em>T.foo1</em> has completed, regardless of how much execution capacity there is.</li>
  <li>Bar: Bar tasks have no concurrency limitations, so the scheduler can throw caution to the wind and blast <em>T.bar1</em> through <em>T.barN</em> directly into the execution queue.</li>
  <li>If a task is marked as having attributes <strong>Foo</strong> <em>and</em> <strong>Bar</strong>, then the <strong>Foo</strong> attribute would take precedence with respect to scheduling.</li>
  </ul>
  
  <p>Simple, right ?</p>
  
  <p>Anyone know of such a framework ?</p>
  
  <p>Thanks !</p>
  
  <p>//Nicholas</p>