redistributing openapi.jar

Hi Jetbrains,

I am working on an Idea plugin featuring Cargo (http://cargo.codehaus.org/ ). As every plugin it is dependent on openapi.jar for compilation. Cargo also uses Maven as build infrastructure. For nicely handling dependencies, Maven uses public repositories from which it automatically downloads needed jars. Unfortunately openapi.jar is not redistributable, so we cannot simply upload it to the public Maven repository. Thus it breaks our build mechanism, which leads to awkward workarounds.

Since Jetbrains is supporting Codehaus (http://www.codehaus.org/ ), maybe it would be possible to open up the license and help plugin developers to take advantage of tools like Maven: Please make openapi.jar redistributable!

I would really appreciate, if you looked into this and let me know how to proceed.

Thanks,

-hendrik

0
12 comments

Hello Hendrik,

HS> I am working on an Idea plugin featuring Cargo
HS> (http://cargo.codehaus.org/ ). As every plugin it is dependent on
HS> openapi.jar for compilation. Cargo also uses Maven as build
HS> infrastructure. For nicely handling dependencies, Maven uses public
HS> repositories from which it automatically downloads needed jars.
HS> Unfortunately openapi.jar is not redistributable, so we cannot
HS> simply upload it to the public Maven repository. Thus it breaks our
HS> build mechanism, which leads to awkward workarounds.
HS>
HS> Since Jetbrains is supporting Codehaus (http://www.codehaus.org/ ),
HS> maybe it would be possible to open up the license and help plugin
HS> developers to take advantage of tools like Maven: Please make
HS> openapi.jar redistributable!
HS>
HS> I would really appreciate, if you looked into this and let me know
HS> how to proceed.

In fact, in the final release of IDEA 5.0, we have allowed the redistribution
of openapi.jar. It is now included in the "redist" folder of the Plugin Development
Package, and the license agreement allows redistributing all files under
this folder.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0
Avatar
Hendrik Schreiber

Dmitry,

that's great news (haven't gotten to check out 5.0, yet)! How do you suggest we should proceed with a 4.54 plugin?

Thanks,

-hendrik

0

Hello Hendrik,

HS> that's great news (haven't gotten to check out 5.0, yet)! How do you
HS> suggest we should proceed with a 4.54 plugin?

We don't plan to release any new updates for IDEA 4.5, so the official text
of the 4.5 license will not be changed. However, unofficially we don't have
any objections to distributing the 4.5 version of openapi.jar.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0
Avatar
Hendrik Schreiber

Great.

Thanks Dmitry!

-hendrik

0
Avatar
Hendrik Schreiber

Dmitry,

I just downloaded the final 5.0 release for OS X. openapi.jar is unfortunately not in the redist folder.

Any advice?

-hendrik

0

Hello Hendrik,

HS> I just downloaded the final 5.0 release for OS X. openapi.jar is
HS> unfortunately not in the redist folder.
HS>
HS> Any advice?

It's in the "redist" folder of the plugin development package, not the main
distrubution archive (in order to save space).

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0
Avatar
Hendrik Schreiber

Thanks, Dmitry.

It's in the "redist" folder of the plugin development
package, not the main
distrubution archive (in order to save space).


How does that save space? openapi.jar is in the lib folder of the regular distribution. If you moved it to redist, it wouldn't take up any more space. Or would that mess up the classpath...?

BTW - the plugin development package does not contain a license...

-hendrik

0

Hello Hendrik,

>> It's in the "redist" folder of the plugin development
>> package, not the main
>> distrubution archive (in order to save space).
HS> How does that save space? openapi.jar is in the lib folder of the
HS> regular distribution. If you moved it to redist, it wouldn't take up
HS> any more space. Or would that mess up the classpath...?

Currently IDEA loads the libraries only from the "lib" subfolder. We could
change this, of course, but decided not to. The libraries currently in "redist"
are copied from "lib".

HS> BTW - the plugin development package does not contain a license...

The main IDEA license applies to it.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0

Hey Dmitry,

thanks again for helping me out earlier today...

Anyway, I tried to compile the Cargo plugin with IDEA 5.0 today and ran into this:

(FixedSizeButton.java:32)
    [junit]     at com.intellij.openapi.ui.FixedSizeButton.(FixedSizeButton.java:58)
    [junit]     at com.intellij.openapi.ui.ComponentWithBrowseButton.(ComponentWithBrowseButton.java:47)
    [junit]     at com.intellij.openapi.ui.TextFieldWithBrowseButton.(TextFieldWithBrowseButton.java:31)
    [junit]     at com.intellij.openapi.ui.TextFieldWithBrowseButton.(TextFieldWithBrowseButton.java:27)
    [junit]     at org.codehaus.cargo.intellijidea.CargoConfigurationEditor.$$$setupUI$$$(CargoConfigurationEditor.java:386)
    [junit]     at org.codehaus.cargo.intellijidea.CargoConfigurationEditor.(CargoConfigurationEditor.java:367)
    [junit]     at org.codehaus.cargo.intellijidea.CargoConfigurationEditorTest.setUp(CargoConfigurationEditorTest.java:44)
]]>


