NetBeans Kotlin Plugin

I started writing this text as a bug report while I was not able to get the NetBeans Kotlin plugin to work from the sources at first. In the end I could solve my problems on my own but if anybody else is encountering any problems, this text might be of help.

I'm trying to compile and install this plugin from the sources but without luck so far. It would be awesome if someone could give me a hand.

My environment: NetBeans 8.2, Maven 3.3.9 (which is also used by NetBeans, not the bundled one), Oracle javac 1.8.0_111, Linux Mint 18.1

Here is what I did so far:

After cloning the project I run

mvn install

which resulted in an error:

[ERROR] Failed to execute goal on project kotlin.netbeans.plugin: Could not resolve dependencies for project Kotlin:kotlin.netbeans.plugin:nbm:0.2.0-SNAPSHOT: The following artifacts could not be resolved: org.jetbrains.kotlin:kotlin-ide-common:jar:1.0, org.jetbrains.kotlin:openapi-formatter:jar:1.0, org.jetbrains.kotlin:kotlin-formatter:jar:1.0, org.jetbrains.kotlin:idea-formatter:jar:1.0, org.jetbrains.kotlin:intellij-core:jar:1.0, org.jetbrains.kotlin:kotlin-converter:jar:1.0, org.jetbrains.kotlin:asm:jar:1.0: Could not find artifact org.jetbrains.kotlin:kotlin-ide-common:jar:1.0 in netbeans-modules (http://bits.netbeans.org/nexus/content/groups/netbeans) -> [Help 1]

Even though the POM looks good to me I had to deploy the dependencies manually into my local repository:

mvn install:install-file -Dfile=kotlin-ide-common.jar -DgroupId=org.jetbrains.kotlin -DartifactId=kotlin-ide-common -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=openapi-formatter.jar -DgroupId=org.jetbrains.kotlin -DartifactId=openapi-formatter -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=kotlin-formatter.jar -DgroupId=org.jetbrains.kotlin -DartifactId=kotlin-formatter -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=idea-formatter.jar -DgroupId=org.jetbrains.kotlin -DartifactId=idea-formatter -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=intellij-core.jar -DgroupId=org.jetbrains.kotlin -DartifactId=intellij-core -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=kotlin-converter.jar -DgroupId=org.jetbrains.kotlin -DartifactId=kotlin-converter -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=asm-all.jar -DgroupId=org.jetbrains.kotlin -DartifactId=asm -Dversion=1.0 -Dpackaging=jar

After that I could compile the project. But if I now call "Install/Reload in Development IDE" I get the following stacktrace:


--- maven-compiler-plugin:3.3:compile (default-compile) @ kotlin.netbeans.plugin ---
Changes detected - recompiling the module!
Compiling 83 source files to /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/classes
An exception has occurred in the compiler (1.8.0_111). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.IllegalStateException: endPosTable already set
    at com.sun.tools.javac.util.DiagnosticSource.setEndPosTable(DiagnosticSource.java:136)
    at com.sun.tools.javac.util.Log.setEndPosTable(Log.java:350)
    at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:667)
    at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:950)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.<init>(JavacProcessingEnvironment.java:892)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.next(JavacProcessingEnvironment.java:921)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1187)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
    at com.sun.tools.javac.main.Main.compile(Main.java:523)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:125)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:825)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
-------------------------------------------------------------
COMPILATION ERROR :
-------------------------------------------------------------
An unknown compilation problem occurred
1 error

If I make a "mvn clean" right before calling "Install/Reload in Development IDE" I get another stacktrace:

cd /home/jr/NetBeansProjects/oss/kotlin-netbeans; JAVA_HOME=/usr/lib/jvm/java-8-oracle M2_HOME=/home/jr/apache-maven-3.3.9 /home/jr/apache-maven-3.3.9/bin/mvn -Dmaven.test.skip=true -DskipTests=true -Prelease-profile package
Scanning for projects...

Some problems were encountered while building the effective model for Kotlin:kotlin.netbeans.plugin:nbm:0.2.0-SNAPSHOT
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing.
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing.
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-deploy-plugin is missing.

It is highly recommended to fix these problems because they threaten the stability of your build.

For this reason, future Maven versions might no longer support building such malformed projects.

                                                                        
------------------------------------------------------------------------
Building Kotlin 0.2.0-SNAPSHOT
------------------------------------------------------------------------

[...]

