You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by "Jonathan S. Fisher" <jo...@springventuregroup.com> on 2015/12/07 19:53:32 UTC

Crazy Idea around configuration and deployment

Hey guys,

We manage quite a few instances of TomEE. We've automated the deployment of
tomee.xml by scripts and scp commands and keeping the files in source
control... but you know, it's not broken, and we're engineers, so we should
fix it and make it better!!

Would it be possible to replace the configuration mechanism that reads the
tomee.xml with a service that could read the configuration values out of
Key/Value store? This would be kinda enabling, because you could start a
vanilla instance of TomEE, the application requests a datasource named
"jdbc/kickAss" and it goes and pulls the config definition from a central
repository. I guess by the time the WAR is requesting jndi resources it may
be too late to dynamically create them, but even being able to create them
from a centralized config repo at startup would be an awesome technology.

What classes the TomEE server should I be examining?

Thanks,

*Jonathan S. Fisher*
*VP - Information Technology*
*Spring Venture Group*

-- 
Email Confidentiality Notice: The information contained in this 
transmission is confidential, proprietary or privileged and may be subject 
to protection under the law, including the Health Insurance Portability and 
Accountability Act (HIPAA). The message is intended for the sole use of the 
individual or entity to whom it is addressed. If you are not the intended 
recipient, you are notified that any use, distribution or copying of the 
message is strictly prohibited and may subject you to criminal or civil 
penalties. If you received this transmission in error, please contact the 
sender immediately by replying to this email and delete the material from 
any computer.

Re: Crazy Idea around configuration and deployment

Posted by Romain Manni-Bucau <rm...@gmail.com>.
2015-12-07 20:49 GMT+01:00 Jonathan S. Fisher <
jonathan@springventuregroup.com>:

> Hrrrmm... So this could even be included in the Application itself then,
> rather than the server lib dir... and relying on CDI would make it portable
> :D
>
>
excepted you will not get resources in this app but in the one deployed
after yes


> Ok, a few more dumb questions... How do I produce something that's not a
> CDI bean, like a @Resource ConnectionFactory?
>
>
tomee.xml/resources.xml? Assembler has the logic in our code but this code
still moves at each major so I wouldnt rely on it not being in the server.



