RuleProvider's and Rule's metadata
by Ondrej Zizka
Hi all,
I am working on the categories.
I think we all agree that this should have a nice API since every rule
will work with that, directly or indirectly.
We will get more metadata, and "hiding" them into various places,
untyped hashmaps of lists of strings, really seems like a bad way to do it.
After some work on the subject, I think we should abandon the current
unfortunate approach of Rules acting like a map through being a Rule and
Context at the same time, needing conditional retyping. And the other
way of overriding methods like enhanceMetadata() is not fortunate either
as every subclass needs to be aware of what's going on in the superclasses.
Instead, we should follow the *conventions*, take the *standard*
approach, and let Rules have a normal getMetadata(), which would return
an object with all the metadata at one place. This could be subclassed
to match the needs of individual addons but provide type-safe and
easy-to-use API for shared metadata.
getPhase(), getExecute*(), getCategories() etc. could
a) still return what they return, being executed by the loader as now,
and put to that object, or
b) let the rule initialize this object in rule's init() (which we don't
have) or a construtor;
I would drop get*() but we could tunel them to that object for
backwards compatibility.
I think this goes beyond the scope of Windup and would need a rewrite of
Rewrite (well, not real rewrite, but I liked the pun :).
Other option is to keep scattering metadata in various places, untyped
hashmaps of lists of strings. Not recommended.
WDYT?
Ondra
9 years, 10 months
Windup meeting minutes - 2015-02-25
by Lincoln Baxter, III
Minutes:
http://transcripts.jboss.org/meeting/irc.freenode.org/windup/2015/windup....
Minutes (text):
http://transcripts.jboss.org/meeting/irc.freenode.org/windup/2015/windup....
Log:
http://transcripts.jboss.org/meeting/irc.freenode.org/windup/2015/windup....
Meeting summary
---------------
* Agenda (lincolnthree, 15:00:51)
* Status Reports (lincolnthree, 15:01:16)
* I have completed WINDUP-508 (origin field for WindupRuleProvider to
make debugging easier) (jsightler, 15:02:38)
* Also, as part of WINDUP-465, I moved the rules to the
windup-rulesets repository and created a little test suite for rules
in there. The test suite makes it easy to build tests with only a
.windup.test.xml file (that itself looks very similar to a Windup
ruleset). (jsightler, 15:03:39)
* And finally, I have been working on WINDUP-515. This is almost done,
it's just waiting on the tests to run again. (jsightler, 15:04:10)
* I'll be looking at JIRA for next tasks after this is done.
(jsightler, 15:04:48)
* Last week I worked on doing some political stuff. I've drafted our
Product Integration Plan and have put it out for review. It's in our
admin folder on gdrive if you want to check it out.
(https://docs.google.com/document/d/1p7A08CI7BuhdlXbkIdQzs-zn5bnLu7ThW-Toq...)
(lincolnthree, 15:05:37)
* I also reviewed several PRs (lincolnthree, 15:05:37)
* I'm working on the Furnace test-harness improvements to simplify
dependencies in test cases (removing duplication) (lincolnthree,
15:05:37)
* Next I plan on finally merging the archive identification
improvements or from ozizka (lincolnthree, 15:05:37)
* I was facing the problem that happened to jmorales, it consist of 2
issues, one of which is WINDUP-516 that is already merged
(mbriskar, 15:09:49)
* I was working with sgilda to explain rules so their creation may be
documented in the future (mbriskar, 15:11:10)
* I am working on AST, still.. In some cases we are much better (7
matches went to 13 correct ones), but in some other cases there are
gaps in which the new AST parsing is worse (mbriskar, 15:12:14)
* Priorities (lincolnthree, 15:14:25)
* We are almost done with our feature work for 2.2.0.Final (plus some
added bonuses) (lincolnthree, 15:15:12)
* Once we are pretty sure we are done, I think we should do some work
on our code debt. We'll have a few weeks left before the release,
and if new feature requests come in, or if we have ideas to work on
(like perhaps taking jsightler's test harness and making it more
robust,) then I think we should do those as well. (lincolnthree,
15:15:59)
* Release Status (lincolnthree, 15:17:14)
* As I just said, we are nearly feature-done for the Release, so we'll
be working on code-debt. (lincolnthree, 15:17:35)
* EAP team partnership (lincolnthree, 15:20:05)
--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
9 years, 10 months
Furnace not auto-including transitional test deps?
by Ondrej Zizka
Hi,
does Furnace auto-load test deps? I recall Lincoln saying it does.
However it seems not to be true.
I use WindupException in a test class. That test depends on
:windup-config, which depends on :utils.
But unless I specify :utils as a dependency in getDeployment(), it fails
with that class not being found.
Am I missing something, or Forge test utils do not load the transitional
deps?
Thanks,
Ondra
9 years, 10 months
GraphContext in CDI?
by Ondrej Zizka
Hi,
I was playing with CDI, trying to inject GraphContext into
ArchiveIdentificationGraphChangedListener.
The original way to get it there is through constructor param.
So I changed is so it is passed by setter, for the purpose of this
experiment.
When I added @Inject GraphContext grCtx; it is injected something
different than what the setter gets. I.e. different instances.
So I conclude that this in GraphContextImpl
@Produces
@ApplicationScoped
public GraphContext produceGraphContext()
is not really giving something application scoped.
Why?
I know there's GraphContextFactory, but still - @Inject'ing
GraphContext, in the current setup, should IMO return the same
GraphContext - or not?
Thanks,
Ondra
9 years, 10 months
Effective Github search?
by Ondrej Zizka
Hi,
a bit OT question: How do you search code on github when you want to
show some particular class?
Is there some trick in the UI to find a class of name XY?
Thanks,
Ondra
9 years, 10 months
Windup meeting minutes - 2015-02-18
by Lincoln Baxter, III
We did a combined IRC/hangout meeting that seemed to work well. Ondra took
minutes down.
Minutes (text):
http://transcripts.jboss.org/meeting/irc.freenode.org/windup/2015/windup....
Log:
http://transcripts.jboss.org/meeting/irc.freenode.org/windup/2015/windup....
Meeting summary
---------------
* Status Reports (lincolnthree, 15:05:19)
* I was finishing the archive identification (ozizka, 15:13:33)
* Waitning for the PR's review now (ozizka, 15:14:05)
* Since monday, I was looking at the metadata and how to implement the
rule categories (ozizka, 15:14:44)
* (See the topic of this meeting) (ozizka, 15:14:55)
* I have also talked with one student working on AST query language as
his diploma thesis, could be promising (ozizka, 15:15:16)
* Last week I worked on the Windup 2.1.0.Final release, and the
2.1.0.A release for samueltauil (lincolnthree, 15:16:40)
* This week I've been working on planning and organization
(lincolnthree, 15:18:10)
* Also reviewed and merged several PRs (lincolnthree, 15:19:30)
* Today I have a bunch of meetings, but I'll be working on reviewing
the PR for WINDUP-506 (lincolnthree, 15:20:07)
* My next task will be working on design with the team for Rule
externalization and categorization features (lincolnthree,
15:20:39)
* I worked on reporting fixes last week (WINDUP-502 and WINDUP-503)
(jsightler, 15:20:45)
* Also, I refactored into a split module set (WINDUP-464) for the
modules that did not have this already (jsightler, 15:21:11)
* Right now I am working on splitting the rule xml files into a
separate repository (jsightler, 15:21:29)
* Plans for this week: Like Lincoln, working on design (and impl)
with the team for categorization features (ozizka, 15:24:53)
* had 1 day off (sickday), besides working on AST (including several
issues like nested calls, hardcoded strings etc.) (mbriskar,
15:27:41)
* + working with consultants if will be needed (mbriskar, 15:28:39)
* Priorities (lincolnthree, 15:36:06)
* Priorities are in JIRA, everyone knows what they are doing (see
status reports) (lincolnthree, 15:37:11)
* Categories (lincolnthree, 15:37:14)
* Ondra suggests Java types based categories mixed with strings and
1:1 mapping between those, (ozizka, 15:49:36)
* but it might not be too beneficial, so Lincoln suggests using just
strings for now. (ozizka, 15:50:33)
* Typical use of tags (since source and target platform/framework have
special elements in the suggested XML design): (ozizka, 15:52:08)
* Freeform text for custom use by customers (ozizka, 15:52:26)
* Example apps - where, what, how (lincolnthree, 15:55:14)
* All apps we have is in the "known place". We don't have any metadata
for them, so we could add into file-level comments if possible
(ozizka, 15:59:35)
* It could be a base for our future testsuit (ozizka, 16:00:44)
* From/To split? (lincolnthree, 16:03:08)
* We could investigate facts about source application, store them in
graph, (ozizka, 16:07:22)
* and then let the target platform ruleset add what to do about that
facts. (ozizka, 16:08:48)
* Sande wants examples for "how to approach rule creation"
(lincolnthree, 16:11:02)
* Lincoln: We can revisit this once we have a problem that will need
such feature (ozizka, 16:11:05)
* (that was for the previous topic, I type slowly :) (ozizka,
16:11:26)
--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
9 years, 10 months
Windup 2.0 Notification Level?
by Ian Tewksbury
Windup 1 used to have the idea of a NotificationLevel for hints which I then mapped to Eclipse problems levels. Looking at the InlineHintModel I no longer see an equivalent . Has this idea been removed from Windup 2? If so I'll just make it a user preference to set what level they want Windup Hints reported at.
Blue Skies,
~Ian
9 years, 10 months
Ident data smaller - String to byte[]
by Ondrej Zizka
1) If the data in the file were put as binary, the size would reduce
another ~ 25 %.
The same if stored to the database (if we stored it there).
Is it worth making the file not much readable as plain text?
2) Doing the same in data structures would reduce memory consumption
around 45 %.
But since it looks we will use the the binary, it doesn't matter much now.
Ondra
9 years, 10 months
AST processing remake
by Matej Briskar
Hi,
I examined the way we do Java class parsing now and type guess is only based on imports in the current file. As we know, this is limiting and it can be changed. I will need to change especially method calls(having qualified names(QN) for classes&arguments), extension(being able to catch even extension of superclasses with full QN) and interface implementation(implementation of superinterfaces with full QN).
I should be able to do that next week and thanks to Jess I already have a working example. I would rather properly test this functionality, so it may take few more days.
I will try to fix also these issues with this (based on feedback from windup usage):
maybe WINDUP-470 (https://issues.jboss.org/browse/WINDUP-470)
WINDUP-473 (https://issues.jboss.org/browse/WINDUP-473)
WINDUP-478 (https://issues.jboss.org/browse/WINDUP-478)
WINDUP-479 (https://issues.jboss.org/browse/WINDUP-479)
Matej.
9 years, 10 months