Platform-specific dependency creeping into Eclipse plugin - eclipse

I have implemented a graph editor with Eclipse EMF and GMF frameworks. After completing my project, I realized that this plugin shows dependencies (not explicitly added by me) on some OS-specific plugins.i.e:org.eclipse.ui.win32, org.eclipse.swt.win32.win32.x86. And whenever I have tried to bypass this dependency at my update site something went wrong with the installation process of the plugin.
As such it is impossible to run my plugin in *nix environment or even win64 machines.This seems a very heavy constraint dependency to me. Am I doing something in a wrong way? Or is there no other way of building Eclipse plugins which are cross-platform other than building the project from scratch at each different OSs?

We created a similar style of plug-in in my project. Under "Plug-in Dependencies" in Package Explorer I can see org.eclipse.swt.win32 listed, but it is not listed in required plug-ins in plugin.xml.
We also successfully created an update site which works for Mac users without issue.
So, yes it is possible to have a cross-platform plug-in.
I would suggest you first try to to use "Export..." -> "Deployable plug-ins and fragments" to create a bunch of jar files for your plug-in. See if these can be successfully installed by copying into the drop-ins folder of a fresh eclipse installation. Do this first on a Win32 install, then try on another platform. Once you have that working, use the new Eclipse installation to create the Update site.

Related

AEM error on real time

Is there a way to configure AEM into an IDE like IntelliJ,Eclipse...
So that the IDE shows the errors on my project before I compile it even if I put it outside the source folder like for example the components created.
If possible both the .java and .jsp
I'm not entirely sure what you mean by outside the source folder, but have you taken a look at adobe's documentation?
They have instructions for IntelliJ + AEM with Maven. It also instruct on jsp support as well. It's for 5.6.1 but it should be valid for 6.x as well.
https://docs.adobe.com/docs/en/cq/5-6-1/developing/developmenttools/howto-develop-aem-projects-with-intellij.html
Here's one for Eclipse
https://helpx.adobe.com/experience-manager/using/creating-aem-project-using-eclipse.html
They also have a more generic set of instruction
https://docs.adobe.com/docs/en/cq/5-6-1/developing/developmenttools/how-to-build-aem-projects-using-apache-maven.html#How-To%20Work%20with%20JSPs
Yes, you can maintain CRX data(AEM folders like /etc, /apps, /content, etc) in an IDE like eclipse. This will help you iron out all the compilation errors using features of IDE. Make use of this eclipse plugin called vaultclipse. You can install it from eclipse marketplace.
There is also another plugin called AEM plugin, details on how to use it here.

How to manually download Vaadin versions for Eclipse?

I'm using Eclipse Luna 4.4.2 and installed the Ivy plugin and Vaadin plugin from the market place as instructed by their book, but I'm unable to create a project since every time I try to I get the message:
Failed to list downloaded Vaadin versions
From what I'm reading around, Vaadin uses Ivy for managing the download of their packages but it seems to be blocked by my company's firewall.
Since the available versions cannot be downloaded, the combobox for selecting the version comes empty, stopping the process to create the project.
Is there a way to download the Vaadin version I need separately? Are there any options for me in my situation?
You can go to the Vaadin download page and select the Download as .zip option on the left of the page as in the image below. Please note that only the visual editor plugin is IDE dependent, while Vaadin as a framework can be used regardless of the IDE (you could write your code in notepad and compile it with the jars in the classpath), so there's no such thing as Vaadin versions for Eclipse.
On a sidenote you can also use maven to manage your dependencies and build process besides ivy. If you plan on using other frameworks or other Vaadin addons it may prove difficult to manage all these dependencies manually, so depending on your company's policies and configuration I'd ask whether they can grant access to the repositories or if at least there is an internal repository where one can add/find the necessary dependencies.

Bundle 'org.eclipse.core.runtime' cannot be resolved

I recently upgraded from Eclipse Kepler to Luna. A plugin I had been working on is now showing build errors without any source being changed.
Here is an extract from my MANIFEST.MF,
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
org.eclipse.ui;bundle-version="3.7.0",
org.eclipse.ui.ide;bundle-version="3.7.0",
org.eclipse.core.resources;bundle-version="3.7.0",
org.eclipse.ui.forms;bundle-version="3.6.0",
org.eclipse.wst.sse.ui;bundle-version="1.3.0",
org.eclipse.jface.text;bundle-version="3.8.100",
org.eclipse.ui.workbench.texteditor;bundle-version="3.8.101",
org.eclipse.ui.views;bundle-version="3.6.0"
None of the core or ui bundles are resolved. I don't think Eclipse could even run without them and their equivalent .jar files are present and readable and haven't been modified as part of the upgrade, so they are not actually missing. When I try to add dependencies on the Dependencies tab the problem bundles do not show.
Eclipse was upgraded by the Arch Linux package manager. I mention it for completeness but believe it is likely identical to any other upgrade mechanism. I also tried creating a new plug-in project but the same happens, I guess this means it's a global setting. I'm relatively new to PDE and so far haven't had a need to change any settings.
From the preference page (Preferences > Plug-in Development > Target Platform), try Removing the Running Platform target definition, Applying, and then Restoring Defaults. Maybe it's just stale and pointing to the jars that it doesn't know Arch has changed about.

AbstractUIPlugin error and Missing tabs in plugin.xml from eclipse

I checked in eclipse/java plugin project from svn repository.
Eclipse automatically builds the code to show hundreds of errors.
It seems like that eclipse doesn't properly link to the plugin libraries. Googling to find this site that I need dependencies and other tabs in plugin.xml.
What might be wrong? I use Indogo(3.7) on Mac OS X 10.7.4
I used Indigo (3.7) for my Mac, but it happened so that the plugin was built on Helios (3.6). When I run the plugin using Helios, I got the project compiled without errors.
It seems like that some of the plugins are (heavily) version dependent.
Looks like you got the base XML editor instead of the plugin.xml editor.
This is probably caused by your not having the eclipse plugin development environment (PDE) enabled in a new workspace.
Try creating a new plugin project (this will enable the necessary plugin tools), or go to the preferences and enable the "correct" capability. Since the capabilities seem to change from release to release, I always use the first method and then delete the new project.

How to install a custom plug-in in Eclipse Ganymede?

We have a custom plug-in. That is, the company where I'm working developed it in house.
I would like to install it as an available plug-in in Eclipse Ganymede. How do I do that?
From what I can figure out, the Eclipse software install only supports installation from Eclipse software update sites.
I went to Help -> Install New Software... -> Add -> Local...
to browse to a folder containing the plug-in. Although the dialog lets me add the directory as an update site, it doesn't work. It expects that directory to be a local Eclipse update site (I think). I get the error
No repository found at file:/G:/TOOLS/...
Next I just copied the plug-in into the plug-in directory under my Eclipse installation. That didn't work either. I also tried copying it into the dropins directory. No dice.
Can anyone enlighten me how to install a plug-in that's not on an "update" site?
Thanks in advance....
Usually an Eclipse plug-in packaged as zip file is install by extracting it into the Eclipse installation directory (or the plugins directory depending on how it is packaged, as it can also extract files in features directory).
Next restart Eclipse with the --clean option.
Did you check the Eclipse error log? Maybe the bundle is failing to deploy for some reason.
Otherwise, create a Feature and Update Site for your plugin as described here. An update site can either be a remote http server (SVN even), or a local directory. The nice thing is that you'll get versioning and the ability to upgrade and uninstall from inside Eclipse. It also makes things easier once your plugin grows into several plugins because they can be bundled together into a single, versioned feature.