<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>COPPER Engine News</title>
        <link>http://copper-engine.org/</link>
        <atom:link type="application/rss+xml" rel="self" href="http://copper-engine/blog/rss.xml" />
        <description>COPPER - The Open Source Java Workflow Engine</description>
        <language>en-us</language>
        <pubDate>Sun, 08 Mar 2026 22:24:27 +0000</pubDate>
        <lastBuildDate>Sun, 08 Mar 2026 22:24:27 +0000</lastBuildDate>

        
        <item>
            <title>COPPER 8.0.0 released</title>
            <link>http://copper-engine.org/blog/2026-03-08-/copper-8.0.0-released/</link>
            <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2026-03-08-/copper-8.0.0-released</guid>
            <description>&lt;p&gt;COPPER 8.0.0 has been released.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases&quot;&gt;GitHub&lt;/a&gt; and
in &lt;a href=&quot;https://central.sonatype.com/artifact/org.copper-engine/copper-coreengine/versions&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Virtual threads in Processor Delegates now will run on Java 25. 
COPPER 8 itself will be using Java 25.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 7.0.0 released</title>
            <link>http://copper-engine.org/blog/2026-03-08-/copper-7.0.0-released/</link>
            <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2026-03-08-/copper-7.0.0-released</guid>
            <description>&lt;p&gt;COPPER 7.0.0 has been released.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases&quot;&gt;GitHub&lt;/a&gt; and
in &lt;a href=&quot;https://central.sonatype.com/artifact/org.copper-engine/copper-coreengine/versions&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Added the optional usage of virtual threads as Processor Delegates. Inspite of the fact that virtual thread’s full power is available in Java
25, this release can help projects on their migration route to Java 25.
COPPER 7 itself will be using Java 21.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 6.2.0 released</title>
            <link>http://copper-engine.org/blog/2026-03-08-/copper-6.2.0-released/</link>
            <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2026-03-08-/copper-6.2.0-released</guid>
            <description>&lt;p&gt;COPPER 6.2.0 has been released.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://central.sonatype.com/artifact/org.copper-engine/copper-coreengine/versions&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Added experimental features to improve audit support.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 6.1.0 released</title>
            <link>http://copper-engine.org/blog/2026-01-08-/copper-6.1.0-released/</link>
            <pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2026-01-08-/copper-6.1.0-released</guid>
            <description>&lt;p&gt;COPPER 6.1.0 has been released.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://central.sonatype.com/artifact/org.copper-engine/copper-coreengine/versions&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Added documentation of the implementation concept for continuations in COPPER.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 6.0.0 released</title>
            <link>http://copper-engine.org/blog/2025-11-03-/copper-6.0.0-released/</link>
            <pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2025-11-03-/copper-6.0.0-released</guid>
            <description>&lt;p&gt;COPPER 6.0.0 has been released.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to work with Java 17-25. Older versions of Java are supported in previous COPPER versions.
COPPER 5.4 runs with Java 8 to 18. Java 7 is supported by COPPER 4.x.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.5.2 released</title>
            <link>http://copper-engine.org/blog/2024-06-05-/copper-5.5.2-released/</link>
            <pubDate>Wed, 05 Jun 2024 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2024-06-05-/copper-5.5.2-released</guid>
            <description>&lt;p&gt;COPPER 5.5.2 has been released.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to Spring 5.3.36.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.5.1 released</title>
            <link>http://copper-engine.org/blog/2024-06-04-/copper-5.5.1-released/</link>
            <pubDate>Tue, 04 Jun 2024 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2024-06-04-/copper-5.5.1-released</guid>
            <description>&lt;p&gt;COPPER 5.5.1 has been released.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The dependency on javax.xml.bind has been removed.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.5.0 released</title>
            <link>http://copper-engine.org/blog/2024-04-20-/copper-5.5.0-released/</link>
            <pubDate>Sat, 20 Apr 2024 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2024-04-20-/copper-5.5.0-released</guid>
            <description>&lt;p&gt;COPPER 5.5.0 has been released and is ready for Java 22 and Java 23.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 9.7.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.4.2 released</title>
            <link>http://copper-engine.org/blog/2023-04-01-/copper-5.4.2-released/</link>
            <pubDate>Sat, 01 Apr 2023 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2023-04-01-/copper-5.4.2-released</guid>
            <description>&lt;p&gt;COPPER 5.4.2 has been released and is ready for Java 19, 20 and Java 21.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 9.5.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.4 released</title>
            <link>http://copper-engine.org/blog/2021-09-10-/copper-5.4-released/</link>
            <pubDate>Fri, 10 Sep 2021 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2021-09-10-/copper-5.4-released</guid>
            <description>&lt;p&gt;COPPER 5.4 has been released and is ready for Java 17 and Java 18.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 9.2.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.3 released</title>
            <link>http://copper-engine.org/blog/2020-10-23-/copper-5.3-released/</link>
            <pubDate>Fri, 23 Oct 2020 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2020-10-23-/copper-5.3-released</guid>
            <description>&lt;p&gt;COPPER 5.3 has been released and is ready for Java 15 and Java 16.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 9.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.2 released</title>
            <link>http://copper-engine.org/blog/2020-04-06-/copper-5.2-released/</link>
            <pubDate>Mon, 06 Apr 2020 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2020-04-06-/copper-5.2-released</guid>
            <description>&lt;p&gt;COPPER 5.2 has been released and is ready for Java 14.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 8.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.1 released</title>
            <link>http://copper-engine.org/blog/2019-12-09-/copper-5.1-released/</link>
            <pubDate>Mon, 09 Dec 2019 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2019-12-09-/copper-5.1-released</guid>
            <description>&lt;p&gt;COPPER 5.1 has just been released and is ready for Java 13.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 7.2, so Java 12 and 13 are now supported.&lt;/p&gt;

