IDEA open source development

I have a number of questions related to IDEA open source development.

First, I looked for but was unable to find a forum devoted to IDEA development (as opposed to developing using IDEA). Such a forum is needed because searching for IDEA development related issues in the IDEA users forum is like looking for a needle in a haystack.

Second, I do not understand how the build process for IDEA works. For example, right now I am having a problem compiling IDEA that appears to be related to the cglib library, but I have no idea how to debug the problem. How can I affect the parameters given to javac (when building from the command line)?

Third, I am mystified by the state of the file lib/cglib-2.2.2.jar in my repository. Javap shows that the Context interface does not contain an emitInvoke method, which is why my builds are failing. However, the corresponding source in lib/src/cglib-src-2.2.2.jar does have the method. Both files are dated Dec 14, 2011.

Thanks in advance for any assistance you can provide...

8 comments
Comment actions Permalink

The cglib problem appears to be caused by a confusion between cglib and cglib-nodep. Both define the interface in question, but cglib-nodep has the emitInvoke method that cglib lacks.

Am I the only one to be unable to build IDEA because of this problem?

0
Comment actions Permalink

Hi Alan,

There is a dedicated forum for plugin developers - Open API and Plugin Development.

Regarding compiling IJ itself - you can do the following:


Denis

0
Comment actions Permalink

Ignore my comment about cglib-nodep.

I checked the cglib source and binary jars on SourceForge (http://sourceforge.net/projects/cglib/files/cglib2/2.2.2/) and they are inconsistent there also.

I'm guessing that the IDE uses the source jar and so does not report a problem in AdvancedEnhancer for @Override-ing the nonexistent emitInvoke method.

0
Comment actions Permalink

Hi Denis,

I have downloaded the latest IDEA CE 11.1.2 and used it to build my cloned repository as well as the latest source tarball. All of my attempts to build fail because of this error:

/Users/alan/Downloads/ideaIC-111.69/platform/platform-impl/src/net/sf/cglib/proxy/AdvancedEnhancer.java
method does not override or implement a method from a supertype



I now believe the problem is a Java bug. The class file in the cglib JAR is correct, but javap does not find the emitInvoker method when searching a JAR file or the unpacked JAR file.

  Alan
0
Comment actions Permalink

Hi Denis,

Thank you for the reference to the Open API and Plugin Development forum. I did not think that was the right forum because I am not developing a plugin. I do see some overlap, because some questions about IDEA development relate to the Open API, but other questions do not. I looked through several screenfuls of topics and found only one or two related to building IDEA. So, I would recommend creating a new forum specifically for IDEA development.

  Alan

0
Comment actions Permalink

There is not enough discussion happening about thedevelopment of IntelliJ IDEA itself to make it worthwhile to create a new forum for that,

0
Comment actions Permalink

Hi Alan,

Just clonned intellij-community repo from github and made a project rebuild - everything compiles fine. What error message do you get?

Denis

0
Comment actions Permalink

The error message was in the message you replied to. The compiler complains because the emitInvoke method is declared @Override but the compiler fails to find this method in the compiled interface. The fact that the compiler fails to find the method in the JAR file is mysterious, because it is present in the class file contained in the JAR file. The problem appears to be in the class loader, because javap does not find it either.

0

Please sign in to leave a comment.