Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [atf-dev] ATF 0.2.2. usage


Thanks for the patches, Greg. I'm sure those more familar with ATF code details will reply.

But, may I request another step. Can you open a bug and attach your zip file there?
There's no need to wait "to get some direction from the ATF team
before [you] just go opening bug reports that don't make sense".

The reason is that according to the Eclipse Foundation's IP rules [1] all code to be received
and used as EPL should be submitted through newsgroups, mailing lists, and the Bugzilla bug
reporting system. While your note and description is on the mailing list, you use a link to "get" the code
from elsewhere. So, technically, our committers should not use that link to get the patches.

I'm sure no one would question a simple, obvious case such as this, but, I hope you can
appreciate that there could be cases that would start to get questionable, so I'm just
trying to follow the rules, which avoid any question of where the content came from, since there
is a traceable bugzilla entry.

Also, I appreciate your willingness to be available, when you say "...or if anyone wants to contact me
directly to continue a discussion of anything off the newsgroup...",  but I would like to encourage everyone
to discuss ATF issues "in the open", so we all may enjoy the benefits of open development.

Thanks again for your contributions to ATF!




[1] http://www.eclipse.org/legal/committerguidelines.php





"Greg Amerson" <greg@xxxxxxxxxxxx>
Sent by: atf-dev-bounces@xxxxxxxxxxx

10/29/2007 06:11 PM

Please respond to
AJAX Toolkit Framework discussion <atf-dev@xxxxxxxxxxx>

To
"AJAX Toolkit Framework discussion" <atf-dev@xxxxxxxxxxx>
cc
Subject
[atf-dev] ATF 0.2.2. usage





Hello ATF team,

Recently, Genuitec related MyEclipse 6.0 which includes a subset of the ATF project, specifically version 0.2.2 (v20070703100).  During our dev cycle we made some changes to the ATF plugins to allow for better integration and adoption into MyEclipse.  Because of our tight delivery timeline we decided to focus on making the exact changes we needed to the ATF plugins, and then sometime soon after that release we would followup with the ATF team to discuss our changes and get some feedback.  So I'm posting a summary our changes that we made to the ATF plugins for our latest release.

>From the ATF team I'd like to get feedback on the patches I've submitted and possible start a conversation about opening up portions of the codebase for more extensibility.  Also, I'm looking for advice from the team on how we could our usage of ATF plugins so we could better accomplish our objectives if some of our changes made in our patchset are not really required. I've made just the patches that we made to ATF to make it more extensible available in a zip file that can be downloaded here:

http://downloads.myeclipseide.com/downloads/products/eworkbench/public-src/atf_v0.2.2_patches.zip

In the referenced zip file, there are 6 patch files that were diffed against ATF 0.2.2 release or (v200707031000).  I'd like to summarize the changes made in each patch file to help your team better understand our reasons behind the change.

Patch file: 01.web_launch_configuration_patches.txt