&lt;p&gt;COPPER 5.1 adds support for &lt;a href=&quot;https://en.wikipedia.org/wiki/Git&quot;&gt;git&lt;/a&gt; as workflow repository in order
to enable a lightweight CI/CD pipeline using git repositories for changes in workflows.
(Changes outside the workflows are not in scope of this pipeline.)&lt;/p&gt;

&lt;p&gt;However, if you don’t need this feature, you can use COPPER the same way as before.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>Checkout the new monitoring UI for COPPER 5.0</title>
            <link>http://copper-engine.org/blog/2018-09-04-/copper-5.0-monitoring/</link>
            <pubDate>Tue, 04 Sep 2018 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2018-09-04-/copper-5.0-monitoring</guid>
            <description>&lt;p&gt;With the recent &lt;a href=&quot;/blog/2018-08-28-/copper-5.0-released/&quot;&gt;release of COPPER 5.0 &lt;/a&gt;, we not only upgraded COPPER to run with Java 9+ and make proper use of the new module system, but we also developed a totally new monitoring UI based on modern web techniques (SPA with Vue.js). In this blog post, we would like to demonstrate the new UI, give you simple hands-on setup and useage instructions, and highlight the key features. We’ll further want to give you some background decisions on why the things are developed the way they are.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog/monitoring-ui/copper-5-monitoring-ui-dashboard-screenshot.png&quot; alt=&quot;Dashboard screenshot&quot; class=&quot;img-responsive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There is a dedicated reason for us to not just use a standard (metrics) monitoring tool for monitoring a COPPER engine: We not only want to visualize metrics, but also provide the user some highly COPPER specific data (i.e. workflow related state data) and give the user the possibility to directly act on monitored events, i.e. let him perform some control-operations. In our day-to-day useage of COPPER in many projects, we often have workflows like this: “Get some information synchronously and quickly from microservice A, with that response, get some additional information from system B”. Now service A goes down or slightly changes its response/API unexpectedly which causes some of our workflows to fail and go into an error state internally. What we want to do in operations now: We see that a lot of workflow are broken due to the outage from service A and once service A is up again, we want to restart all affected workflows to redo their requests.&lt;/p&gt;

&lt;p&gt;With the new monitoring UI, we can do just that. We are able to see a list of all broken workflows and are able to inspect each of those. We can see the Java stacktrace of the broken expression, we can check out the serialized workflow data object and - if the file based workflow repository was used - get the source code of the workflow visualized in the monitoring UI all along with highlighting the relevant lines of code for the current situation. We can further just issue a broken workflow (or a set of workflows defined by a matching filter) to be reenqued and thus rerun from the last wait position.&lt;/p&gt;

&lt;p&gt;The monitoring UI of course also offers some visualization of important metrics, just to make operations a bit easier.&lt;/p&gt;

&lt;p&gt;From an architecture perspective, we&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;want the COPPER engine to keep a minimal library footprint and especially don’t want the engine to remember metrics by itself.&lt;/li&gt;
  &lt;li&gt;want to be open to any other monitoring / operations solution and not specifially bound the user to our new monitoring UI.&lt;/li&gt;
  &lt;li&gt;want the monitoring UI to be strictly separated from the engine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last point needs some special attention here. In business environments, we usually have a highly secured setup where the application running COPPER engine is not accessible from outside. The monitoring UI, on the other hand, should be open to any operator to be able to get monitoring information at any time from anywhere. Of course, the monitoring UI needs to meet standard security pattern so that not anyone else can control the workflows, but that was self-evident in the UI development. To come back to the point, usually monitoring UI and copper engine need to run on different hosts. With our distributed engine setup, this point becomes even more apparent. We want to have one monitoring UI running, showing the state of all involved engines within the application.&lt;/p&gt;

&lt;p&gt;In order to support a wide variety of monitoring and operation tools, COPPER engine always exposed its metrics and some operations via JMX. In our monitoring UI setup, we plugin to the existing JMX, put Jolokia as a connector in between and are thus able to access the JMX operations securely via REST method invocation, only requiring the JMX port to be available from outside the engine host. The monitoring UI can run on a less restrictive network which has JMX access to the copper host and which is avaiable e.g. from a corporate reverse nginx proxy or similar.&lt;/p&gt;

&lt;p&gt;If the user visits the monitoring UI, the application will start to gather monitoring data (remember: historical data is not stored in COPPER!) and keep it for the user in order to visualize statistics in graphs over time. But as the user usually wants to visualize not the current state of the system but want to inspect historical patterns (Like: Why did the system crash last night?), there is a small tutorial included in the UI on how to setup a metrics database so that the COPPER JMX metrics are continuously gathered and put into a metric store. In our example setup, we make use of the InfluxDB TICK stack (namingly telegraf to export JMX metrics and InfluxDB as storage engine). Our monitoring UI can be adjusted to visualize the metrics not from the browser local store but to query InfluxDB and thus show historic values as well, where the user didn’t have the browser opened.&lt;/p&gt;

&lt;p&gt;We definitely don’t want to replace existing monitoring environments with the new UI. Each customer has different setups and tools in use and we don’t want to build up a fully suitalbe monitoring solution here. We encourage you to use tools like InfluxDB for storing metrics, Graphana for proper visualization in all granularities and setup alarm rules and events in there. But if you for instance received an alarm or an unexpected behaviour or if you are in development, the UI is the place where you quickly get a more detailed overview with workflow states, do a better problem analysis and be able to perform certain actions like workflow deletion or reenqueing.&lt;/p&gt;

&lt;p&gt;But enough for the reasoning and architecture, let’s just get our hands on. Assuming you already have a copper engine running, starting the monitoring UI is as simple as&lt;/p&gt;
&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;docker run &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; 8080:8080 copperengine/copper-monitoring
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The copper engines to connect to can be setup from within the UI and by each user on its own. You can, however, as well set up some default connections via environment variables so that a new user already has some engines pre setup, specific for the project to be monitored. Same goes for standard UI user/password and a possible InfluxDB connection. If you run the UI, keep in mind that you engine must be in a 5.0+ version as for the UI to work, some minor but important changes to the engine had to be made.&lt;/p&gt;

