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

Org.eclipse.ecf.sdk.cquery

Revision as of 15:11, 19 January 2010 by Tkubaska.ieee.org (Talk | contribs)

Return to Building ECF Release 3.2

The cquery files work with the rmap file. For your queries to resolve against repositories (source code or binary), you need to construct a Buckminster Resource Map (rmap) (Bucky Book, page 46).

What's inside the cquery file? You can use the Component query editor (part of Eclipse's Buckminster plugin) to view the cquery file. Or you can just read and edit the xml.

  • Identify the rmap if you are using one (we are).
  • Give the component a name (org.eclipse.ecf.sdk) and a type (eclipse.feature).
  • We are not specifying a version designator. I mean we specify ?==Version but then we do not identity Version.
  • Note that target.arch, target.os, and target,.ws have values of *. These values may become important later when we figure out how to use different target platforms.
  • Lots of advisor nodes. These provide advice to the Buckminster resolution process.

Order is important for the advisor nodes. An advisor node is identified by a name pattern, which “is a regular expression pattern that is used to select the components that should receive the advice provided in the advisor node. “ (Bucky Book, page 50).

org.eclipse.sdk,cquery has six advisor nodes. The first five specify that components matching the patter do not use a target platform (exactly what does this mean) and do not use a workspace (for what? ... rsolution?). The last advisor node (.*) rejects any component not matched by a previous advisor node.

^ch\.ethz\.iks(\..+)?
Matches ch.ethz.iks.anything.

^org\.eclipse\.ecf(\..+)?
Matches org.eclipse.ecf.anything

^org\.eclipse\.team\.ecf(\..+)?
Matches org.eclipse.team.ecf.anything

^org\.jivesoftware\.smack$
Matches org.jvesoftware.smack exactly.

^org\.json$
Matches org.json exactly.

^org\.eclipse\.equinox\.p2\.user\.ui$
Matches org.eclipse.equinox.p2.user.ui exactly.

.*
Anything not matched by a previous advisor node is rejected.

Here is the latest version of org.eclipse.ecf.sdk.cquery.

Here's the latest version of the org.eclipse.ecf.sdk.cquery file.

<?xml version="1.0" encoding="UTF-8"?>
<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="ecf.rmap">
    <cq:rootRequest name="org.eclipse.ecf.sdk" componentType="eclipse.feature"/>
    <cq:property key="target.arch" value="*"/>
    <cq:property key="target.os" value="*"/>
    <cq:property key="target.ws" value="*"/>

    <cq:advisorNode namePattern="^ch\.ethz\.iks(\..+)?" useTargetPlatform="false" 
    useWorkspace="false">
    
    <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
       This name pattern matches ch.ethz.iks.anything.

       The regex (\..+)? matches zero or more occurrences 
       of . followed by one of more of any character.

       Skip Component is not checked.
    </cq:documentation>

    </cq:advisorNode>

    <cq:advisorNode namePattern="^org\.eclipse\.ecf(\..+)?" useTargetPlatform="false" 
    useWorkspace="false">
        
    <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
       This name pattern matches org.eclipse.ecf.anything.

       The regex (\..+)? matches zero or more occurrences 
       of . followed by one of more of any character.

       Skip Component is not checked.
    </cq:documentation>

    </cq:advisorNode>

    <cq:advisorNode namePattern="^org\.eclipse\.team\.ecf(\..+)?" useTargetPlatform="false"  
    useWorkspace="false">
    
    <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
       This name pattern matches org.eclipse.team.ecf.anything.

       The regex (\..+)? matches zero or more occurrences 
       of . followed by one of more of any character.

       Skip Component is not checked.
    </cq:documentation>
    
    </cq:advisorNode>

    <cq:advisorNode namePattern="^org\.jivesoftware\.smack$" useTargetPlatform="false" 
    useWorkspace="false">
    
    <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
       The name pattern matches org.jivesoftware.smack exactly.

       Skip Component is not checked.
    </cq:documentation>

    </cq:advisorNode>
    
    <cq:advisorNode namePattern="^org\.json$" useTargetPlatform="false" 
    useWorkspace="false"/>

    <cq:advisorNode namePattern="^org\.eclipse\.equinox\.p2\.user\.ui$" skipComponent="true" 
    useTargetPlatform="false">
    
    <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
       The name pattern matches org.eclipse.equinox.p2.user.ui exactly.

       Skip Component is checked so that this component which comes from 
       the platform is not resolved.
    </cq:documentation>
    
    </cq:advisorNode>

    <cq:advisorNode namePattern=".*" mutableLevel="REJECT" sourceLevel="REJECT">
    
    <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
       Everything not picked up by the previous name patterns is rejected.
    </cq:documentation>
    
    </cq:advisorNode>

</cq:componentQuery>

Back to the top