[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[News.eclipse.technology.cme] Re: how can all relationships be queried in CME search ?
|
- From: ossher@xxxxxxxxxx (Harold Ossher)
- Date: Wed, 14 Jul 2004 20:09:38 +0000 (UTC)
- Newsgroups: eclipse.technology.cme
- Organization: http://news.eclipse.org
- User-agent: NewsPortal/0.25 (http://florian-amrhein.de/newsportal/)
Sushil,
You have hit some relationships not yet supported by the current release
of the tools, and some inconsistency between this support and the menu!
Details are given below. Sorry for the confusion. In the immediate term,
we are fixing the menu so that it will only show the currently-supported
relationships. In the longer term, we are improving the whole area of
handling different kinds of relationships arising in different kinds of
artifacts.
Sushil Bajracharya wrote:
> I am trying to build a concern model for one of my projects and am using the
> CME Search to locate related concerns. The only relatioship that gives me
> any results is the 'implements' relationship. For instance a query like "
> relationship contains(class *, method get*) " that I use to locate all the
> accessor methods in all the classes won't yield any result.
"contains" is not supported yet.
> Even the query "
> relationship *(*, *) " lists only three relationships "connectionTo" ,
> "extends" , and "implements".
For Java artifacts, these are the only relationships that can currently be
used in queries. Any others will return empty results, as you have
observed. (However, if you select a "connectionTo" relationship between
two classes in the search results view, right click and then select
"expand", you will see other, more detailed relationships, like "invokes",
but these cannot yet be used in queries).
> So I am wandering how can I search for other
> realtionships viz - contains, depends , invokes, references and so on...
"depends" and "invokes" are currently provided by Ant files only (e.g.,
build.xml). If you have such files in your project, you should see some of
these, otherwise not. Of course, "invokes" is a good concept in Java too,
but the current version of the system does not compute them (except via
"expand", as noted above).
> Another example that doesnot give me any result is "relationship extends(*,
> *emote)" where I am looking for everthing extending java.util.Remote. Even
> though there are handful of those classes in the project I donot see any
> result after running that query.
An analogous query is working for me now. I believe this problem was
caused by a recently-fixed bug. The fix will be in a release coming soon.
> Also in the concern explorer the only relationships i can navigate into are
> 'ConnectionFrom', 'ConnectionTo', 'extends' and 'implements'. Why is this
> set of relationships different from the set of relationships I can choose
> from the CME Search Dialog (contains,depend and so on) ?
I think this is covered by the discussion above. "ConnectionFrom" is the
inverse of "ConnectionTo". You should also be seeing "extendedBy" and
"implementedBy".
> Also the Relations
> navigation branches of all the methods in the concern explorer are terminal,
> i.e I cannot navigate relationships like 'Invokes' or 'invokedBy' from
> there.
Yes. Currently only class-level relationships are computed for Java
artifacts (except for "expand"). This is because computing all
relationships on members for a workspace is prohibitive. We are working on
computing them on-demand, so that these navigation branches will work, but
the plan is to package that functionality with a variety of related
improvements in a later release.
> Isn't the Concern Explorer is somewhat like a tree based navigation for the
> DAG for the concern model ?
Exactly. In fact, if you consider all relationships and their inverses,
the concern model is a general graph. More graphical views of the concern
model would be interesting and desirable, in addition to the basic
tree-based one.
> I am using Eclipse 2.1.3 and running CME in a 'self-hosting' mode as I was
> planning for some extension, but these problems stuck me for a moment. I
> also see that in the parent workspace that I launched eclipse with CME the
> console is printing messages like -
> ....
> Unhandled exception caught in event loop.
> Reason:
> java.lang.NullPointerException
I can't explain this without more information (beyond saying that Eclipse
is catching a NullPointerException thrown by our code. Unfortunately, it
is not providing a stack trace. I think there should be one in the Eclipse
log for the runtime workspace (workspace/.metadata/.log, where "workpace"
is the one in which the CME plugin is running). Would you please check
this and send me the stack trace?
> ?? Found unit edu.uci.ics243f.WineService.getStartLocation() which has no
> artifact
> ....
This one is something of a mystery to me. Does it happen for lots of
units? Can you identify anything special about those it happens to? Are
they all methods? The good news is that it might not matter; certainly,
the CME just carries on after reporting this.
> Am I missing some fundamental knowledge? Am I missing some basic reading? I
> have almost gone through most of the documents available online.
No, it's more that the current release is missing something! The upcoming
release should help a bit, as noted above, though some of the problem
won't be addressed until later. Also, using the CME on a workspace where
many projects (such as all the CME projects) have the CME nature is likely
to cause serious performance problems at present.
> Thanks.
> Sushil
I hope this is enough to enable you to continue with your work.
- Harold