&lt;p&gt;Et voila, you can now checkout the features of the new UI yourself. For a fully detailed setup and technical description, just visit the source repository and checkout the &lt;a href=&quot;https://github.com/copper-engine/copper-monitoring&quot;&gt;README.md&lt;/a&gt; file. After all, copper-monitoring is Open Source and licensed via Apache 2.0, same as the copper engine.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog/monitoring-ui/copper-5-monitoring-ui-broken-workflow-view.png&quot; alt=&quot;Broken workflows screenshot&quot; class=&quot;img-responsive&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you don’t have docker installed or you currently don’t have time to check out the UI yourself, we’d like to close the article with a feature list.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Get the overhead view of your application:
    &lt;ul&gt;
      &lt;li&gt;Real-time statistics visualized&lt;/li&gt;
      &lt;li&gt;Number of active/broken workflows per engine&lt;/li&gt;
      &lt;li&gt;Workflow details and interaction&lt;/li&gt;
      &lt;li&gt;Audit Trail display&lt;/li&gt;
      &lt;li&gt;Workflow Repository display&lt;/li&gt;
      &lt;li&gt;Processor Pool display&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Broken Workflows ( with state of ERROR or INVALID )
    &lt;ul&gt;
      &lt;li&gt;Display details ( with stacktrace ) of broken workflows&lt;/li&gt;
      &lt;li&gt;Display error and last wait Strack Traces&lt;/li&gt;
      &lt;li&gt;Display source code of the workflow ( with highlights on the last waiting line and error line )&lt;/li&gt;
      &lt;li&gt;Display the workflow’s deserialized state&lt;/li&gt;
      &lt;li&gt;Open workflow in pop-up window&lt;/li&gt;
      &lt;li&gt;Filter workflows by class name, state or created and modification date&lt;/li&gt;
      &lt;li&gt;Restart broken workflows ( one, filtered or all )&lt;/li&gt;
      &lt;li&gt;Delete broken workflows ( one, filtered or all )&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Waiting Workflows ( with state of WAITING )
    &lt;ul&gt;
      &lt;li&gt;Display details ( with stacktrace ) of waiting workflows&lt;/li&gt;
      &lt;li&gt;Display source code of workflow ( with highlights on the last waiting line and error line )&lt;/li&gt;
      &lt;li&gt;Display last wait Strack Traces&lt;/li&gt;
      &lt;li&gt;Display the workflow’s deserialized state&lt;/li&gt;
      &lt;li&gt;Open workflow in pop-up window&lt;/li&gt;
      &lt;li&gt;Filter workflows by class name or created and modification date&lt;/li&gt;
      &lt;li&gt;Delete waiting workflows (one, filtered, or all )&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Workflow Repository info
    &lt;ul&gt;
      &lt;li&gt;Display type, source, and last build results of the repository&lt;/li&gt;
      &lt;li&gt;Display list of classes within the repository and their details&lt;/li&gt;
      &lt;li&gt;Display source code of the repository classes&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Processor Pools info
    &lt;ul&gt;
      &lt;li&gt;Display processor pool statistics&lt;/li&gt;
      &lt;li&gt;Processor pool actions: Resume, Suspend, Resume Deque and Suspend Deque&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Audit Trail
    &lt;ul&gt;
      &lt;li&gt;Filter audit trail based on time, log level, class, id, etc.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Collect and show Statistics for all engines
    &lt;ul&gt;
      &lt;li&gt;The GUI can collect statistics and store them in Local Storage, but only while the page is running in a browser&lt;/li&gt;
      &lt;li&gt;The GUI can alternatively give a user custom generated settings to use with Telegraf and Influx DB so that statistics can be collected continuously.&lt;/li&gt;
      &lt;li&gt;Statistics will be visualized in real-time from either data source&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.0 released</title>
            <link>http://copper-engine.org/blog/2018-08-28-/copper-5.0-released/</link>
            <pubDate>Tue, 28 Aug 2018 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2018-08-28-/copper-5.0-released</guid>
            <description>&lt;p&gt;COPPER 5.0 has just been released and is ready for Java 11.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;https://search.maven.org/search?q=g:org.copper-engine%20AND%20a:copper-coreengine&amp;amp;core=gav&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 6.1, so Java 9, 10 and 11 are now supported in addition to Java 8.
This release no longer supports Java 7 or older versions.&lt;/p&gt;

&lt;p&gt;COPPER 5.0 adds support for the &lt;a href=&quot;https://en.wikipedia.org/wiki/Java_Platform_Module_System&quot;&gt;Java Platform Module System&lt;/a&gt; in order to let you build modular applications.
However, if you don’t need this feature, you can use COPPER the same way as before.&lt;/p&gt;

&lt;p&gt;We are also proud to announce the first release of our new &lt;a href=&quot;https://github.com/copper-engine/copper-monitoring/blob/master/README.md&quot;&gt;Monitoring UI for COPPER&lt;/a&gt;, which is written as a modern single page application with Vue.js as JavaScript framework and communicating with the COPPER engine(s) via a JMX-REST Bridge (Jolokia). Note that for the UI to work, your engine needs to be on that 5 release.&lt;/p&gt;

&lt;p&gt;Another addition to this release is &lt;a href=&quot;https://github.com/copper-engine/copper-modular-demo/blob/master/README.md&quot;&gt;a demo project&lt;/a&gt; showing how to build a modular application with Java 11 and COPPER 5.
It provides a  Gradle script for creating a custom runtime image of this application.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 5.0.0-alpha1 released</title>
            <link>http://copper-engine.org/blog/2018-05-08-/copper-5.0.0-alpha1-released/</link>
            <pubDate>Tue, 08 May 2018 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2018-05-08-/copper-5.0.0-alpha1-released</guid>
            <description>&lt;p&gt;We are proud to announce that COPPER 5.0.0-alpha1 has just been released.
