jsr342-experts@javaee-spec.java.net

[jsr342-experts] Re: Configuration

From: Adam Bien <abien_at_adam-bien.com>
Date: Thu, 8 Sep 2011 15:51:45 +0200

On 08.09.2011, at 14:27, Werner Keil wrote:

> Adam/Reza/all,
>
> Comments inline
>
> On Thu, Sep 8, 2011 at 1:39 PM, Adam Bien <abien_at_adam-bien.com> wrote:
> Hi Reza + *,
>
> I only read the configuration-conversation without commenting it, reason: I never configured any Java EE 5 / 6 application with XML. Sometimes we had to configure the applications, but then we usually relied on a DB via JDBC / JPA (usually the latter).
>
> In latest project I used the following approach to configure my Java EE 6 apps: http://www.adam-bien.com/roller/abien/entry/how_to_configure_java_ee The defaults were overridden with data from DB.
>
>
> We had something similar in a pre EE6 app, but there defaults were part of the app, while external files (XML or Properties) were used to override those for each environment.

+1 -> exactly what I did.
>
> Using the DB might be required for some cases, especially what Oracle did earlier with its Portal (before purchasing BEA) was an excessive example, but it demonstrated, how bad performance can become, if you try to get everything from the DB. Although most settings of the Portal server are retrieved from a DB, both WebLogic and Glassfish prefer XML configuration.

