Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

DSDP/MTJ/Galileo Train Gap

< DSDP‎ | MTJ

Overview

Galileo Train define a list of must's and should's that each project must fulfill in order to join the train.

Initial Analysis

Below is an initial list of what was missing from current DSDP.MTJ.

Must

  • Any new third-party plug-ins that are common between projects must be consumed via Orbit; the final Galileo release will not have duplicate third-party libraries (note that this only applies to identical versions of the libraries; thus if project A requires foo.jar 1.6 and project B uses foo.jar 1.7, that's ok).
  • Projects must have a written ramp down policy by M6+0, linked in the table above. (One of the issues identified with this guideline is that its not so much the ramp down policy of how many votes are needed for each bug fix that we need to be consistent on, but rather the meaning of each of the milestones and release candidates. See Platform 3.4 Endgame plan as a guideline. See also Galileo Final Daze.)
  • Projects must optimize their update site using pack200 to reduce bandwidth utilization and provide a better update experience for users. Additionally, they should do site digesting.
  • Projects must use signed plugins using the Eclipse certificate. Exceptions must be authorized by the planning council for technical reasons.

Should

  • Should provide build RSS feeds as per the build workshop.
  • Should follow the User Interface Guidelines. The UI Checklist is a good place to start.


Requirements

Table coloring legend:

  Finished     Not Finished     Need Special Attention  

Must Do

Galileo Release "Must Do" Items
Category Item Description Target Milestone Master Bug MTJ Bug Status Actions/Notes
Participation Intent Projects must have stated and demonstrated their intent to join Galileo by the M4+0 date. Projects do so by adding themselves to bug bug 251715 and asking to have their project-specific bugs created as clones of each of those referenced in this table. M4

Dec/17/2008

bug 251715 bug 255866 RESOLVED
Projects must have an project plan in XML format. M4

Dec/17/2008

bug 252790 bug 255868 RESOLVED The plan was updated on eclipse portal.
Communicate At least one person from each project must subscribe to cross-project bug inbox, i.e. edit Bugzilla prefs to watch "cross-project.inbox@eclipse.org". Build team members (or their designated alternates) from each project will provide communication channels: phone, mail, IM, IRC and will be available during the milestone integration periods. M4

Dec/17/2008

bug 252789 bug 255869 RESOLVED At least two committers are subscribed in the list (Gustavo de Paula, Diego Madruga)
Attendance Project representatives must attend the planning meetings and conference calls - you have to be involved to be involved. M4

Dec/17/2008

bug 252791 bug 255870 RESOLVED DSDP PMC attends the meetings.
Ramp Down Policy Projects must have a written ramp down policy by M6+0, linked in the table above pending inclusion of ramp down element in the XML project plan. (One of the issues identified with this guideline is that its not so much the ramp down policy of how many votes are needed for each bug fix that we need to be consistent on, but rather the meaning of each of the milestones and release candidates. See Platform 3.4 Endgame plan as a guideline. See also Galileo Final Daze.) M5

Feb/03/2009

bug 252792 bug 255871 RESOLVED Ramp down policy is documented on DSDP MTJ wiki: MTJ 1.0 Ramp Down Plan
IP Projects must have their IP approved (a normal Eclipse requirement) and will follow the Eclipse Legal deadlines to do so. See also bug 220977. CQs submitted by M5 (Feb/03/2009), completed by RC3 bug 252793 bug 255872 RESOLVED iplog is updated.
Development Message Bundles Projects must use Eclipse message bundles unless there are technical reasons not to. (see Message Bundle Conversion Tool and [1]) M4

Dec/17/2008

bug 252795 bug 255874 RESOLVED Plug-in org.eclipse.mtj.ui is using Eclipse message bundles. We'll need to check other plug-ins that contribute to the UI.
APIs As per the Jan 7 PC meeting [1], the requirement text was clarified as follows:
  • All deviations *must* be documented
  • Rectifications *should* be planned

Full new text below:

Projects should leverage only published APIs of dependencies. As a Release Review requirement, all deviations must be documented. Additionally, rectification for the issues should be listed as part of a migration plan, with bugs listed where APIs need to be provided by dependent projects. Perhaps a '99 44/100% Pure APIs' indicator for projects with no improper usage can be used to advertise the 'cleanest' projects? ;)