It is available on &lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/v5.0.0-alpha1&quot;&gt;GitHub&lt;/a&gt; and in &lt;a href=&quot;http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.copper-engine%22%20AND%20v%3A%225.0.0-alpha1%22&quot;&gt;Maven Central&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 6.1, so Java 9 and 10 are now supported in addition to Java 8.
This release no longer supports Java 7 or older versions.&lt;/p&gt;

&lt;p&gt;We also added support for the &lt;a href=&quot;https://en.wikipedia.org/wiki/Java_Platform_Module_System&quot;&gt;Java Platform Module System&lt;/a&gt; in order to let you build modular applications.
However, if you don’t need this feature, you can use COPPER the same way as before.&lt;/p&gt;

&lt;p&gt;In addition to the Java version upgrade, we are happy to share the alpha state of our new monitoring UI for COPPER, which is written as a modern single page application with Vue.js as JavaScript framework and communicating with the COPPER engine(s) via a JMX-REST Bridge (Jolokia). You can find the sources aon &lt;a href=&quot;https://github.com/copper-engine/copper-monitoring&quot;&gt;GitHub&lt;/a&gt;. Note that for the UI to work, your engine needs to be on that 5 release.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 4.2.0 released</title>
            <link>http://copper-engine.org/blog/2016-11-29-/copper-4.2.0-released/</link>
            <pubDate>Tue, 29 Nov 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-11-29-/copper-4.2.0-released</guid>
            <description>&lt;p&gt;We are proud to anounce, that COPPER 4.2.0 has just been released.
See &lt;a href=&quot;https://github.com/copper-engine/copper-engine/blob/4.2.0/WHATSNEW.txt&quot;&gt;https://github.com/copper-engine/copper-engine/blob/4.2.0/WHATSNEW.txt&lt;/a&gt; for changes.&lt;/p&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/4.2.0&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/4.2.0&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER Performance Test now available</title>
            <link>http://copper-engine.org/blog/2016-06-15-/performancetest/</link>
            <pubDate>Wed, 15 Jun 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-06-15-/performancetest</guid>
            <description>&lt;p&gt;Our new COPPER ‘Performance Test’ is now available. Check our &lt;a href=&quot;/docs/performance&quot;&gt;performance test&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 4.1.1 released</title>
            <link>http://copper-engine.org/blog/2016-06-07-/copper-4.1.1-released/</link>
            <pubDate>Tue, 07 Jun 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-06-07-/copper-4.1.1-released</guid>
            <description>&lt;p&gt;We are proud to anounce, that COPPER 4.1.1 has just been released.
Besides a bugfix, this release contains a nice little performance enhancement which speeds up resubmit/savepoint and wait/notify in an idle system.
In an idle copper engine, the database queue creator and readers sleep for a while before trying again. When a response arrives in copper (using ProcessingEngine.notify) the engine 
wakes up the queue creator to check for workflow instances that are ready to be resumed. If the creator has found at least one workflow instance to resume, it will wake up the database 
readers. Doing so, the latency times are as small as possible, unless the “notify” arrives AFTER the corresponding “wait” in the workflow is invoked.&lt;/p&gt;

&lt;p&gt;If the “notify” occurs BEFORE the “wait”, the mechanism described above did not work, leading to long latency times because the queue processes are sleeping until their sleep interval 
is finished.
In this release, we optimized this issuse. So even if the “notify” occurs before the “wait” there will be no unnecessary long latency times.
On my local notebook with an Oracle 11g database the execution time of a resubmit/savepoint in an otherwise idle system melt down from 800ms to round about 10 to 20 ms.&lt;/p&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/4.1.1&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/4.1.1&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 4.1.0 released</title>
            <link>http://copper-engine.org/blog/2016-05-31-/copper-4.1.0-released/</link>
            <pubDate>Tue, 31 May 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-05-31-/copper-4.1.0-released</guid>
            <description>&lt;p&gt;We are proud to anounce, that COPPER 4.1.0 has just been released.
In this release we mainly fixed issue #61 “Speed up PersistentLockManager”
Attention! The interface and usage of PersistentLockManager has changed in this release! See javadoc of PersistentLockManager for details.
Also Oracle package “copper-body.sql” has changed.&lt;/p&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/4.1.0&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/4.1.0&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 4.0.3 released</title>
            <link>http://copper-engine.org/blog/2016-05-24-/copper-4.0.3-released/</link>
            <pubDate>Tue, 24 May 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-05-24-/copper-4.0.3-released</guid>
            <description>&lt;p&gt;We are proud to anounce, that COPPER 4.0.3 has just been released.
This release contains mainly some bugfixes.&lt;/p&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/4.0.3&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/4.0.3&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 4.0.2 released</title>
            <link>http://copper-engine.org/blog/2016-05-17-/copper-4.0.2-released/</link>
            <pubDate>Tue, 17 May 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-05-17-/copper-4.0.2-released</guid>
            <description>&lt;p&gt;We are proud to anounce, that COPPER 4.0.2 has just been released.
This release contains only some bugfixes.&lt;/p&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/4.0.2&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/4.0.2&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 4.0.1 released</title>
            <link>http://copper-engine.org/blog/2016-04-14-/copper-4.0.1-released/</link>
            <pubDate>Thu, 14 Apr 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-04-14-/copper-4.0.1-released</guid>
            <description>&lt;p&gt;We are proud to anounce, that COPPER 4.0.1 has just been released.
