[ 
https://issues.apache.org/jira/browse/ARTEMIS-1404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ocean updated ARTEMIS-1404:
---------------------------
    Description: 
Problem

We have several tests where we launch and use an embedded Artemis broker. In 
order to make these tests faster we would like to run Artemis in a "in-memory" 
mode where it writes no files to disk. The goal would be to start a new broker, 
use it, and then shut it down without ever having written anything to disk.

Proposed Solution

Based on my own internal research the easiest way to accomplish this would be 
for Artemis to move to using the Java7 Path API [1] for interacting with the 
disk. Then we could plug in jimfs [2] (an in-memory FileSystem provider) and 
get the completely in-memory mode. The problem is that even when disabling 
persistence Artemis still requires a java.io.File to specify its broker 
directory:


{code:java}
                ConfigurationImpl config = new ConfigurationImpl();
                config.setPersistenceEnabled(false);
                config.setBrokerInstance(new File("target/bus/artemis"));
{code}

If we could change this to take a Path instead of a File we would get complete 
in-memory mode.

[1] https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html
[2] https://github.com/google/jimfs

  was:
We have several tests where we launch and use an embedded Artemis broker. In 
order to make these tests faster we would like to run Artemis in a "in-memory" 
mode where it writes no files to disk. The goal would be to start a new broker, 
use it, and then shut it down without ever having written anything to disk.

Notes

Based on my own internal research the easiest way to accomplish this would be 
for Artemis to move to using the Java7 Path API [1] for interacting with the 
disk. Then we could plug in jimfs [2] (an in-memory FileSystem provider) and 
get the completely in-memory mode. The problem is that even when disabling 
persistence Artemis still requires a java.io.File to specify its broker 
directory:


{code:java}
                ConfigurationImpl config = new ConfigurationImpl();
                config.setPersistenceEnabled(false);
                config.setBrokerInstance(new File("target/bus/artemis"));
{code}

If we could change this to take a Path instead of a File we would get complete 
in-memory mode.

[1] https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html
[2] https://github.com/google/jimfs


> In-memory Mode for Embedded Server
> ----------------------------------
>
>                 Key: ARTEMIS-1404
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1404
>             Project: ActiveMQ Artemis
>          Issue Type: New Feature
>          Components: Broker
>            Reporter: ocean
>
> Problem
> We have several tests where we launch and use an embedded Artemis broker. In 
> order to make these tests faster we would like to run Artemis in a 
> "in-memory" mode where it writes no files to disk. The goal would be to start 
> a new broker, use it, and then shut it down without ever having written 
> anything to disk.
> Proposed Solution
> Based on my own internal research the easiest way to accomplish this would be 
> for Artemis to move to using the Java7 Path API [1] for interacting with the 
> disk. Then we could plug in jimfs [2] (an in-memory FileSystem provider) and 
> get the completely in-memory mode. The problem is that even when disabling 
> persistence Artemis still requires a java.io.File to specify its broker 
> directory:
> {code:java}
>                 ConfigurationImpl config = new ConfigurationImpl();
>               config.setPersistenceEnabled(false);
>               config.setBrokerInstance(new File("target/bus/artemis"));
> {code}
> If we could change this to take a Path instead of a File we would get 
> complete in-memory mode.
> [1] https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html
> [2] https://github.com/google/jimfs



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to