Cannot execute plugin with maven elastic as a dependency from an IDE


(Vitlalii Glazkov) #1

Hi,

I'm trying to set up debug environment for elastic search plugin development in the Intellij IDEA IDE. To do that I've created maven project with the dependencies from elastic search, jna, log4j-api and log4j-core and execution configuration, that has following startup parameters:

-Des.path.home="C:\Users\vglazkov\Documents\Projects\Java\elasticsearch-5.1.2"
-Xms2g
-Xmx2g
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-server -Xss1m
-Djava.awt.headless=true
-Dfile.encoding=UTF-8
-Djna.nosys=true
-Djdk.io.permissionsUseCanonicalPath=true
-Dio.netty.noUnsafe=true
-Dio.netty.noKeySetOptimization=true
-Dio.netty.recycler.maxCapacityPerThread=0
-Dlog4j.shutdownHookEnabled=false
-Dlog4j2.disable.jmx=true
-Dlog4j.skipJansi=true
-XX:+HeapDumpOnOutOfMemoryError
-Des.foreground=yes

that I've copied from the jvm.config file of the production instance of Elastic. I've also copied in the es.path.home copy of the config directory from the production instance of Elastic. Startup class setups in the pom.xml like this one:

<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
    <mainClass>org.elasticsearch.bootstrap.Elasticsearch</mainClass>
</configuration>

All goes fine, until I'm getting the following exception:
java.security.AccessControlException: access denied ("java.io.FilePermission" "\C:\Users\vglazkov\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-smile\2.8.1\jackson-dataformat-smile-2.8.1.jar" "read")

I've checked that this file exists on my disk. Why is this happening and how can I fix this problem?


(David Pilato) #2

Running elasticsearch like this (from a Java app) is not supported anymore.

See https://www.elastic.co/blog/elasticsearch-the-server

You have a maven plugin for elasticsearch https://github.com/alexcojocaru/elasticsearch-maven-plugin

Or you can do it my way (I'm planning to switch may be to maven plugin though): http://david.pilato.fr/blog/2016/10/18/elasticsearch-real-integration-tests-updated-for-ga/


(Vitlalii Glazkov) #3

Hi, David!

Thanks for the quick answer! I've tried your second solution before this one - your blog was very helpful for me - I've configured working system, but there is one main problem for me - I can execute tests and stop on breakpoints inside my integration tests but I can't stop on breakpoints inside plugin. How I do that?


(David Pilato) #4

I believe you can slightly modify how elasticsearch starts and activate remote debugging:

ES_JAVA_OPTS="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=y" ./bin/elasticsearch

Then attach your IDE to the process.

HTH


(Vitlalii Glazkov) #5

Great thanks, David!

For someone who will be developing plugin on Windows the equivalent command will be:

cmd /V /C "set ES_JAVA_OPTS=-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=y && bin\elasticsearch.bat"

(David Pilato) #6

Great!

Would you like to modify this document and add this command line for windows users as well?


(system) #7

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.