Twitter github

Posts Tagged with “pde”

Sneak peak at PDE 3.4M2

Eclipse 3.4M2 is coming out tomorrow so I figure I would give people a sneak peak at some of the PDE features for M2 (I can’t give it all away).

  • Quickfix around access restrictions
  • Problems with unresolved classes? PDE can help.
  • Improved editor functionality (drag and drop in manifest editor, highlighting externalized strings in source editors)
  • My little Plug-in Spy (ALT+SHIFT+F1) makes its debut. It may not be completely perfect yet, but it’s a good start at easing some significant pain in the Eclipse community. Look for some cooler features like menu sniffing in M3.

    Spying, WorkingSets, Log View

    So, it’s been busy in PDE land this week. Plus, there’s a lot of excitement regarding Austin City Limits… I mean 130 bands… Bob Dylan… Bjork… Muse…

    Here’s some items to keep people in the loop:

    • The famous log view from PDE is considering leaving us for greener pastures
    • All new project wizards can take advantage of working sets now… like PDE.
    • Plug-in Spy makes its debut in this week’s I-build (select something and press ALT+SHIFT+F1)

    August Eclipse BugDay Results

    I just wanted to let everyone know how the last Eclipse BugDay went. There were 30 bugs that were solved by 10+ contributors. Good stuff. I hope to attract more projects for the next Eclipse BugDay which will occur on September 28th. If you’re part of an Eclipse project and want to participate, check out the FAQ and feel free to ask me any questions on IRC.

    If someone wants to get an early start on bug day and happens to love working sets, here’s an easy one from PDE:

    [202797] – Plug-in working set description

    Or if you don’t like the color yellow, here’s another one:

    [174191] – [Manifest Editor] Extension attribute tool tip is yellow on Vista

    I’ll do my best to add some interesting ones for the next bug day from the PDE bucket when I triage the whole inbox later this week.

    Web development revisited

    After having a rough morning and cheering myself up by reading cuteoverload.com (freaky animatronic cats make me giggle), I started to work on an upcoming series of Rich Ajax Platform (RAP) articles. If you haven’t toyed with RAP, I suggest you try it out… because it’s one of the coolest things I played with in awhile. I mean, check this screenshot out below… that’s the famous PDE “RCP Mail” example running within RAP pretty much unmodified:

    Even though I believe web development is so 90’s, this type of stuff where you mix the things we come to love within Eclipse (extension registry, good modularity and versioning concepts, etc…) with “web 2.0” elements is the future of web development. Web development the Eclipse way ;)?

    If you step back for a second and ponder about it… we may have to revisit the way think about developing applications due to the success of OSGi. It is now possible to structure an application so that you can have core code that could run various environments: an embedded device / cell phone (eRCP), desktop (RCP) and web (RAP) without modification. This core code will serve as the bottom layer for your application. The next step would be divided into two pieces: UI bits that work on all or some of those platforms, and UI bits specific for those environments.

    In the end, you have a “hybrid application” if you put these elements together and you have quite a bit of code and skills re-use. Imagine developing an application that runs on the new Nokia S60, within an Eclipse RCP application and also on the web via RAP. Kind of cool eh?

    !@#$%^& Access Restrictions!

    In keeping with the “Enhancing New Plug-in Developer Experience” theme, PDE recently added new validation and a quickfix to help with access restriction issues that could be solved by exporting a package. For example, say you have two plug-ins: a and b. If a attempts to use a class from b and b doesn’t export the package containing the class, you’ll get a pretty warning and quickfix now:

    The next stops on the “Enhancing New Plug-in Developer Experience” train for me are:

    • 198724: Raise warning when . is not on bundle-classpath and there are source folders
    • 176360: Create marker if PDE projects uses external jar
    • 201347: Merge Plug-in Spy into PDE

    August Eclipse BugDay

    Just a reminder that bugday is coming up. Here’s some good requests that I think are solvable by new contributors:

    PDE

    • [183779] New Plug-In Project wizard should use new working set controls
    • [201606] Feature wizard should use new working set controls
    • [201607] Fragment wizard should use new working set controls
    • [201608] Plug-in from Jar wizard should use new working set controls
    • [201609] Update Site wizard should use new working set controls
    • [201566] XMLContentAssistProcessor, ExtensionAttributePointDetector make unnecessary casts

    Platform Debug

    • [51710] [display] Cannot do a Find/Replace in the DisplayView
    • [142989] Undo/Redo for Display view

    Webtools

    • [182235] JSF Facets requires an icon

    RAP

    • [200389] Link widget allows every html tag

    DSDP-TM

    • [188330] Problems Copying files with $ in name

    If you’re interested in a bug, simply state that you are in the bug and a committer can help you out.

    Plug-in Spy

    By popular demand, I tossed Plug-in Spy on a temporary update site for people to try out and give feedback. Note, it needs Eclipse 3.3+ and to try it out, simply select things and press F9. If you have ideas, feel free to file bugs or enhancements against the PDE Incubator with the tag [spy]. I recently added the support of getting at those pesky menu ids you need to contribute to Eclipse menus (thanks Paul Webster).

    Note, this is incubator code and there is no guarantee of stability or “product readiness.” Maybe given another bloody mary or two, I can add more functionality ;p

    Introspecting Eclipse

    William Godwin once said,

    The philosophy of the wisest man that ever existed, is mainly derived from the act of introspection.

    On my last plane ride (after a bloody mary), I did some introspection about what I think Eclipse is missing the most. With Eclipse 4.0 in the not so distant future possibly, it’s a good time for introspection.

    I tried to think back about 4-5 years ago when I started to first get into Eclipse development. What was the worst pain for me? Well, here’s a good one. One of my first Eclipse-related task was to extend a commercial IDE by adding some menu entries to an existing view and develop a new editor. Sounds easy? Well, at least not back then for me. I was scouring source code to find what the relevant “object contributions” would be along with looking for the source code of the Java editor as a staring ground. This ate up a lot of time for me and left me frustrated with Eclipse but I sort of grew accustomed to it as a normal way of development (plus, I got really familiar with the Eclipse plug-in base when time went on).

    I thought to myself… well, now that I’m a seasoned Eclipse developer armed with another bloody mary and about 90 minutes until my flight lands… what can I hack up as a proof of concept to improve my workflow? Let me introduce Plug-in Spy:

    What’s going on here? I simply selected a class within the Package Explorer and hit F9 to let Plug-in Spy introspect what’s going on with Eclipse at the moment. Plug-in Spy pops up and lets me know what the active part (along with the implementation class PackageExplorerPart and which plug-in it came from) and active selection. This may not look incredibly useful to a seasoned Eclipse veteran, but for newcomers who ask the question “Where can I see the source for this view or editor” (which by the way, is the #1 asked question at conferences for the PDE team).

    I also did a thought experiment while in the plane when analyzing one of the Mylyn features (Report as Bug):

    I thought… either Mik/Eugene/Rob must’ve scoured some Eclipse source code first to figure out what the proper way of adding this functionality would be. After they implemented it, they probably thought, “this shouldn’t of taken as long as it did.” If they were armed with good introspection tools, they would have seen that an object contribution of type LogEntry would do it:

    What’s the lesson learned here? Eclipse lacks good tools for introspection (we have things like SWTSpy but that’s not enough) in my opinion. I think when we look toward the future of Eclipse, we should keep tools like this in mind. This would allow developers to focus more on their implementation instead of crawling through and learning Eclipse’s internals.

    Note: The Plug-in Spy currently exists in the PDE Incubator and is not “product ready” nor are there plans currently to make it so at the moment. It’s simply a proof of concept for now to collect ideas and see what people think. My next step with the spy is to add support for getting information about menus. This will help with the eternal question of “oh my gosh, how do I contribute to this menu or toolbar.” If you’re interested in enhancements, please report them to bugzilla under the Incubators component with the [spy] header.

    Eclipse BugDay Results

    Sorry for the delay in writing up the results, but I’ve been on a plane and without my luggage for the last 36 hours (albeit in beautiful Verona) Now to the results…

    Thanks to everyone who participated in BugDay this time around. For some statistics:

    • 5 participating projects (ECF, WTP, Mylyn, PDE, Platform Ant)
    • ~10 contributors
    • ~125 bugs tagged as bugday bugs
    • ~22 bugs fixed
    • 10 of these bugs made it in Eclipse 3.4 M1

    For the first time around, I’m very pleased with the results. To be honest, I just expected me participating in bugday and maybe fixing a WTP bug in good spirit (all while Wassim makes fun of me for the idea of a bugday). However, the community turned out and fixed issues for the purpose of just helping out or fixed issues that have long bothered them in Eclipse. I think the willingness to help just reflects on the great community we have in Eclipse and also shows that the open-source model of development can be very beneficial if done right.

    There were some lessons I also learned:

    • It’s nice to have a specific time for people to log onto IRC and chat with committers (this is tricky due to timezone differences though).
    • Make sure that the bugs aren’t too hard that are marked as bugday. This was the big reason why the helpwanted keyword was so useless for new contributors.
    • Attaching relevant Mylyn contexts to bugs was helpful to some
    • Some people didn’t like the concept of BugDay and made it a BugWeek (thanks Peter)
    • Having specific bugs marked as bugday causes people to contribute time even outside of the official bugday!

    Thanks all again. The next bugday will be August 31st 2007. If you’re interested in participating, check out the FAQ and make your interest known on the wiki (or on relevant bugs).

    PDE and BugDay

    I just wanted to share something cool that has come out of bugday so far!

    But first, let me tell you a story! Have you ever worked on your cool plug-in project or product, drank a few glasses of wine (or some fine coffee porter) to see this in your project explorer view:

    External Plug-in Libraries…? Where did that come from? How many glasses of wine did I have? Where am I? I don’t remember creating that project.

    Well, I have good news, you didn’t create that project directly. If you ever took advantage of adding plug-ins to Java Search (which a lot of people do via the Plug-ins view), PDE indirectly created this project to help the awesome JDT search the plug-in(s) you’re interested in. I’ve always wanted this project hidden by default because it confused me as a new user and it will probably confuse other new users (some of which will probably delete that project when they see it anyway).

    So now back to bugday. Peter Friese submitted a patch and finally fixed this problem. There is now a filter that is on by default:

    Thanks Peter and check this out in the next I-build!