Obviously the icons.jar is missing in the classpath and FixedSizeButton has a runtime dependency to it, which becomes obvious when running unit tests.

Would it be possible to upload icons.jar to a public maven repository? What would the license be?

Thanks for your help!

-hendrik

0

Hello Hendrik,

icons.jar is definitely not redistributable under any license.

In general, we do not guarantee proper operation of any IDEA UI components
outside the real IDEA environment. Unit tests for IDEA plugins should be
run under IDEA itself, using the approach documented in:
http://kirblog.idetalk.com/2005/09/writing-unit-tests-for-intellij-idea.html

Alternatively, you can split CargoConfigurationEditor into "model" and "view"
parts, keep the UI Designer-generated code and IDEA components in the "view"
part, and write standalone unit tests for the model.

HS> Anyway, I tried to compile the Cargo plugin with IDEA 5.0 today and
HS> ran into this:
HS>
HS>

 aClass='com.intellij.openapi.ui.FixedSizeButton'
HS> [junit] java.lang.AssertionError: Icon cannot be found in
HS> '/general/ellipsis.png',
HS> aClass='com.intellij.openapi.ui.FixedSizeButton'
HS> [junit]     at
HS> com.intellij.openapi.diagnostic.DefaultLogger.error(DefaultLogger.ja
HS> va:44)
HS> [junit]     at
HS> com.intellij.openapi.diagnostic.Logger.error(Logger.java:45)
HS> [junit]     at
HS> com.intellij.openapi.util.IconLoader.getIcon(IconLoader.java:95)
HS> [junit]     at
HS> com.intellij.openapi.util.IconLoader.getIcon(IconLoader.java:76)
HS> [junit]     at
HS> com.intellij.openapi.ui.FixedSizeButton.(FixedSizeButton.java:
HS> 32)
HS> [junit]     at
HS> com.intellij.openapi.ui.FixedSizeButton.(FixedSizeButton.java:
HS> 58)
HS> [junit]     at
HS> com.intellij.openapi.ui.ComponentWithBrowseButton.(ComponentWi
HS> thBrowseButton.java:47)
HS> [junit]     at
HS> com.intellij.openapi.ui.TextFieldWithBrowseButton.(TextFieldWi
HS> thBrowseButton.java:31)
HS> [junit]     at
HS> com.intellij.openapi.ui.TextFieldWithBrowseButton.(TextFieldWi
HS> thBrowseButton.java:27)
HS> [junit]     at
HS> org.codehaus.cargo.intellijidea.CargoConfigurationEditor.$$$setupUI$
HS> $$(CargoConfigurationEditor.java:386)
HS> [junit]     at
HS> org.codehaus.cargo.intellijidea.CargoConfigurationEditor.(Carg
HS> oConfigurationEditor.java:367)
HS> [junit]     at
HS> org.codehaus.cargo.intellijidea.CargoConfigurationEditorTest.setUp(C
HS> argoConfigurationEditorTest.java:44)
HS> ]]>

HS> Obviously the icons.jar is missing in the classpath and
HS> FixedSizeButton has a runtime dependency to it, which becomes
HS> obvious when running unit tests.
HS>
HS> Would it be possible to upload icons.jar to a public maven
HS> repository? What would the license be?
HS>
HS> Thanks for your help!
HS>
HS> -hendrik
HS>
--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0

Hi,

Are you planning to distribute recent version of the openapi.jar through any of the central maven repo's?

Current version is 7.0.3 which is > 3 years old and doesn't include:

com.intellij.openapi.wm.ToolWindowFactory

or

com.intellij.openapi.ui.popup.BalloonBuilder

0

The short answer is "no". If you're developing IntelliJ IDEA plugins, you should get the jars from an installation of IntelliJ IDEA, not from a Maven repository.

0

Please sign in to leave a comment.