{"action":"closed","issue":{"url":"https://api.github.com/repos/copper-engine/copper-engine/issues/24","labels_url":"https://api.github.com/repos/copper-engine/copper-engine/issues/24/labels{/name}","comments_url":"https://api.github.com/repos/copper-engine/copper-engine/issues/24/comments","events_url":"https://api.github.com/repos/copper-engine/copper-engine/issues/24/events","html_url":"https://github.com/copper-engine/copper-engine/issues/24","id":25496791,"number":24,"title":"Request: support for offline transformation","user":{"login":"dmoebius","id":1128592,"avatar_url":"https://avatars.githubusercontent.com/u/1128592?v=3","gravatar_id":"","url":"https://api.github.com/users/dmoebius","html_url":"https://github.com/dmoebius","followers_url":"https://api.github.com/users/dmoebius/followers","following_url":"https://api.github.com/users/dmoebius/following{/other_user}","gists_url":"https://api.github.com/users/dmoebius/gists{/gist_id}","starred_url":"https://api.github.com/users/dmoebius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmoebius/subscriptions","organizations_url":"https://api.github.com/users/dmoebius/orgs","repos_url":"https://api.github.com/users/dmoebius/repos","events_url":"https://api.github.com/users/dmoebius/events{/privacy}","received_events_url":"https://api.github.com/users/dmoebius/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/copper-engine/copper-engine/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","locked":false,"assignee":{"login":"austermann","id":6204388,"avatar_url":"https://avatars.githubusercontent.com/u/6204388?v=3","gravatar_id":"","url":"https://api.github.com/users/austermann","html_url":"https://github.com/austermann","followers_url":"https://api.github.com/users/austermann/followers","following_url":"https://api.github.com/users/austermann/following{/other_user}","gists_url":"https://api.github.com/users/austermann/gists{/gist_id}","starred_url":"https://api.github.com/users/austermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austermann/subscriptions","organizations_url":"https://api.github.com/users/austermann/orgs","repos_url":"https://api.github.com/users/austermann/repos","events_url":"https://api.github.com/users/austermann/events{/privacy}","received_events_url":"https://api.github.com/users/austermann/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2014-01-13T13:29:40Z","updated_at":"2015-10-19T16:52:54Z","closed_at":"2015-10-19T16:52:53Z","body":"Currently COPPER only supports \"online\" load-time transformation of workflow classes, which also means that a Java compiler must be available at runtime, ie. tools.jar from the JDK must be found in the system CLASSPATH.\r\n\r\nIt would be great if COPPER also supports offline transformation of workflow classes; for example through an Ant, Maven or Gradle task. This has the following benefits:\r\n\r\n- COPPER could run on a normal JRE without tools.jar (or any other Java compiler, e.g. ecj),\r\n- you no longer need to redistribute the source code of your workflow classes with your application,\r\n- workflow classes could optionally reside in system classpath. You won't need a separate ClassLoader then, which avoids some class loading errors when using workflow classes in an unexpected way.\r\n- start time is reduced\r\n\r\nTechnically this could be solved by providing another implementation of `WorkflowRepository` which complements `FileBasedWorkflowRepository`."}}