Usually you would read the configuration once and then cache it. I don't think it will be slower than XML. IMHO DB would be even faster. I also do not believe, that reading the configuration from the DB would overtax it.
>
> A lot less traffic, especially since the majority of enterprise solutions find the DB as a bottleneck already.
>
> But: it should be possible to configure application with XML out of the box. I would, hovewer, not use XML as "master", rather use Java object for this purpose. The Java objects could be instantiated from XML, JSON (with extended JAXB like it is the case in Jersey) and directly from DB (with or without SQL), or directly by the application.
>
> I would also like to use annotations as a configuration source. We could put the annotations on top of the java classes mentioned above.
>
> I like your XML-proposal but I do not like the fact that your are using XML as the canonical model. As you mentioned previously: I would use expressive Java classes as configuration source and XML / JSON / JPA as a persistence mechanism.
>
>
> +1
> just did something similar for a global player and their ERP/ systems.
>
> Any thoughts?
>
> thanks in advance!,
>
> adam
>
>
> Werner
>
>
>
> On 23.07.2011, at 03:51, Reza Rahman wrote:
>
> > Bill,
> >
> > With all due respect, I think we are talking apples and oranges here.
> >
> > If you look at Spring for example, their newest and most popular configuration styles is Java Config: http://static.springsource.org/spring-javaconfig/docs/1.0.0.M4/reference/html/. Similarly, the application configuration for the popular Wicket web framework is also Java based and is one of the most well-liked features of the technology. Jetty also allows for programmatic web application configuration that is currently one of their unique features. None of theses examples suffer from the same problems that EJB 1.0 did.
> >
> > At any rate, I do think I've said enough at this point. I think it's time for others to voice their opinions if they believe this is something that is valuable to the platform.
> >
> > Cheers,
> > Reza
> >
> >
> > On 7/22/2011 7:23 PM, Bill Shannon wrote:
> >> We used to have deployment descriptors written in Java.
> >> Remember EJB 1.0? Everyone hated them.
> >>
> >> Reza Rahman wrote on 07/22/11 04:01 PM:
> >>> Bill,
> >>>
> >>> I guess I'd like to discuss this more after we do see some more tangible
> >>> interest in the EG at least :-). Something as pervasive as this should
> >>> garner interest/input from a decent number of EG members :-).
> >>>
> >>> By definition, decoupling from XML as the "canonical" configuration
> >>> format to something more Java centric and more readily translatable to
> >>> other formats allows for more choice/flexibility. I also disagree with
> >>> Pete in that I do think a Java/OO-centric format is readily intuitive
> >>> and compelling to Java developers. As you mentioned, a revamp would also
> >>> be a good opportunity to remove some of the old cruft and allow for
> >>> things like namespace based flexibility, better support for XML
> >>> attributes, overlaying vendor extension/plug-in configuration and so on.
> >>>
> >>> For me personally, the option to write configuration in pure Java is
> >>> particularly tantalizing. It allows for possibilities like
> >>> programmatically changing configuration at deployment time (Servlet 3
> >>> does the very beginning of this in a very ad-hoc fashion). Just like JPA
> >>> 2 criteria queries vs. JPQL, it is also more type-safe and arguably more
> >>> readable/maintainable.
> >>>
> >>> Each alternative format similarly has it's own strengths -- JSON for
> >>> simplicity/brevity, property files for familiarity/simplicity/brevity, etc.
> >>>
> >>> Cheers,
> >>> Reza
> >>>
> >>>
> >>> On 7/22/2011 5:31 PM, Bill Shannon wrote:
> >>>> Ok, good, you're not *all* on vacation! :-)
> >>>>
> >>>> Converting from our existing XML to JSON doesn't seem like a big
> >>>> improvement.
> >>>> Is there something like XML Schema for JSON?
> >>>>
> >>>> I assume the format of these files isn't a big issue for anyone using
> >>>> an IDE.
> >>>> Are you trying to address the people who *don't* use an IDE? Would it be
> >>>> enough to provide tools that convert JSON to XML? Perhaps a maven
> >>>> plugin?
> >>>>
> >>>>
> >>>> Jeff Genender wrote on 07/22/11 02:16 PM:
> >>>>> Now now… there is interest ;-) Its July and lots of holiday going
> >>>>> on… so be nice and understanding ;-)
> >>>>>
> >>>>> Im pretty high on the JSON stuff. This is gaining traction and
> >>>>> becoming a much more readable format. It would be nice to see a
> >>>>> paradigm shift and begin using some of the more friendlier data formats.
> >>>>>
> >>>>> There is some interest, see? ;-)
> >>>>>
> >>>>> Jeff
> >>>>>
> >>>>> On Jul 22, 2011, at 3:09 PM, Bill Shannon wrote:
> >>>>>
> >>>>>> Reza Rahman wrote on 07/22/11 01:59 PM:
> >>>>>>> Bill,
> >>>>>>>
> >>>>>>> I guess it's a little disheartening that no one else on the alias is
> >>>>>>> chiming in on this - not sure if this is just that boring or that they
> >>>>>>> are judiciously biding their time :-).
> >>>>>>
> >>>>>> Ya, with this little interest here, it's not clear that it's worth
> >>>>>> making any of the proposed changes.
> >>>>>>
> >>>>>>> Anyways, would it help much that this approach might open the
> >>>>>>> doorway to
> >>>>>>> 100% XML free, Java based configuration down the line or that it
> >>>>>>> greases
> >>>>>>> the wheels for other possibilities like JSON or property file based
> >>>>>>> DDs?
> >>>>>>
> >>>>>> I don't see why we need more ways of doing the same thing. You need to
> >>>>>> convince me that any of these is so much better than what we already
> >>>>>> have
> >>>>>> that it's worth doing.
> >>>>>>
> >>>>>>> It also helps make configuring CDI style DI easier for any managed
> >>>>>>> bean...
> >>>>>>
> >>>>>> And that seems good.
> >>>>>>
> >>>>>>> To be honest though, I think just getting some kind of CDI XML in Java
> >>>>>>> EE 7 would be a good accomplishment in the scheme of things. I've
> >>>>>>> never
> >>>>>>> been a proponent of making big changes in the standard without some
> >>>>>>> implementation precedent. If we defer the general overhaul of Java
> >>>>>>> EE DD
> >>>>>>> to Java EE 8, this does give us (and hopefully others) a little more
> >>>>>>> room to do some "bleeding edge" implementation work on our own
> >>>>>>> terms. As
> >>>>>>> far as you can see, there is nothing in the standard that stops us
> >>>>>>> from
> >>>>>>> doing that, right?
> >>>>>>
> >>>>>> Right. I think it's fine for CDI to blaze the trail here and we can
> >>>>>> consider following their lead in EE 8.
> >>>>>>
> >>>>>> But only if I see more interest in this expert group! :-)
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> -----
> >>>> No virus found in this message.
> >>>> Checked by AVG - www.avg.com
> >>>> Version: 10.0.1390 / Virus Database: 1518/3781 - Release Date: 07/22/11
> >>>>
> >>>>
> >>>
> >>
> >>
> >>
> >> -----
> >> No virus found in this message.
> >> Checked by AVG - www.avg.com
> >> Version: 10.0.1390 / Virus Database: 1518/3781 - Release Date: 07/22/11
> >>
> >>
> >
>
>
>
>
>
> --
> Werner Keil | UOMo Lead | Eclipse.org
> Twitter @wernerkeil | Skype: werner.keil | www.eclipse.org/uomo | #EclipseUOMo
>
> * JavaOne: October 2-6 2011, San Francisco, USA. Werner Keil, Agile Coach, UOMo Lead will co-present "JSR 321: Trusted Java API"
>