Newly added UI Plugin not getting activated in eclipse runtime - eclipse-plugin

I have created a new eclipse plugin, new extensions and also defined a new extension point in an Eclipse Plugin which will be contributing to the UI.
When I test the plugin from plugin.xml option "Test this plugin by launching a separate eclipse application" or "Run as eclipse application" (in Run Configurations), the plugin will get activated and my extensions gets loaded.
However, when I execute the Eclipse runtime/debug from this other run/debug configuration which is defined for our eclipse product, then this newly added plugin won't get loaded.
Let me know how can I check the root cause of this plugin not getting loaded.
I have ensured that plugin.xml is correctly configured. I also checked this Platform.getExtensionRegistry().getConfigurationElementsFor(extensionPointId) will not contain the extension which I have defined.

You are right there, I found out that my plugin was not added to the feature.xml for this run configuration. I have added the entries for the new plugin and now the new plugins are also getting loaded! Thanks for the insights!

Related

Intellij custom plugin not working it says manifest missing or unable to recognize main class

I have created jar file for Intellij custom plugin and while trying to check it by running it like
java -jar it says no main manifest attribute, or some time says not able to recognize main class.
Looking for solution to create intellij custom plugin jar
Because this is not how you should create and build plugin.
Please follow the Creating Your First Plugin guide in the official IntelliJ Platform SDK DevGuide for more details.

Plugin Compatibility Issue Eclipse Oxygen (4.7) and Java 9

We upgraded one of our Eclipse 3.x plugins to work with Java 9.
But when we generated the plugin update site content, and used Eclipse Update functionality to install the new version of the plugin, we encountered the following error in Eclipse Oxygen.
Removing part descriptor with the 'pluginxxx.bla.bla' id and the 'bla bla' description. Points to the invalid 'bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView' class.
This error also appears due to some of the bundled plugins of Eclipse Oxygen itself.
After a hard week we had to
Uninstall our plugin
Remove the older versions of the plugin from the Eclipse/plugins folder
Export the plugin as a deployable plugin under the eclipse plugins directory. (Eclipse/plugins/blabla.jar)
Restart Eclipse and it worked.
Right click the eclipse plugin project and Run as "Eclipse Application" works fine, but installing the plugin from an "Update Site" causes the plugin to fail loading.
We could not find a solution yet, but it certainly effects our delivery of the plugin. The plugin is used by almost 500 CS students on their personal computers, and 200 lab computers. So the update should be installed using regular Eclipse Update functionality, not by copying the jar into the plugins directory.
Was there a better way to fix this, or something quicker we could've tried (in case this happens again)?
Update (7 days into the problem)
We have a workaround:
Export the feature project with the following settings in the Export Wizard
Destination/ Directory: Folder of your Plugin Update Site project
Options/ Package as individual JAR archieves (selected)
Options/ Generate p2 repository (selected)
Options/ Allow for binary cycles in target platform (selected)
Options/ Use class files compiled in the workspace (essentially selected)
Install (or update) the plugin from the local (or remote) plugin update site, and the CompatibilityView problem is solved.
In order to have the category listing displayed correctly during install/update new software operations, we added a category.xml file (File/New/Other/Plugin-in Development/Category Definition) in the update site project, defined the categories, and added the feature (versioned as "qualifier").
This is certainly not the way it should be, and we just hope it will be solved in the future Eclipse releases.
By the way current Eclipse Photon integration version has the same problem unfortunately.

How to import and run existing plugins from intellij community edition repo