Building index for all the packages and classes...
Generating /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs/overview-tree.html...
Generating /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs/index-all.html...
Generating /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs/deprecated-list.html...
Building index for all classes...
Generating /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs/allclasses-frame.html...
Generating /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs/allclasses-noframe.html...
Generating /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs/index.html...
Generating /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs/overview-summary.html...
Generating /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs/help-doc.html...
2 errors
54 warnings
[INFO] NETBEANS-ExecEvent:{"exc":{"msg":"TWF2ZW5SZXBvcnRFeGNlcHRpb246IEVycm9yIHdoaWxlIGdlbmVyYXRpbmcgSmF2YWRvYzogCkV4aXQgY29kZTogMSAtIC9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9uZXRiZWFucy9tb2R1bGVzL21hdmVuL2tvdGxpbi9Lb3RsaW5BY3Rpb25Qcm92aWRlci5qYXZhOjIwOiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMubWF2ZW4uVXRpbHNLdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICBzeW1ib2w6ICAgY2xhc3MgVXRpbHNLdAogIGxvY2F0aW9uOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5tYXZlbgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9mb3JtYXR0aW5nL0tvdGxpbkZvcm1hdHRlclV0aWxzLmphdmE6MzU6IGVycm9yOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLm1vZGVsIGRvZXMgbm90IGV4aXN0CmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5tb2RlbC5Lb3RsaW5FbnZpcm9ubWVudDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9maWxlc3lzdGVtL2xpZ2h0Y2xhc3Nlcy9MaWdodENsYXNzRmlsZS5qYXZhOjIwOiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMuS290bGluUHJvamVjdEhlbHBlcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICBzeW1ib2w6ICAgY2xhc3MgS290bGluUHJvamVjdEhlbHBlcgogIGxvY2F0aW9uOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucwovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9qMmsvSmF2YTJLb3RsaW5Db252ZXJ0ZXIuamF2YToyNjogZXJyb3I6IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ubW9kZWwgZG9lcyBub3QgZXhpc3QKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLm1vZGVsLktvdGxpbkVudmlyb25tZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2oyay9KYXZhMktvdGxpbkNvbnZlcnRlci5qYXZhOjM0OiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5yZWZvcm1hdHRpbmcuRm9ybWF0VXRpbHNLdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICBzeW1ib2w6ICAgY2xhc3MgRm9ybWF0VXRpbHNLdAogIGxvY2F0aW9uOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLnJlZm9ybWF0dGluZwovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9uYXZpZ2F0aW9uL25ldGJlYW5zL0tvdGxpbkh5cGVybGlua1Byb3ZpZGVyLmphdmE6MjY6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLm5hdmlnYXRpb24uTmF2aWdhdGlvblV0aWxLdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgc3ltYm9sOiAgIGNsYXNzIE5hdmlnYXRpb25VdGlsS3QKICBsb2NhdGlvbjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5uYXZpZ2F0aW9uCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL25hdmlnYXRpb24vbmV0YmVhbnMvS290bGluSHlwZXJsaW5rUHJvdmlkZXIuamF2YToyOTogZXJyb3I6IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ubmF2aWdhdGlvbi5yZWZlcmVuY2VzIGRvZXMgbm90IGV4aXN0CmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5uYXZpZ2F0aW9uLnJlZmVyZW5jZXMuUmVmZXJlbmNlVXRpbHNLdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vZGVidWdnZXIvS290bGluU291cmNlUGF0aFByb3ZpZGVyLmphdmE6Mjk6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5Lb3RsaW5Qcm9qZWN0SGVscGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogIHN5bWJvbDogICBjbGFzcyBLb3RsaW5Qcm9qZWN0SGVscGVyCiAgbG9jYXRpb246IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2RlYnVnZ2VyL0tvdGxpbkRlYnVnVXRpbHMuamF2YTozMDogZXJyb3I6IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4uYnVpbGRlciBkb2VzIG5vdCBleGlzdAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4uYnVpbGRlci5Lb3RsaW5Qc2lNYW5hZ2VyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL21hdmVuL01hdmVuUHJvamVjdE9wZW5lZEhvb2suamF2YToyMzogZXJyb3I6IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ubW9kZWwgZG9lcyBub3QgZXhpc3QKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLm1vZGVsLktvdGxpbkVudmlyb25tZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3Byb2plY3RzZXh0ZW5zaW9ucy9tYXZlbi9NYXZlblByb2plY3RPcGVuZWRIb29rLmphdmE6MjQ6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5Lb3RsaW5Qcm9qZWN0SGVscGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogIHN5bWJvbDogICBjbGFzcyBLb3RsaW5Qcm9qZWN0SGVscGVyCiAgbG9jYXRpb246IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3Byb2plY3RzZXh0ZW5zaW9ucy9tYXZlbi9jbGFzc3BhdGgvTWF2ZW5FeHRlbmRlZENsYXNzUGF0aC5qYXZhOjMzOiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMuQ2xhc3NQYXRoRXh0ZW5kZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgc3ltYm9sOiAgIGNsYXNzIENsYXNzUGF0aEV4dGVuZGVyCiAgbG9jYXRpb246IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3Byb2plY3RzZXh0ZW5zaW9ucy9tYXZlbi9jbGFzc3BhdGgvTWF2ZW5FeHRlbmRlZENsYXNzUGF0aC5qYXZhOjQ4OiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCnB1YmxpYyBjbGFzcyBNYXZlbkV4dGVuZGVkQ2xhc3NQYXRoIGltcGxlbWVudHMgQ2xhc3NQYXRoRXh0ZW5kZXIgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICBzeW1ib2w6IGNsYXNzIENsYXNzUGF0aEV4dGVuZGVyCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3Byb2plY3RzZXh0ZW5zaW9ucy9tYXZlbi9sb29rdXAvTWF2ZW5Qcm9qZWN0TG9va3VwUHJvdmlkZXJFeHRlbnNpb24uamF2YToxOTogZXJyb3I6IGNhbm5vdCBmaW5kIHN5bWJvbAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zLktvdGxpblByaXZpbGVnZWRUZW1wbGF0ZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgc3ltYm9sOiAgIGNsYXNzIEtvdGxpblByaXZpbGVnZWRUZW1wbGF0ZXMKICBsb2NhdGlvbjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMKL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2oyc2UvSjJTRVByb2plY3RQcm9wZXJ0aWVzTW9kaWZpZXIuamF2YTozMTogZXJyb3I6IGNhbm5vdCBmaW5kIHN5bWJvbAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4udXRpbHMuS290bGluQ2xhc3NwYXRoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgc3ltYm9sOiAgIGNsYXNzIEtvdGxpbkNsYXNzcGF0aAogIGxvY2F0aW9uOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLnV0aWxzCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3Byb2plY3RzZXh0ZW5zaW9ucy9qMnNlL0oyU0VQcm9qZWN0T3BlbmVkSG9vay5qYXZhOjIyOiBlcnJvcjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5tb2RlbCBkb2VzIG5vdCBleGlzdAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4ubW9kZWwuS290bGluRW52aXJvbm1lbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2oyc2UvSjJTRVByb2plY3RPcGVuZWRIb29rLmphdmE6MjM6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5Lb3RsaW5Qcm9qZWN0SGVscGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogIHN5bWJvbDogICBjbGFzcyBLb3RsaW5Qcm9qZWN0SGVscGVyCiAgbG9jYXRpb246IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3Byb2plY3RzZXh0ZW5zaW9ucy9qMnNlL2NsYXNzcGF0aC9Cb290Q2xhc3NQYXRoSW1wbGVtZW50YXRpb24uamF2YTozMTogZXJyb3I6IGNhbm5vdCBmaW5kIHN5bWJvbAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zLktvdGxpblByb2plY3RIZWxwZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgc3ltYm9sOiAgIGNsYXNzIEtvdGxpblByb2plY3RIZWxwZXIKICBsb2NhdGlvbjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMKL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2oyc2UvY2xhc3NwYXRoL0Jvb3RDbGFzc1BhdGhJbXBsZW1lbnRhdGlvbi5qYXZhOjMyOiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi51dGlscy5Lb3RsaW5DbGFzc3BhdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICBzeW1ib2w6ICAgY2xhc3MgS290bGluQ2xhc3NwYXRoCiAgbG9jYXRpb246IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4udXRpbHMKL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2oyc2UvY2xhc3NwYXRoL0oyU0VFeHRlbmRlZENsYXNzUGF0aFByb3ZpZGVyLmphdmE6Mjg6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5DbGFzc1BhdGhFeHRlbmRlcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICBzeW1ib2w6ICAgY2xhc3MgQ2xhc3NQYXRoRXh0ZW5kZXIKICBsb2NhdGlvbjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMKL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2oyc2UvY2xhc3NwYXRoL0oyU0VFeHRlbmRlZENsYXNzUGF0aFByb3ZpZGVyLmphdmE6Mjk6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5Lb3RsaW5Qcm9qZWN0SGVscGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogIHN5bWJvbDogICBjbGFzcyBLb3RsaW5Qcm9qZWN0SGVscGVyCiAgbG9jYXRpb246IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3Byb2plY3RzZXh0ZW5zaW9ucy9qMnNlL2NsYXNzcGF0aC9KMlNFRXh0ZW5kZWRDbGFzc1BhdGhQcm92aWRlci5qYXZhOjUyOiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCnB1YmxpYyBjbGFzcyBKMlNFRXh0ZW5kZWRDbGFzc1BhdGhQcm92aWRlciBpbXBsZW1lbnRzIENsYXNzUGF0aFByb3ZpZGVyLCBQcm9wZXJ0eUNoYW5nZUxpc3RlbmVyLCBDbGFzc1BhdGhFeHRlbmRlciB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgc3ltYm9sOiBjbGFzcyBDbGFzc1BhdGhFeHRlbmRlcgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9wcm9qZWN0c2V4dGVuc2lvbnMvajJzZS9sb29rdXAvSjJTRVByb2plY3RMb29rdXBQcm92aWRlckV4dGVuc2lvbi5qYXZhOjIxOiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMuS290bGluUHJpdmlsZWdlZFRlbXBsYXRlczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICBzeW1ib2w6ICAgY2xhc3MgS290bGluUHJpdmlsZWdlZFRlbXBsYXRlcwogIGxvY2F0aW9uOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucwovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9wcm9qZWN0c2V4dGVuc2lvbnMvZ3JhZGxlL2xvb2t1cC9HcmFkbGVQcm9qZWN0TG9va3VwUHJvdmlkZXJFeHRlbnNpb24uamF2YToxOTogZXJyb3I6IGNhbm5vdCBmaW5kIHN5bWJvbAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zLktvdGxpblByaXZpbGVnZWRUZW1wbGF0ZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgc3ltYm9sOiAgIGNsYXNzIEtvdGxpblByaXZpbGVnZWRUZW1wbGF0ZXMKICBsb2NhdGlvbjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMKL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2dyYWRsZS9sb29rdXAvR3JhZGxlUHJvamVjdExvb2t1cFByb3ZpZGVyRXh0ZW5zaW9uLmphdmE6MjA6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5ncmFkbGUuR3JhZGxlUHJvamVjdE9wZW5lZEhvb2s7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogIHN5bWJvbDogICBjbGFzcyBHcmFkbGVQcm9qZWN0T3BlbmVkSG9vawogIGxvY2F0aW9uOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5ncmFkbGUKL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vbGFuZ3VhZ2UvS290bGluTGFuZ3VhZ2UuamF2YToxOTogZXJyb3I6IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4uY29tcGxldGlvbiBkb2VzIG5vdCBleGlzdAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4uY29tcGxldGlvbi5Lb3RsaW5Db2RlQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9sYW5ndWFnZS9Lb3RsaW5MYW5ndWFnZS5qYXZhOjIwOiBlcnJvcjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5zdHJ1Y3R1cmVzY2FubmVyIGRvZXMgbm90IGV4aXN0CmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5zdHJ1Y3R1cmVzY2FubmVyLktvdGxpblN0cnVjdHVyZVNjYW5uZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9sYW5ndWFnZS9Lb3RsaW5MYW5ndWFnZS5qYXZhOjIxOiBlcnJvcjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5kaWFnbm9zdGljcy5uZXRiZWFucy5wYXJzZXIgZG9lcyBub3QgZXhpc3QKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLmRpYWdub3N0aWNzLm5ldGJlYW5zLnBhcnNlci5Lb3RsaW5QYXJzZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2xhbmd1YWdlL0tvdGxpbkxhbmd1YWdlLmphdmE6MjI6IGVycm9yOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLmRpYWdub3N0aWNzLm5ldGJlYW5zLnRleHRpbnRlcmNlcHRvciBkb2VzIG5vdCBleGlzdAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4uZGlhZ25vc3RpY3MubmV0YmVhbnMudGV4dGludGVyY2VwdG9yLktvdGxpbktleXN0cm9rZUhhbmRsZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2xhbmd1YWdlL0tvdGxpbkxhbmd1YWdlLmphdmE6MjM6IGVycm9yOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLmhpZ2hsaWdodGVyLm5ldGJlYW5zIGRvZXMgbm90IGV4aXN0CmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5oaWdobGlnaHRlci5uZXRiZWFucy5Lb3RsaW5Ub2tlbklkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2xhbmd1YWdlL0tvdGxpbkxhbmd1YWdlLmphdmE6MjQ6IGVycm9yOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLmhpZ2hsaWdodGVyLm9jY3VycmVuY2VzIGRvZXMgbm90IGV4aXN0CmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5oaWdobGlnaHRlci5vY2N1cnJlbmNlcy5Lb3RsaW5PY2N1cnJlbmNlc0ZpbmRlcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9sYW5ndWFnZS9Lb3RsaW5MYW5ndWFnZS5qYXZhOjI1OiBlcnJvcjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5oaWdobGlnaHRlci5zZW1hbnRpY2FuYWx5emVyIGRvZXMgbm90IGV4aXN0CmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5oaWdobGlnaHRlci5zZW1hbnRpY2FuYWx5emVyLktvdGxpblNlbWFudGljQW5hbHl6ZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9sYW5ndWFnZS9Lb3RsaW5MYW5ndWFnZS5qYXZhOjI2OiBlcnJvcjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5oaW50cyBkb2VzIG5vdCBleGlzdAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4uaGludHMuS290bGluSGludHNQcm92aWRlcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi9sYW5ndWFnZS9Lb3RsaW5MYW5ndWFnZS5qYXZhOjI3OiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5pbmRleGVyLktvdGxpbkluZGV4ZXJGYWN0b3J5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICBzeW1ib2w6ICAgY2xhc3MgS290bGluSW5kZXhlckZhY3RvcnkKICBsb2NhdGlvbjogcGFja2FnZSBvcmcuamV0YnJhaW5zLmtvdGxpbi5pbmRleGVyCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2xhbmd1YWdlL0tvdGxpbkxhbmd1YWdlLmphdmE6Mjg6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLnJlZmFjdG9yaW5ncy5yZW5hbWUuS290bGluSW5zdGFudFJlbmFtZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogIHN5bWJvbDogICBjbGFzcyBLb3RsaW5JbnN0YW50UmVuYW1lcgogIGxvY2F0aW9uOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLnJlZmFjdG9yaW5ncy5yZW5hbWUKL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcmVzb2x2ZS9CdWlsdEluc1JlZmVyZW5jZVJlc29sdmVyLmphdmE6Njg6IGVycm9yOiBwYWNrYWdlIG9yZy5qZXRicmFpbnMua290bGluLm1vZGVsIGRvZXMgbm90IGV4aXN0CmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5tb2RlbC5Lb3RsaW5FbnZpcm9ubWVudDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9vcmcvamV0YnJhaW5zL2tvdGxpbi91dGlscy9Qcm9qZWN0VXRpbHMuamF2YTozMDogZXJyb3I6IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4uYnVpbGRlciBkb2VzIG5vdCBleGlzdAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4uYnVpbGRlci5Lb3RsaW5Qc2lNYW5hZ2VyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vdXRpbHMvUHJvamVjdFV0aWxzLmphdmE6MzI6IGVycm9yOiBjYW5ub3QgZmluZCBzeW1ib2wKaW1wb3J0IG9yZy5qZXRicmFpbnMua290bGluLnByb2plY3RzZXh0ZW5zaW9ucy5Lb3RsaW5Qcm9qZWN0SGVscGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogIHN5bWJvbDogICBjbGFzcyBLb3RsaW5Qcm9qZWN0SGVscGVyCiAgbG9jYXRpb246IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3V0aWxzL1Byb2plY3RVdGlscy5qYXZhOjMzOiBlcnJvcjogY2Fubm90IGZpbmQgc3ltYm9sCmltcG9ydCBvcmcuamV0YnJhaW5zLmtvdGxpbi5wcm9qZWN0c2V4dGVuc2lvbnMuQ2xhc3NQYXRoRXh0ZW5kZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgc3ltYm9sOiAgIGNsYXNzIENsYXNzUGF0aEV4dGVuZGVyCiAgbG9jYXRpb246IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4ucHJvamVjdHNleHRlbnNpb25zCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3JlZmFjdG9yaW5ncy9yZW5hbWUvS290bGluQWN0aW9uc0ltcGxlbWVudGF0aW9uUHJvdmlkZXIuamF2YToyNDogZXJyb3I6IHBhY2thZ2Ugb3JnLmpldGJyYWlucy5rb3RsaW4uYnVpbGRlciBkb2VzIG5vdCBleGlzdAppbXBvcnQgb3JnLmpldGJyYWlucy5rb3RsaW4uYnVpbGRlci5Lb3RsaW5Qc2lNYW5hZ2VyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vaW5zdGFsbGVyL1llbnRhLmphdmE6OTc6IGVycm9yOiBpbmNvcnJlY3QgdXNlIG9mIGlubGluZSB0YWcKICAgICAqIEBpbmhlcml0RG9jCiAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2ZpbGUvdGVtcGxhdGVzL3BhY2thZ2VjaG9vc2VyL1RhcmdldENob29zZXJQYW5lbEdVSS5qYXZhOjczOiB3YXJuaW5nOiBubyBAcGFyYW0gZm9yIHAKICAgIHB1YmxpYyBUYXJnZXRDaG9vc2VyUGFuZWxHVUkoUHJvamVjdCBwLCBTb3VyY2VHcm91cFtdIGdyb3VwcywgQ29tcG9uZW50IGJvdHRvbVBhbmVsLCBUeXBlIHR5cGUsIFN0cmluZyBmaWxlVHlwZSkgewogICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vZmlsZS90ZW1wbGF0ZXMvcGFja2FnZWNob29zZXIvVGFyZ2V0Q2hvb3NlclBhbmVsR1VJLmphdmE6NzM6IHdhcm5pbmc6IG5vIEBwYXJhbSBmb3IgZ3JvdXBzCiAgICBwdWJsaWMgVGFyZ2V0Q2hvb3NlclBhbmVsR1VJKFByb2plY3QgcCwgU291cmNlR3JvdXBbXSBncm91cHMsIENvbXBvbmVudCBib3R0b21QYW5lbCwgVHlwZSB0eXBlLCBTdHJpbmcgZmlsZVR5cGUpIHsKICAgICAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2ZpbGUvdGVtcGxhdGVzL3BhY2thZ2VjaG9vc2VyL1RhcmdldENob29zZXJQYW5lbEdVSS5qYXZhOjczOiB3YXJuaW5nOiBubyBAcGFyYW0gZm9yIGJvdHRvbVBhbmVsCiAgICBwdWJsaWMgVGFyZ2V0Q2hvb3NlclBhbmVsR1VJKFByb2plY3QgcCwgU291cmNlR3JvdXBbXSBncm91cHMsIENvbXBvbmVudCBib3R0b21QYW5lbCwgVHlwZSB0eXBlLCBTdHJpbmcgZmlsZVR5cGUpIHsKICAgICAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL2ZpbGUvdGVtcGxhdGVzL3BhY2thZ2VjaG9vc2VyL1RhcmdldENob29zZXJQYW5lbEdVSS5qYXZhOjczOiB3YXJuaW5nOiBubyBAcGFyYW0gZm9yIHR5cGUKICAgIHB1YmxpYyBUYXJnZXRDaG9vc2VyUGFuZWxHVUkoUHJvamVjdCBwLCBTb3VyY2VHcm91cFtdIGdyb3VwcywgQ29tcG9uZW50IGJvdHRvbVBhbmVsLCBUeXBlIHR5cGUsIFN0cmluZyBmaWxlVHlwZSkgewogICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vZmlsZS90ZW1wbGF0ZXMvcGFja2FnZWNob29zZXIvVGFyZ2V0Q2hvb3NlclBhbmVsR1VJLmphdmE6NzM6IHdhcm5pbmc6IG5vIEBwYXJhbSBmb3IgZmlsZVR5cGUKICAgIHB1YmxpYyBUYXJnZXRDaG9vc2VyUGFuZWxHVUkoUHJvamVjdCBwLCBTb3VyY2VHcm91cFtdIGdyb3VwcywgQ29tcG9uZW50IGJvdHRvbVBhbmVsLCBUeXBlIHR5cGUsIFN0cmluZyBmaWxlVHlwZSkgewogICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2oyc2UvY2xhc3NwYXRoL0oyU0VFeHRlbmRlZENsYXNzUGF0aFByb3ZpZGVyLmphdmE6MzcyOiB3YXJuaW5nOiBubyBAcGFyYW0gZm9yIHR5cGUKICAgIHB1YmxpYyBDbGFzc1BhdGhbXSBnZXRQcm9qZWN0Q2xhc3NQYXRocyhmaW5hbCBTdHJpbmcgdHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2oyc2UvY2xhc3NwYXRoL0oyU0VFeHRlbmRlZENsYXNzUGF0aFByb3ZpZGVyLmphdmE6MzcyOiB3YXJuaW5nOiBubyBAcmV0dXJuCiAgICBwdWJsaWMgQ2xhc3NQYXRoW10gZ2V0UHJvamVjdENsYXNzUGF0aHMoZmluYWwgU3RyaW5nIHR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL2pyL05ldEJlYW5zUHJvamVjdHMvb3NzL2tvdGxpbi1uZXRiZWFucy9zcmMvbWFpbi9qYXZhL29yZy9qZXRicmFpbnMva290bGluL3Byb2plY3RzZXh0ZW5zaW9ucy9qMnNlL2NsYXNzcGF0aC9KMlNFRXh0ZW5kZWRDbGFzc1BhdGhQcm92aWRlci5qYXZhOjQwMzogd2FybmluZzogbm8gQHBhcmFtIGZvciB0eXBlCiAgICBwdWJsaWMgQ2xhc3NQYXRoIGdldFByb2plY3RTb3VyY2VzQ2xhc3NQYXRoKFN0cmluZyB0eXBlKSB7CiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvb3JnL2pldGJyYWlucy9rb3RsaW4vcHJvamVjdHNleHRlbnNpb25zL2oyc2UvY2xhc3NwYXRoL0oyU0VFeHRlbmRlZENsYXNzUGF0aFByb3ZpZGVyLmphdmE6NDAzOiB3YXJuaW5nOiBubyBAcmV0dXJuCiAgICBwdWJsaWMgQ2xhc3NQYXRoIGdldFByb2plY3RTb3VyY2VzQ2xhc3NQYXRoKFN0cmluZyB0eXBlKSB7CiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvY29tL2ludGVsbGlqL2Zvcm1hdHRpbmcvRGVwZW5kYW50U3BhY2luZ0ltcGwuamF2YToxNDogZXJyb3I6IHNlbGYtY2xvc2luZyBlbGVtZW50IG5vdCBhbGxvd2VkCiAqIDxwLz4KICAgXgovaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvc3JjL21haW4vamF2YS9jb20vaW50ZWxsaWovdXRpbC9jb250YWluZXJzL011bHRpTWFwLmphdmE6MTY4OiB3YXJuaW5nOiBubyBAcGFyYW0gZm9yIGtleQogICAgcHVibGljIHZvaWQgcmVtb3ZlVmFsdWUoSyBrZXksIFYgdmFsdWUpIHsKICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvY29tL2ludGVsbGlqL3V0aWwvY29udGFpbmVycy9NdWx0aU1hcC5qYXZhOjE2ODogd2FybmluZzogbm8gQHBhcmFtIGZvciB2YWx1ZQogICAgcHVibGljIHZvaWQgcmVtb3ZlVmFsdWUoSyBrZXksIFYgdmFsdWUpIHsKICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvY29tL2ludGVsbGlqL3V0aWwvY29udGFpbmVycy9NdWx0aU1hcC5qYXZhOjI3Mjogd2FybmluZzogbm8gQHBhcmFtIGZvciA8Sz4KICAgIHB1YmxpYyBzdGF0aWMgPEssIFY+IE11bHRpTWFwPEssIFY+IGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvY29tL2ludGVsbGlqL3V0aWwvY29udGFpbmVycy9NdWx0aU1hcC5qYXZhOjI3Mjogd2FybmluZzogbm8gQHBhcmFtIGZvciA8Vj4KICAgIHB1YmxpYyBzdGF0aWMgPEssIFY+IE11bHRpTWFwPEssIFY+IGNyZWF0ZSgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvanIvTmV0QmVhbnNQcm9qZWN0cy9vc3Mva290bGluLW5ldGJlYW5zL3NyYy9tYWluL2phdmEvY29tL2ludGVsbGlqL3V0aWwvY29udGFpbmVycy9NdWx0aU1hcC5qYXZhOjI3Mjogd2FybmluZzogbm8gQHJldHVybgogICAgcHVibGljIHN0YXRpYyA8SywgVj4gTXVsdGlNYXA8SywgVj4gY3JlYXRlKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKQ29tbWFuZCBsaW5lIHdhczogL3Vzci9saWIvanZtL2phdmEtOC1vcmFjbGUvanJlLy4uL2Jpbi9qYXZhZG9jIEBvcHRpb25zIEBwYWNrYWdlcwoKUmVmZXIgdG8gdGhlIGdlbmVyYXRlZCBKYXZhZG9jIGZpbGVzIGluICcvaG9tZS9qci9OZXRCZWFuc1Byb2plY3RzL29zcy9rb3RsaW4tbmV0YmVhbnMvdGFyZ2V0L2FwaWRvY3MnIGRpci4K"},"mojo":{"phase":"package","impl":"org.apache.maven.plugin.javadoc.JavadocJar","urls":["file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/plugins\/maven-javadoc-plugin\/2.10.4\/maven-javadoc-plugin-2.10.4.jar","file:\/home\/jr\/.m2\/repository\/org\/slf4j\/slf4j-jdk14\/1.5.6\/slf4j-jdk14-1.5.6.jar","file:\/home\/jr\/.m2\/repository\/org\/slf4j\/jcl-over-slf4j\/1.5.6\/jcl-over-slf4j-1.5.6.jar","file:\/home\/jr\/.m2\/repository\/commons-cli\/commons-cli\/1.2\/commons-cli-1.2.jar","file:\/home\/jr\/.m2\/repository\/org\/codehaus\/plexus\/plexus-interactivity-api\/1.0-alpha-4\/plexus-interactivity-api-1.0-alpha-4.jar","file:\/home\/jr\/.m2\/repository\/org\/sonatype\/plexus\/plexus-sec-dispatcher\/1.3\/plexus-sec-dispatcher-1.3.jar","file:\/home\/jr\/.m2\/repository\/org\/sonatype\/plexus\/plexus-cipher\/1.4\/plexus-cipher-1.4.jar","file:\/home\/jr\/.m2\/repository\/org\/codehaus\/plexus\/plexus-interpolation\/1.11\/plexus-interpolation-1.11.jar","file:\/home\/jr\/.m2\/repository\/backport-util-concurrent\/backport-util-concurrent\/3.1\/backport-util-concurrent-3.1.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/reporting\/maven-reporting-api\/3.0\/maven-reporting-api-3.0.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/maven-archiver\/2.5\/maven-archiver-2.5.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/shared\/maven-invoker\/2.2\/maven-invoker-2.2.jar","file:\/home\/jr\/.m2\/repository\/org\/codehaus\/plexus\/plexus-component-annotations\/1.5.5\/plexus-component-annotations-1.5.5.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/shared\/maven-common-artifact-filters\/1.3\/maven-common-artifact-filters-1.3.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/doxia\/doxia-sink-api\/1.4\/doxia-sink-api-1.4.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/doxia\/doxia-logging-api\/1.4\/doxia-logging-api-1.4.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/doxia\/doxia-site-renderer\/1.4\/doxia-site-renderer-1.4.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/doxia\/doxia-core\/1.4\/doxia-core-1.4.jar","file:\/home\/jr\/.m2\/repository\/xerces\/xercesImpl\/2.9.1\/xercesImpl-2.9.1.jar","file:\/home\/jr\/.m2\/repository\/xml-apis\/xml-apis\/1.3.04\/xml-apis-1.3.04.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/doxia\/doxia-decoration-model\/1.4\/doxia-decoration-model-1.4.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/doxia\/doxia-module-xhtml\/1.4\/doxia-module-xhtml-1.4.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/maven\/doxia\/doxia-module-fml\/1.4\/doxia-module-fml-1.4.jar","file:\/home\/jr\/.m2\/repository\/org\/codehaus\/plexus\/plexus-i18n\/1.0-beta-7\/plexus-i18n-1.0-beta-7.jar","file:\/home\/jr\/.m2\/repository\/org\/codehaus\/plexus\/plexus-velocity\/1.1.7\/plexus-velocity-1.1.7.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/velocity\/velocity\/1.5\/velocity-1.5.jar","file:\/home\/jr\/.m2\/repository\/oro\/oro\/2.0.8\/oro-2.0.8.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/velocity\/velocity-tools\/2.0\/velocity-tools-2.0.jar","file:\/home\/jr\/.m2\/repository\/commons-beanutils\/commons-beanutils\/1.7.0\/commons-beanutils-1.7.0.jar","file:\/home\/jr\/.m2\/repository\/commons-digester\/commons-digester\/1.8\/commons-digester-1.8.jar","file:\/home\/jr\/.m2\/repository\/commons-chain\/commons-chain\/1.1\/commons-chain-1.1.jar","file:\/home\/jr\/.m2\/repository\/commons-validator\/commons-validator\/1.3.1\/commons-validator-1.3.1.jar","file:\/home\/jr\/.m2\/repository\/dom4j\/dom4j\/1.1\/dom4j-1.1.jar","file:\/home\/jr\/.m2\/repository\/sslext\/sslext\/1.2-0\/sslext-1.2-0.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/struts\/struts-core\/1.3.8\/struts-core-1.3.8.jar","file:\/home\/jr\/.m2\/repository\/antlr\/antlr\/2.7.2\/antlr-2.7.2.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/struts\/struts-taglib\/1.3.8\/struts-taglib-1.3.8.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/struts\/struts-tiles\/1.3.8\/struts-tiles-1.3.8.jar","file:\/home\/jr\/.m2\/repository\/commons-collections\/commons-collections\/3.2.1\/commons-collections-3.2.1.jar","file:\/home\/jr\/.m2\/repository\/commons-lang\/commons-lang\/2.4\/commons-lang-2.4.jar","file:\/home\/jr\/.m2\/repository\/commons-io\/commons-io\/2.5\/commons-io-2.5.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/httpcomponents\/httpclient\/4.2.3\/httpclient-4.2.3.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/httpcomponents\/httpcore\/4.2.2\/httpcore-4.2.2.jar","file:\/home\/jr\/.m2\/repository\/commons-codec\/commons-codec\/1.6\/commons-codec-1.6.jar","file:\/home\/jr\/.m2\/repository\/commons-logging\/commons-logging\/1.1.1\/commons-logging-1.1.1.jar","file:\/home\/jr\/.m2\/repository\/log4j\/log4j\/1.2.14\/log4j-1.2.14.jar","file:\/home\/jr\/.m2\/repository\/com\/thoughtworks\/qdox\/qdox\/1.12.1\/qdox-1.12.1.jar","file:\/home\/jr\/.m2\/repository\/junit\/junit\/3.8.1\/junit-3.8.1.jar","file:\/home\/jr\/.m2\/repository\/org\/codehaus\/plexus\/plexus-archiver\/3.3\/plexus-archiver-3.3.jar","file:\/home\/jr\/.m2\/repository\/org\/codehaus\/plexus\/plexus-io\/2.7.1\/plexus-io-2.7.1.jar","file:\/home\/jr\/.m2\/repository\/org\/apache\/commons\/commons-compress\/1.11\/commons-compress-1.11.jar","file:\/home\/jr\/.m2\/repository\/org\/iq80\/snappy\/snappy\/0.4\/snappy-0.4.jar","file:\/home\/jr\/.m2\/repository\/org\/tukaani\/xz\/1.5\/xz-1.5.jar","file:\/home\/jr\/.m2\/repository\/org\/codehaus\/plexus\/plexus-utils\/3.0.24\/plexus-utils-3.0.24.jar"],"goal":"jar","id":"org.apache.maven.plugins:maven-javadoc-plugin:2.10.4","source":"LIFECYCLE","execId":"attach-javadocs"},"type":"MojoFailed"}
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 01:26 min
Finished at: 2017-03-28T23:21:37+02:00
Final Memory: 106M/1523M
------------------------------------------------------------------------
Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:jar (attach-javadocs) on project kotlin.netbeans.plugin: MavenReportException: Error while generating Javadoc:
Exit code: 1 - /home/jr/NetBeansProjects/oss/kotlin-netbeans/src/main/java/org/netbeans/modules/maven/kotlin/KotlinActionProvider.java:20: error: cannot find symbol
import org.jetbrains.kotlin.projectsextensions.maven.UtilsKt;
^
symbol:   class UtilsKt
location: package org.jetbrains.kotlin.projectsextensions.maven
/home/jr/NetBeansProjects/oss/kotlin-netbeans/src/main/java/org/jetbrains/kotlin/formatting/KotlinFormatterUtils.java:35: error: package org.jetbrains.kotlin.model does not exist
import org.jetbrains.kotlin.model.KotlinEnvironment;
^
/home/jr/NetBeansProjects/oss/kotlin-netbeans/src/main/java/org/jetbrains/kotlin/filesystem/lightclasses/LightClassFile.java:20: error: cannot find symbol
import org.jetbrains.kotlin.projectsextensions.KotlinProjectHelper;
^
symbol:   class KotlinProjectHelper
location: package org.jetbrains.kotlin.projectsextensions
/home/jr/NetBeansProjects/oss/kotlin-netbeans/src/main/java/org/jetbrains/kotlin/j2k/Java2KotlinConverter.java:26: error: package org.jetbrains.kotlin.model does not exist
import org.jetbrains.kotlin.model.KotlinEnvironment;
^
[...]

