Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 182506

Summary: The pde and ant bridges should be contributed by fragments...
Product: z_Archived Reporter: Philippe Ombredanne <pombredanne>
Component: MylynAssignee: Mik Kersten <mik.kersten>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: P1 CC: jkrause, mknauer, spam
Version: 2.0 M2   
Target Milestone: 2.0   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
zip containing o.e.mylar.ant adn o.e.mylar.pde
none
Patch for the remaining impact on other plugins
none
mylar/context/zip none

Description Philippe Ombredanne CLA 2007-04-16 03:43:28 EDT
...each with a specific set of dependencies, such that the ide plugins still can
work when pde and java are not installed.
This would support a better flexibility for instance when using Myalr with CDT or Pydev, and when JDT/PDE/ANT aare not needned or installed.
Would you want a quick patch?
Comment 1 Philippe Ombredanne CLA 2007-04-16 03:48:02 EDT
Note that the report as bug action should be aslo in a fragment with its dep on pde.runtime
Comment 2 Eugene Kuleshov CLA 2007-04-16 12:52:18 EDT
Philippe, patches are always welcomed.
Comment 3 Mik Kersten CLA 2007-04-16 18:27:53 EDT
I was waiting for someone to point this out.  The only reason it has not been done yet is to keep the number of bundles/projects minimal. Technically they could also be broken up into core/ui bundles as well.  

I'm not sure how easy it is to create a patch for a non-existing project.  I think we should iterate on a proposal, then I can make any new projects needed and then take patches.

Why fragments and not plug-ins?
Comment 4 Philippe Ombredanne CLA 2007-04-16 23:35:44 EDT
Creating a ptach on a new project is fairly straight forward. Just cretae your changes, then apply them to a fresh checkout made on the module above.

Plugins or fragments, whatever works.
I was thinking that there could be protected packages dependencies, but plugin should work fine, if they are none. Fragments just merge their classpath with their host, so are relatively worry free in such a plugin refactoring context.
You'll get a patch by the end of the week, focusing for now on pde and ant at first.Now name wise, o.e.mylar.ide contains ant and pde stuffs, shoudl they become o.e.myor lar.ant and o.e.mylar.pde ? (to stay consistent with o.e.mylar.java) 
or :
o.e.mylar.ide.ant and o.e.mylar.ide.pde  (in which the o.e.mylar.java should may be renamed to o.e.mylar.ide.java ? )
Comment 5 Philippe Ombredanne CLA 2007-04-17 01:15:19 EDT
Created attachment 63990 [details]
zip containing o.e.mylar.ant adn o.e.mylar.pde

CVS patches cannot contains binaries sounds like.
So the two plugins are as zip
Comment 6 Philippe Ombredanne CLA 2007-04-17 01:17:20 EDT
Created attachment 63991 [details]
Patch for the remaining impact on other plugins

The patch affects o.e.mylar.java o.e.mylar.java.tests and o.e.mylar.ide , that later now stripped down from pde and ant deps.
Comment 7 Philippe Ombredanne CLA 2007-04-17 01:18:17 EDT
Not tha ll the test passed by the way, I am not sure if this is OK, or if you have some failing when using 33M6
Comment 8 Philippe Ombredanne CLA 2007-04-17 01:19:10 EDT
Not sure what I typed above... :-\
I meant:
All the test DID NOT pass, and I am not sure if this is OK, or if you have some failing when using 33M6
Comment 9 Philippe Ombredanne CLA 2007-04-17 01:36:30 EDT
Let me rephrase : all the tests that passed before the patch, still pass after the patch. There are some failures in jjava.test on 3.3, but they pre-date the patch.
Comment 10 Mik Kersten CLA 2007-04-30 13:08:28 EDT
Sorry for slowness on this, it is related to other upcoming plug-in changes.  I still plan to incorporate this by 2.0M3 (May 11th).
Comment 11 Philippe Ombredanne CLA 2007-04-30 14:16:09 EDT
No problem, the patch is no rocket science, but it may go stale quick.
Comment 12 Mik Kersten CLA 2007-05-14 12:26:15 EDT
Unfortunately this will have to wait until after 2.0M3 goes out because we had to postpone other related plug-in refactoring to batch the changes.
Comment 13 Mik Kersten CLA 2007-05-23 20:05:24 EDT
*** Bug 187199 has been marked as a duplicate of this bug. ***
Comment 14 Markus Knauer CLA 2007-06-07 07:05:51 EDT
What's the status of this bug?

