www.bsiag.com
 

Dynamic Working Sets: another way to define working sets

While working with the workspace containing the Scout demo applications, I have a lot of projects inside. The Scout Explorer presents a logical representation of each application. However, to access some files (like the MANIFEST.MF file) you have to use the Package Explorer View.

Explorer Views

A possibility is to group the projects corresponding to one demo application into a separate working set.

Of course you can work with PSF files (we have started to propose PSF files for each application), but there are still a lot of manipulations needed to import them correctly into the workspace. (See our current how to Download and Run Locally the Scout Demo Application).

During the last EclipseCon Europe I was told that a couple of good tools were provided by the CDO project. Dynamic working sets is one of them. It allows to define rules, to assign projects into a working set. Rules are based on predicates describing the project (name, pattern, nature, builder, file …) and logical operator predicates (and, or, not…).

Install the “CDO Release Engineering Dynamic Working Sets” feature from one of the update site:

(integration) http://download.eclipse.org/modeling/emf/cdo/updates/integration

(nightly build) http://hudson.eclipse.org/hudson/job/emf-cdo-integration/lastSuccessfulBuild/artifact

See the CDO download page to find the release corresponding to your Eclipse version.

Install Dynamic Working Sets

After a restart, you can start to define your dynamic working sets.

In the Preferences dialog navigate to: Release Engineering > Dynamic Working Sets. Click on the “Edit Button”.

Preferences Dynamic Working Sets

The “Dynamic Working Set Preferences” editor is opened in the Eclipse Workbench. Users familiar with EMF will make themselves at home.

The editor is simple to use. It represents the working sets as a tree. First level nodes correspond to the working sets and sub-level nodes are the combinations of predicates to collect the projects.
At the top level node, select “New Child > Working Set”.

New dynamic working set

The name of the new created working set can be defined in the Properties view. To add the first predicate you select again: “New Child > Name Predicate”

New predicate

Again in the Properties view you can set a Pattern. For the BahBah Chat Application we want to collect all projects with the name matching org.eclipsescout.bahbah.*

Finally you get a tree defining the working sets as follow:

Dynamic Working Sets Editor

After having saved the modifications in the editor the working sets are created. You can display them by choosing “Top level elements > Working sets” in the menu.

Display working sets

Here is the result:
Explorer Views (final)

Missing feature?
I haven’t found out how to import and export the configuration file. I was hoping to find an export and an import button in the preference page.

UPDATE 09.01.2014:
Eike Stepper recommends to use a recent version (integration or nighly build) of the Dynamic Working Sets feature, because a lot of bugs were fixed.

Scout Links: Scout Project Home, Forum, Wiki, Twitter

7 Kommentare zu diesem Thema

  1. Eike Stepper
    schrieb am 8. January 2014 um 14.09 Uhr

    Hi Matthias,

    Nice description! Please note that for CDO’s releng tools one of these p2 repos should be used:

    http://download.eclipse.org/modeling/emf/cdo/updates/integration
    http://hudson.eclipse.org/hudson/job/emf-cdo-integration/lastSuccessfulBuild/artifact

  2. Bananeweizen
    schrieb am 9. January 2014 um 07.29 Uhr

    Those dynamic working sets seem like something that the majority of Eclipse developers probably needs. But having them at the CDO releng update site category is basically hiding this really useful tooling. What is necessary to move such things more towards the Eclipse platform itself? Much more users would benefit if this were a standard plugin for Eclipse (or at least contained in the release train repository).

  3. Eike Stepper
    schrieb am 9. January 2014 um 09.17 Uhr

    Hi Bananeweizen,

    Thanks for your interest! I plan to register the feature with the Eclipse Market Place soon. It would be nice to have a help center plugin then, too. Adding it to the release train is also a good idea. I’ll eventually initiate a respective discussion on cross-project-issues-dev@eclipse.org .

  4. Aleksandar
    schrieb am 9. January 2014 um 16.51 Uhr

    Really nice feature. It would be nice to see it in the standard eclipse packages.

  5. Michael Scharf
    schrieb am 11. January 2014 um 00.43 Uhr

    I wrote a little dynamic working working set plug-in for EclipseCon Europe 2013. It is based on https://code.google.com/p/javadude/wiki/DynamicWorkingSets but without the limitation that it only matches projects.

    I don’t really understand why dynamic working sets are restricted to projects. I often want to search only a specific set of files which cannot be represented by project-working sets.

    Here is my version: https://github.com/scharf/queryworkingset and the update site is http://scharf.gr/eclipse/queryworkingset/updatesite/

    The key idea is that you can use regular expressions to include or exclude patterns.

    The idea was to expand it to use expressions but the version is enough for what I need. I called it query working sets, because I envisioned to implement a full resource set query language.

    I am happy to see something more advanced and I think it would be great if it would be more public.

    The key idea is to have set of expressions that either include or exclude files or directories:

    E.g.

    \.java$
    -test

    Lines that start with a minus are exclusions. Thus this matches all java files except the ones containing test (anywhere in the path)

    Or another set of patterns for documentation

    .*[.](md|txt|markdiwn|sd)
    README*
    readme*
    -.*(node_modules|python2.7).*

    I am processing the patterns in reverse order. Once a file is included, not pattern before that can exclude it and likewise, if a pattern excludes a file, not pattern before that can include the file…

    Maybe we could combine the two approaches….

    BTW: If I install the plugin, I don’t see the “Dynamic Working Set Preferences” page….

    Michael

  6. Michael Scharf
    schrieb am 11. January 2014 um 01.03 Uhr

    …the nightly version is working for me :-) (I used this update site: http://hudson.eclipse.org/hudson/job/emf-cdo-integration/lastSuccessfulBuild/artifact)

  7. Jeremie Bresson
    schrieb am 4. February 2014 um 08.14 Uhr

    @Michael Scharf:

    I agree with you, this feature has nothing to do with CDO and could be used by more people. This is why I wrote this blog post (how-to for beginners) and the wikipage:
    https://wiki.eclipse.org/Setup-Eclipse/Dynamic_working_sets

    I must say that I also understand the CDO team. Moving it outside the CDO project requires a lot of effort (infrastructure, documentation…). Maybe some days they will, but I imagine that their priority is that it is working for them.

    I didn’t see your presentation at ECE2013, but I discussed it with someone in our company who did. I hope you will see that I mentioned “queryworkingset” in the Alternative section of

    If you what to work with Ed Merks or Eike Stepper on a new feature, do not hesitate to contact them (EMF Mailing list or EMF Forum). I tried it and got enough to start this blog post.

    There is a lot of good stuff around the Eclipse IDE… Like in any open source project, it is necessary to make people aware of it.


Trackbacks
Diesen Eintrag kommentieren
Wir sind sehr an einer offenen Diskussion interessiert, behalten uns aber vor, beleidigende
Kommentare sowie solche, die offensichtlich zwecks Suchmaschinenoptimierung abgegeben
werden, zu editieren oder zu löschen. Mehr dazu in unseren Kommentarregeln.