> *Jonathan S. Fisher*
> *VP - Information Technology*
> *Spring Venture Group*
>
> On Mon, Dec 7, 2015 at 1:38 PM, Romain Manni-Bucau <rm...@gmail.com>
> wrote:
>
> > 2015-12-07 20:31 GMT+01:00 Jonathan S. Fisher <
> > jonathan@springventuregroup.com>:
> >
> > > Nice... But would `@Observes AssemblerCreated` would for JNDI stuff
> > though
> > > like Queues, Datasources, etc?
> > >
> > >
> > guess the second would is a work ;)
> >
> > yes since it is before the server starts - I actually used this trick few
> > times.
> >
> >
> > > *Jonathan S. Fisher*
> > > *VP - Information Technology*
> > > *Spring Venture Group*
> > >
> > > On Mon, Dec 7, 2015 at 1:12 PM, Romain Manni-Bucau <
> > rmannibucau@gmail.com>
> > > wrote:
> > >
> > > > Before going depper in this let me propose you an alternative which
> is
> > > > easier and more stable than using our internals:
> > > >
> > > > 1. start tomee (speaking of the start command, typically catalina.sh)
> > > > 2. either you integrate at the script level or just use @Observes
> > > > AssemblerCreated
> > > > (openejb server events) - or any event you prefer before that. At
> this
> > > > moment (ie before config read) you dump your config in
> > > > ${openejb.base}/conf/system.properties or tomee.xml
> > > > 3. it smoothly works OOTB without API breakage when we update our
> > > internals
> > > >
> > > > Side note: if I read your description properly I would do it when you
> > scp
> > > > the scripts/apps/config which makes it even easier.
> > > >
> > > >
> > > >
> > > > Romain Manni-Bucau
> > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > <http://rmannibucau.wordpress.com> | Github <
> > > > https://github.com/rmannibucau> |
> > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> > > > <http://www.tomitribe.com>
> > > >
> > > > 2015-12-07 19:53 GMT+01:00 Jonathan S. Fisher <
> > > > jonathan@springventuregroup.com>:
> > > >
> > > > > Hey guys,
> > > > >
> > > > > We manage quite a few instances of TomEE. We've automated the
> > > deployment
> > > > of
> > > > > tomee.xml by scripts and scp commands and keeping the files in
> source
> > > > > control... but you know, it's not broken, and we're engineers, so
> we
> > > > should
> > > > > fix it and make it better!!
> > > > >
> > > > > Would it be possible to replace the configuration mechanism that
> > reads
> > > > the
> > > > > tomee.xml with a service that could read the configuration values
> out
> > > of
> > > > > Key/Value store? This would be kinda enabling, because you could
> > start
> > > a
> > > > > vanilla instance of TomEE, the application requests a datasource
> > named
> > > > > "jdbc/kickAss" and it goes and pulls the config definition from a
> > > central
> > > > > repository. I guess by the time the WAR is requesting jndi
> resources
> > it
> > > > may
> > > > > be too late to dynamically create them, but even being able to
> create
> > > > them
> > > > > from a centralized config repo at startup would be an awesome
> > > technology.
> > > > >
> > > > > What classes the TomEE server should I be examining?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > *Jonathan S. Fisher*
> > > > > *VP - Information Technology*
> > > > > *Spring Venture Group*
> > > > >
> > > > > --
> > > > > Email Confidentiality Notice: The information contained in this
> > > > > transmission is confidential, proprietary or privileged and may be
> > > > subject
> > > > > to protection under the law, including the Health Insurance
> > Portability
> > > > and
> > > > > Accountability Act (HIPAA). The message is intended for the sole
> use
> > of
> > > > the
> > > > > individual or entity to whom it is addressed. If you are not the
> > > intended
> > > > > recipient, you are notified that any use, distribution or copying
> of
> > > the
> > > > > message is strictly prohibited and may subject you to criminal or
> > civil
> > > > > penalties. If you received this transmission in error, please
> contact
> > > the
> > > > > sender immediately by replying to this email and delete the
> material
> > > from
> > > > > any computer.
> > > > >
> > > >
> > >
> > > --
> > > Email Confidentiality Notice: The information contained in this
> > > transmission is confidential, proprietary or privileged and may be
> > subject
> > > to protection under the law, including the Health Insurance Portability
> > and
> > > Accountability Act (HIPAA). The message is intended for the sole use of
> > the
> > > individual or entity to whom it is addressed. If you are not the
> intended
> > > recipient, you are notified that any use, distribution or copying of
> the
> > > message is strictly prohibited and may subject you to criminal or civil
> > > penalties. If you received this transmission in error, please contact
> the
> > > sender immediately by replying to this email and delete the material
> from
> > > any computer.
> > >
> >
>
> --
> Email Confidentiality Notice: The information contained in this
> transmission is confidential, proprietary or privileged and may be subject
> to protection under the law, including the Health Insurance Portability and
> Accountability Act (HIPAA). The message is intended for the sole use of the
> individual or entity to whom it is addressed. If you are not the intended
> recipient, you are notified that any use, distribution or copying of the
> message is strictly prohibited and may subject you to criminal or civil
> penalties. If you received this transmission in error, please contact the
> sender immediately by replying to this email and delete the material from
> any computer.
>

Re: Crazy Idea around configuration and deployment

Posted by "Jonathan S. Fisher" <jo...@springventuregroup.com>.
Hrrrmm... So this could even be included in the Application itself then,
rather than the server lib dir... and relying on CDI would make it portable
:D

Ok, a few more dumb questions... How do I produce something that's not a
CDI bean, like a @Resource ConnectionFactory?

*Jonathan S. Fisher*
*VP - Information Technology*
*Spring Venture Group*

On Mon, Dec 7, 2015 at 1:38 PM, Romain Manni-Bucau <rm...@gmail.com>
wrote:

