title: Attempt to add annotation to defrecord defined class in macro
body: <p>I'm attempting to create a macro similar to the Quartzite defjob macro that creates the Job class with the @DisallowConcurrentExecution annotation added to it.  The code works from the repl, but not inside the macro.</p>
  
  <p>This works...</p>
  
  <pre><code>user=&gt; (defrecord ^{DisallowConcurrentExecution true} YYY []
    #_=&gt;   org.quartz.Job
    #_=&gt;   (execute [this context]
    #_=&gt;            (println "whoosh!")))
  user.YYY
  user=&gt; (seq (.getAnnotations YYY))
  (#&lt;$Proxy3 @org.quartz.DisallowConcurrentExecution()&gt;)
  </code></pre>
  
  <p>...but this does not.</p>
  
  <pre><code>(defmacro defncjob
    [jtype args &amp; body]
    `(defrecord ^{DisallowConcurrentExecution true} ~jtype []
                org.quartz.Job
                (execute [this ~@args]
                  ~@body)))
  </code></pre>
  
  <p>After Rodrigo's suggestion, here is a way to make it work.</p>
  
  <pre><code>(defmacro defdcejob
    [jtype args &amp; body]
    `(defrecord ~(vary-meta jtype assoc `DisallowConcurrentExecution true) []
       org.quartz.Job
       (execute [this ~@args]
         ~@body)))
  </code></pre>