Bug 82195 - [RPM] Refactor org.eclipse.cdt.rpm.core
Summary: [RPM] Refactor org.eclipse.cdt.rpm.core
Status: RESOLVED FIXED
Alias: None
Product: Linux Tools
Classification: Tools
Component: RPM (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P1 enhancement (vote)
Target Milestone: ---   Edit
Assignee: CDT-Contrib-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-04 16:44 EST by Jeremy Handcock CLA
Modified: 2010-08-10 16:25 EDT (History)
1 user (show)

See Also:


Attachments
UML diagram representing refactored org.eclipse.cdt.rpm.core (81.93 KB, image/jpeg)
2005-01-04 16:52 EST, Jeremy Handcock CLA
no flags Details
Patch for org.eclipse.cdt.rpm-feature (1.69 KB, patch)
2005-05-18 16:50 EDT, Jeremy Handcock CLA
overholt: iplog+
Details | Diff
Patch for org.eclipse.cdt.rpm.core (300.78 KB, patch)
2005-05-18 16:51 EDT, Jeremy Handcock CLA
overholt: iplog+
Details | Diff
Patch for org.eclipse.cdt.rpm.core.tests (49.32 KB, patch)
2005-05-18 16:52 EDT, Jeremy Handcock CLA
overholt: iplog+
Details | Diff
Patch for org.eclipse.cdt.rpm.ui (107.48 KB, patch)
2005-05-18 16:52 EDT, Jeremy Handcock CLA
overholt: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Handcock CLA 2005-01-04 16:44:27 EST
To promote maintainability of the Eclipse-RPM core, I suggest that we do a bit
of refactoring in org.eclipse.cdt.rpm.core for the 3.0 release.  I will attach a
brief UML diagram that outlines my proposal.
Comment 1 Jeremy Handcock CLA 2005-01-04 16:52:12 EST
Created attachment 16929 [details]
UML diagram representing refactored org.eclipse.cdt.rpm.core

I think that the design represented by this UML diagram further simplifies the
RPM core by removing inheritance relationships and replacing them with
composition.  

In addition to this diagram, a new package org.eclipse.cdt.rpm.utils will be
created in the core plug-in to host command classes for rpm, rpmbuild, chmod,
diff, etc.  This design is similar in concept to org.eclipse.cdt.utils, which
could be used as a reference implementation.
Comment 2 Jeremy Handcock CLA 2005-01-04 16:53:08 EST
Targeting for 3.0.
Comment 3 David Daoust CLA 2005-05-13 13:19:08 EDT
As discussed in the weekly meeting -- all enhancements requests that had a
target milestone of 3.0 but were assigned to an inbox owner (which is an invalid
combination), have been moved to Target Milestone "--".
Comment 4 Jeremy Handcock CLA 2005-05-18 16:50:26 EDT
Created attachment 21390 [details]
Patch for org.eclipse.cdt.rpm-feature
Comment 5 Jeremy Handcock CLA 2005-05-18 16:51:41 EDT
Created attachment 21391 [details]
Patch for org.eclipse.cdt.rpm.core
Comment 6 Jeremy Handcock CLA 2005-05-18 16:52:15 EDT
Created attachment 21392 [details]
Patch for org.eclipse.cdt.rpm.core.tests
Comment 7 Jeremy Handcock CLA 2005-05-18 16:52:36 EDT
Created attachment 21393 [details]
Patch for org.eclipse.cdt.rpm.ui
Comment 8 Jeremy Handcock CLA 2005-05-18 17:15:32 EDT
I've checked in the newly-attached patches - I've been back hacking on RPM stuff
lately and completed the rpm.core refactor.  No new functionality has been added
with this change, but we now have a defined API for future expansion.

Some notable issues:

- The new API does not allow you to export S/RPMs from projects that have not
been previously imported into.  This area of the old rpm.core was a bit flakey,
and until we have a more advanced spec file model better parsing support for
spec files, its use is quite limited anyway.

- The new API does not rename source tarballs if the user changes the version
number.  I believe this behavior aligns better with the RPM workflow mantra of
keeping pristine source artifacts.

- The new API adds a special RPM nature to projects on source RPM import.

- The default RPM directories (for RPMS, SRPMS, BUILD, SPECS, and SOURCES) are
now created in the project itself (as derived resources) instead of being held
externally.  This allows us to use the Eclipse Platform APIs for resource
manipulation and removes the need to use platform-dependent utilities for
operations like copying resources.  Also, I think it is better from a user point
of view to have all RPM resources right in the project itself.

- The RPM property page implementation has been removed from the RPM feature
temporarily.  I will address this in bug #82196.
Comment 9 Andrew Overholt CLA 2010-08-10 16:25:26 EDT
I've set the iplog flag to + on all these attachments from Jeremy since he committed them.  Somehow in the shuffle from CDT to Linux Tools his committer rights got lost so it's best to have his contributions noted in our IP Log than sitting in limbo.