This release mainly contains some minor enhancements:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;New feature: Some extensions in the JMX interface&lt;/li&gt;
  &lt;li&gt;New feature: In persistent engines using an RDBMS, responses provided to getAndRemoveRespone(s) are ordered by response TS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/4.0.1&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/4.0.1&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER Website broken links fixed</title>
            <link>http://copper-engine.org/blog/2016-04-13-/website-links-fixed/</link>
            <pubDate>Wed, 13 Apr 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-04-13-/website-links-fixed</guid>
            <description>&lt;p&gt;Since our &lt;a href=&quot;/blog/2016-04-13-/copper-4.0.0-released/&quot;&gt;4.0.0 release&lt;/a&gt; some pages on our &lt;a href=&quot;http://copper-engine.org&quot;&gt;COPPER website&lt;/a&gt; had some broken links. This has been fixed now. We apologize for the inconvenience.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER meets Cassandra - COPPER 4.0.0 released</title>
            <link>http://copper-engine.org/blog/2016-04-13-/copper-4.0.0-released/</link>
            <pubDate>Wed, 13 Apr 2016 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2016-04-13-/copper-4.0.0-released</guid>
            <description>&lt;p&gt;We are proud to anounce, that COPPER 4.0.0 final has just been released.&lt;/p&gt;

&lt;p&gt;The most important new feature of this release is the &lt;a href=&quot;http://cassandra.apache.org/&quot;&gt;Apache Cassandra&lt;/a&gt; support. Copper now comes with an adapter that connects to a Apache Cassandra NoSQL database.
We love Cassandra because it offers high availability and really scales linear. Besides it is for free and open source.
With Copper 4 you can run your persistent workflows on a Cassandra Cluster instead of a classic relational DBMS, e.g. MySQL or Postgres.
See the cassandra getting started at &lt;a href=&quot;https://github.com/copper-engine/copper-engine/blob/master/projects/copper-cassandra/cassandra-storage/cassandra-getting-started.txt&quot;&gt;cassandra-getting-started.txt&lt;/a&gt; on how to setup Copper using cassandra.&lt;/p&gt;

&lt;p&gt;Besides the Cassandra support, we worked on some things to make usage of Copper easier, especially for new users.
The new ClasspathWorkflowRepository is quite easy to use. No need for extra folders for the workflow java files, and no need for a JDK installation at runtime.
Just pass the package names of those packages containing your Copper workflows - that’s all.&lt;/p&gt;

&lt;p&gt;Furthermore we introduced some new EngineFactories which make it easier to create and start a Copper engine, see CassandraEngineFactory or RdbmsEngineFactory.&lt;/p&gt;

&lt;p&gt;And last but no least, this release no more supports Java 6.&lt;/p&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/4.0.0&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/4.0.0&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER meets Cassandra - COPPER 4.0.0-alpha1 released</title>
            <link>http://copper-engine.org/blog/2015-11-27-/copper-4.0.0-alpha1-released/</link>
            <pubDate>Fri, 27 Nov 2015 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2015-11-27-/copper-4.0.0-alpha1-released</guid>
            <description>&lt;p&gt;We are proud to anounce, that COPPER 4.0.0-alpha1 has just been released.&lt;/p&gt;

&lt;p&gt;The most important new feature of this release is the &lt;a href=&quot;http://cassandra.apache.org/&quot;&gt;Apache Cassandra&lt;/a&gt; support. Copper now comes with an adapter that connects to a Apache Cassandra NoSQL database.
We love Cassandra because it offers high availability and really scales linear. Besides it is for free and open source.
With Copper 4 you can run your persistent workflows on a Cassandra Cluster instead of a classic relational DBMS, e.g. MySQL or Postgres.
See the cassandra getting started at &lt;a href=&quot;https://github.com/copper-engine/copper-engine/blob/master/projects/copper-cassandra/cassandra-storage/cassandra-getting-started.txt&quot;&gt;cassandra-getting-started.txt&lt;/a&gt; on how to setup Copper using cassandra.&lt;/p&gt;

&lt;p&gt;Besides the Cassandra support, we worked on some things to make usage of Copper easier, especially for new users.
The new ClasspathWorkflowRepository is quite easy to use. No need for extra folders for the workflow java files, and no need for a JDK installation at runtime.
Just pass the package names of those packages containing your Copper workflows - that’s all.&lt;/p&gt;

&lt;p&gt;Furthermore we introduced some new EngineFactories which make it easier to create and start a Copper engine, see CassandraEngineFactory or RdbmsEngineFactory.&lt;/p&gt;

&lt;p&gt;And last but no least, this release no more supports Java 6.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 'Getting started' now available</title>
            <link>http://copper-engine.org/blog/2014-12-02-/gettingstarted/</link>
            <pubDate>Tue, 02 Dec 2014 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2014-12-02-/gettingstarted</guid>
            <description>&lt;p&gt;Our new COPPER ‘Getting started’ is now available. Check our &lt;a href=&quot;/docs/getting-started&quot;&gt;docs&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 3.2.1 released</title>
            <link>http://copper-engine.org/blog/2014-08-25-/copper-3.2.1-released/</link>
            <pubDate>Mon, 25 Aug 2014 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2014-08-25-/copper-3.2.1-released</guid>
            <description>&lt;p&gt;We are proud to announce COPPER 3.2.1&lt;/p&gt;

&lt;p&gt;This release mainly contains some fixes and enhancements in the monitoring:&lt;/p&gt;

&lt;p&gt;Refactoring: Fixed many typos in copper-monitoring.
Refactoring: Renamed Dashboard as Configuration in copper-monitoring-client.
New feature: Preliminary version of the new Dashboard view.
Bugfix: Issue #43: Copper Monitoring Workflows View - Total Count always 0.
Bugfix: Issue #44: Copper Monitoring View - Workflow Repository multiple entry for workflow names.
Bugfix: Issue #45: Copper Monitoring: High loading times for Dashboard and Resources views.&lt;/p&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/3.2.1&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/3.2.1&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 3.2 released</title>
            <link>http://copper-engine.org/blog/2014-08-11-/copper-3.2-released/</link>
            <pubDate>Mon, 11 Aug 2014 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2014-08-11-/copper-3.2-released</guid>
            <description>&lt;p&gt;We are proud to announce COPPER 3.2.0&lt;/p&gt;