Verification by PDE API Tools

1 - http://wiki.eclipse.org/Planning_Council/Jan_07_2009

M6

Mar/16/2009

bug 252794 bug 255873 RESOLVED MTJ usage of no-API was documented in the following bugs
  • bug 267638 - [GalileoSR]: api tooling issue: Discouraged access:

org.eclipse.mtj.core.hooks access

  • bug 267642 - [GalileoSR]: api tooling issue: Discouraged access:

org.eclipse.mtj.ui

To fix this dependencies 3 bugs were opened:

  • bug 267931 - Make ClassPathDetector API (JDT)
  • bug 267936 - Make IJDIPreferencesConstants API (JDT)
  • bug 267943 - Add hooks to the hook registry using public API (Equinox

framework)

All other dependencies to non-API were fixed.

The issues found after running the API tool are listed in the API tooling issues section on this page.

Bundles Signing Projects must use signed plugins using the Eclipse certificate. Exceptions must be authorized by the planning council for technical reasons. M4

Dec/17/2008

bug 252799 bug 255880 RESOLVED DSDP MTJ Stable builds are already signed.
Use Jars Projects must use jar'ed plug-ins (with unpack=false) unless authorized by the planning council for technical reasons. Nested jars should be avoided if possible since it creates problems for projects that has dependencies to such plug-ins. The OSGi runtime is fine with it but the compiler is not able to handle classpaths that contain nested jars. In case only one nested jar exists, it is often better to expand the contents of that jar into the root folder (i.e. unnest the jar). If a plug-in contains large files that are frequently used (opened and closed), a jar'ed plug-in might degrade performance significantly since the file must be decompressed each time it is opened. M4

Dec/17/2008

bug 252800 bug 255882 RESOLVED
Version Numbering Projects must use 4-part version numbers. M5

Feb/03/2009

bug 252796 bug 255876 RESOLVED No action necessary since we already use 4-part versioning
Leverage OSGi All plug-ins (bundles) must use the true bundle form. That is, provide a manifest.mf file, and not rely on the plugin.xml file being 'translated' into a manifest.mf file at initial startup. See bug 130598. With that, empty plugin.xml files in the presence of a manifest.mf file should not be included in a bundle. M5

Feb/03/2009

bug 252797 bug 255878 RESOLVED Plug-ins are already in a true bundle format
Execution Environment All plug-ins must correctly list their required JVM versions in the manifest.mf. See the wiki page about selecting the correct JVM [2]. M5

Feb/03/2009

bug 252798 bug 255879 RESOLVED All plug-ins correctly list their required JVM versions.
Releng Builds Projects must have build process maturity: scripted, repeatable, and executable by others. M4

Dec/17/2008