> 2015-12-07 20:31 GMT+01:00 Jonathan S. Fisher <
> jonathan@springventuregroup.com>:
>
> > Nice... But would `@Observes AssemblerCreated` would for JNDI stuff
> though
> > like Queues, Datasources, etc?
> >
> >
> guess the second would is a work ;)
>
> yes since it is before the server starts - I actually used this trick few
> times.
>
>
> > *Jonathan S. Fisher*
> > *VP - Information Technology*
> > *Spring Venture Group*
> >
> > On Mon, Dec 7, 2015 at 1:12 PM, Romain Manni-Bucau <
> rmannibucau@gmail.com>
> > wrote:
> >
> > > Before going depper in this let me propose you an alternative which is
> > > easier and more stable than using our internals:
> > >
> > > 1. start tomee (speaking of the start command, typically catalina.sh)
> > > 2. either you integrate at the script level or just use @Observes
> > > AssemblerCreated
> > > (openejb server events) - or any event you prefer before that. At this
> > > moment (ie before config read) you dump your config in
> > > ${openejb.base}/conf/system.properties or tomee.xml
> > > 3. it smoothly works OOTB without API breakage when we update our
> > internals
> > >
> > > Side note: if I read your description properly I would do it when you
> scp
> > > the scripts/apps/config which makes it even easier.
> > >
> > >
> > >
> > > Romain Manni-Bucau
> > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > <http://rmannibucau.wordpress.com> | Github <
> > > https://github.com/rmannibucau> |
> > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> > > <http://www.tomitribe.com>
> > >
> > > 2015-12-07 19:53 GMT+01:00 Jonathan S. Fisher <
> > > jonathan@springventuregroup.com>:
> > >
> > > > Hey guys,
> > > >
> > > > We manage quite a few instances of TomEE. We've automated the
> > deployment
> > > of
> > > > tomee.xml by scripts and scp commands and keeping the files in source
> > > > control... but you know, it's not broken, and we're engineers, so we
> > > should
> > > > fix it and make it better!!
> > > >
> > > > Would it be possible to replace the configuration mechanism that
> reads
> > > the
> > > > tomee.xml with a service that could read the configuration values out
> > of
> > > > Key/Value store? This would be kinda enabling, because you could
> start
> > a
> > > > vanilla instance of TomEE, the application requests a datasource
> named
> > > > "jdbc/kickAss" and it goes and pulls the config definition from a
> > central
> > > > repository. I guess by the time the WAR is requesting jndi resources
> it
> > > may
> > > > be too late to dynamically create them, but even being able to create
> > > them
> > > > from a centralized config repo at startup would be an awesome
> > technology.
> > > >
> > > > What classes the TomEE server should I be examining?
> > > >
> > > > Thanks,
> > > >
> > > > *Jonathan S. Fisher*
> > > > *VP - Information Technology*
> > > > *Spring Venture Group*
> > > >
> > > > --
> > > > Email Confidentiality Notice: The information contained in this
> > > > transmission is confidential, proprietary or privileged and may be
> > > subject
> > > > to protection under the law, including the Health Insurance
> Portability
> > > and
> > > > Accountability Act (HIPAA). The message is intended for the sole use
> of
> > > the
> > > > individual or entity to whom it is addressed. If you are not the
> > intended
> > > > recipient, you are notified that any use, distribution or copying of
> > the
> > > > message is strictly prohibited and may subject you to criminal or
> civil
> > > > penalties. If you received this transmission in error, please contact
> > the
> > > > sender immediately by replying to this email and delete the material
> > from
> > > > any computer.
> > > >
> > >
> >
> > --
> > Email Confidentiality Notice: The information contained in this
> > transmission is confidential, proprietary or privileged and may be
> subject
> > to protection under the law, including the Health Insurance Portability
> and
> > Accountability Act (HIPAA). The message is intended for the sole use of
> the
> > individual or entity to whom it is addressed. If you are not the intended
> > recipient, you are notified that any use, distribution or copying of the
> > message is strictly prohibited and may subject you to criminal or civil
> > penalties. If you received this transmission in error, please contact the
> > sender immediately by replying to this email and delete the material from
> > any computer.
> >
>

-- 
Email Confidentiality Notice: The information contained in this 
transmission is confidential, proprietary or privileged and may be subject 
to protection under the law, including the Health Insurance Portability and 
Accountability Act (HIPAA). The message is intended for the sole use of the 
individual or entity to whom it is addressed. If you are not the intended 
recipient, you are notified that any use, distribution or copying of the 
message is strictly prohibited and may subject you to criminal or civil 
penalties. If you received this transmission in error, please contact the 
sender immediately by replying to this email and delete the material from 
any computer.

Re: Crazy Idea around configuration and deployment

Posted by Romain Manni-Bucau <rm...@gmail.com>.
2015-12-07 20:31 GMT+01:00 Jonathan S. Fisher <
jonathan@springventuregroup.com>:

> Nice... But would `@Observes AssemblerCreated` would for JNDI stuff though
> like Queues, Datasources, etc?
>
>
guess the second would is a work ;)

yes since it is before the server starts - I actually used this trick few
times.