I'm trying to import and run the IntelliJ git4idea (Git Integration) plugin in order to play around and contribute some of my own code.
I've pulled the Intellij community edition from the github repo, and imported the git4idea plugin as a project. I'm running the Intellij community edition
My main issue is this:
After importing all the modules, the git4idea module comes up as a general module type, and not a plugin module type.
This means that when trying to create a new run\debug configuration, I get [none] under "Use classpath of module", instead of of the ability to select the git4idea plugin. This obviously results in a "Run configuration error: no plugin module specified for configuration".
So the question is -
How can I change the general type of imported "git4idea" to plugin type?
Or better yet, what are the steps required in order to import and build/debug/run a plugin from the Intellij community edition repo?
I was able to solve this by manually reordering file directories, sorting out dependencies and editing the .iml file. The type of plugin is defined by changing type="JAVA_MODULE" to type="PLUGIN_MODULE".
...
This is the answer given by Dmitry Jemerov on the official Jetbrains plugin development forum:
The easiest answer to this is "don't". The IntelliJ IDEA Community
Edition project is set up to be developed as a whole, and the
dependencies are set up accordingly. If you want to hack on the Git
plugin, you simply run IDEA using the provided run configuration, it
runs with all plugins enabled, and you simply make whatever changes
you need and test them using the main run configuration.
If you really want, you can set up a new plugin module and point it to
the source code of the git4idea plugin inside the IntelliJ IDEA
Community Edition Git checkout. This is not too hard, but it's
something you'll need to do from scratch, and you can't use the
existing .iml file.
I had the same no plugin module specified for configuration issue. To work around it, instead of importing, I created a new plugin project and used the existing code directory.
when you import the intelij plugin projects
You should run the 'runIde' task in gradle.
Step-by-step instruction
Build your IDEA plugin (usually done with gradle build).
Start Intellij IDEA.
If you have any project opened, go to menu "File->Close all projects" to return to Intellij IDEA startup screen.
Install the plugin you've just built: on the left side of the "Welcome to Intellij IDEA" startup screen go to "Plugins", then click "gear" icon on the right side, it's located to the right of "Marketplace" and "Installed". From the pop-up menu select "Install Plugin from Disk...", navigate to plugin file (usually in build folder) and click "Ignore and continue" when you see the warning message saying something about signature.
Restart Intellij IDEA.
Open the folder with your IDEA plugin.
Wait until IDEA imported your Gradle project.
Put breakpoints inside your plugin code so you can debug it.
Go to menu "Run->Edit configurations".
In the "Run/Debug Configurations" window on the left side click "+".
Select "Gradle" from the pop-up menu.
On the right side change "Name" to "gradle-run-ide" (without quotes).
On the right side under "Run", inside "Tasks and arguments" field enter runIde ("i" must be capital, other letters small).
Click "OK" to save changes.
Go to menu "Run->Debug 'gradle-run-ide'".
A new, black-colored IDEA window should appear.
In this black-colored IDEA window do whatever you need to do in order to invoke methods of your plugin. When you invoke them, the first IDEA window should stop you on breakpoints you set previously.
Happy debugging.
After changing type="JAVA_MODULE" to type="PLUGIN_MODULE" in *.iml file I was getting following error -
Error running 'IdeaPlugin': Wrong SDK type for plugin module
To fix this go to -
Module Settings -> Platform settings -> SDKs.
Click on Add new SDK
Select Intellij Platform plugin SDK
For home directory select your Inetllij installation dir
Select JAVA SDK you want to use with it.
Once this is added got to Module Settings again
Module Settings -> Project settings -> project.
In Project SDK change the JAVA sdk to the SDK we just added in the above steps.
Run/Debug you plugin now.

Why does Eclipse load all plugins in a workspace?

I'm using Eclipse 3.6 for developing Eclipse plug-in. In the same workspace, I have 2 Plug-in projects: projA and projB. No mater which project was run, both two projects will be loaded in the new Eclipse instance. If I only want to load projA, I have to close projB, why?
I run the project like this: right click the project and "Run as--- Eclipse Application".
Have you defined the target platfom?
You can also edit your Run Configuration and choose the plugins to launch with.
The way you debug your project will start a new instance of Eclipse with all existing plugins installed(in your case,both project A and B are installed).This is typically called self-hosting in PDE.
If project A has no dependent package,just close other projects.

Eclipse plugin view does not show up after install

I created a sample plugin which includes a simple view in eclipse and ran the plugin from inside the workbench, my plugin is installed and I get my view showing up in Window/Show View/Other... . I packaged the plugin as a jar file and installed it under the plugins directory of eclipse and restarted my eclipse workbench. I am not able to find my plugin view. I dont know whats is wrong
I am using eclipse RCP SR2 (3.6) for developing plugins and my packaged jar file includes the code, META-INF/MANIFEST.MF and plugin.xml files.
I created the plugin from the book 'Eclipse Plug-ins, 3rd Edition'. I followed the steps outright and am not able to set up the plugin as a jar file.
I got it to work somehow? The plug-in project was created using Execution Environment JavaSE-1.6. 'It was given in the book I referred'. Now the manifest editor had the entry 'Bundle-RequiredExecutionEnvironment: JavaSE-1.6'. Now I ran the application with-in eclipse, it was working. But when I bundled the plugin as jar and copied the plug-in jar under plugins folder and restarted eclipse the plugin was not working, I dont know why, I thought my eclipse is not running under JRE1.6, but I checked my Windows->Preferences->Java->Installed JREs-> I have only jdk1.6.0_27 checked (So I assume that the eclipse is running under JavaSE1.6). This is bit confusing for me! I removed the Execution Environment entry in the Manifest editor Overview tab. Now there is no 'Bundle-RequiredExecutionEnvironment' entry in my Manifest, I created the bundle jar again and installed in eclipse plugins folder and restarted eclipse using -clean option. It started working in my eclipse. I got it to work somehow but with no understanding! I am still looking for answers from some one who can help me figure out what went wrong?
Open an OSGI console and type 'ss'. It should list all of the plugins. Can you see it? What is the state of it.
You can use Preferences/plug-in development/target platform edit running 'running platform' content tab to list and check/uncheck plugins. I hope it helps.
You could try copying your jar file to the eclipse/dropins folder.