Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Org.eclipse.ecf.sdk.cquery"

Line 60: Line 60:
 
     <cq:property key="target.ws" value="*"/>
 
     <cq:property key="target.ws" value="*"/>
  
     <cq:advisorNode namePattern="^ch\.ethz\.iks(\..+)?" useTargetPlatform="false" useWorkspace="false">
+
     <cq:advisorNode namePattern="^ch\.ethz\.iks(\..+)?" useTargetPlatform="false"  
 +
    useWorkspace="false">
 
      
 
      
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
Line 73: Line 74:
 
     </cq:advisorNode>
 
     </cq:advisorNode>
  
     <cq:advisorNode namePattern="^org\.eclipse\.ecf(\..+)?" useTargetPlatform="false" useWorkspace="false">
+
     <cq:advisorNode namePattern="^org\.eclipse\.ecf(\..+)?" useTargetPlatform="false"  
 +
    useWorkspace="false">
 
          
 
          
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
Line 86: Line 88:
 
     </cq:advisorNode>
 
     </cq:advisorNode>
  
     <cq:advisorNode namePattern="^org\.eclipse\.team\.ecf(\..+)?" useTargetPlatform="false" useWorkspace="false">
+
     <cq:advisorNode namePattern="^org\.eclipse\.team\.ecf(\..+)?" useTargetPlatform="false"
 +
    useWorkspace="false">
 
      
 
      
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
Line 99: Line 102:
 
     </cq:advisorNode>
 
     </cq:advisorNode>
  
     <cq:advisorNode namePattern="^org\.jivesoftware\.smack$" useTargetPlatform="false" useWorkspace="false">
+
     <cq:advisorNode namePattern="^org\.jivesoftware\.smack$" useTargetPlatform="false"  
 +
    useWorkspace="false">
 
      
 
      
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
Line 109: Line 113:
 
     </cq:advisorNode>
 
     </cq:advisorNode>
 
      
 
      
     <cq:advisorNode namePattern="^org\.json$" useTargetPlatform="false" useWorkspace="false"/>
+
     <cq:advisorNode namePattern="^org\.json$" useTargetPlatform="false"  
 +
    useWorkspace="false"/>
  
     <cq:advisorNode namePattern="^org\.eclipse\.equinox\.p2\.user\.ui$" skipComponent="true" useTargetPlatform="false">
+
     <cq:advisorNode namePattern="^org\.eclipse\.equinox\.p2\.user\.ui$" skipComponent="true"  
 +
    useTargetPlatform="false">
 
      
 
      
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">
 
     <cq:documentation xmlns="http://www.w3.org/1999/xhtml">

Revision as of 17:15, 19 January 2010

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 current version of org.eclipse.ecf.sdk.cquery.

<?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