> *Jonathan S. Fisher*
> *VP - Information Technology*
> *Spring Venture Group*
>
> On Mon, Dec 7, 2015 at 1:12 PM, Romain Manni-Bucau <rm...@gmail.com>
> wrote:
>
> > Before going depper in this let me propose you an alternative which is
> > easier and more stable than using our internals:
> >
> > 1. start tomee (speaking of the start command, typically catalina.sh)
> > 2. either you integrate at the script level or just use @Observes
> > AssemblerCreated
> > (openejb server events) - or any event you prefer before that. At this
> > moment (ie before config read) you dump your config in
> > ${openejb.base}/conf/system.properties or tomee.xml
> > 3. it smoothly works OOTB without API breakage when we update our
> internals
> >
> > Side note: if I read your description properly I would do it when you scp
> > the scripts/apps/config which makes it even easier.
> >
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <http://rmannibucau.wordpress.com> | Github <
> > https://github.com/rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> > <http://www.tomitribe.com>
> >
> > 2015-12-07 19:53 GMT+01:00 Jonathan S. Fisher <
> > jonathan@springventuregroup.com>:
> >
> > > Hey guys,
> > >
> > > We manage quite a few instances of TomEE. We've automated the
> deployment
> > of
> > > tomee.xml by scripts and scp commands and keeping the files in source
> > > control... but you know, it's not broken, and we're engineers, so we
> > should
> > > fix it and make it better!!
> > >
> > > Would it be possible to replace the configuration mechanism that reads
> > the
> > > tomee.xml with a service that could read the configuration values out
> of
> > > Key/Value store? This would be kinda enabling, because you could start
> a
> > > vanilla instance of TomEE, the application requests a datasource named
> > > "jdbc/kickAss" and it goes and pulls the config definition from a
> central
> > > repository. I guess by the time the WAR is requesting jndi resources it
> > may
> > > be too late to dynamically create them, but even being able to create
> > them
> > > from a centralized config repo at startup would be an awesome
> technology.
> > >
> > > What classes the TomEE server should I be examining?
> > >
> > > Thanks,
> > >
> > > *Jonathan S. Fisher*
> > > *VP - Information Technology*
> > > *Spring Venture Group*
> > >
> > > --
> > > Email Confidentiality Notice: The information contained in this
> > > transmission is confidential, proprietary or privileged and may be
> > subject
> > > to protection under the law, including the Health Insurance Portability
> > and
> > > Accountability Act (HIPAA). The message is intended for the sole use of
> > the
> > > individual or entity to whom it is addressed. If you are not the
> intended
> > > recipient, you are notified that any use, distribution or copying of
> the
> > > message is strictly prohibited and may subject you to criminal or civil
> > > penalties. If you received this transmission in error, please contact
> the
> > > sender immediately by replying to this email and delete the material
> from
> > > any computer.
> > >
> >
>
> --
> Email Confidentiality Notice: The information contained in this
> transmission is confidential, proprietary or privileged and may be subject
> to protection under the law, including the Health Insurance Portability and
> Accountability Act (HIPAA). The message is intended for the sole use of the
> individual or entity to whom it is addressed. If you are not the intended
> recipient, you are notified that any use, distribution or copying of the
> message is strictly prohibited and may subject you to criminal or civil
> penalties. If you received this transmission in error, please contact the
> sender immediately by replying to this email and delete the material from
> any computer.
>

Re: Crazy Idea around configuration and deployment

Posted by "Jonathan S. Fisher" <jo...@springventuregroup.com>.
Nice... But would `@Observes AssemblerCreated` would for JNDI stuff though
like Queues, Datasources, etc?

*Jonathan S. Fisher*
*VP - Information Technology*
*Spring Venture Group*

On Mon, Dec 7, 2015 at 1:12 PM, Romain Manni-Bucau <rm...@gmail.com>
wrote:

