Hi Rafael,
We also got runtimes like drools and seam which aren't exactly servers.
Also, can we have runtimes listed without having matching archetypes ?
i.e. if we would like to move all our existing info over to stacks.yml
instead of having it spread over we would need this runtime list without
having matching bom's etc.
/max
On Mon, Apr 01, 2013 at 09:25:52AM -0300, Rafael Benevides wrote:
Hi!
Since we can always add these informations as we need. I'm using a "on
demand" approach, where someone or team who needs it, I ask to
provide a Pull Request with the Runtime/BOM/Archetype needed. Them I
test again and merge. Anyone can do the tests with 'mvn test'.
Just this :)
Since we haven't any other Runtimes than AS and EAP, I think we can
use the following ' runtime-type': JPP, SOAP, BRMS, GateIn, etc and
keep the same 'runtime-category: SERVER'.
Thank you :)
Em 01/04/13 05:39, Rob Stryker escreveu:
>Hi Rafael:
>
>I'm sure I and the tools team will have more questions in the
>future, but, right now one question I have is whether it's planned
>to add ALL of our runtimes to the stacks? Things like jpp, GateIn,
>SOA-P, etc?
>
>So far it seems limited to AS and EAP.
>
>Thanks!
>
>- Rob Stryker
>
>On 03/27/2013 12:39 AM, Rafael Benevides wrote:
>>Hi Fred and all JBDS team!
>>
>>The idea of "merge data from separate yaml files" doesn't worked
>>and we (JDF team) didn't put any more effort on it.
>>
>>The original idea is that we could join the information (appending
>>a new content to the original stacks.yaml) and use its YAML
>>anchors. To clarify what I'm saying, look the matrix.yaml file
(
https://github.com/jboss-jdf/jdf-stack/blob/1.0.0.Final/matrix.yaml)
>>it has some references to BOMs and archtypes that is defined on
>>original stacks.yaml.
>>
>>The main problem is that the new generarate yaml file is not
>>parsable via StacksClient (because it expects the original 1.0.0
>>format only) and a new "client" should be built to each new format
>>extension. This could make us loose the control since any data
>>change on stacks.uaml could impact all extensions that uses it. So
>>in fact: It was not a good idea to have this extensions on
>>separate files.
>>
>>The next "Stacks 1.0" planned evolution is
>>https://issues.jboss.org/browse/JDF-222 - Stacks should permit a
>>"Early Access" Runtimes - And because of the file format, this
>>"Early Acccess" will be a new "label" but I have afraid that
>>consumers must know that "allAvailableRuntimes" has
>>"Released/Final" and "Early Access" runtimes mixed. They
should
>>query the labels to distinguish them.
>>
>>That's my 2 cents.
>>
>>
>>Em 26/03/13 10:25, Fred Bricon escreveu:
>>>Hey Rafael,
>>>
>>>what's the status on the "merge data from separate yaml files"?
>>>I know you worked on that at some point.
>>>We'll most certainly need to combine JBoss Tools specific
>>>runtimes or infos with the existing JDF ones.
>>>
>>>Fred
>>>
>>>Le 02/03/2013 08:52, Rob Stryker a écrit :
>>>>license, size, and disclaimer can all be added in the labels
>>>>section of
>>>>the yaml.
>>>>
>>>>Max has already made it clear that having three things that do
>>>>the same
>>>>thing is wasteful and confusing, so the question isn't *if* we will
>>>>unify them, but rather *how*.
>>>>
>>>>On 03/01/2013 09:29 PM, Snjezana Peco wrote:
>>>>>I think we need to keep all of those options (since they already
>>>>>exist). Each of them has its advantages/disadvantages.
>>>>>I agree with the proposed changes and emphasize that stacks
>>>>>don't have
>>>>>the following properties:
>>>>>
>>>>>- license
>>>>>- size
>>>>>- requireSso (see
>>>>>https://github.com/jbosstools/jbosstools-base/pull/50)
>>>>>- disclaimer
>>>>>
>>>>>Snjeza
>>>>>
>>>>>On 3/1/2013 10:22 AM, Rob Stryker wrote:
>>>>>>I would like to hear some feedback here from Max and Snjezana.
>>>>>>
>>>>>>On 02/28/2013 08:05 PM, Fred Bricon wrote:
>>>>>>>I mostly agree with the changes you described. Here's my
0.02€ :
>>>>>>>- I strongly believe runtimes should be split into different
stacks
>>>>>>>descriptors, but I don't like the idea of having to
>>>>>>>maintain a fork of
>>>>>>>the JDF one. We should only add extensions (old AS'es,
>>>>>>>seam, ESB ...).
>>>>>>>- I believe the merge all stacks descriptors in one
>>>>>>>metamodel should be
>>>>>>>done in stacks client. I know Raphael kinda started
>>>>>>>working on that a
>>>>>>>few months back, he probably can give us his insight.
>>>>>>>- runtimes in stacks could list their managing JBT plugins in
the
>>>>>>>labels property : i.e if ESB runtime can be downloaded, but no
ESB
>>>>>>>plugin is installed, the we'd be able to discover both
>>>>>>>the runtime AND
>>>>>>>its associated plugin
>>>>>>>
>>>>>>>Fred
>>>>>>>
>>>>>>>Le mercredi 27 février 2013 18:22:35, Rob Stryker a écrit :
>>>>>>>>Regarding Stacks, Runtimes, and Remote Descriptors
>>>>>>>>
>>>>>>>>Hi All:
>>>>>>>>
>>>>>>>>This email is to try to begin discussion on some
>>>>>>>>recent duplication of
>>>>>>>>code and responsibilities, which should probably be fixed
before
>>>>>>>>things get too comfortable. I'm speaking specifically
>>>>>>>>about the role
>>>>>>>>of discovering runtimes to download, where that's
done, how that's
>>>>>>>>done, and which responsibility belongs to who. Forgive
>>>>>>>>me if the email
>>>>>>>>is long, as I am trying to be thorough.
>>>>>>>>
>>>>>>>>Currently, there are three places from which runtimes
>>>>>>>>to download may
>>>>>>>>be discovered.
>>>>>>>>
>>>>>>>>1) base/runtimes has an extension point named
>>>>>>>>downloadRuntimes, which
>>>>>>>>is used by AS Tools and Seam Tools (and perhaps others).
>>>>>>>>
>>>>>>>>2) a remote descriptor file which acts as a second arm
>>>>>>>>of 1) and is
>>>>>>>>basically an xml form of 1) used to dynamically add
>>>>>>>>new runtimes as
>>>>>>>>they become available
>>>>>>>>
>>>>>>>>3) The new Stacks methodology, currently stored in
>>>>>>>>jbosstools-central/maven/plugins/org.jboss.tools.maven.project.examples
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>We should begin unifying these three locations into
>>>>>>>>one, but the goal
>>>>>>>>is to do it correctly. So, I would first like to list
>>>>>>>>the benefits of
>>>>>>>>each.
>>>>>>>>
>>>>>>>>a) downloadable runtimes provided through the
>>>>>>>>extension point cannot
>>>>>>>>be removed without a maintenance or major release of
>>>>>>>>some type, and
>>>>>>>>for this reason are semi-permanent
>>>>>>>>
>>>>>>>>b) downloadable runtimes available via the remote
>>>>>>>>descriptor file may
>>>>>>>>be added OR removed at will. This provides flexibility
and
>>>>>>>>post-release updates are easy.
>>>>>>>>
>>>>>>>>c) The new stacks section has a more robust model
>>>>>>>>capable of providing
>>>>>>>>more information than the downloadable runtimes does.
However, the
>>>>>>>>plugin requires several libraries and is currently placed
in the
>>>>>>>>jboss-central module, where others may not make use of
it.
>>>>>>>>
>>>>>>>>d) the Stacks yaml file does not provide a place to
>>>>>>>>access the file
>>>>>>>>size for the download, however it does provide a
'labels' section,
>>>>>>>>which seems extendable to add whatever properties you
>>>>>>>>may want to add.
>>>>>>>>
>>>>>>>>At first glance, it seems that Stacks is the superior
>>>>>>>>framework. It is
>>>>>>>>extensible, it can have unlimited labels (aka
>>>>>>>>properties) if desired,
>>>>>>>>and it already provides more information which is
>>>>>>>>usable to others who
>>>>>>>>may want it. To make use of stacks inside Runtimes,
however, we'd
>>>>>>>>either need to:
>>>>>>>> a) Expand the API in runtimes to allow other
>>>>>>>>plugins (like in
>>>>>>>>central) to provide downloadable runtimes, or,
>>>>>>>> b) Push 'stacks' out of central and down
into
>>>>>>>>runtimes, as its
>>>>>>>>own
>>>>>>>>plugin upon which runtimes.core and runtime.ui can
depend.
>>>>>>>>
>>>>>>>>The main negative of pushing stacks into
>>>>>>>>base/runtimes, in my opinion,
>>>>>>>>is that there are a significant number of libraries
>>>>>>>>required. It's not
>>>>>>>>too much, by far, but it is about 7 jars totalling
>>>>>>>>about 1 megabyte.
>>>>>>>>Whether these jars belong in base/runtimes is
>>>>>>>>debatable, and currently
>>>>>>>>we do not have a "3rd-party dependencies"
section in base where we
>>>>>>>>organize common dependencies and versions together so
>>>>>>>>that each plugin
>>>>>>>>doesn't need to bundle their own 3rd party libraries.
>>>>>>>>I admit, this is
>>>>>>>>a debate for another time, but, I just wanted to point out
that
>>>>>>>>pushing the stacks logic down into runtimes would be
>>>>>>>>another example
>>>>>>>>of this issue.
>>>>>>>>
>>>>>>>>Even still, I would argue that we should push stacks into
its own
>>>>>>>>small plugin below runtimes, deprecate the
"downloadRuntimes"
>>>>>>>>extension point, and the online downloadRuntime.xml
>>>>>>>>(wherever the file
>>>>>>>>is, I forget).
>>>>>>>>
>>>>>>>>However, once we do that, there are many more
>>>>>>>>questions. The first is,
>>>>>>>>who's job is it to provide the yaml file from which
stacks are
>>>>>>>>generated?
>>>>>>>>
>>>>>>>>Currently there is only one yaml file, and it is
>>>>>>>>referenced directly
>>>>>>>>via a github url. Aside from how (IMO) this is fairly
>>>>>>>>crazy in itself,
>>>>>>>>it causes another problem. The stacks client jar *can*
>>>>>>>>cache the yaml
>>>>>>>>file and only update if the timestamp has changed,
however, when
>>>>>>>>checking the timestamp on a github file, there isn't
one...
>>>>>>>>
>>>>>>>>This would seem to imply we should take control of the
yaml file
>>>>>>>>ourselves and put it NOT in github but rather in a
>>>>>>>>release-specific
>>>>>>>>online-accessible folder, ex: jbt4.1/stacks.yaml,
>>>>>>>>jbt5.0/stacks.yaml,
>>>>>>>>etc.
>>>>>>>>
>>>>>>>>The problem with this is that we are then taking
>>>>>>>>control away from the
>>>>>>>>jdf team, and once we take the file away, it is our job to
keep it
>>>>>>>>updated and in synch. This may cause errors if we are not
very
>>>>>>>>careful.
>>>>>>>>
>>>>>>>>Assuming we do this, though, the next question is, do
>>>>>>>>we add seam and
>>>>>>>>esb runtimes to this yaml file, which currently only
provides
>>>>>>>>application servers? Remember, the purpose of moving
>>>>>>>>stacks down would
>>>>>>>>be to deprecate the downloadRuntime extension point,
therefore any
>>>>>>>>replacement would need to do everything
>>>>>>>>downloadRuntime does, which
>>>>>>>>includes providing seam and esb runtimes for download.
>>>>>>>>
>>>>>>>>Let's assume (for now) that we simply add lines to the
>>>>>>>>yaml to allow
>>>>>>>>it to provide seam and esb runtimes. We may come back
>>>>>>>>to this point
>>>>>>>>later, but for now, assume we do that.
>>>>>>>>
>>>>>>>>
>>>>>>>>Then which plugin will provide the url to our copied yaml?
Who's
>>>>>>>>responsibility is it to point to this yaml file? Let's
look at our
>>>>>>>>options:
>>>>>>>>
>>>>>>>>1) The runtimes plugin references the yaml
>>>>>>>>2) The central plugin references the yaml
>>>>>>>>
>>>>>>>>Both of these fail after thinking about it. How?
>>>>>>>>
>>>>>>>>1) If the runtimes plugin references the yaml, then the
download
>>>>>>>>runtimes dialog will list things (like seam) which may
>>>>>>>>not be present
>>>>>>>>in the installation. Imagine an installation with only
>>>>>>>>base and server
>>>>>>>>plugins installed, and so no seam or esb. A user
>>>>>>>>clicking 'download
>>>>>>>>runtimes' will see esb and seam downloads, but the
>>>>>>>>plugins which are
>>>>>>>>prepared to handle those runtimes after the download
>>>>>>>>are not present.
>>>>>>>>
>>>>>>>>2) If central is in charge of providing this yaml,
>>>>>>>>perhaps through a
>>>>>>>>new extension point to the base/runtimes/stacks plugin
>>>>>>>>we add there,
>>>>>>>>then an installation including only plugins from base
>>>>>>>>/ server will
>>>>>>>>have a BLANK download list. Users who install only
>>>>>>>>ASTools will not be
>>>>>>>>able to download JBoss Application Servers.
>>>>>>>>
>>>>>>>>So both of these fail in their own way. The only solution
as I can
>>>>>>>>see, the only way it would work, would be to have
>>>>>>>>multiple such yaml
>>>>>>>>files, one for astools, one for seam, one for esb,
>>>>>>>>etc. Each of these
>>>>>>>>modules would provide their own yaml url to
>>>>>>>>base/runtimes/stacks via
>>>>>>>>an extension point in base/runtimes/stacks, and let
>>>>>>>>stacks fetch each
>>>>>>>>one and build a unified model.
>>>>>>>>
>>>>>>>>Problems:
>>>>>>>> a) multiple urls need to be loaded
>>>>>>>> b) multiple yaml files need to be kept up to
>>>>>>>>date, instead of just
>>>>>>>>one. Multiply number of contributing plugins by number of
major
>>>>>>>>releases
>>>>>>>> c) Possibility of duplicates. Once you have
>>>>>>>>multiple yaml files
>>>>>>>>generating models, it's possible some duplication
>>>>>>>>leaks in. I'm not so
>>>>>>>>sure about this one, but Fred listed it as a concern.
>>>>>>>>
>>>>>>>>So, by my analysis, this is the only way I can imagine
>>>>>>>>a unification
>>>>>>>>of these three models. I'll summarize the changes
>>>>>>>>below, but it does
>>>>>>>>seem there would be a bit of work to do.
>>>>>>>>
>>>>>>>>Summary of changes:
>>>>>>>> 1) Deprecate downloadRuntimes extension point
>>>>>>>> 2) Create new plugin in runtimes module called
"stacks"
>>>>>>>> 3) Add extension point to 'stacks' plugin
called
>>>>>>>>stacksProvider
>>>>>>>> 4) modify runtime.core and runtime.ui to use the
>>>>>>>>model built in
>>>>>>>>'stacks'
>>>>>>>> 5) Create a web-accessible location for
jbt-release-relevent
>>>>>>>>data on
>>>>>>>>a per-module basis. For example,
>>>>>>>>http://wherever/jbt/4.1.0/stacks/astools.yaml, etc.
>>>>>>>> 6) Copy the current jdf yaml file to that location
>>>>>>>>for astools.yaml
>>>>>>>> 7) Create a new yaml file which can build stacks
>>>>>>>>for esb, seam, etc
>>>>>>>> 8) Ensure astools, esb, seam, etc, make use of the
new
>>>>>>>>stacksProvider
>>>>>>>>extension point
>>>>>>>> 9) Test the shit out of it
>>>>>>>>
>>>>>>>>There are other benefits to this approach. Currently
>>>>>>>>there's no really
>>>>>>>>good mapping of downloadRuntimes id's to an app-server
id. This is
>>>>>>>>done in a hard-coded fashion in astools. This could
>>>>>>>>instead be added
>>>>>>>>to the labels in the astools.yaml file if desired. It
would allow
>>>>>>>>dynamic addition or removal of any runtimes, though in the
yaml
>>>>>>>>syntax. It would minimize connections and re-downloads of
the yaml
>>>>>>>>files, since they'll actually have a timestamp now (as
>>>>>>>>opposed to in
>>>>>>>>github, where they don't). And it could help clean up
>>>>>>>>some other areas
>>>>>>>>that could benefit from a cleanup.
>>>>>>>>
>>>>>>>>I'd really like feedback on this issue from anyone who
>>>>>>>>knows anything
>>>>>>>>about the topic, because I know for sure I'm lacking a
>>>>>>>>bit in fully
>>>>>>>>understanding the entire api. But I'd love at the
>>>>>>>>least for someone to
>>>>>>>>tell me which of the logic here is obviously bad or if
>>>>>>>>i'm wrong on
>>>>>>>>any details.
>>>>>>>>
>>>>>>>>Thanks and look forward to the feedback
>>>>>>>>
>>>>>>>>- Rob Stryker
>>>>>>>>I break things, and then put them back together.
>>>>>>>_______________________________________________
>>>>>>>jbosstools-dev mailing list
>>>>>>>jbosstools-dev(a)lists.jboss.org
>>>>>>>https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>>>>>_______________________________________________
>>>>>>jbosstools-dev mailing list
>>>>>>jbosstools-dev(a)lists.jboss.org
>>>>>>https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>>>_______________________________________________
>>>>jbosstools-dev mailing list
>>>>jbosstools-dev(a)lists.jboss.org
>>>>https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>>
>>
>