What's the best way to use Application Servers for a Run/Debug Config that just calls a library method?

I'm developing a plugin that runs Google App Engine applications locally, either Standard or Flex, without depending on Maven or Gradle.

Looking at IntelliJ's GAE plugin, I can see it's tightly coupled to the Application Servers Javaee framework. That framework, in turn, appears to me to assume that running an app involves launching an OS process from the IDE, which isn't be true for running GAE apps locally going forward (this process will be launched by a Google library).

Specifically, IJ's GAE plugin's run configurations depend a startup policy that implements JavaCommandLineStartupPolicy, which doesn't apply to the case where we want to launch a local server without a command line invocation.

The only other option appears to be ExecutableObjectStartupPolicy, which allows the creation of a startup and a shutdown script. But because ScriptHelper.getDefaultScript() returns an ExecutableObject that also seems to rely on the notion of OS process, I don't think this way applies to starting a process from a library.

My questions are:

- Are there any other useful startup policies that I'm missing?

- Are Application Servers the way to go if we're not directly invoking system processes? (the existing documentation seems to assume that every run/debug config always directly triggers system processes)

Please sign in to leave a comment.