It's always good to move to the updated libraries, and I agree on
upgrading to lang3 library (from lang).
We can continue use/improve our facade 'com.cloud.utils.StringUtils' for
readability, custom utils from third party libs, this will be a single
point of update whenever any util library is upgraded in future.
Regards,
Suresh
On 10/09/21, 11:00 PM, "Gabriel Bräscher" <gabrasc...@gmail.com> wrote:
I do understand that a facade adds great value in many situations.
However, I am afraid that this could escalate up to a point of us
maintaining multiple facades of well-known libraries that in the end
already offer us what we need.
Such libraries tend to be stable; as an example, lang3 was launched in
2011
and has been rock solid since then.
If we get into upgrading, at least in the "apache.commons.lang3"
example,
wpiçd be a "find and replace" operation [see:
https://commons.apache.org/proper/commons-lang/article3_0.html].
I am inclined into adopting "apache.commons.lang3" and then upgrading
all
occurrences of "apache.commons.lang" (as mentioned, "find and replace"
operation). But I would be OK in moving into a facade.
My main concern/goal is to adopt a pattern ASAP, and I would be +1 both
ways as long as we ensure a standard in the current and future
codebase.
Em qua., 8 de set. de 2021 às 12:21, Daan Hoogland <
daan.hoogl...@gmail.com>
escreveu:
> Daniel et al,
> I've no preference and don't mind multiple dependencies when they
supply
> overlapping features. I do want to keep 3rd party libraries in facade
> projects at all times. It keeps maintenance surface small and it is
easier
> to see conflicts happening (a good reason to reduce dependencies
btw, me
> contradicting me).
> Both your and Rohit's points make sense to me.
>
> On Wed, Sep 8, 2021 at 2:36 PM Nicolas Vazquez <
> nicolas.vazq...@shapeblue.com> wrote:
>
> > Hi Daniel,
> >
> > I don't have a preference either, but the work you are proposing
on your
> > PR makes sense to me.
> >
> >
> > Regards,
> >
> > Nicolas Vazquez
> >
> > ________________________________
> > From: Rohit Yadav <rohit.ya...@shapeblue.com>
> > Sent: Wednesday, September 8, 2021 5:05 AM
> > To: dev@cloudstack.apache.org <dev@cloudstack.apache.org>
> > Subject: Re: [Discussion] String libs
> >
> > I don't have any specific inclination, I would use whatever
becomes a
> > standard.
> >
> > However, I prefer the readability of a utility method that is
readable
> and
> > easy to understand such as isNullOrEmpty (which suggests it's
doing a
> null
> > check) versus isEmpty.
> >
> > I suppose a refactoring exercise can be done by picking whatever
> favourite
> > dependency community consensus is built for (if at all) and then
write a
> > utility method in something like StringsUtil in cloud-utils and
use it
> > throughout the codebase so in future if we want to move to
something
> else -
> > all you do is replace your favourite dependency with something new
only
> in
> > StringsUtils of cloud-utils.
> >
> > ... and update the cloudstack-checkstyle to enforce the new agreed
upon
> > rule and also update -
> >
>
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Coding+conventions
> >
> >
> > Regards.
> >
> > ________________________________
> > From: Daniel Augusto Veronezi Salvador <gutoveron...@apache.org>
> > Sent: Tuesday, September 7, 2021 04:37
> > To: dev@cloudstack.apache.org <dev@cloudstack.apache.org>
> > Subject: [Discussion] String libs
> >
> > Hi all,
> >
> > Currently, the main String libs we are using are "commons.lang" and
> > "commons.lang3" (either directly or by our facade,
"com.cloud.utils"). We
> > have a current discussion about using them directly or via a
facade (such
> > as "com.cloud.utils"); however, a third implementation has been
added
> > (google.common.base), which adds more to the discussion.
"commons.lang"
> > already implement all we need; therefore, adding a third one does
not
> seem
> > to add/improve/help with anything, but adding more moving parts and
> > libraries that we need to watch out for (managing versions,
checking for
> > security issues, and so on).
> >
> > I created a PR (https://github.com/apache/cloudstack/pull/5386) to
> > replace "google.common.base" with "commons.lang3". However, and as
Daan
> > suggested too, I'd like to go forward and revisit this discussion
to
> > standardize our code. To guide it, I'd like to start with what I
think is
> > the main topic:
> >
> > - Should we use a facade to "commons.lang"? Which are the pros and
cons,
> > according to your perspective?
> >
> > Best regards,
> > Daniel.
> >
> >
> >
> >
> >
> >
> >
>
> --
> Daan
>