1.        WebLaunchConfigurationTab.java
1.        Changed 3 buttons and DebugPreferencesGroup from private to protected so they could be accessed from our subclass
2.        Added boolean field "showServerOption" so in our subclass we could turn off the display of the "Load from Server" button
3.        Modified to UI creation to respect the new "showServerOption" boolean field
4.        Added protected method "createFileSelectionDialog".  This allows us to override in a subclass and provide MyEclipse specific Project file selection dialog
5.        Added protected method "getWebContentRelativePath".  This allows us to override in a subclass and provide MyEclipse specific lookup into MyEclipse webprojects
2.        WebLaunchConfigurationDelegate.java - dded protected method "createDebugJobForURL(url)".  This allows us to provide a subclass that overrides this method and creates a MyEclipse subclass of MozillaDebugJob instead of the normal MozillaDebugJob.
3.        WebLaunchShortcut.java - Added protected method "launchConfiguration(...)" so that in a subclass we could add some MyEclipse specific runtime checks before we actually launch the configuration.
4.        DebugPreferencesGroup.java - Added a public method "setEnabled(boolean)".  For our WebLaunchConfigurationTab subclass we have conditions where we need to disable all controls on the UI.
Patch file: 02.debug_patches.txt
1.        MozillaDebugJob.java
1.        Added new constructor so that subclasses can be created that has less parameters
2.        Added protected method "getDebugBrowser".  This method allows us to provide a MozillaBrowser that may already be running
2.        MozillaDebugPlugin.java - Added null check for appPath because in some MyEclipse configurations appPath can be null and it seems that it will work just fine even when appPath is null.
3.        MozillaDebugUIPlugin.java
1.        Added static method "setJSDebugViews" which allows us to set MyEclipse views to be apart of the JSDEBUGVIEWS array which is used for to open debug related views on various events.
2.        Enhanced a for loop that goes through open editors in the workbench to close MozillaBrowserEditor.  The enhanced for loop will go through multiple workbenches instead of just the active workbench.  In MyEclipse sometimes the Mozilla Browser Editor may be open in a 2nd workbench.
4.        plugin.xml
1.        Had to comment out the debugMozillaPresentation declaration so we could redeclare it in our plugin.  We needed to provide a subclass of the MozillaDebugModelPresentation class.  We needed to create our own subclass of the sourceDisplayUtil field.  Our sourceDisplayUtil subclass does some MyEclipse specific actions.
5.        JSDebugThread.java
1.        Added support for scriptListeners to the JSDebugThread.   In MyEclipse we needed to be notified when scripts were created or destroyed so we added this into the JSDebugThread class.
2.        Added IScriptListener interface that is used in the JSDebugThread class.
6.        JSDebugTarget.java
1.        Added a call to a new static class JSDebugTargetUtil, which only has one method to create the JSDebugThread.  We needed a way to provide a way that our own subclass of JSDebugThread would be used instead.  In our subclass we sometimes want to display things a little different in the scripts view.
2.        Added 2 null checks for debuggerService field.  In our internal tests we were running into some cases where the debuggerService was null, so we added the checks.
7.        JSDebugTargetUtil.java - This is a new static class that was created so we could override and create our own subclass of JSDebugThread.
Patch file: 03.source_lookup_patches.txt
1.        JSSourceLocator.java - Added protected method "findLocalResource" that we can override in our own subclass of JSSourceLocator.  We needed to add some MyEclipse specific resources lookup to this method.
2.        SourceDisplayUtil.java - Added protected method "createStorageEditorInput" so that in our own subclass we could create a StorageEditorInput that would be specific to the MyEclipse browser editor.
3.        SourceLocatorUtil.java
1.        Added static method to set the instance of the SourceLocatorUtil.  This way we could provide our own subclass instance of a SourceLocatorUtil that overrides several methods for finding resources.  
2.        Also we needed to provide our own Subclass for the URLStorage inner class which has MyEclipse specific options.
4.        JSDebugScriptElementSourceDisplayAdapter.java
1.        Made sourceLookupJob field protected so it can be set from subclass
2.        Added public method to inner class SourceLookupJob to allow setting of the sourceDisplayUtil field externally.  We set this to an instance of our own subclass of the sourceDisplayUtil to do MyEclipse specific tasks
3.        Made sourceDisplayJob field protected to so it can be set from subclass
4.        Added public method to inner class SoureDisplayJob to allow setting of the sourceDisplayUtil field externally.  We set this to an instance of our own subclass of the sourceDisplayUtil to do MyEclipse specific tasks.
5.        DebuggerSourceDisplayUtil.java - Added protected method "createURLStorage" to that we can create our own subclass of the URLStorage class that does MyEclipse specific tasks.
Patch file: 04.mozilla_browser_editor_patches.txt
1.        MozBrowserEditor.java
1.        Added protected method "createNavigationBar" so that we could override this method in our own subclass of MozBrowserEditor that will create another subclass of NavigationBar.
2.        Added 2 protected methods: "addMenuExtensionActions" and "addExtensionActions" so that we could override this methed in our own subclass of MozBrowserEditor.  In our subclass we add some additional actions to the toolbar.
3.        Added protected method "performGoAction".  This method we override in our subclass of MozBrowserEditor to do some MyEclipse specific tasks just prior to executing the real GO action.
2.        NavigationBar.java
1.        Made location field more generalized and protected so it could be accessed in our subclass.
2.        Added protected method "createlocationControl" that we could override in our subclass to add a MyEclipse specific feature.
3.        PopupWindowBrowserListener.java - Changed the declaration modifier for the class from default to public so that we could create a subclass.  In our subclass we need to create a MyEclipse specific subclass of the MozBrowserEditor for popups.
Patch file: 05.views_patches.txt
1.        ScriptView.java - Added protected method "getViewUnavailableMessage".  This way we can provide our own message that is display in the script view whenever the view is inactive.  
2.        _javascript_ConsolePage.java - Added protected method "createMessageFilter" that allows us to override that method in a subclass.  In our subclass we create our own subclass of ConsoleMessageFilter that filters some MyEclipse specific messages that were appearing in the _javascript_ console.
Patch file: 06.manifest_patches.txt
1.        This patch contains some changes we had to make in order to open up access to some internal classes.  
2.        Also, there are a few places that we made dependencies to org.eclipse.atf.core optional because we didn't include this plugin in our MyEclipse IDE.
If anyone is having trouble seeing the patches as attachements let me know and I can make them available another way.

I'd like to hear some feedback from the ATF team on these changes.  If there are some changes that do make sense for the ATF team to adopt let me know and I can enter bugzilla reports that request a specific API or extension enhancement.  But I'd like to get some direction from the ATF team before I just go opening bug reports that don't make sense.  You can either reply to the mailing list or if anyone wants to contact me directly to continue a discussion anything off of the newgroup my contact info is: greg_at_genuitec_dot_com

Thanks for your reply in advanced.

Best regards,
Greg Amerson
Genuitec
_______________________________________________
atf-dev mailing list
atf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/atf-dev


Back to the top