Hi all,
as I promised, hereby I am proposing how the migration should look like
in the bigger picture.
I don't say we need all the described parts, but I have a good reason to
believe we do.
Details are described in respective Jira issues. The root Jira issue is
MIGR-229.
See the attached whiteboard photo for an overview. Slightly chaotic, as
drawn on the fly, and it's not complete anyway. Let's make a better one
on F2F.
General:
======
1) Server rules in it's own ruleset. Probably also in separated git repo
(as it is now).
2) The ruleset will reuse certain operations from other rulesets:
XPath query to XML documents,
.properties parsing,
possibly decompilation and analysis of classes - e.g. Tomcat
valves, maybe Spring beans, JMX mBeans (esp. for EAP 4), implementations
of various interfaces used for EAP 5, etc.
3) The ruleset will provide certain new
conditions, like CLI parsing,
and operations, like
CLI operations export, in a form of WINDUP-565
<
https://issues.jboss.org/browse/WINDUP-565>
CLI commands in the report, with comments, highlights
of the source it was derived form, links to EAP/WildFly docs, etc.;
CLI commands script;
CLI commands execution against some running server
Adding a module to EAP 6 target
Installing a fresh target server (if handy)
We can look at Eduardo's WINDUP-550
<
https://issues.jboss.org/browse/WINDUP-550> to see what we can reuse
for these.
4) The server ruleset will probably have a bit stronger source/target
technology split, in terms of respective rules being more organized into
individual addons. Not sure about this, depends on the mechanism we use
to enable/disable them.
5) To prevent running the app rules against server files, resp. to
support running app and server rules together, we need to update the
queries of some app rules to only focus on appropriate files. WINDUP-564
<
https://issues.jboss.org/browse/WINDUP-564> and WINDUP-563
<
https://issues.jboss.org/browse/WINDUP-563> . This is what I would
like to work on next. Now working on WINDUP-566
<
https://issues.jboss.org/browse/WINDUP-566> .
Parts:
====
Target technologies:
So far, we consider EAP 6 as target server. The long-term goal of EAP
6 is to cover configuration with CLI. Not sure about current state, but
it needed some additional actions - direct file manipulation (e.g. modules).
Maybe some other target technologies? Depends on what is Windup used
for. SOA? Drools? Containers for these might require additional
configuration.
Source technologies:
The platforms we target long-term. It will be mostly XML and
.properties. But could also be more tricky parts, like, digging data
from EAP 5's ProfileService, mod_cluster config?, etc.
Platform identification and files comparison: WINDUP-562
<
https://issues.jboss.org/browse/WINDUP-562> (Done)
As discussed during last status meeting, it will be useful to
recognize the server version - the user may not know the exact
version, which we need to know the default configuration (in case of CLI
script migration which just skips the defaults.)
recognize which files were changed compared to the distribution
of that version - i.e. which configuration files changed (and we don't
handle them) and which .jars are changed.
-------------
Those are rough boundaries. Anything to add or remove? And priorities?
Ondra