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

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

 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Return to [[Building ECF Release 3.2]]  
 
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).
+
org.eclipse.sdk,cquery has seven advisor nodes. The first five specify that components matching the pattern do not use a target platform (exactly what does this mean?) and do not use a workspace (for what? ... resolution?). The last advisor node (.*) rejects any component not matched by a previous advisor node.  
  
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.
+
The advisor node ^org\.eclipse\.equinox\.p2\.user\.ui$ has Skip Component = true. Docs day that setting Skip Component = true means that the component is not resolved. Why is this what we want here? What exactly does it mean?
  
<ul>
+
The advisor node ^org\.eclipse\.equinox\.p2\.user\.ui$ has Skip Component = true. Docs say that setting Skip Component = true means that the component is not resolved. Why is this what we want here? What exactly does it mean? This node also does not  specify useWorkspace=false. Note that in the Component Query Editor the selection for workspace in Resolution Scope is selected and disabled (shaded, cannot be changed) if Skip Component is true. However, you can edit the xml version of the file and set Workspace=true. If you do this, the checkbox in Resolution Scope is checked, but still disabled.
<li>
+
Identify the rmap if you are using one (we are).
+
</li>
+
<li>
+
Give the component a name (org.eclipse.ecf.sdk) and a type (eclipse.feature).
+
</li>
+
<li>
+
We are not specifying a version designator. I mean we specify ?==Version but then we do not identity Version.
+
</li>
+
<li>
+
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.
+
</li>
+
<li>
+
Lots of advisor nodes. These provide advice to the Buckminster resolution process.
+
</li>
+
</ul>
+
<p>
+
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).
+
</p>
+
  
<p>
+
=== List of advisor nodes ===
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.
+
</p>
+
<dt>^ch\.ethz\.iks(\..+)?
+
<dd>Matches ch.ethz.iks.anything.
+
  
<dt>^org\.eclipse\.ecf(\..+)?
+
;^ch\.ethz\.iks(\..+)?  
<dd>Matches org.eclipse.ecf.anything
+
:Matches ch.ethz.iks.anything.
  
<dt>^org\.eclipse\.team\.ecf(\..+)?
+
;^org\.eclipse\.ecf(\..+)?  
<dd>Matches org.eclipse.team.ecf.anything
+
:Matches org.eclipse.ecf.anything
  
<dt>^org\.jivesoftware\.smack$
+
;^org\.eclipse\.team\.ecf(\..+)?
<dd>Matches org.jvesoftware.smack exactly.
+
:Matches org.eclipse.team.ecf.anything
  
<dt>^org\.json$
+
;^org\.jivesoftware\.smack$  
<dd>Matches org.json exactly.
+
:Matches org.jvesoftware.smack exactly.
  
<dt>^org\.eclipse\.equinox\.p2\.user\.ui$
+
;^org\.json$  
<dd>Matches org.eclipse.equinox.p2.user.ui exactly.
+
:Matches org.json exactly.
  
<dt>.*
+
;^org\.eclipse\.equinox\.p2\.user\.ui$
<dd>Anything not matched by a previous advisor node is rejected.
+
:Matches org.eclipse.equinox.p2.user.ui exactly.
  
Here is the latest version of org.eclipse.ecf.sdk.cquery.
+
;.*
<p>
+
:Anything not matched by a previous advisor node is rejected.
Here's the [[latest version of the org.eclipse.ecf.sdk.cquery file]].
+
</p>
+
  
<pre>
 
<?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"
+
Here's the [[latest version of the org.eclipse.ecf.sdk.cquery file]]. Check the repository for the actual version used in the build. The version provided here is for convenience only, although we make a reasonable attempt to keep it current. The cquery files (once we determine exactly what we want) should not change frequently.
    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>
+
</pre>
+

Latest revision as of 18:27, 20 January 2010

Return to Building ECF Release 3.2

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

The advisor node ^org\.eclipse\.equinox\.p2\.user\.ui$ has Skip Component = true. Docs day that setting Skip Component = true means that the component is not resolved. Why is this what we want here? What exactly does it mean?

The advisor node ^org\.eclipse\.equinox\.p2\.user\.ui$ has Skip Component = true. Docs say that setting Skip Component = true means that the component is not resolved. Why is this what we want here? What exactly does it mean? This node also does not specify useWorkspace=false. Note that in the Component Query Editor the selection for workspace in Resolution Scope is selected and disabled (shaded, cannot be changed) if Skip Component is true. However, you can edit the xml version of the file and set Workspace=true. If you do this, the checkbox in Resolution Scope is checked, but still disabled.

List of advisor nodes

^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's the latest version of the org.eclipse.ecf.sdk.cquery file. Check the repository for the actual version used in the build. The version provided here is for convenience only, although we make a reasonable attempt to keep it current. The cquery files (once we determine exactly what we want) should not change frequently.

Back to the top