&lt;p&gt;COPPER has been upgraded to ASM 5.0, so Java 8 is now supported!&lt;/p&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/3.2.0&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/3.2.0&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 3.1 released</title>
            <link>http://copper-engine.org/blog/2014-04-04-/copper-3.1-released/</link>
            <pubDate>Fri, 04 Apr 2014 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2014-04-04-/copper-3.1-released</guid>
            <description>&lt;p&gt;We are proud to announce COPPER 3.1.0&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;New feature: PersistentLockManager - a service to obtain/manager persistent locks, e.g. to functionally synchronize workflow instances.&lt;/li&gt;
  &lt;li&gt;New feature: PersistentProcessorPool.suspendDequeue/resumeDequeue  Suspends/resumes dequeuing of workflow instances from the storage.&lt;/li&gt;
  &lt;li&gt;New feature: New utility org.copperengine.core.util.Backchannel, that offers functionality to signal a response from within a persistent workflow to its originator&lt;/li&gt;
  &lt;li&gt;New feature: support for the H2 database&lt;/li&gt;
  &lt;li&gt;New feature: added SimpleJmxExporter in copper-coreengine to ease the registering of JMX beans when COPPER runs without Spring&lt;/li&gt;
  &lt;li&gt;Maven: copper-coreengine: moved dependency on C3P0 to copper-regtest. Removed *ConnectionCustomizer classes, because they broke the JDBC spec regarding autoCommit; also removed OracleConnectionTester as it can be substituted by setting ‘preferredTestQuery=”SELECT 1 FROM DUAL”’ in C3P0 datasource.&lt;/li&gt;
  &lt;li&gt;Maven: copper-coreengine: removed unnecessary dependencies on aopalliance, findbugs-annotations and commons-codec, so the only remaining dependencies are on ASM and slf4j-api&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/3.1.0&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/3.1.0&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>New mailing list</title>
            <link>http://copper-engine.org/blog/2014-01-16-/new-mainlinglist/</link>
            <pubDate>Thu, 16 Jan 2014 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2014-01-16-/new-mainlinglist</guid>
            <description>&lt;p&gt;The COPPER project now has a mailing list, hosted by Google Groups:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://groups.google.com/forum/#!forum/copper-engine&quot;&gt;https://groups.google.com/forum/#!forum/copper-engine&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The mailing list is intended as a forum for both users and developers. All current COPPER developers are signed up.&lt;/p&gt;

&lt;p&gt;The list members discuss general and technical issues around current and future COPPER releases. New users are always welcome! Don’t hesitate to ask the developers any questions!&lt;/p&gt;

&lt;p&gt;You can subscribe to this list either by using the Google Groups website or, if you don’t want to create a Google account, by sending an e-mail to &lt;a href=&quot;mailto:copper-engine+subscribe@googlegroups.com&quot;&gt;copper-engine+subscribe@googlegroups.com&lt;/a&gt; with topic “subscribe”. Or, if that doesn’t work, simply e-mail us at &lt;a href=&quot;mailto:contact@copper-engine.org&quot;&gt;contact@copper-engine.org&lt;/a&gt; and we’ll sign you up.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>Using COPPER with Maven or Gradle</title>
            <link>http://copper-engine.org/blog/2014-01-14-/copper-with-maven-or-gradle/</link>
            <pubDate>Tue, 14 Jan 2014 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2014-01-14-/copper-with-maven-or-gradle</guid>
            <description>&lt;p&gt;Since &lt;a href=&quot;/blog/2014-01-14-/copper-3.0-released/&quot;&gt;release 3.0&lt;/a&gt; COPPER is available on the &lt;a href=&quot;http://search.maven.org&quot;&gt;Maven Central Repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This means that now you can pull in the COPPER core engine and all its assorted libraries as a Maven dependency. Simply add the following dependency to your project’s POM:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.copper-engine&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;copper-coreengine&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;3.0&amp;lt;/version&amp;gt;
 &amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This automatically pulls in the dependent libraries &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;copper-jmx-interface&lt;/code&gt; and the third-party libraries &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;asm&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;slf4j-api&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;log4j&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;commons-codec&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c3p0&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;aopalliance&lt;/code&gt;. (Note: we are currently working on a refactoring to make the list of third-party dependencies even smaller – in the end only &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;asm&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;slf4j-api&lt;/code&gt; will be needed!)&lt;/p&gt;

&lt;p&gt;If you are using &lt;strong&gt;Gradle&lt;/strong&gt;, then add the following line to your dependencies:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;compile &apos;org.copper-engine:copper-coreengine:3.0&apos;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you’re using the &lt;strong&gt;Spring Framework&lt;/strong&gt; then you will also need &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;copper-spring&lt;/code&gt;, because since 3.0 the Spring support classes have been moved from the core to its own project:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.copper-engine&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;copper-spring&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;3.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Likewise for Gradle:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;compile &apos;org.copper-engine:copper-spring:3.0&apos;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;There are other COPPER artifacts on Maven Central, namely &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;copper-monitoring.*&lt;/code&gt; which contains our upcoming monitoring server and UI and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;orch-engine&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;orch-interfaces&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;orch-simulators&lt;/code&gt; which contains an exhaustive real-world COPPER example application. Both will be explained in future posts, so stay tuned!&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 3.0 released</title>
            <link>http://copper-engine.org/blog/2014-01-14-/copper-3.0-released/</link>
            <pubDate>Tue, 14 Jan 2014 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2014-01-14-/copper-3.0-released</guid>
            <description>&lt;p&gt;The top item of this 3.0 release is that &lt;strong&gt;we changed COPPER’s toplevel package&lt;/strong&gt; from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;de.scoopgmbh.copper&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;org.copperengine&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Other than that the public API is unchanged (almost, see below). If you are using COPPER then you can easily migrate your project by changing all &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;import&lt;/code&gt; statements from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;de.scoopgmbh.copper&lt;/code&gt; to either &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;org.copperengine.core&lt;/code&gt; (if the class resides in copperengine-core.jar) or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;org.copperengine&lt;/code&gt; (otherwise).&lt;/p&gt;