EPP: I was able to build a Java package with Mylar including the following features:

      id="org.eclipse.mylar_feature"          version="2.0.0.v20070514-1800"
      id="org.eclipse.mylar.ide_feature"      version="2.0.0.v20070514-1800"
      id="org.eclipse.mylar.bugzilla_feature" version="2.0.0.v20070514-1800"

The package doesn't contain PDE and it seems to work. So I suspect that this bug is fixed? Can you confirm this?
Comment 15 Mik Kersten CLA 2007-06-08 11:11:19 EDT
Perhaps it is just failing gracefully?  The org.eclipse.mylar.ide plug-in (include in ..mylar.ide_feature) does depend on PDE.  I will pull this out into it's own feature.  The thing I'm confused about is where to stick the Ant dependency that we have:
1) With PDE (then a pure Java environment won't have it)
2) In it's own plug-in/feature (overhead for users and additional complexity)
3) Leave it in IDE

I'm tempted to do the latter.  The best driver that we currently have for this is EPP so please comment today if possible since I'm about to make these changes.  I'm also happy to make Ant a separate plug-in to delay the feature decision.
Comment 16 Markus Knauer CLA 2007-06-08 12:28:00 EDT
EPP is using update manager functionality - that said: If there are any errors in the feature.xml's, then we will get these dependency problems in our builds. I need to look deeper into that problem, but for now I found this here:

org.eclipse.mylar.ide_feature/feature.xml

   <requires>
      <import feature="org.eclipse.mylar_feature"...
   </requires>
   <plugin
         id="org.eclipse.mylar.ide"...

I had a look into org.eclipse.mylar.ide and it requires PDE, but from the information in its declaring feature org.eclipse.mylar.ide_feature there is no 'requires' path to PDE. I think there are some features missing in the 'requires' section above - that's why the EPP build could include Mylar without PDE.

But now to your questions: I cannot foresee the consequences of the three mentioned possibilities. From the EPP point of view I would say that all Ant related plugins are included in the org.eclipse.platform and in the org.eclipse.jdt features. Both of them are included in all packages with Mylar (exception is the C/C++ package). That said I would vote for option 3) as it seems to be the easiest way to go.

Do you have any dependencies to org.eclipse.ant.ui? I am asking because this would prevent us from adding Mylar to the C/C++ package in the future.
Comment 17 Mik Kersten CLA 2007-06-08 14:56:45 EDT
Yes, the Ant stuff does depend on org.eclipse.ant.ui.  So I will make that a separate plug-in, then we can figure out the best thing to do for CDT.  We should discuss this further on bug 187154, but I'm not sure if the CDT package should include more than tasks because we do not have a structure bridge for C++.
Comment 18 Mik Kersten CLA 2007-06-08 22:21:32 EDT
Done.  PDE ant Ant have been split out into separate plug-ins, and the features are now organized as follows:
* ..mylyn.ide-feature (modified): common IDE features from SDK
* ..mylyn.pde-feature (new): coupled to PDE UI
* ..mylyn.java-feature (new): coupled to JDT UI and Ant

See the plug-ins lists on the features for details.  Please ask any questions or further requests either here or on bug 187514.
Comment 19 Mik Kersten CLA 2007-06-08 22:21:34 EDT
Created attachment 70755 [details]
mylar/context/zip
Comment 20 Eugene Kuleshov CLA 2007-06-08 23:14:35 EDT
Mik, do we really needed those features? Mylar isn't going to distribute plugins separately. Also, Eclipse Ant plugins don't need JDT, so your JDT UI + Ant feature is somehow weird.
Comment 21 Mik Kersten CLA 2007-06-08 23:39:48 EDT
Our Ant structure bridge does need ..jdt.ui because that's a dependency of ..ant.ui.

The features do not necessarily need to be in our common distribution and I have always tried to keep the number of features minimal because they add complexity for users on download.  So we might still make a special feature for all the SDK stuff and just have that on the download site.  But we need the java/ide split for Europa, and the PDE split out for EPP (this bug).