facebook

GEF Plug-In [Closed]

  1. MyEclipse IDE
  2.  > 
  3. Installation, Configuration & Updates
Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #209522 Reply

    Samer Kanjo
    Participant

    I was wondering why the GEF plug-in is installed as part of MyEclipse but the features for GEF are not installed?

    #209527 Reply

    Scott Anderson
    Participant

    We wrapped the GEF plugin into one of our features. Features are just a packaging mechanism and rather than add a new feature with one plugin in it it was easier to integrate into our build process by rolling it into an existing feature. GEF is still in there and active though.

    #209614 Reply

    Samer Kanjo
    Participant

    Understood, however based on my thread about JasperAssistant, it does not seem to be a good idea to make GEF a local plug-in within a MyEclipse feature since there are other plug-ins that require it. Perhaps it could be installed as a global plug-in that is required by a MyEclipse feature. However, this may introduce some installation problems if you need to check for a previous installs of GEF.

    Is there a compatibility problem having a plug-in installed as a local plug-in and as a global plug-in?

    #209618 Reply

    Scott Anderson
    Participant

    it does not seem to be a good idea to make GEF a local plug-in within a MyEclipse feature since there are other plug-ins that require it. Perhaps it could be installed as a global plug-in that is required by a MyEclipse feature.

    Can you please define the terms ‘local plug-in’ and ‘global plug-in’ and define the difference? I don’t believe Eclipse makes any such distinction, IIRC.

    #209651 Reply

    Samer Kanjo
    Participant

    By global plugin I am referring to those plugins that are imported in the requires section of a features.xml file and which are installed as a feature themselves.

    By local plugin I am referring to those plugins identified in the plugin statements within the feature.xml file.

    My experience with JasperAssistant seems to indicate that a plugin installed locally is not visible to other plugins while a plugin installed globally can be imported into any feature.

    I don’t yet understand the workings of plugins and features. I am basing my assumptions on observed behavior. While there may be no definition of local and global plugins specifically, the concept may exist in some form or another.

    #209659 Reply

    Scott Anderson
    Participant

    Let me try to clear things up a bit.

    Plug-ins listed in the ‘requires’ section of the feature.xml file tell Eclipse that the feature cannot be installed successfully if those plug-ins are not present. Eclipse won’t install the feature if it can’t find all these prerequisites. The individual ‘plugin’ entries in the feature.xml file is the list of plug-ins that are packaged as part of the feature itself and will be installed as part of the feature. There really isn’t a concept of ‘global’ and ‘local’ plug-ins, it’s more like ‘required’ plug-ins and ‘provided’ plug-ins.

    The problem you saw with JasperAssistant is simply that the GEF team packaged all their milestone versions as 3.0.0, as is Eclipse’s standard practice. However, we included a different milestone version of GEF 3.0 than JasperAssistant needed, thus causing a problem. However, now that GEF 3.0 is ‘final’, both MyEclipse and JasperAssistant will be packaging the same release of GEF 3.0. When Eclipse starts up, it will see that it’s got two contributed versions of the same plugin and will simply choose one of them to start up while writing an informational message in the log file.

    Seem clearer now?

    #209672 Reply

    Samer Kanjo
    Participant

    Your first paragraph verifies my thoughts on required plugins and provided plugins (although I was calling them global and local it seems to be the same concept). However, your second paragraph seems irrelevant to my problem. Let me go over my situation for clarity to show that I don’t believe the GEF library version is the problem.

    Install steps:
    1. Installed Eclipse 3.0, started, and shutdown.
    2. Installed MyEclipse 3.8 Beta 1, started, verified installed, and shutdown.
    3. Installed JasperAssistant 1.2.3 started, verified installed, and shutdown.
    4. Reboot machine and started Eclipse.

    After the install was complete I tried to use JasperAssistant to create a report when I encountered an error that seemed to point to GEF not being available to JasperAssistant.

    I knew that MyEclipse included GEF as part of its distribution so I thought this was strange. I checked the plugin details in Eclipse and checked the MyEclipse install folder to verify that the files were indeed there and recognized.

    Next step was to check with the JasperAssistant support site and saw others having similiar problems. Those problems were solved by having the users download and install GEF (These people were not using MyEclipse, how sad). For those people, the problem was solved.

    I downloaded GEF 3.0 from the Eclipse site and did a visual check of the distribution I downloaded against the distribution included with MyEclipse and found them to be identical except that MyEclipse does not include the feature folder for GEF (Because it’s a plugin provided with a MyEclipse feature).

    My first attempt to fix the problem was to extract the feature folder from the GEF distribution I downloaded to the MyEclipse folder. This resulted in GEF appearing in the Eclipse product configuration under the Eclipse Platform node.

    This solved the problem with JasperAssistant, it was now working as expected. The only thing I did was install the feature folder, which simply contained plugin configuration information. I still only had one GEF plugin installed, not two.

    However, this caused MyEclipse to have errors because it could no longer find GEF, which is required by some other plugins that are provided with MyEclipse.

    My second attempt to fix the problem involved looking for any references to GEF in the Eclipse and the MyEclipse folder to see if I could change a configuration file to fix the problem. That is when I discovered GEF was configured as a provided plugin in the Web Development Tooling feature. After observing the required plugins section of the features.xml file I checked the features.xml file fo the JasperAssitant plugin and discovered that GEF is a required plugin. In no big leap in logic I simply changed the WDT feautres.xml file to make the GEF plugin required rather than provided. This solved all of my problems.

    In summary, I have only one version of GEF installed and that version was part of the MyEclipse distribution. The only changes I made where to add the features folder from the GEF distribution I downloaded (which is just configuration information) and to change GEF from being a provided plugin to a required plugin within the WDT feature.xml file.

    Based on this I don’t see how the version distributed with MyEclipse is an issue at all as you indicated. It seems to be a configuration issue only. In my mind, the big question is whether or not provided plugins of one feature can be required plugins of another feature. Based on my experience described here, the answer would be no.

    If the answer is indeed no that means users of MyEclipse will have problems if they install third-party plugins that require plugins that are already part of the MyEclipse distribution as provided plugins. In fact, the problem would not be limited to MyEclipse but would be a problem with Eclipse in general.

    #209674 Reply

    Scott Anderson
    Participant

    After the install was complete I tried to use JasperAssistant to create a report when I encountered an error that seemed to point to GEF not being available to JasperAssistant.

    Actually, that’s an overly broad interpretation of the message. The error you reported was:

    !ENTRY org.eclipse.core.runtime 4 2 Jul 07, 2004 19:20:06.345
    !MESSAGE Problems occurred when invoking code from plug-in: “org.eclipse.core.runtime”.
    !STACK 0
    java.lang.NoClassDefFoundError: org/eclipse/gef/ui/palette/FlyoutPaletteComposite$FlyoutPreferences
    at com.jasperassistant.designer.editors.ReportEditor.n(SourceFile:248)
    at com.jasperassistant.designer.editors.ReportEditor.x(SourceFile:268)
    at com.jasperassistant.designer.aE.createPartControl(SourceFile:150)

    This error shows two things you need to take into account. First, it’s inside a JasperAssistant stack frame showing that Eclipse has already loaded the plugin. It wouldn’t even have tried to load it if the runtime couldn’t find a version of GEF 3.0, since JasperAssistant’s plugin.xml file requires it. So, Eclipse did find the version of GEF in the MyEclipse distribution. The second thing to notice is that the problem specificly says that a single class couldnt’ be found. This is due to a difference in the GEF implementation that was packaged with MyEclipse 3.8 Beta 1, and the one required by JasperAssistant. As a result, the class needed wasn’t found. Eclipse couldn’t tell that there was a problem until after it loaded JasperAssistant since the GEF team labled them both as 3.0.

    To verify that this is the case, I installed our pre-release of MyEclipse 3.8 Beta 2, which includes GEF 3.0 final, on Eclipse 3.0. I then downloaded and unzipped JasperAssistant into the Eclipse plugins folder of the base installation. I started the installation and both MyEclipse and JasperAssistant both worked just fine.

    In my mind, the big question is whether or not provided plugins of one feature can be required plugins of another feature. Based on my experience described here, the answer would be no.

    If the answer were truly “no”, none of us could use any of the Eclipse platform, JDT, or PDE plugins since they’re all packaged in Eclipse as platform features. So, naturally the answer is really “yes”. 🙂

    Wait for 3.8 Beta 2, probably available on Monday, and you’ll be fine.

    #209676 Reply

    Samer Kanjo
    Participant

    This is due to a difference in the GEF implementation that was packaged with MyEclipse 3.8 Beta 1, and the one required by JasperAssistant. As a result, the class needed wasn’t found. Eclipse couldn’t tell that there was a problem until after it loaded JasperAssistant since the GEF team labled them both as 3.0.

    But I have JasperAssistant working with Beta 1. How can that be explained if there is a compatibility problem?

    #209689 Reply

    Scott Anderson
    Participant

    I can’t answer that question because I never saw the compatability problem. I performed the tests I stated with Beta 2 and everything is correctly functioning. If I had to speculate, I’d guess that at some point in inadvertantly installled GEF 3.0 Final, thus solving the compatibility problem and causing both products to operate correctly.

    #209712 Reply

    Samer Kanjo
    Participant

    Hmmm, we don’t seem to be going anywhere with this. I guess the point is moot since I do have JasperAssistant working just fine. I look forward to Beta 2 to determine if JasperAssistant works without editing the WDT config files.

    #209714 Reply

    Riyad Kalla
    Member

    Please post if there is still a problem with Beta2.

    #210518 Reply

    Samer Kanjo
    Participant

    I performed a clean install of Eclipse 3.0, MyEclipse 3.8 Beta 2, and JasperAssistant and everyting worked without modifying the feature files.

    #210530 Reply

    Scott Anderson
    Participant

    Thanks for the followup. Glad all is well now and thanks for initially bringing the problem to our attention. 🙂

Viewing 14 posts - 1 through 14 (of 14 total)
Reply To: GEF Plug-In [Closed]

You must be logged in to post in the forum log in