&lt;p&gt;If you have persistent workflows, don’t worry that the persisted stackframes might contain references to old classes in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;de.scoopgmbh.*&lt;/code&gt; package: we got you covered. Whenever COPPER loads a persistent workflow instance (or response) it transforms the package name automatically during load time – no further intervention neccessary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other changes, compared to the last stable release 2.4.3&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Refactoring: Renamed COPPER major Throwable from “de.scoopgmbh.copper.InterruptException” to “org.copperengine.core.Interrupt”. Persistent workflow instances and responses in existing databases keep compatible due to a loadtime adaptation feature - see StandardJavaSerializer.classnameReplacement&lt;/li&gt;
  &lt;li&gt;Refactoring: All Spring supporting classes have been moved to an own subproject: copper-spring. Attention! SpringTransactionController and SpringTxnAuditTrail have been moved to another package&lt;/li&gt;
  &lt;li&gt;Refactoring: de.scoopgmbh.copper.audit.BatchingAuditTrail does no longer implement spring’s InitializingBean. This makes copper less dependent on spring stuff.&lt;/li&gt;
  &lt;li&gt;Refactoring: de.scoopgmbh.copper.Response.internalProcessingTimeout changed from Integer to Long to enable really LONG timeouts&lt;/li&gt;
  &lt;li&gt;Refactoring: Renamed table ADAPTERCALL to COP_ADAPTERCALL, renamed index IX_ADAPTERCALL to COP_IDX_ADAPTERCALL&lt;/li&gt;
  &lt;li&gt;New feature: Added new wait methods, e.g. de.scoopgmbh.copper.Workflow.wait(WaitMode, long, TimeUnit, String…)&lt;/li&gt;
  &lt;li&gt;New feature: COPPER now uses the Eclipse compiler ecj (or any other JSR-199 compatible java compiler) when found on the CLASSPATH and the default Java compiler is not available. Thus you can run COPPER on a normal JRE instead of a full JDK, ie. you no longer need to provide tools.jar as long as you add ecj.jar to your runtime dependencies.&lt;/li&gt;
  &lt;li&gt;Bugfix: Issue #26: Removed commons-logging from dependencies&lt;/li&gt;
  &lt;li&gt;Bugfix: Issue #25: Removed log4j dependency from copper-coreengine&lt;/li&gt;
  &lt;li&gt;COPPER is now available as a Maven dependency on Maven Central&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/3.0&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/3.0&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 3.0 RC 1 released</title>
            <link>http://copper-engine.org/blog/2014-01-07-/copper-3.0-RC1-released/</link>
            <pubDate>Tue, 07 Jan 2014 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2014-01-07-/copper-3.0-RC1-released</guid>
            <description>&lt;p&gt;Besides some new functional features, one main issue of the 3.0 release is the renaming of COPPER’s toplevel package to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;org.copperengine&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To make migration of existing applications easy, persistent workflow instances and responses in existing databases keep compatible due to a loadtime adaptation feature - see StandardJavaSerializer.classnameReplacement&lt;/p&gt;

&lt;p&gt;A complete overview of what’s new in release 3.0 is available in our git repo at &lt;a href=&quot;https://github.com/copper-engine/copper-engine/blob/3.0-RC.1/WHATSNEW.txt&quot;&gt;WHATSNEW.txt&lt;/a&gt;&lt;/p&gt;

</description>
        </item>
        
        <item>
            <title>COPPER and Java 8</title>
            <link>http://copper-engine.org/blog/2013-12-11-/copper-and-java8/</link>
            <pubDate>Wed, 11 Dec 2013 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2013-12-11-/copper-and-java8</guid>
            <description>&lt;p&gt;&lt;a href=&quot;https://jdk8.java.net/&quot;&gt;Java 8&lt;/a&gt; is just around the corner and you might wonder if COPPER is ready for Java 8, especially the new language features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alas, no!&lt;/strong&gt; The reason is that we are using the awesome &lt;a href=&quot;http://asm.ow2.org/&quot;&gt;ASM bytecode engineering library&lt;/a&gt; to load, modify and store workflow classes from and into the database. The current stable release is 4.2, which is not ready for Java 8 yet.&lt;/p&gt;

&lt;p&gt;However, the ASM developers are already working on Java8 compatibility and &lt;a href=&quot;http://asm.ow2.org/history.html&quot;&gt;promise that it’s ready with the next major release 5.0&lt;/a&gt;. A beta version is already available, which we are testing right now.&lt;/p&gt;

&lt;p&gt;Thus, in short: you cannot use Java8 with COPPER right now. If you &lt;em&gt;really&lt;/em&gt; want to use COPPER with Java 8, you can do so, but be &lt;em&gt;very careful&lt;/em&gt; to compile all your persistent workflow classes with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--source 1.7 --target 1.7&lt;/code&gt;. (All your other classes can be compiled without these options.) But that’s probably not what you want, because you cannot use the new language features in your workflows, especially closures.&lt;/p&gt;

&lt;p&gt;We will release a new COPPER version with Java 8 support as soon as ASM 5.0-stable hits the scene, so stay tuned!&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER now on GitHub!</title>
            <link>http://copper-engine.org/blog/2013-12-09-/now-on-github/</link>
            <pubDate>Mon, 09 Dec 2013 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2013-12-09-/now-on-github</guid>
            <description>&lt;p&gt;&lt;strong&gt;We moved the source code from Google Code to GitHub:&lt;/strong&gt;
&lt;strong&gt;Now it’s here: &lt;a href=&quot;https://github.com/copper-engine/copper-engine&quot;&gt;https://github.com/copper-engine/copper-engine&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google Code served us well one year now, but we found that GitHub has some very attractive features: better issue and release management, free webspace (GitHub pages), a nicer wiki. Plus, of course, the first-class support for Git, the new version control behemoth we all love.&lt;/p&gt;