> Before going depper in this let me propose you an alternative which is
> easier and more stable than using our internals:
>
> 1. start tomee (speaking of the start command, typically catalina.sh)
> 2. either you integrate at the script level or just use @Observes
> AssemblerCreated
> (openejb server events) - or any event you prefer before that. At this
> moment (ie before config read) you dump your config in
> ${openejb.base}/conf/system.properties or tomee.xml
> 3. it smoothly works OOTB without API breakage when we update our internals
>
> Side note: if I read your description properly I would do it when you scp
> the scripts/apps/config which makes it even easier.
>
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <http://rmannibucau.wordpress.com> | Github <
> https://github.com/rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> <http://www.tomitribe.com>
>
> 2015-12-07 19:53 GMT+01:00 Jonathan S. Fisher <
> jonathan@springventuregroup.com>:
>
> > Hey guys,
> >
> > We manage quite a few instances of TomEE. We've automated the deployment
> of
> > tomee.xml by scripts and scp commands and keeping the files in source
> > control... but you know, it's not broken, and we're engineers, so we
> should
> > fix it and make it better!!
> >
> > Would it be possible to replace the configuration mechanism that reads
> the
> > tomee.xml with a service that could read the configuration values out of
> > Key/Value store? This would be kinda enabling, because you could start a
> > vanilla instance of TomEE, the application requests a datasource named
> > "jdbc/kickAss" and it goes and pulls the config definition from a central
> > repository. I guess by the time the WAR is requesting jndi resources it
> may
> > be too late to dynamically create them, but even being able to create
> them
> > from a centralized config repo at startup would be an awesome technology.
> >
> > What classes the TomEE server should I be examining?
> >
> > Thanks,
> >
> > *Jonathan S. Fisher*
> > *VP - Information Technology*
> > *Spring Venture Group*
> >
> > --
> > Email Confidentiality Notice: The information contained in this
> > transmission is confidential, proprietary or privileged and may be
> subject
> > to protection under the law, including the Health Insurance Portability
> and
> > Accountability Act (HIPAA). The message is intended for the sole use of
> the
> > individual or entity to whom it is addressed. If you are not the intended
> > recipient, you are notified that any use, distribution or copying of the
> > message is strictly prohibited and may subject you to criminal or civil
> > penalties. If you received this transmission in error, please contact the
> > sender immediately by replying to this email and delete the material from
> > any computer.
> >
>

-- 
Email Confidentiality Notice: The information contained in this 
transmission is confidential, proprietary or privileged and may be subject 
to protection under the law, including the Health Insurance Portability and 
Accountability Act (HIPAA). The message is intended for the sole use of the 
individual or entity to whom it is addressed. If you are not the intended 
recipient, you are notified that any use, distribution or copying of the 
message is strictly prohibited and may subject you to criminal or civil 
penalties. If you received this transmission in error, please contact the 
sender immediately by replying to this email and delete the material from 
any computer.

Re: Crazy Idea around configuration and deployment

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Before going depper in this let me propose you an alternative which is
easier and more stable than using our internals:

1. start tomee (speaking of the start command, typically catalina.sh)
2. either you integrate at the script level or just use @Observes
AssemblerCreated
(openejb server events) - or any event you prefer before that. At this
moment (ie before config read) you dump your config in
${openejb.base}/conf/system.properties or tomee.xml
3. it smoothly works OOTB without API breakage when we update our internals

Side note: if I read your description properly I would do it when you scp
the scripts/apps/config which makes it even easier.



Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
<http://www.tomitribe.com>

2015-12-07 19:53 GMT+01:00 Jonathan S. Fisher <
jonathan@springventuregroup.com>:

> Hey guys,
>
> We manage quite a few instances of TomEE. We've automated the deployment of
> tomee.xml by scripts and scp commands and keeping the files in source
> control... but you know, it's not broken, and we're engineers, so we should
> fix it and make it better!!
>
> Would it be possible to replace the configuration mechanism that reads the
> tomee.xml with a service that could read the configuration values out of
> Key/Value store? This would be kinda enabling, because you could start a
> vanilla instance of TomEE, the application requests a datasource named
> "jdbc/kickAss" and it goes and pulls the config definition from a central
> repository. I guess by the time the WAR is requesting jndi resources it may
> be too late to dynamically create them, but even being able to create them
> from a centralized config repo at startup would be an awesome technology.
>
> What classes the TomEE server should I be examining?
>
> Thanks,
>
> *Jonathan S. Fisher*
> *VP - Information Technology*
> *Spring Venture Group*
>
> --
> Email Confidentiality Notice: The information contained in this
> transmission is confidential, proprietary or privileged and may be subject
> to protection under the law, including the Health Insurance Portability and
> Accountability Act (HIPAA). The message is intended for the sole use of the
> individual or entity to whom it is addressed. If you are not the intended
> recipient, you are notified that any use, distribution or copying of the
> message is strictly prohibited and may subject you to criminal or civil
> penalties. If you received this transmission in error, please contact the
> sender immediately by replying to this email and delete the material from
> any computer.
>