Command line was: /usr/lib/jvm/java-8-oracle/jre/../bin/javadoc @options @packages

Refer to the generated Javadoc files in '/home/jr/NetBeansProjects/oss/kotlin-netbeans/target/apidocs' dir.
-> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException


I remembered I had the same problem when compiling WicketStuff, so I included this into the POM:


<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <detectOfflineLinks>false</detectOfflineLinks>
                    <minmemory>128m</minmemory>
                    <maxmemory>256m</maxmemory>
                    <notimestamp>true</notimestamp>
                    <quiet>true</quiet>
                    <links>
                        <link>http://download.oracle.com/javase/1.5.0/docs/api</link>
                        <link>http://download.oracle.com/javaee/5/api</link>
                        <link>http://ci.apache.org/projects/wicket/apidocs/6.x</link>
                        <link>http://docs.spring.io/spring/docs/3.0.x/javadoc-api</link>
                        <link>http://logback.qos.ch/apidocs</link>
                    </links>
                    <failOnError>false</failOnError>
                    <additionalparam>-Xdoclint:none</additionalparam>
                    <skip>${javadoc.disabled}</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadoc</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>  

And this time after a "mvn clean" & "Install/Reload in Development IDE":

Building jar: /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/kotlin.netbeans.plugin-0.2.0-SNAPSHOT-javadoc.jar
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 01:36 min
Finished at: 2017-03-28T23:28:14+02:00
Final Memory: 102M/1643M
------------------------------------------------------------------------
NetBeans: Deploying NBM module in development IDE...
Deploying test module /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/nbm/netbeans/extra/modules/Kotlin-kotlin-netbeans-plugin.jar...
Enabling StandardModule:Kotlin.kotlin.netbeans.plugin jarFile: /home/jr/NetBeansProjects/oss/kotlin-netbeans/target/nbm/netbeans/extra/modules/Kotlin-kotlin-netbeans-plugin.jar...
Done.


