activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ocean (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ARTEMIS-1404) In-memory Mode for Embedded Server
Date Sat, 09 Sep 2017 22:20:00 GMT

     [ 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)

Mime
View raw message