&lt;p&gt;So, we removed all content from the old Google code site and moved it to GitHub. The new issue tracker is &lt;a href=&quot;https://github.com/copper-engine/copper-engine/issues&quot;&gt;here&lt;/a&gt;, and all documentation went to our new &lt;a href=&quot;http://copper-engine.org/docs/&quot;&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Please let us know if anything is missing! E-mail to &lt;a href=&quot;mailto:contact@copper-engine.org&quot;&gt;contact@copper-engine.org&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER website revamped</title>
            <link>http://copper-engine.org/blog/2013-12-08-/revamped-website/</link>
            <pubDate>Sun, 08 Dec 2013 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2013-12-08-/revamped-website</guid>
            <description>&lt;p&gt;As you can see, we completely revamped our &lt;a href=&quot;http://copper-engine.org&quot;&gt;copper-engine.org&lt;/a&gt; website. :) Take a look around!&lt;/p&gt;

&lt;p&gt;The site is now made with pure &lt;a href=&quot;http://getbootstrap.com/&quot;&gt;Bootstrap 3.0&lt;/a&gt; and is served by the &lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll templating engine&lt;/a&gt; on &lt;a href=&quot;http://pages.github.com/&quot;&gt;GitHub pages&lt;/a&gt; &lt;em&gt;(more on GitHub in our &lt;a href=&quot;/blog/2013-12-09-/now-on-github/&quot;&gt;next post&lt;/a&gt;)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Not everything is quite there yet, &lt;a href=&quot;/docs/&quot;&gt;documentation&lt;/a&gt; is still lacking, but we’re working on it! We’ll post it here whenever we make some new content available.&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER 2.4.3 released</title>
            <link>http://copper-engine.org/blog/2013-11-26-/copper-2.4.3-released/</link>
            <pubDate>Tue, 26 Nov 2013 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2013-11-26-/copper-2.4.3-released</guid>
            <description>&lt;p&gt;COPPER 2.4.3 is the latest stable release. Here’ what’s new:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;New feature: engine.run throws DuplicateIdException if an existing workflow instance id is used - this is also implemented for the transient engine which substitutes throwing an IllegalStateException&lt;/li&gt;
  &lt;li&gt;New feature: Default value for property “loadNonWorkflowClasses” in “FileBasedWorkflowRepository” changed from false to true, due to various problems, e.g. Switch-case not working out-of-the-box&lt;/li&gt;
  &lt;li&gt;Bugfix: ArrayIndexOutOfBoundsException and other exceptions during workflow instrumentation when extensively using nested blocks and local variables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can get it here:
&lt;a href=&quot;https://github.com/copper-engine/copper-engine/releases/tag/2.4.3&quot;&gt;https://github.com/copper-engine/copper-engine/releases/tag/2.4.3&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
        <item>
            <title>COPPER - Forget BPEL!</title>
            <link>http://copper-engine.org/blog/2013-06-10-/forget-bpel/</link>
            <pubDate>Mon, 10 Jun 2013 00:00:00 +0000</pubDate>
            <author>contact@copper-engine.org</author>
            <guid>http://copper-engine.org/blog/2013-06-10-/forget-bpel</guid>
            <description>&lt;p&gt;Some myths never die. Although &lt;a href=&quot;https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel&quot;&gt;BPEL&lt;/a&gt; clearly is an XML dialect and does not define &lt;a href=&quot;http://en.wikipedia.org/wiki/Business_Process_Execution_Language#BPEL_design_goals&quot;&gt;nor is it meant to be a graphical representaion of processes&lt;/a&gt; some people &lt;em&gt;insist&lt;/em&gt; of using graphical tools to model the most complex workflows, just because they &lt;em&gt;can&lt;/em&gt;. This can lead to absurd monster diagrams like &lt;a href=&quot;/images/BPEL-example-big.jpg&quot;&gt;this one&lt;/a&gt; &lt;em&gt;(be aware: 710kb, 1866x10826px; use your browser to zoom)&lt;/em&gt;. No, I’m not making this up. This is a &lt;strong&gt;real world workflow&lt;/strong&gt; from one of our customers which is actually in use. &lt;em&gt;(Ok, I admit it has been anonymized.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I guess the poor developer who has the questionable honor to maintain this mess might have come to the conclusion, just after adding the 500th arrow somewhere in the lower 30 feet (when printed on fanfold paper), that there’s something gone horribly wrong here. But, of course, it’s not &lt;em&gt;his&lt;/em&gt; decision to get rid of it; it had most likely been a &lt;em&gt;management decision&lt;/em&gt; to introduce all that fancy UI stuff that looked great on glossy paper. It’s the &lt;em&gt;“if-you-got-one-hammer-everything-looks-like-a-nail”&lt;/em&gt; philosophy that went berserk here. We claim that it is system immanent for BPEL tools.&lt;/p&gt;

&lt;p&gt;How much better would it have been if this workflow has been described and implemented in Java. Every developer could easily read and understand it. There’s no &lt;a href=&quot;http://impedancemismatch.com/&quot;&gt;impedance mismatch&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One often heard argument for graphical notations is that they bridge the gap between development team and business side. That’s true. But it only works on a very basic and abstract architectural level. It’s a misconception that you should use graphical notations for actual implementation, too. The problem is: once you got these fancy UI tools, no one tells you where to stop!&lt;/p&gt;

&lt;p&gt;Implementing a workflow is a complicated technical task where the best help is a complex &lt;em&gt;framework&lt;/em&gt; that takes the burden from you of caring about all the nasty technical details of persistence, repeatability, reliability etc. and lets you concentrate on the actual business rules. That’s what &lt;a href=&quot;/about/&quot;&gt;COPPER&lt;/a&gt; is for.&lt;/p&gt;
</description>
        </item>
        

    </channel>
</rss>