This seems to work since I have now under "New File" entries like "Kotlin class". But if I add a Kotlin class to my project I cannot open it. The edit-area is not shown. It opens a new tab with the filename but the content of the file and any other file I open after I opened the Kotlin file simply does not show up. As soon as I close the Kotlin file all other files (java and xml files) are showing up normally again.
The progress bar which is saying "Loading Kotlin environment" is loading forever (>15 minutes and still counting).

In the Notifications window there's an info message that "Kotlin is not configured". Clicking the link results in nothing. (Compiling is working fine).


Next thing I tried was debugging the source. After the debugger started a new instance of NetBeans I was able to open also Kotlin files.

The message "Kotlin is not configured" came from this method:

private static boolean kotlinPluginConfigured(MavenProject mavenProject) {
        Set<Artifact> pluginArtifacts = mavenProject.getPluginArtifacts();
        if (pluginArtifacts == null) return false;
        
        for (Artifact plugin : pluginArtifacts) {
            String groupId = plugin.getGroupId();
            String artifactId = plugin.getArtifactId();
            
            if (groupId.equals("org.jetbrains.kotlin")
                    && artifactId.equals("kotlin-maven-plugin")) return true;
        }
        
        return false;
    }


After I saw this method I closed every other project (I still had a few Java projects open), except my test project and the plugin-project. And voila, even though the progressgar is still "Loading Kotlin environment", I could finally write, compile and run my first Kotlin "Hello World" from NetBeans.

