You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2013/10/07 11:52:51 UTC
svn commit: r1529811 - in /ace/trunk:
org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/
org.apache.ace.builder/
org.apache.ace.client.repository.itest/src/org/apache/ace/it/repositoryadmin/
org.apache.ace.client.repository/src/o...
Author: marrs
Date: Mon Oct 7 09:52:51 2013
New Revision: 1529811
URL: http://svn.apache.org/r1529811
Log:
ACE-393 Implemented a setting to allow you to set if you want to see unregistered targets or not. Can be overridden per session in the REST and Shell clients.
Added:
ace/trunk/run-server-allinone/conf/org.apache.ace.client.repository.cfg
Modified:
ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/LogAuthenticationTest.java
ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/ObrAuthenticationTest.java
ace/trunk/org.apache.ace.builder/bnd.bnd
ace/trunk/org.apache.ace.client.repository.itest/src/org/apache/ace/it/repositoryadmin/BaseRepositoryAdminTest.java
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/SessionFactory.java
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/Activator.java
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/object/packageinfo
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/packageinfo
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetRepositoryImpl.java
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/packageinfo
ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/RESTClientServlet.java
ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/Workspace.java
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java
ace/trunk/run-server-allinone/server-allinone.bndrun
Modified: ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/LogAuthenticationTest.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/LogAuthenticationTest.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/LogAuthenticationTest.java (original)
+++ ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/LogAuthenticationTest.java Mon Oct 7 09:52:51 2013
@@ -115,7 +115,7 @@ public class LogAuthenticationTest exten
protected void configureProvisionedServices() throws Exception {
String baseURL = "http://" + HOST + ":" + TestConstants.PORT;
- getService(SessionFactory.class).createSession("test-session-ID");
+ getService(SessionFactory.class).createSession("test-session-ID", null);
configureFactory("org.apache.ace.server.repository.factory",
RepositoryConstants.REPOSITORY_NAME, "users",
Modified: ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/ObrAuthenticationTest.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/ObrAuthenticationTest.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/ObrAuthenticationTest.java (original)
+++ ace/trunk/org.apache.ace.authentication.itest/src/org/apache/ace/it/authentication/ObrAuthenticationTest.java Mon Oct 7 09:52:51 2013
@@ -88,7 +88,7 @@ public class ObrAuthenticationTest exten
m_storeLocation.mkdirs();
final String fileLocation = m_storeLocation.getAbsolutePath();
- getService(SessionFactory.class).createSession("test-session-ID");
+ getService(SessionFactory.class).createSession("test-session-ID", null);
configureFactory("org.apache.ace.server.repository.factory",
RepositoryConstants.REPOSITORY_NAME, "users",
Modified: ace/trunk/org.apache.ace.builder/bnd.bnd
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.builder/bnd.bnd?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.builder/bnd.bnd (original)
+++ ace/trunk/org.apache.ace.builder/bnd.bnd Mon Oct 7 09:52:51 2013
@@ -1,5 +1,5 @@
-buildpath: org.apache.ace.test;version=latest
Export-Package: org.apache.ace.builder
-Bundle-Version: 1.0.0
+Bundle-Version: 1.0.1
Bundle-Name: Apache ACE Builder
Bundle-Description: Implementation of the Apace ACE DeploymentPackage builder
\ No newline at end of file
Modified: ace/trunk/org.apache.ace.client.repository.itest/src/org/apache/ace/it/repositoryadmin/BaseRepositoryAdminTest.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository.itest/src/org/apache/ace/it/repositoryadmin/BaseRepositoryAdminTest.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository.itest/src/org/apache/ace/it/repositoryadmin/BaseRepositoryAdminTest.java (original)
+++ ace/trunk/org.apache.ace.client.repository.itest/src/org/apache/ace/it/repositoryadmin/BaseRepositoryAdminTest.java Mon Oct 7 09:52:51 2013
@@ -194,7 +194,7 @@ public abstract class BaseRepositoryAdmi
protected void configureProvisionedServices() throws Exception {
m_endpoint = new URL(HOST + ENDPOINT_NAME);
- getService(SessionFactory.class).createSession("test-session-ID");
+ getService(SessionFactory.class).createSession("test-session-ID", null);
configureFactory("org.apache.ace.log.server.store.factory",
"name", "auditlog", "authentication.enabled", "false");
}
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/SessionFactory.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/SessionFactory.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/SessionFactory.java (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/SessionFactory.java Mon Oct 7 09:52:51 2013
@@ -18,6 +18,8 @@
*/
package org.apache.ace.client.repository;
+import java.util.Map;
+
/**
* Factory service for creating and destroying sessions. Sessions are identified by some kind
* of identification. This identification is also used as a service property in case there is
@@ -25,16 +27,20 @@ package org.apache.ace.client.repository
* service session ID. It is also used to listen to session specific events, in which case this
* same property is part of the actual event so it can be used in event filters.
*/
-public interface SessionFactory
-{
+public interface SessionFactory {
/** Session ID for session specific service or event. */
public static final String SERVICE_SID = "service.sid";
+
/**
- * Create a new session based on the supplied session ID.
+ * Create a new session based on the supplied session ID and configuration. Supplying a
+ * session configuration is optional. It can contain parameters to specifically configure
+ * the session.
*
* @param sessionID the session ID
+ * @param sessionConfiguration the session configuration, if any
*/
- public void createSession(String sessionID);
+ public void createSession(String sessionID, Map sessionConfiguration);
+
/**
* Destroy an existing session supplied on the supplied session ID.
*
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/Activator.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/Activator.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/Activator.java (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/Activator.java Mon Oct 7 09:52:51 2013
@@ -50,6 +50,8 @@ import org.apache.felix.dm.DependencyMan
import org.apache.felix.service.command.CommandProcessor;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
+import org.osgi.service.cm.ConfigurationException;
+import org.osgi.service.cm.ManagedService;
import org.osgi.service.event.EventAdmin;
import org.osgi.service.event.EventConstants;
import org.osgi.service.event.EventHandler;
@@ -60,25 +62,24 @@ import org.osgi.service.prefs.Preference
* Activator for the RepositoryAdmin bundle. Creates the repository admin, which internally
* creates all required repositories.
*/
-public class Activator extends DependencyActivatorBase implements SessionFactory {
-
- private final Map<String, SessionData> m_sessions = new HashMap<String, SessionData>();
-
+public class Activator extends DependencyActivatorBase implements SessionFactory, ManagedService {
+ private static final String PID = "org.apache.ace.client.repository";
+ private static final String KEY_SHOWUNREGISTEREDTARGETS = "showunregisteredtargets";
+ private final Map<String, SessionData> m_sessions = new HashMap<String, SessionData>();
private volatile DependencyManager m_dependencyManager;
+ private boolean m_showUnregisteredTargets;
- /**
- * {@inheritDoc}
- */
@Override
public synchronized void init(BundleContext context, DependencyManager manager) throws Exception {
m_dependencyManager = manager;
Properties props = new Properties();
+ props.put(Constants.SERVICE_PID, PID);
props.put(CommandProcessor.COMMAND_SCOPE, "clientrepo");
props.put(CommandProcessor.COMMAND_FUNCTION, new String[] { "sessions" });
manager.add(createComponent()
- .setInterface(SessionFactory.class.getName(), props)
+ .setInterface(new String[] { SessionFactory.class.getName(), ManagedService.class.getName() }, props)
.setImplementation(this)
);
}
@@ -98,18 +99,11 @@ public class Activator extends Dependenc
}
}
- /**
- * {@inheritDoc}
- */
@Override
public synchronized void destroy(BundleContext context, DependencyManager manager) throws Exception {
- // Nop
}
- /**
- * {@inheritDoc}
- */
- public void createSession(String sessionID) {
+ public void createSession(String sessionID, Map sessionConfiguration) {
SessionData sessionData = null;
synchronized (m_sessions) {
if (!m_sessions.containsKey(sessionID)) {
@@ -117,16 +111,19 @@ public class Activator extends Dependenc
m_sessions.put(sessionID, sessionData);
}
}
+
+ boolean showUnregisteredTargets = m_showUnregisteredTargets;
+ if (sessionConfiguration != null) {
+ Object value = sessionConfiguration.get(KEY_SHOWUNREGISTEREDTARGETS);
+ showUnregisteredTargets = parseBoolean(value, m_showUnregisteredTargets);
+ }
// Allow session to be created outside the lock; to avoid potential deadlocks...
if (sessionData != null) {
- createSessionServices(sessionData, sessionID);
+ createSessionServices(sessionData, sessionID, showUnregisteredTargets);
}
}
- /**
- * {@inheritDoc}
- */
public void destroySession(String sessionID) {
SessionData sessionData = null;
synchronized (m_sessions) {
@@ -146,7 +143,7 @@ public class Activator extends Dependenc
* @param sessionID the session ID to use.
*/
@SuppressWarnings("unchecked")
- private void createSessionServices(SessionData sd, String sessionID) {
+ private void createSessionServices(SessionData sd, String sessionID, boolean showUnregisteredTargets) {
RepositoryAdminImpl rai = new RepositoryAdminImpl(sessionID);
Component repositoryAdminComponent = createComponent()
.setInterface(RepositoryAdmin.class.getName(), rai.getSessionProps())
@@ -176,7 +173,7 @@ public class Activator extends Dependenc
RepositoryAdmin.PRIVATE_TOPIC_LOGIN
});
- StatefulTargetRepositoryImpl statefulTargetRepositoryImpl = new StatefulTargetRepositoryImpl(sessionID);
+ StatefulTargetRepositoryImpl statefulTargetRepositoryImpl = new StatefulTargetRepositoryImpl(sessionID, showUnregisteredTargets);
Component statefulTargetRepositoryComponent = createComponent()
.setInterface(new String[] { StatefulTargetRepository.class.getName(), EventHandler.class.getName() }, topic)
.setImplementation(statefulTargetRepositoryImpl)
@@ -240,4 +237,26 @@ public class Activator extends Dependenc
}
}
}
+
+ @Override
+ public void updated(Dictionary properties) throws ConfigurationException {
+ if (properties == null) {
+ // by default, we show unregistered targets
+ m_showUnregisteredTargets = true;
+ }
+ else {
+ Object value = properties.get(KEY_SHOWUNREGISTEREDTARGETS);
+ m_showUnregisteredTargets = parseBoolean(value, true);
+ }
+ }
+
+ private boolean parseBoolean(Object value, boolean defaultValue) {
+ if (value instanceof String) {
+ return Boolean.parseBoolean((String) value);
+ }
+ else if (value instanceof Boolean) {
+ return (Boolean) value;
+ }
+ return defaultValue;
+ }
}
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/object/packageinfo
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/object/packageinfo?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/object/packageinfo (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/object/packageinfo Mon Oct 7 09:52:51 2013
@@ -1 +1 @@
-version 1.0
\ No newline at end of file
+version 1.0.0
\ No newline at end of file
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/packageinfo
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/packageinfo?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/packageinfo (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/packageinfo Mon Oct 7 09:52:51 2013
@@ -1 +1 @@
-version 1.0
\ No newline at end of file
+version 1.0.0
\ No newline at end of file
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetRepositoryImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetRepositoryImpl.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetRepositoryImpl.java (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetRepositoryImpl.java Mon Oct 7 09:52:51 2013
@@ -79,9 +79,11 @@ public class StatefulTargetRepositoryImp
private Map<String, StatefulTargetObjectImpl> m_index = new ConcurrentHashMap<String, StatefulTargetObjectImpl>();
private final String m_sessionID;
private boolean m_holdEvents = false;
+ private boolean m_showUnregisteredTargets;
- public StatefulTargetRepositoryImpl(String sessionID) {
+ public StatefulTargetRepositoryImpl(String sessionID, boolean showUnregisteredTargets) {
m_sessionID = sessionID;
+ m_showUnregisteredTargets = showUnregisteredTargets;
}
public StatefulTargetObject create(Map<String, String> attributes, Map<String, String> tags)
@@ -371,7 +373,9 @@ public class StatefulTargetRepositoryImp
synchronized (m_repository) {
List<StatefulTargetObjectImpl> touched = new ArrayList<StatefulTargetObjectImpl>();
touched.addAll(parseTargetRepository());
- touched.addAll(parseAuditLog());
+ if (m_showUnregisteredTargets) {
+ touched.addAll(parseAuditLog());
+ }
// Now, it is possible we have not touched all objects. Find out which these are, and make
// them check whether they should still exist.
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/packageinfo
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/packageinfo?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/packageinfo (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/packageinfo Mon Oct 7 09:52:51 2013
@@ -1 +1 @@
-version 1.0
\ No newline at end of file
+version 1.1.0
\ No newline at end of file
Modified: ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/RESTClientServlet.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/RESTClientServlet.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/RESTClientServlet.java (original)
+++ ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/RESTClientServlet.java Mon Oct 7 09:52:51 2013
@@ -469,7 +469,9 @@ public class RESTClientServlet extends H
component = m_dm.createComponent().setImplementation(workspace);
m_workspaceComponents.put(sessionID, component);
}
- m_sessionFactory.createSession(sessionID);
+ // any parameters supplied in this call are passed on to the session
+ // factory, so you can use these to configure your session
+ m_sessionFactory.createSession(sessionID, req.getParameterMap());
m_dm.add(component);
@@ -753,10 +755,18 @@ public class RESTClientServlet extends H
/*** SHELL COMMANDS ***/
public Workspace cw() throws Exception {
- return cw(m_customerName, m_customerName, m_customerName);
+ return cw(m_customerName, m_customerName, m_customerName, null);
+ }
+
+ public Workspace cw(Map sessionConfiguration) throws Exception {
+ return cw(m_customerName, m_customerName, m_customerName, sessionConfiguration);
}
public Workspace cw(String storeCustomerName, String targetCustomerName, String deploymentCustomerName) throws Exception {
+ return cw(storeCustomerName, targetCustomerName, deploymentCustomerName, null);
+ }
+
+ public Workspace cw(String storeCustomerName, String targetCustomerName, String deploymentCustomerName, Map sessionConfiguration) throws Exception {
final String sessionID;
final Workspace workspace;
final Component component;
@@ -769,7 +779,7 @@ public class RESTClientServlet extends H
component = m_dm.createComponent().setImplementation(workspace);
m_workspaceComponents.put(sessionID, component);
}
- m_sessionFactory.createSession(sessionID);
+ m_sessionFactory.createSession(sessionID, sessionConfiguration);
m_dm.add(component);
Modified: ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/Workspace.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/Workspace.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/Workspace.java (original)
+++ ace/trunk/org.apache.ace.client.rest/src/org/apache/ace/client/rest/Workspace.java Mon Oct 7 09:52:51 2013
@@ -508,6 +508,9 @@ public class Workspace {
cas(ARTIFACT2FEATURE, left, right, leftCardinality, rightCardinalty);
}
+ public void da2f(RepositoryObject repositoryObject) {
+ deleteRepositoryObject(ARTIFACT2FEATURE, repositoryObject.getDefinition());
+ }
/*** feature ***/
@@ -556,6 +559,9 @@ public class Workspace {
cas(FEATURE2DISTRIBUTION, left, right, leftCardinality, rightCardinalty);
}
+ public void df2d(RepositoryObject repositoryObject) {
+ deleteRepositoryObject(FEATURE2DISTRIBUTION, repositoryObject.getDefinition());
+ }
/*** distribution ***/
@@ -581,6 +587,9 @@ public class Workspace {
addRepositoryObject(DISTRIBUTION, attrs, tags);
}
+ public void dd(RepositoryObject repositoryObject) {
+ deleteRepositoryObject(DISTRIBUTION, repositoryObject.getDefinition());
+ }
/*** distribution to target association ***/
@@ -600,6 +609,9 @@ public class Workspace {
cas(DISTRIBUTION2TARGET, left, right, leftCardinality, rightCardinalty);
}
+ public void dd2t(RepositoryObject repositoryObject) {
+ deleteRepositoryObject(DISTRIBUTION2TARGET, repositoryObject.getDefinition());
+ }
/*** target ***/
@@ -625,6 +637,9 @@ public class Workspace {
return addRepositoryObject(TARGET, attrs, tags);
}
+ public void dt(RepositoryObject repositoryObject) {
+ deleteRepositoryObject(TARGET, repositoryObject.getDefinition());
+ }
/*** other/generic ***/
Modified: ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java (original)
+++ ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinClient.java Mon Oct 7 09:52:51 2013
@@ -257,7 +257,7 @@ public class VaadinClient extends com.va
File dir = m_context.getDataFile(m_sessionID);
dir.mkdir();
m_sessionDir = dir;
- m_sessionFactory.createSession(m_sessionID);
+ m_sessionFactory.createSession(m_sessionID, null);
addSessionDependency(component, RepositoryAdmin.class);
addSessionDependency(component, DistributionRepository.class);
addSessionDependency(component, ArtifactRepository.class);
Added: ace/trunk/run-server-allinone/conf/org.apache.ace.client.repository.cfg
URL: http://svn.apache.org/viewvc/ace/trunk/run-server-allinone/conf/org.apache.ace.client.repository.cfg?rev=1529811&view=auto
==============================================================================
--- ace/trunk/run-server-allinone/conf/org.apache.ace.client.repository.cfg (added)
+++ ace/trunk/run-server-allinone/conf/org.apache.ace.client.repository.cfg Mon Oct 7 09:52:51 2013
@@ -0,0 +1 @@
+showunregisteredtargets = true
\ No newline at end of file
Modified: ace/trunk/run-server-allinone/server-allinone.bndrun
URL: http://svn.apache.org/viewvc/ace/trunk/run-server-allinone/server-allinone.bndrun?rev=1529811&r1=1529810&r2=1529811&view=diff
==============================================================================
--- ace/trunk/run-server-allinone/server-allinone.bndrun (original)
+++ ace/trunk/run-server-allinone/server-allinone.bndrun Mon Oct 7 09:52:51 2013
@@ -75,5 +75,8 @@
launch.keep=true,\
launch.storage.dir=bundle-cache
+# Add some extra memory to the VM
+-runvm: -Xmx1G
+
# Enable Yourkit profiling
#-runvm: -Xmx1G -agentpath:/Applications/YourKit_Java_Profiler_12.0.5.app/bin/mac/libyjpagent.jnilib
\ No newline at end of file