bug 252801 bug 255884 RESOLVED build system is fully automatic
Orbit Any new third-party plug-ins that are common between projects must be consumed via Orbit; the final Galileo release will not have duplicate third-party libraries (note that this only applies to identical versions of the libraries; thus if project A requires foo.jar 1.6 and project B uses foo.jar 1.7, that's ok). M4

Dec/17/2008

bug 252803 bug 255885 RESOLVED the following changes were made:
  • the build process was changed in order to consume antlr and asm plugins from orbit.
  • asm plugin content from mtj svn was removed. i added a README that describe how to checkout the content from orbit
  • antenna plugin was changed to remove the antlr classes from it.
  • mtj main feature was updated to include antlr plugin.
  • web site was updated to describe how to check out mtj code and also the orbit plugins
Optimization Projects must optimize their own update site using pack200 to reduce bandwidth utilization and provide a better update experience for users. With the introduction of p2, project update sites must generate metadata (artifact and content repository info). M4 - Dec/17/2008 bug 252804 bug 255886 RESOLVED The update site is optimized with pack200 and p2 metadata is being generated automatically on the build system
New & Noteworthy Must have new & noteworthy for each milestone. Must be something readable and usable not just a static list of all the bugs, e.g. platform. Corollary: individual new & noteworthy should be linked in to the collective New & Noteworthy. RC2 bug 252805 bug 255887 RESOLVED The "New & Noteworthy" was committed to SVN and will be available on the 1.0RC2 Release.
Deployment Capabilities Each project will provide basic capability/activity definitions to allow for their UI contributions to be hidden. These must be provided in a separate plugin/feature to facilitate inclusion/exclusion by consumers in product development. M6

Mar/16/2009

bug 252807 bug 255889 RESOLVED The MTJ activity was created under the Development capability.
Localization Must use ICU4J. M5

Feb/03/2009

bug 252809 bug 255892 RESOLVED
The project participates in Babel, meaning it is registered and available for string translation, etc. M6

Mar/16/2009

bug 252808 bug 255891 RESOLVED * map files were added to babel, but the project is not being shown on the translation list (see bug 261252 for more info) (This issue was fixed).
Branding Each major project (the top-level projects except for the Tools and Technology projects where it is the sub-projects) should have an About dialog icon and contribute to the welcome page. RC2 bug 252813 bug 257499 RESOLVED
Work Together This means that users can load any subset of the Galileo projects into Eclipse and each of the loaded projects will pass all the same tests as if it had been loaded independently. If such a problem is identified, the affected projects must fix the problem. RC bug 252806 bug 255888 RESOLVED The MTJ Project plays well with others. I'm closing this bug, and if actual bugs arousing from testing are reported, a separate bug would have to be raised against the component in question.

Should Do

Galileo Release "Should Do" Items
Item Description Target Milestone Master Bug MTJ Bug MTJ Status Actions/Notes
Accessibility Should design and test for accessibility. M4

Dec/17/2008

bug 252811 bug 257644 WONTFIX We don't have enough resources to work on this for this release.
Usability Should follow the User Interface Guidelines. The UI Checklist is a good place to start. Also, should participate in a User Interface Best Practices Working Group UI walkthrough. M5

Feb/03/2009

bug 252810 bug 257643 WONTFIX We don't have enough resources to work on this for this release.
Localization The project should use the Babel Pseudo Translation Test to verify their translatablity. M6

Mar/16/2009

bug 252814 bug 257648 NEW
Should freeze the UI sufficiently early to allow the Babel project time to translate strings. M6

Mar/16/2009

bug 252815 bug 257650 NEW
Should design and test for enabling all languages including bidi, unicode characters, etc. M7

May/04/2009

bug 252816 bug 257646 WONTFIX We don't have enough resources to work on this for this release.
Performance Projects should devote at least one milestone to performance and scalability improvements. M7

May/04/2009

bug 252812 bug 257645 NEW

API tooling issues

api tooling issues on mtj
Plug-in Bug Issues Status Actions/Notes
antenna.preprocessor.v3 bug 261891 externalize plugin properties (bundle name and provider, etc.) DONE
de.schlichtherle.truezip bug 261892 externalize plugin properties (bundle name and provider, etc.) DONE
fix output on build.properties DONE
jmunit.framework bug 261893 externalize plugin properties (bundle name and provider, etc.) DONE
org.eclipse.mtj.branding bug 261894 externalize plugin properties (bundle name and provider, etc.) DONE
org.eclipse.mtj.core bug 261895 externalize plugin properties (bundle name and provider, etc.) DONE
IModelChangedListener is on an internal package and should be public DONE
externalize plugin.xml DONE
The 'Eclipse-LazyStart' header is deprecated, use Bundle-ActivationPolicy DONE
org.eclipse.mtj.core.hooks bug 261896 externalize plugin properties (bundle name and provider, etc.) DONE
missing packages on the export-package DONE
The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
bug 267638 Class org.eclipse.mtj.internal.core.hooks.MTJHookConfigurator

- The method addClassLoadingHook(ClassLoadingHook) from the type HookRegistry is not accessible due to restriction on required library

- The type HookConfigurator is not accessible due to restriction on required library

- The type HookConfigurator is not accessible due to restriction on required library

- The type HookRegistry is not accessible due to restriction on required library

- The type HookRegistry is not accessible due to restriction on required library

NOT DONE bug 267943 was opened to Equinox framework.
Class org.eclipse.mtj.internal.core.hooks.MTJClassLoadingHook

- The method getSymbolicName() from the type BaseData is not accessible due to restriction on required library

- The type BaseClassLoader is not accessible due to restriction on required library

- The type BaseClassLoader is not accessible due to restriction on required library

- The type BaseClassLoader is not accessible due to restriction on required library

- The type BaseData is not accessible due to restriction on required library

- The type BaseData is not accessible due to restriction on required library

- The type BaseData is not accessible due to restriction on required library

- The type BaseData is not accessible due to restriction on required library

- The type BaseData is not accessible due to restriction on required library

- The type BundleEntry is not accessible due to restriction on required library

- The type BundleEntry is not accessible due to restriction on required library

- The type BundleProtectionDomain is not accessible due to restriction on required library

- The type BundleProtectionDomain is not accessible due to restriction on required library

- The type ClassLoaderDelegate is not accessible due to restriction on required library

- The type ClassLoaderDelegate is not accessible due to restriction on required library

- The type ClassLoaderDelegate is not accessible due to restriction on required library

- The type ClassLoadingHook is not accessible due to restriction on required library

- The type ClassLoadingHook is not accessible due to restriction on required library

- The type ClasspathEntry is not accessible due to restriction on required library

- The type ClasspathEntry is not accessible due to restriction on required library

- The type ClasspathManager is not accessible due to restriction on required library

- The type ClasspathManager is not accessible due to restriction on required library

- The type ClasspathManager is not accessible due to restriction on required library

NOT DONE bug 267943 was opened to Equinox framework.
Class org.eclipse.mtj.internal.core.hooks.Debug

- The method getBooleanOption(String, boolean) from the type FrameworkDebugOptions is not accessible due to restriction on required library

- The method getDefault() from the type FrameworkDebugOptions is not accessible due to restriction on required library

- The type FrameworkDebugOptions is not accessible due to restriction on required library

- The type FrameworkDebugOptions is not accessible due to restriction on required library

- The type FrameworkDebugOptions is not accessible due to restriction on required library

NOT DONE bug 267943 was opened to Equinox framework.
org.eclipse.mtj.core.library bug 261897 externalize plugin properties (bundle name and provider, etc.) DONE
JavadocClasspathAttribute illegally implements IClasspathAttribute DONE
externalize plugin.xml DONE
The 'Eclipse-LazyStart' header is deprecated, use Bundle-ActivationPolicy DONE
org.eclipse.mtj.core.preverifier bug 261898 externalize plugin properties (bundle name and provider, etc.) DONE
The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
org.eclipse.mtj.doc.isv

org.eclipse.mtj.doc.user

bug 261899 externalize plugin properties (bundle name and provider, etc.) DONE
org.eclipse.mtj.example.library bug 261900 externalize plugin properties (bundle name and provider, etc.) DONE
missing exported packages DONE
org.eclipse.mtj.examples.jadextension bug 261901 externalize plugin properties (bundle name and provider, etc.) DONE
missing exported packages DONE
Remove the .settings/ token from src.includes. (examples.jadextension) DONE

org.eclipse.mtj.jmunit

bug 261902 The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
missing exported packages DONE
externalize plugin.xml properties DONE

org.eclipse.mtj.toolkit.me4se

bug 261903 The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
missing exported packages DONE
externalize plugin properties (bundle name and provider, etc.) DONE

org.eclipse.mtj.toolkit.microemu

bug 261904 The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
missing exported packages DONE
externalize plugin properties (bundle name and provider, etc.) DONE

org.eclipse.mtj.toolkit.motorola

bug 261905 The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
missing exported packages DONE
externalize plugin properties (bundle name and provider, etc.) DONE
use exported-package instead of provided-package DONE

org.eclipse.mtj.toolkit.mpowerplayer

bug 261906 The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
missing exported packages DONE
externalize plugin properties (bundle name and provider, etc.) DONE

org.eclipse.mtj.toolkit.uei

bug 261907 The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
missing exported packages DONE
externalize plugin properties (bundle name and provider, etc.) DONE
Constructor for UEIDevice with non-API parameter type UEIDeviceDefinition DONE Removed the constructor and created the UEIDeviceInternal class in the internal package that extends the UEIDevice class, since this constructor was only used internally.

org.eclipse.mtj.ui

bug 261908 The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy' DONE
externalize plugin properties (bundle name and provider, etc.) DONE
externalize plugin.xml properties (bundle name and provider, etc.) DONE
use exported-package instead of provided-package DONE
MTJMarkerAnnotationModel illegally extends ResourceMarkerAnnotationModel DONE ResourceMarkerAnnotationModel was copied to MTJ
MTJSelectAnnotationRulerAction illegally extends SelectMarkerRulerAction DONE
MTJProjectionViewer illegally extends ProjectionViewer DONE ProjectionViewer was copied to MTJ
DefaultDeviceEditorActionDelegate.getDeviceEditorDialog(Shell) has non-API return type DeviceEditorDialog DONE DeviceEditorDialog is now part of the public API.
JavaDeviceEditorActionDelegate.getDeviceEditorDialog(Shell) has non-API return type DeviceEditorDialog DONE DeviceEditorDialog is now part of the public API.
overrides

org.eclipse.mtj.ui.DefaultDeviceEditorActionDelegate.getDeviceEditorDialog

DONE
Constructor for AbstractJADEditorPage with non-API parameter type JADFormEditor DONE
Constructor for JADPropertiesEditorPage with non-API parameter type JADFormEditor DONE
SymbolNameCellEditor illegally extends TextCellEditor DONE TextCellEditor was included in MTJ
JADFormEditor illegally implements IInPlaceEditor DONE

IInPlaceEditor was made public in eclipse 3.5 M5

MidletTab illegally extends JavaMainTab DONE Used the Decorator Pattern to avoid extending JavaMainTab
SymbolNameCellEditor illegally extends TextCellEditor DONE TextCellEditor was included in MTJ
JavaSourceViewer illegally extends ProjectionViewer DONE ProjectionViewer was copied to MTJ
SimpleJavaSourceViewerConfiguration illegally extends JavaSourceViewerConfiguration DONE Used the Decorator Pattern to avoid extending JavaSourceViewerConfiguration
LibraryAdapter implements non-API interface IDialogFieldListener DONE LibraryAdapter was moved to internal package
LibraryAdapter.dialogFieldChanged(DialogField) has non-API parameter type DialogField DONE LibraryAdapter was moved to internal package
implements

org.eclipse.mtj.ui.internal.wizards.dialogfields.IDialogFieldListener.ADDFAD

DONE
MTJUIPlugin.getLabelProvider() has non-API return type MTJLabelProvider DONE MTJUIPlugin was moved to the internal package
bug 267642 class

org.eclipse.mtj.internal.ui.wizards.importer.common.ImportProjectWizardPage

- The constructor ClassPathDetector(IProject, IProgressMonitor) is not accessible due to restriction on required library

- The method getClasspath() from the type ClassPathDetector is not accessible due to restriction on required library

- The method getOutputLocation() from the type ClassPathDetector is not accessible due to restriction on required library

- The type ClassPathDetector is not accessible due to restriction on required library

- The type ClassPathDetector is not accessible due to restriction on required library

- The type ClassPathDetector is not accessible due to restriction on requiredlibrary

NOT DONE bug 267931 was opened to JDT UI.
class org.eclipse.mtj.internal.ui.statusHandlers.DebuggerSettingCheckHandler

- The type IJDIPreferencesConstants is not accessible due to restriction on required library

NOT DONE bug 267936 was opened to JDT UI.

Back to the top