[edit]

After playing around a bit I realized that Codecompletion is not working and I get the following silent exception:

java.lang.NoSuchMethodError: com.intellij.openapi.vfs.VirtualFile.exists()Z
    at org.jetbrains.kotlin.resolve.KotlinPackagePartProvider.processNotLoadedRelevantRoots(KotlinPackagePartProvider.kt:77)
    at org.jetbrains.kotlin.resolve.KotlinPackagePartProvider.getPackageParts(KotlinPackagePartProvider.kt:48)
    at org.jetbrains.kotlin.resolve.KotlinPackagePartProvider.findPackageParts(KotlinPackagePartProvider.kt:25)
    at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment$binaryClasses$2.invoke(LazyJavaPackageFragment.kt:37)
    at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment$binaryClasses$2.invoke(LazyJavaPackageFragment.kt:32)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:323)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:364)
    at org.jetbrains.kotlin.storage.StorageKt.getValue(storage.kt:39)
    at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment.getBinaryClasses$kotlin_compiler(LazyJavaPackageFragment.kt)
    at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope$kotlinScopes$2.invoke(JvmPackageScope.kt:44)
    at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope$kotlinScopes$2.invoke(JvmPackageScope.kt:36)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:323)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:364)
    at org.jetbrains.kotlin.storage.StorageKt.getValue(storage.kt:39)
    at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope.getKotlinScopes(JvmPackageScope.kt)
    at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope.getContributedDescriptors(JvmPackageScope.kt:71)
    at org.jetbrains.kotlin.resolve.scopes.ChainedMemberScope.getContributedDescriptors(ChainedMemberScope.kt:42)
    at org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter.getContributedDescriptors(AbstractScopeAdapter.kt:53)
    at org.jetbrains.kotlin.resolve.scopes.ResolutionScope$DefaultImpls.getContributedDescriptors$default(ResolutionScope.kt:37)
    at org.jetbrains.kotlin.resolve.lazy.DefaultImportProvider$excludedImports$2.invoke(DefaultImportProvider.kt:49)
    at org.jetbrains.kotlin.resolve.lazy.DefaultImportProvider$excludedImports$2.invoke(DefaultImportProvider.kt:35)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:323)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:364)
    at org.jetbrains.kotlin.storage.StorageKt.getValue(storage.kt:39)
    at org.jetbrains.kotlin.resolve.lazy.DefaultImportProvider.getExcludedImports(DefaultImportProvider.kt)
    at org.jetbrains.kotlin.resolve.lazy.FileScopeFactory.createScopesForFile(FileScopeFactory.kt:105)
    at org.jetbrains.kotlin.resolve.lazy.FileScopeFactory.createScopesForFile$default(FileScopeFactory.kt:62)
    at org.jetbrains.kotlin.resolve.lazy.FileScopeProviderImpl$cache$1.invoke(FileScopeProvider.kt:46)
    at org.jetbrains.kotlin.resolve.lazy.FileScopeProviderImpl$cache$1.invoke(FileScopeProvider.kt:38)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:402)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:470)
    at org.jetbrains.kotlin.resolve.lazy.FileScopeProviderImpl.getFileScopes(FileScopeProvider.kt:51)
    at org.jetbrains.kotlin.resolve.lazy.FileScopeProvider$DefaultImpls.getFileResolutionScope(FileScopeProvider.kt:28)
    at org.jetbrains.kotlin.resolve.lazy.FileScopeProviderImpl.getFileResolutionScope(FileScopeProvider.kt:38)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageMemberScope.getScopeForMemberDeclarationResolution(LazyPackageMemberScope.kt:40)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope.doGetFunctions(AbstractLazyMemberScope.kt:85)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope.access$doGetFunctions(AbstractLazyMemberScope.kt:39)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope$functionDescriptors$1.invoke(AbstractLazyMemberScope.kt:49)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope$functionDescriptors$1.invoke(AbstractLazyMemberScope.kt:39)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:402)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:470)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope.getContributedFunctions(AbstractLazyMemberScope.kt:77)
    at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver$1.visitNamedFunction(LazyDeclarationResolver.java:167)
    at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver$1.visitNamedFunction(LazyDeclarationResolver.java:118)
    at org.jetbrains.kotlin.psi.KtNamedFunction.accept(KtNamedFunction.java:48)
    at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.resolveToDescriptor(LazyDeclarationResolver.java:118)
    at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.resolveToDescriptor(LazyDeclarationResolver.java:113)
    at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.createFunctionDescriptors(LazyTopDownAnalyzer.kt:252)
    at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations(LazyTopDownAnalyzer.kt:190)
    at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations$default(LazyTopDownAnalyzer.kt:56)
    at org.jetbrains.kotlin.resolve.NetBeansAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(NetBeansAnalyzerFacadeForJVM.kt:143)
    at org.jetbrains.kotlin.resolve.KotlinAnalyzer.analyzeFile(KotlinAnalyzer.kt:29)
    at org.jetbrains.kotlin.diagnostics.netbeans.parser.KotlinParser$Companion.analyze(KotlinParser.kt:46)
    at org.jetbrains.kotlin.diagnostics.netbeans.parser.KotlinParser$Companion.getAnalysisResult(KotlinParser.kt:43)
    at org.jetbrains.kotlin.diagnostics.netbeans.parser.KotlinParser.parse(KotlinParser.kt:73)
    at org.netbeans.modules.parsing.impl.TaskProcessor.callParse(TaskProcessor.java:621)
    at org.netbeans.modules.parsing.impl.SourceCache.getResult(SourceCache.java:251)
    at org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.run(TaskProcessor.java:798)
    at org.openide.util.lookup.Lookups.executeWith(Lookups.java:304)
    at org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.execute(TaskProcessor.java:725)
[catch] at org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:686)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443)
    at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68)
    at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)

I will investigate this the next days further or file a bug report.