You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(55) |
Mar
(100) |
Apr
(203) |
May
(330) |
Jun
(190) |
Jul
(302) |
Aug
(323) |
Sep
(197) |
Oct
(245) |
Nov
(490) |
Dec
(330) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(194) |
Feb
(400) |
Mar
(416) |
Apr
(415) |
May
(359) |
Jun
(381) |
Jul
(491) |
Aug
(311) |
Sep
(291) |
Oct
(273) |
Nov
(355) |
Dec
(266) |
| 2005 |
Jan
(306) |
Feb
(303) |
Mar
(520) |
Apr
(346) |
May
(255) |
Jun
(221) |
Jul
(171) |
Aug
(247) |
Sep
(147) |
Oct
(125) |
Nov
(165) |
Dec
(65) |
| 2006 |
Jan
(90) |
Feb
(53) |
Mar
(121) |
Apr
(103) |
May
(113) |
Jun
(103) |
Jul
(104) |
Aug
(67) |
Sep
(78) |
Oct
(82) |
Nov
(78) |
Dec
(70) |
| 2007 |
Jan
(77) |
Feb
(76) |
Mar
(63) |
Apr
(30) |
May
(47) |
Jun
(41) |
Jul
(44) |
Aug
(44) |
Sep
(49) |
Oct
(33) |
Nov
(25) |
Dec
(21) |
| 2008 |
Jan
(45) |
Feb
(13) |
Mar
(15) |
Apr
(12) |
May
(9) |
Jun
(33) |
Jul
(30) |
Aug
(7) |
Sep
(20) |
Oct
(17) |
Nov
(20) |
Dec
(10) |
| 2009 |
Jan
(8) |
Feb
(5) |
Mar
(12) |
Apr
(17) |
May
(19) |
Jun
(97) |
Jul
(77) |
Aug
(33) |
Sep
(24) |
Oct
(41) |
Nov
(16) |
Dec
(32) |
| 2010 |
Jan
(24) |
Feb
(14) |
Mar
(50) |
Apr
(71) |
May
(70) |
Jun
(64) |
Jul
(45) |
Aug
(62) |
Sep
(32) |
Oct
(4) |
Nov
(12) |
Dec
(2) |
| 2011 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(3) |
May
(6) |
Jun
(1) |
Jul
(4) |
Aug
(3) |
Sep
(4) |
Oct
(6) |
Nov
(3) |
Dec
(3) |
| 2012 |
Jan
(4) |
Feb
(8) |
Mar
(6) |
Apr
(10) |
May
(2) |
Jun
(3) |
Jul
(11) |
Aug
(10) |
Sep
(4) |
Oct
|
Nov
(1) |
Dec
(1) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
(9) |
Apr
(1) |
May
(8) |
Jun
(2) |
Jul
(5) |
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(10) |
Dec
(8) |
| 2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(12) |
May
(2) |
Jun
|
Jul
(3) |
Aug
(1) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(2) |
| 2015 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(9) |
May
(2) |
Jun
(2) |
Jul
|
Aug
(2) |
Sep
(7) |
Oct
(9) |
Nov
(7) |
Dec
(9) |
| 2016 |
Jan
(7) |
Feb
(5) |
Mar
(5) |
Apr
(5) |
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(4) |
Sep
(6) |
Oct
(7) |
Nov
(2) |
Dec
(3) |
| 2017 |
Jan
(7) |
Feb
(8) |
Mar
(7) |
Apr
(3) |
May
(4) |
Jun
(3) |
Jul
(5) |
Aug
(8) |
Sep
(4) |
Oct
(2) |
Nov
(3) |
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2021 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
(5) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
| 2026 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Colin S. <col...@ex...> - 2005-01-29 15:14:06
|
Yes, I have to agree this probably makes sense... It's a little less
convenient, but resolves versioning issues. One question is whether you
can do a good enough integration that way, but I would that would not be
an issue, it's not like you want to make one container dependent on the
other anyway at it's core, so any integration should be at a higher level.
Juergen Hoeller wrote:
>I was mainly wondering whether it makes sense to separate HiveMind/Spring
>integration and Spring/HiveMind integration... Shouldn't we put both into
>the *same* distribution?
>
>Juergen
>
>
>-----Original Message-----
>From: spr...@li...
>[mailto:spr...@li...]On Behalf
>Of Rob Harrop
>Sent: Saturday, January 29, 2005 3:27 PM
>To: spr...@li...
>Subject: Re: [Springframework-developer] Spring / HiveMind Integration
>
>
>I was thinking of distributing this as one of the first things in the a
>separate project containing extensions and add-ons to Spring. I've been
>working on a couple of other modules as well which I think should be
>kept separate from the core.
>
>Rob
>
>Juergen Hoeller wrote:
>
>
>
>>I guess the problem is also about shipping. If HiveMind ships with Spring,
>>and Spring would then ship with HiveMind too, it seems to me that we could
>>simplify this: Why not put all Spring/HiveMind integration code into
>>HiveMind Extras or a Spring-HiveMind project or the like? There would a
>>single place to maintain both ways of integration then, for specific
>>versions of Spring and HiveMind.
>>
>>Even if we included HiveMind integration in Spring, we would have to do
>>
>>
>this
>
>
>>in a separate distribution, Spring Extras or whatever it would be called.
>>
>>
>It
>
>
>>is certainly not feasible to extend the dependencies of the core Spring
>>distribution to integration with other lightweight containers, given that
>>
>>
>we
>
>
>>already ship all sorts of persistence and web view libraries etc.
>>
>>Juergen
>>
>>
>>-----Original Message-----
>>From: spr...@li...
>>[mailto:spr...@li...]On Behalf
>>Of Rob Harrop
>>Sent: Saturday, January 29, 2005 2:54 PM
>>To: spr...@li...
>>Subject: Re: [Springframework-developer] Spring / HiveMind Integration
>>
>>
>>That is a concern, and I guess we could put in hooks to prevent this -
>>but I think it is probably simpler to say "Don't do this!".
>>
>>Rob
>>
>>Colin Sampaleanu wrote:
>>
>>
>>
>>
>>
>>>I'm not sure it really matters, but given that Hivemind already has
>>>Spring integration code, and we are talking about Hivemind
>>>integration code for Spring, nobody has mentioned that we're going to
>>>end up with a circular dependency here... There are some potential
>>>versioning issues, but I guess they are a concern if you want to call
>>>
>>>
>>>from Spring to Hivemind back to Spring, or Hivemind to Spring back to
>>
>>
>>>Hivemind...
>>>
>>>Rob Harrop wrote:
>>>
>>>
>>>
>>>
>>>
>>>>Howard,
>>>>
>>>>I think it will be quite simple to integrate HiveMind services into
>>>>Spring. As I see it we need a HiveMindRegistryFactoryBean to create
>>>>the Registry instance and then a HiveMindServiceFactoryBean that uses
>>>>the Registry to lookup a given service. By default the
>>>>HiveMindServiceFactoryBean would use the Spring bean name to lookup a
>>>>service in the Registry, but users could configure a different
>>>>service name using DI. With this mechanism, users can create one
>>>>instance of Registry within a Spring application and then access many
>>>>services from that Registry.
>>>>
>>>>If I have time today, I'll work on this. If not, I'll work on it next
>>>>week some time.
>>>>
>>>>Rob
>>>>
>>>>Howard Lewis Ship wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>This comes up quite a bit, they are similiar in intent but quite
>>>>>different in execution.
>>>>>
>>>>>- HiveMind has a very sophisiticated configurations model (very
>>>>>similar to Eclipse plugins) based on configuration points and
>>>>>contributions (from multiple locations)
>>>>>- HiveMind is the infrastructure for Tapestry 3.1, and many Tapestry
>>>>>applications also use Spring
>>>>>- Because Rod and I (and the other Spring team member's I've talked
>>>>>to) want to foster cooperation and compatability rather than
>>>>>competition
>>>>>
>>>>>
>>>>>On Fri, 28 Jan 2005 10:47:48 +1100, Mason, Ross
>>>>><ros...@vi...> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Hi Howard,
>>>>>>
>>>>>>What is the use case for integrating HiveMind and Spring? I must
>>>>>>admit I haven't had a chance to get a good look at HiveMind, but my
>>>>>>understanding is that it is a DI container that provides service
>>>>>>wiring and interception, much in the same vein as the Spring
>>>>>>Container. From the outset the two containers seem to be mutally
>>>>>>exclusive rather than complimentary.
>>>>>>
>>>>>>Can you shed some light on this for me?
>>>>>>
>>>>>>Cheers,
>>>>>>
>>>>>>Ross
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: spr...@li...
>>>>>>on behalf of Howard Lewis Ship
>>>>>> Sent: Wed 26/01/2005 2:46 PM
>>>>>> To: spr...@li...
>>>>>> Cc:
>>>>>> Subject: [Springframework-developer] Spring / HiveMind
>>>>>>Integration
>>>>>>
>>>>>> Since HiveMind 1.0, and improved in HiveMind 1.1, there's
>>>>>>been basic
>>>>>> integration between HiveMind and Spring.
>>>>>>
>>>>>> At the core of it is the ability to define a HiveMind
>>>>>>service in terms
>>>>>> of a Spring bean within a BeanFactory. The essential code is:
>>>>>>
>>>>>> public Object createCoreServiceImplementation(
>>>>>> ServiceImplementationFactoryParameters
>>>>>>factoryParameters)
>>>>>> {
>>>>>> SpringBeanParameter p = (SpringBeanParameter)
>>>>>> factoryParameters.getFirstParameter();
>>>>>> String beanName = p.getName();
>>>>>>
>>>>>> BeanFactory f = p.getBeanFactory();
>>>>>>
>>>>>> if (f == null)
>>>>>> f = _defaultBeanFactory;
>>>>>>
>>>>>> return f.getBean(beanName,
>>>>>>factoryParameters.getServiceInterface());
>>>>>> }
>>>>>>
>>>>>> With this, its possible to obtain a Spring bean and the core
>>>>>>service
>>>>>> implementation of a HiveMind service. The implementation
>>>>>>can be
>>>>>> extended with interceptors and injected into other HiveMind
>>>>>>services.
>>>>>>
>>>>>> At Javapolis, I talked with Rod about having something
>>>>>>similar going
>>>>>> the other direction, allowing HiveMind services to be
>>>>>>referencable
>>>>>> (and injectable) as Spring beans. I'd like to provoke a
>>>>>>discussion on
>>>>>> what that would look like, and what API changes would be
>>>>>>needed in
>>>>>> HiveMind 1.1 to support it.
>>>>>>
>>>>>> Rod seemed to think (and I didn't follow the reasoning) that
>>>>>>HiveMind
>>>>>> would need an API to iterate over the names of all services.
>>>>>>
>>>>>> In addition, configuration data (in either List or Map form)
>>>>>>is also
>>>>>> quite valuable and something that Spring beans would like to
>>>>>>have
>>>>>> access to.
>>>>>>
>>>>>> --
>>>>>> Howard M. Lewis Ship
>>>>>> Independent J2EE / Open-Source Java Consultant
>>>>>> Creator, Jakarta Tapestry
>>>>>> Creator, Jakarta HiveMind
>>>>>>
>>>>>> Professional Tapestry training, mentoring, support
>>>>>> and project work. http://howardlewisship.com
>>>>>>
>>>>>>
|
|
From: Juergen H. <ju...@in...> - 2005-01-29 14:31:27
|
I was mainly wondering whether it makes sense to separate HiveMind/Spring
integration and Spring/HiveMind integration... Shouldn't we put both into
the *same* distribution?
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...]On Behalf
Of Rob Harrop
Sent: Saturday, January 29, 2005 3:27 PM
To: spr...@li...
Subject: Re: [Springframework-developer] Spring / HiveMind Integration
I was thinking of distributing this as one of the first things in the a
separate project containing extensions and add-ons to Spring. I've been
working on a couple of other modules as well which I think should be
kept separate from the core.
Rob
Juergen Hoeller wrote:
>I guess the problem is also about shipping. If HiveMind ships with Spring,
>and Spring would then ship with HiveMind too, it seems to me that we could
>simplify this: Why not put all Spring/HiveMind integration code into
>HiveMind Extras or a Spring-HiveMind project or the like? There would a
>single place to maintain both ways of integration then, for specific
>versions of Spring and HiveMind.
>
>Even if we included HiveMind integration in Spring, we would have to do
this
>in a separate distribution, Spring Extras or whatever it would be called.
It
>is certainly not feasible to extend the dependencies of the core Spring
>distribution to integration with other lightweight containers, given that
we
>already ship all sorts of persistence and web view libraries etc.
>
>Juergen
>
>
>-----Original Message-----
>From: spr...@li...
>[mailto:spr...@li...]On Behalf
>Of Rob Harrop
>Sent: Saturday, January 29, 2005 2:54 PM
>To: spr...@li...
>Subject: Re: [Springframework-developer] Spring / HiveMind Integration
>
>
>That is a concern, and I guess we could put in hooks to prevent this -
>but I think it is probably simpler to say "Don't do this!".
>
>Rob
>
>Colin Sampaleanu wrote:
>
>
>
>>I'm not sure it really matters, but given that Hivemind already has
>>Spring integration code, and we are talking about Hivemind
>>integration code for Spring, nobody has mentioned that we're going to
>>end up with a circular dependency here... There are some potential
>>versioning issues, but I guess they are a concern if you want to call
>>from Spring to Hivemind back to Spring, or Hivemind to Spring back to
>>Hivemind...
>>
>>Rob Harrop wrote:
>>
>>
>>
>>>Howard,
>>>
>>>I think it will be quite simple to integrate HiveMind services into
>>>Spring. As I see it we need a HiveMindRegistryFactoryBean to create
>>>the Registry instance and then a HiveMindServiceFactoryBean that uses
>>>the Registry to lookup a given service. By default the
>>>HiveMindServiceFactoryBean would use the Spring bean name to lookup a
>>>service in the Registry, but users could configure a different
>>>service name using DI. With this mechanism, users can create one
>>>instance of Registry within a Spring application and then access many
>>>services from that Registry.
>>>
>>>If I have time today, I'll work on this. If not, I'll work on it next
>>>week some time.
>>>
>>>Rob
>>>
>>>Howard Lewis Ship wrote:
>>>
>>>
>>>
>>>>This comes up quite a bit, they are similiar in intent but quite
>>>>different in execution.
>>>>
>>>>- HiveMind has a very sophisiticated configurations model (very
>>>>similar to Eclipse plugins) based on configuration points and
>>>>contributions (from multiple locations)
>>>>- HiveMind is the infrastructure for Tapestry 3.1, and many Tapestry
>>>>applications also use Spring
>>>>- Because Rod and I (and the other Spring team member's I've talked
>>>>to) want to foster cooperation and compatability rather than
>>>>competition
>>>>
>>>>
>>>>On Fri, 28 Jan 2005 10:47:48 +1100, Mason, Ross
>>>><ros...@vi...> wrote:
>>>>
>>>>
>>>>
>>>>
>>>>>Hi Howard,
>>>>>
>>>>>What is the use case for integrating HiveMind and Spring? I must
>>>>>admit I haven't had a chance to get a good look at HiveMind, but my
>>>>>understanding is that it is a DI container that provides service
>>>>>wiring and interception, much in the same vein as the Spring
>>>>>Container. From the outset the two containers seem to be mutally
>>>>>exclusive rather than complimentary.
>>>>>
>>>>>Can you shed some light on this for me?
>>>>>
>>>>>Cheers,
>>>>>
>>>>>Ross
>>>>>
>>>>> -----Original Message-----
>>>>> From: spr...@li...
>>>>>on behalf of Howard Lewis Ship
>>>>> Sent: Wed 26/01/2005 2:46 PM
>>>>> To: spr...@li...
>>>>> Cc:
>>>>> Subject: [Springframework-developer] Spring / HiveMind
>>>>>Integration
>>>>>
>>>>> Since HiveMind 1.0, and improved in HiveMind 1.1, there's
>>>>>been basic
>>>>> integration between HiveMind and Spring.
>>>>>
>>>>> At the core of it is the ability to define a HiveMind
>>>>>service in terms
>>>>> of a Spring bean within a BeanFactory. The essential code is:
>>>>>
>>>>> public Object createCoreServiceImplementation(
>>>>> ServiceImplementationFactoryParameters
>>>>>factoryParameters)
>>>>> {
>>>>> SpringBeanParameter p = (SpringBeanParameter)
>>>>> factoryParameters.getFirstParameter();
>>>>> String beanName = p.getName();
>>>>>
>>>>> BeanFactory f = p.getBeanFactory();
>>>>>
>>>>> if (f == null)
>>>>> f = _defaultBeanFactory;
>>>>>
>>>>> return f.getBean(beanName,
>>>>>factoryParameters.getServiceInterface());
>>>>> }
>>>>>
>>>>> With this, its possible to obtain a Spring bean and the core
>>>>>service
>>>>> implementation of a HiveMind service. The implementation
>>>>>can be
>>>>> extended with interceptors and injected into other HiveMind
>>>>>services.
>>>>>
>>>>> At Javapolis, I talked with Rod about having something
>>>>>similar going
>>>>> the other direction, allowing HiveMind services to be
>>>>>referencable
>>>>> (and injectable) as Spring beans. I'd like to provoke a
>>>>>discussion on
>>>>> what that would look like, and what API changes would be
>>>>>needed in
>>>>> HiveMind 1.1 to support it.
>>>>>
>>>>> Rod seemed to think (and I didn't follow the reasoning) that
>>>>>HiveMind
>>>>> would need an API to iterate over the names of all services.
>>>>>
>>>>> In addition, configuration data (in either List or Map form)
>>>>>is also
>>>>> quite valuable and something that Spring beans would like to
>>>>>have
>>>>> access to.
>>>>>
>>>>> --
>>>>> Howard M. Lewis Ship
>>>>> Independent J2EE / Open-Source Java Consultant
>>>>> Creator, Jakarta Tapestry
>>>>> Creator, Jakarta HiveMind
>>>>>
>>>>> Professional Tapestry training, mentoring, support
>>>>> and project work. http://howardlewisship.com
>>>>>
>>>>>
>>>>
>>>>
>>
>>-------------------------------------------------------
>>This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
>>Tool for open source databases. Create drag-&-drop reports. Save time
>>by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
>>Download a FREE copy at http://www.intelliview.com/go/osdn_nl
>>_______________________________________________
>>Springframework-developer mailing list
>>Spr...@li...
>>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>>
>>
>>
>>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
>Tool for open source databases. Create drag-&-drop reports. Save time
>by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
>Download a FREE copy at http://www.intelliview.com/go/osdn_nl
>_______________________________________________
>Springframework-developer mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
>Tool for open source databases. Create drag-&-drop reports. Save time
>by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
>Download a FREE copy at http://www.intelliview.com/go/osdn_nl
>_______________________________________________
>Springframework-developer mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
>
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Rob H. <ro...@ca...> - 2005-01-29 14:28:38
|
I was thinking of distributing this as one of the first things in the a
separate project containing extensions and add-ons to Spring. I've been
working on a couple of other modules as well which I think should be
kept separate from the core.
Rob
Juergen Hoeller wrote:
>I guess the problem is also about shipping. If HiveMind ships with Spring,
>and Spring would then ship with HiveMind too, it seems to me that we could
>simplify this: Why not put all Spring/HiveMind integration code into
>HiveMind Extras or a Spring-HiveMind project or the like? There would a
>single place to maintain both ways of integration then, for specific
>versions of Spring and HiveMind.
>
>Even if we included HiveMind integration in Spring, we would have to do this
>in a separate distribution, Spring Extras or whatever it would be called. It
>is certainly not feasible to extend the dependencies of the core Spring
>distribution to integration with other lightweight containers, given that we
>already ship all sorts of persistence and web view libraries etc.
>
>Juergen
>
>
>-----Original Message-----
>From: spr...@li...
>[mailto:spr...@li...]On Behalf
>Of Rob Harrop
>Sent: Saturday, January 29, 2005 2:54 PM
>To: spr...@li...
>Subject: Re: [Springframework-developer] Spring / HiveMind Integration
>
>
>That is a concern, and I guess we could put in hooks to prevent this -
>but I think it is probably simpler to say "Don't do this!".
>
>Rob
>
>Colin Sampaleanu wrote:
>
>
>
>>I'm not sure it really matters, but given that Hivemind already has
>>Spring integration code, and we are talking about Hivemind
>>integration code for Spring, nobody has mentioned that we're going to
>>end up with a circular dependency here... There are some potential
>>versioning issues, but I guess they are a concern if you want to call
>>from Spring to Hivemind back to Spring, or Hivemind to Spring back to
>>Hivemind...
>>
>>Rob Harrop wrote:
>>
>>
>>
>>>Howard,
>>>
>>>I think it will be quite simple to integrate HiveMind services into
>>>Spring. As I see it we need a HiveMindRegistryFactoryBean to create
>>>the Registry instance and then a HiveMindServiceFactoryBean that uses
>>>the Registry to lookup a given service. By default the
>>>HiveMindServiceFactoryBean would use the Spring bean name to lookup a
>>>service in the Registry, but users could configure a different
>>>service name using DI. With this mechanism, users can create one
>>>instance of Registry within a Spring application and then access many
>>>services from that Registry.
>>>
>>>If I have time today, I'll work on this. If not, I'll work on it next
>>>week some time.
>>>
>>>Rob
>>>
>>>Howard Lewis Ship wrote:
>>>
>>>
>>>
>>>>This comes up quite a bit, they are similiar in intent but quite
>>>>different in execution.
>>>>
>>>>- HiveMind has a very sophisiticated configurations model (very
>>>>similar to Eclipse plugins) based on configuration points and
>>>>contributions (from multiple locations)
>>>>- HiveMind is the infrastructure for Tapestry 3.1, and many Tapestry
>>>>applications also use Spring
>>>>- Because Rod and I (and the other Spring team member's I've talked
>>>>to) want to foster cooperation and compatability rather than
>>>>competition
>>>>
>>>>
>>>>On Fri, 28 Jan 2005 10:47:48 +1100, Mason, Ross
>>>><ros...@vi...> wrote:
>>>>
>>>>
>>>>
>>>>
>>>>>Hi Howard,
>>>>>
>>>>>What is the use case for integrating HiveMind and Spring? I must
>>>>>admit I haven't had a chance to get a good look at HiveMind, but my
>>>>>understanding is that it is a DI container that provides service
>>>>>wiring and interception, much in the same vein as the Spring
>>>>>Container. From the outset the two containers seem to be mutally
>>>>>exclusive rather than complimentary.
>>>>>
>>>>>Can you shed some light on this for me?
>>>>>
>>>>>Cheers,
>>>>>
>>>>>Ross
>>>>>
>>>>> -----Original Message-----
>>>>> From: spr...@li...
>>>>>on behalf of Howard Lewis Ship
>>>>> Sent: Wed 26/01/2005 2:46 PM
>>>>> To: spr...@li...
>>>>> Cc:
>>>>> Subject: [Springframework-developer] Spring / HiveMind
>>>>>Integration
>>>>>
>>>>> Since HiveMind 1.0, and improved in HiveMind 1.1, there's
>>>>>been basic
>>>>> integration between HiveMind and Spring.
>>>>>
>>>>> At the core of it is the ability to define a HiveMind
>>>>>service in terms
>>>>> of a Spring bean within a BeanFactory. The essential code is:
>>>>>
>>>>> public Object createCoreServiceImplementation(
>>>>> ServiceImplementationFactoryParameters
>>>>>factoryParameters)
>>>>> {
>>>>> SpringBeanParameter p = (SpringBeanParameter)
>>>>> factoryParameters.getFirstParameter();
>>>>> String beanName = p.getName();
>>>>>
>>>>> BeanFactory f = p.getBeanFactory();
>>>>>
>>>>> if (f == null)
>>>>> f = _defaultBeanFactory;
>>>>>
>>>>> return f.getBean(beanName,
>>>>>factoryParameters.getServiceInterface());
>>>>> }
>>>>>
>>>>> With this, its possible to obtain a Spring bean and the core
>>>>>service
>>>>> implementation of a HiveMind service. The implementation
>>>>>can be
>>>>> extended with interceptors and injected into other HiveMind
>>>>>services.
>>>>>
>>>>> At Javapolis, I talked with Rod about having something
>>>>>similar going
>>>>> the other direction, allowing HiveMind services to be
>>>>>referencable
>>>>> (and injectable) as Spring beans. I'd like to provoke a
>>>>>discussion on
>>>>> what that would look like, and what API changes would be
>>>>>needed in
>>>>> HiveMind 1.1 to support it.
>>>>>
>>>>> Rod seemed to think (and I didn't follow the reasoning) that
>>>>>HiveMind
>>>>> would need an API to iterate over the names of all services.
>>>>>
>>>>> In addition, configuration data (in either List or Map form)
>>>>>is also
>>>>> quite valuable and something that Spring beans would like to
>>>>>have
>>>>> access to.
>>>>>
>>>>> --
>>>>> Howard M. Lewis Ship
>>>>> Independent J2EE / Open-Source Java Consultant
>>>>> Creator, Jakarta Tapestry
>>>>> Creator, Jakarta HiveMind
>>>>>
>>>>> Professional Tapestry training, mentoring, support
>>>>> and project work. http://howardlewisship.com
>>>>>
>>>>>
>>>>
>>>>
>>
>>-------------------------------------------------------
>>This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
>>Tool for open source databases. Create drag-&-drop reports. Save time
>>by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
>>Download a FREE copy at http://www.intelliview.com/go/osdn_nl
>>_______________________________________________
>>Springframework-developer mailing list
>>Spr...@li...
>>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>>
>>
>>
>>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
>Tool for open source databases. Create drag-&-drop reports. Save time
>by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
>Download a FREE copy at http://www.intelliview.com/go/osdn_nl
>_______________________________________________
>Springframework-developer mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
>Tool for open source databases. Create drag-&-drop reports. Save time
>by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
>Download a FREE copy at http://www.intelliview.com/go/osdn_nl
>_______________________________________________
>Springframework-developer mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
>
|
|
From: Juergen H. <ju...@in...> - 2005-01-29 14:14:46
|
I guess the problem is also about shipping. If HiveMind ships with Spring,
and Spring would then ship with HiveMind too, it seems to me that we could
simplify this: Why not put all Spring/HiveMind integration code into
HiveMind Extras or a Spring-HiveMind project or the like? There would a
single place to maintain both ways of integration then, for specific
versions of Spring and HiveMind.
Even if we included HiveMind integration in Spring, we would have to do this
in a separate distribution, Spring Extras or whatever it would be called. It
is certainly not feasible to extend the dependencies of the core Spring
distribution to integration with other lightweight containers, given that we
already ship all sorts of persistence and web view libraries etc.
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...]On Behalf
Of Rob Harrop
Sent: Saturday, January 29, 2005 2:54 PM
To: spr...@li...
Subject: Re: [Springframework-developer] Spring / HiveMind Integration
That is a concern, and I guess we could put in hooks to prevent this -
but I think it is probably simpler to say "Don't do this!".
Rob
Colin Sampaleanu wrote:
> I'm not sure it really matters, but given that Hivemind already has
> Spring integration code, and we are talking about Hivemind
> integration code for Spring, nobody has mentioned that we're going to
> end up with a circular dependency here... There are some potential
> versioning issues, but I guess they are a concern if you want to call
> from Spring to Hivemind back to Spring, or Hivemind to Spring back to
> Hivemind...
>
> Rob Harrop wrote:
>
>> Howard,
>>
>> I think it will be quite simple to integrate HiveMind services into
>> Spring. As I see it we need a HiveMindRegistryFactoryBean to create
>> the Registry instance and then a HiveMindServiceFactoryBean that uses
>> the Registry to lookup a given service. By default the
>> HiveMindServiceFactoryBean would use the Spring bean name to lookup a
>> service in the Registry, but users could configure a different
>> service name using DI. With this mechanism, users can create one
>> instance of Registry within a Spring application and then access many
>> services from that Registry.
>>
>> If I have time today, I'll work on this. If not, I'll work on it next
>> week some time.
>>
>> Rob
>>
>> Howard Lewis Ship wrote:
>>
>>> This comes up quite a bit, they are similiar in intent but quite
>>> different in execution.
>>>
>>> - HiveMind has a very sophisiticated configurations model (very
>>> similar to Eclipse plugins) based on configuration points and
>>> contributions (from multiple locations)
>>> - HiveMind is the infrastructure for Tapestry 3.1, and many Tapestry
>>> applications also use Spring
>>> - Because Rod and I (and the other Spring team member's I've talked
>>> to) want to foster cooperation and compatability rather than
>>> competition
>>>
>>>
>>> On Fri, 28 Jan 2005 10:47:48 +1100, Mason, Ross
>>> <ros...@vi...> wrote:
>>>
>>>
>>>> Hi Howard,
>>>>
>>>> What is the use case for integrating HiveMind and Spring? I must
>>>> admit I haven't had a chance to get a good look at HiveMind, but my
>>>> understanding is that it is a DI container that provides service
>>>> wiring and interception, much in the same vein as the Spring
>>>> Container. From the outset the two containers seem to be mutally
>>>> exclusive rather than complimentary.
>>>>
>>>> Can you shed some light on this for me?
>>>>
>>>> Cheers,
>>>>
>>>> Ross
>>>>
>>>> -----Original Message-----
>>>> From: spr...@li...
>>>> on behalf of Howard Lewis Ship
>>>> Sent: Wed 26/01/2005 2:46 PM
>>>> To: spr...@li...
>>>> Cc:
>>>> Subject: [Springframework-developer] Spring / HiveMind
>>>> Integration
>>>>
>>>> Since HiveMind 1.0, and improved in HiveMind 1.1, there's
>>>> been basic
>>>> integration between HiveMind and Spring.
>>>>
>>>> At the core of it is the ability to define a HiveMind
>>>> service in terms
>>>> of a Spring bean within a BeanFactory. The essential code is:
>>>>
>>>> public Object createCoreServiceImplementation(
>>>> ServiceImplementationFactoryParameters
>>>> factoryParameters)
>>>> {
>>>> SpringBeanParameter p = (SpringBeanParameter)
>>>> factoryParameters.getFirstParameter();
>>>> String beanName = p.getName();
>>>>
>>>> BeanFactory f = p.getBeanFactory();
>>>>
>>>> if (f == null)
>>>> f = _defaultBeanFactory;
>>>>
>>>> return f.getBean(beanName,
>>>> factoryParameters.getServiceInterface());
>>>> }
>>>>
>>>> With this, its possible to obtain a Spring bean and the core
>>>> service
>>>> implementation of a HiveMind service. The implementation
>>>> can be
>>>> extended with interceptors and injected into other HiveMind
>>>> services.
>>>>
>>>> At Javapolis, I talked with Rod about having something
>>>> similar going
>>>> the other direction, allowing HiveMind services to be
>>>> referencable
>>>> (and injectable) as Spring beans. I'd like to provoke a
>>>> discussion on
>>>> what that would look like, and what API changes would be
>>>> needed in
>>>> HiveMind 1.1 to support it.
>>>>
>>>> Rod seemed to think (and I didn't follow the reasoning) that
>>>> HiveMind
>>>> would need an API to iterate over the names of all services.
>>>>
>>>> In addition, configuration data (in either List or Map form)
>>>> is also
>>>> quite valuable and something that Spring beans would like to
>>>> have
>>>> access to.
>>>>
>>>> --
>>>> Howard M. Lewis Ship
>>>> Independent J2EE / Open-Source Java Consultant
>>>> Creator, Jakarta Tapestry
>>>> Creator, Jakarta HiveMind
>>>>
>>>> Professional Tapestry training, mentoring, support
>>>> and project work. http://howardlewisship.com
>>>
>>>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
> Tool for open source databases. Create drag-&-drop reports. Save time
> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Rob H. <ro...@ca...> - 2005-01-29 13:55:49
|
That is a concern, and I guess we could put in hooks to prevent this -
but I think it is probably simpler to say "Don't do this!".
Rob
Colin Sampaleanu wrote:
> I'm not sure it really matters, but given that Hivemind already has
> Spring integration code, and we are talking about Hivemind
> integration code for Spring, nobody has mentioned that we're going to
> end up with a circular dependency here... There are some potential
> versioning issues, but I guess they are a concern if you want to call
> from Spring to Hivemind back to Spring, or Hivemind to Spring back to
> Hivemind...
>
> Rob Harrop wrote:
>
>> Howard,
>>
>> I think it will be quite simple to integrate HiveMind services into
>> Spring. As I see it we need a HiveMindRegistryFactoryBean to create
>> the Registry instance and then a HiveMindServiceFactoryBean that uses
>> the Registry to lookup a given service. By default the
>> HiveMindServiceFactoryBean would use the Spring bean name to lookup a
>> service in the Registry, but users could configure a different
>> service name using DI. With this mechanism, users can create one
>> instance of Registry within a Spring application and then access many
>> services from that Registry.
>>
>> If I have time today, I'll work on this. If not, I'll work on it next
>> week some time.
>>
>> Rob
>>
>> Howard Lewis Ship wrote:
>>
>>> This comes up quite a bit, they are similiar in intent but quite
>>> different in execution.
>>>
>>> - HiveMind has a very sophisiticated configurations model (very
>>> similar to Eclipse plugins) based on configuration points and
>>> contributions (from multiple locations)
>>> - HiveMind is the infrastructure for Tapestry 3.1, and many Tapestry
>>> applications also use Spring
>>> - Because Rod and I (and the other Spring team member's I've talked
>>> to) want to foster cooperation and compatability rather than
>>> competition
>>>
>>>
>>> On Fri, 28 Jan 2005 10:47:48 +1100, Mason, Ross
>>> <ros...@vi...> wrote:
>>>
>>>
>>>> Hi Howard,
>>>>
>>>> What is the use case for integrating HiveMind and Spring? I must
>>>> admit I haven't had a chance to get a good look at HiveMind, but my
>>>> understanding is that it is a DI container that provides service
>>>> wiring and interception, much in the same vein as the Spring
>>>> Container. From the outset the two containers seem to be mutally
>>>> exclusive rather than complimentary.
>>>>
>>>> Can you shed some light on this for me?
>>>>
>>>> Cheers,
>>>>
>>>> Ross
>>>>
>>>> -----Original Message-----
>>>> From: spr...@li...
>>>> on behalf of Howard Lewis Ship
>>>> Sent: Wed 26/01/2005 2:46 PM
>>>> To: spr...@li...
>>>> Cc:
>>>> Subject: [Springframework-developer] Spring / HiveMind
>>>> Integration
>>>>
>>>> Since HiveMind 1.0, and improved in HiveMind 1.1, there's
>>>> been basic
>>>> integration between HiveMind and Spring.
>>>>
>>>> At the core of it is the ability to define a HiveMind
>>>> service in terms
>>>> of a Spring bean within a BeanFactory. The essential code is:
>>>>
>>>> public Object createCoreServiceImplementation(
>>>> ServiceImplementationFactoryParameters
>>>> factoryParameters)
>>>> {
>>>> SpringBeanParameter p = (SpringBeanParameter)
>>>> factoryParameters.getFirstParameter();
>>>> String beanName = p.getName();
>>>>
>>>> BeanFactory f = p.getBeanFactory();
>>>>
>>>> if (f == null)
>>>> f = _defaultBeanFactory;
>>>>
>>>> return f.getBean(beanName,
>>>> factoryParameters.getServiceInterface());
>>>> }
>>>>
>>>> With this, its possible to obtain a Spring bean and the core
>>>> service
>>>> implementation of a HiveMind service. The implementation
>>>> can be
>>>> extended with interceptors and injected into other HiveMind
>>>> services.
>>>>
>>>> At Javapolis, I talked with Rod about having something
>>>> similar going
>>>> the other direction, allowing HiveMind services to be
>>>> referencable
>>>> (and injectable) as Spring beans. I'd like to provoke a
>>>> discussion on
>>>> what that would look like, and what API changes would be
>>>> needed in
>>>> HiveMind 1.1 to support it.
>>>>
>>>> Rod seemed to think (and I didn't follow the reasoning) that
>>>> HiveMind
>>>> would need an API to iterate over the names of all services.
>>>>
>>>> In addition, configuration data (in either List or Map form)
>>>> is also
>>>> quite valuable and something that Spring beans would like to
>>>> have
>>>> access to.
>>>>
>>>> --
>>>> Howard M. Lewis Ship
>>>> Independent J2EE / Open-Source Java Consultant
>>>> Creator, Jakarta Tapestry
>>>> Creator, Jakarta HiveMind
>>>>
>>>> Professional Tapestry training, mentoring, support
>>>> and project work. http://howardlewisship.com
>>>
>>>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
> Tool for open source databases. Create drag-&-drop reports. Save time
> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
|
|
From: Colin S. <col...@ex...> - 2005-01-29 13:20:17
|
I'm not sure it really matters, but given that Hivemind already has
Spring integration code, and we are talking about Hivemind integration
code for Spring, nobody has mentioned that we're going to end up with a
circular dependency here... There are some potential versioning issues,
but I guess they are a concern if you want to call from Spring to
Hivemind back to Spring, or Hivemind to Spring back to Hivemind...
Rob Harrop wrote:
> Howard,
>
> I think it will be quite simple to integrate HiveMind services into
> Spring. As I see it we need a HiveMindRegistryFactoryBean to create
> the Registry instance and then a HiveMindServiceFactoryBean that uses
> the Registry to lookup a given service. By default the
> HiveMindServiceFactoryBean would use the Spring bean name to lookup a
> service in the Registry, but users could configure a different service
> name using DI. With this mechanism, users can create one instance of
> Registry within a Spring application and then access many services
> from that Registry.
>
> If I have time today, I'll work on this. If not, I'll work on it next
> week some time.
>
> Rob
>
> Howard Lewis Ship wrote:
>
>> This comes up quite a bit, they are similiar in intent but quite
>> different in execution.
>>
>> - HiveMind has a very sophisiticated configurations model (very
>> similar to Eclipse plugins) based on configuration points and
>> contributions (from multiple locations)
>> - HiveMind is the infrastructure for Tapestry 3.1, and many Tapestry
>> applications also use Spring
>> - Because Rod and I (and the other Spring team member's I've talked
>> to) want to foster cooperation and compatability rather than
>> competition
>>
>>
>> On Fri, 28 Jan 2005 10:47:48 +1100, Mason, Ross
>> <ros...@vi...> wrote:
>>
>>
>>> Hi Howard,
>>>
>>> What is the use case for integrating HiveMind and Spring? I must
>>> admit I haven't had a chance to get a good look at HiveMind, but my
>>> understanding is that it is a DI container that provides service
>>> wiring and interception, much in the same vein as the Spring
>>> Container. From the outset the two containers seem to be mutally
>>> exclusive rather than complimentary.
>>>
>>> Can you shed some light on this for me?
>>>
>>> Cheers,
>>>
>>> Ross
>>>
>>> -----Original Message-----
>>> From: spr...@li...
>>> on behalf of Howard Lewis Ship
>>> Sent: Wed 26/01/2005 2:46 PM
>>> To: spr...@li...
>>> Cc:
>>> Subject: [Springframework-developer] Spring / HiveMind
>>> Integration
>>>
>>> Since HiveMind 1.0, and improved in HiveMind 1.1, there's
>>> been basic
>>> integration between HiveMind and Spring.
>>>
>>> At the core of it is the ability to define a HiveMind service
>>> in terms
>>> of a Spring bean within a BeanFactory. The essential code is:
>>>
>>> public Object createCoreServiceImplementation(
>>> ServiceImplementationFactoryParameters
>>> factoryParameters)
>>> {
>>> SpringBeanParameter p = (SpringBeanParameter)
>>> factoryParameters.getFirstParameter();
>>> String beanName = p.getName();
>>>
>>> BeanFactory f = p.getBeanFactory();
>>>
>>> if (f == null)
>>> f = _defaultBeanFactory;
>>>
>>> return f.getBean(beanName,
>>> factoryParameters.getServiceInterface());
>>> }
>>>
>>> With this, its possible to obtain a Spring bean and the core
>>> service
>>> implementation of a HiveMind service. The implementation can be
>>> extended with interceptors and injected into other HiveMind
>>> services.
>>>
>>> At Javapolis, I talked with Rod about having something
>>> similar going
>>> the other direction, allowing HiveMind services to be
>>> referencable
>>> (and injectable) as Spring beans. I'd like to provoke a
>>> discussion on
>>> what that would look like, and what API changes would be
>>> needed in
>>> HiveMind 1.1 to support it.
>>>
>>> Rod seemed to think (and I didn't follow the reasoning) that
>>> HiveMind
>>> would need an API to iterate over the names of all services.
>>>
>>> In addition, configuration data (in either List or Map form)
>>> is also
>>> quite valuable and something that Spring beans would like to
>>> have
>>> access to.
>>>
>>> --
>>> Howard M. Lewis Ship
>>> Independent J2EE / Open-Source Java Consultant
>>> Creator, Jakarta Tapestry
>>> Creator, Jakarta HiveMind
>>>
>>> Professional Tapestry training, mentoring, support
>>> and project work. http://howardlewisship.com
>>
|
|
From: Rob H. <ro...@ca...> - 2005-01-29 13:11:44
|
Howard,
I think it will be quite simple to integrate HiveMind services into
Spring. As I see it we need a HiveMindRegistryFactoryBean to create the
Registry instance and then a HiveMindServiceFactoryBean that uses the
Registry to lookup a given service. By default the
HiveMindServiceFactoryBean would use the Spring bean name to lookup a
service in the Registry, but users could configure a different service
name using DI. With this mechanism, users can create one instance of
Registry within a Spring application and then access many services from
that Registry.
If I have time today, I'll work on this. If not, I'll work on it next
week some time.
Rob
Howard Lewis Ship wrote:
>This comes up quite a bit, they are similiar in intent but quite
>different in execution.
>
>- HiveMind has a very sophisiticated configurations model (very
>similar to Eclipse plugins) based on configuration points and
>contributions (from multiple locations)
>- HiveMind is the infrastructure for Tapestry 3.1, and many Tapestry
>applications also use Spring
>- Because Rod and I (and the other Spring team member's I've talked
>to) want to foster cooperation and compatability rather than
>competition
>
>
>On Fri, 28 Jan 2005 10:47:48 +1100, Mason, Ross <ros...@vi...> wrote:
>
>
>>Hi Howard,
>>
>>What is the use case for integrating HiveMind and Spring? I must admit I haven't had a chance to get a good look at HiveMind, but my understanding is that it is a DI container that provides service wiring and interception, much in the same vein as the Spring Container. From the outset the two containers seem to be mutally exclusive rather than complimentary.
>>
>>Can you shed some light on this for me?
>>
>>Cheers,
>>
>>Ross
>>
>> -----Original Message-----
>> From: spr...@li... on behalf of Howard Lewis Ship
>> Sent: Wed 26/01/2005 2:46 PM
>> To: spr...@li...
>> Cc:
>> Subject: [Springframework-developer] Spring / HiveMind Integration
>>
>> Since HiveMind 1.0, and improved in HiveMind 1.1, there's been basic
>> integration between HiveMind and Spring.
>>
>> At the core of it is the ability to define a HiveMind service in terms
>> of a Spring bean within a BeanFactory. The essential code is:
>>
>> public Object createCoreServiceImplementation(
>> ServiceImplementationFactoryParameters factoryParameters)
>> {
>> SpringBeanParameter p = (SpringBeanParameter)
>> factoryParameters.getFirstParameter();
>> String beanName = p.getName();
>>
>> BeanFactory f = p.getBeanFactory();
>>
>> if (f == null)
>> f = _defaultBeanFactory;
>>
>> return f.getBean(beanName, factoryParameters.getServiceInterface());
>> }
>>
>> With this, its possible to obtain a Spring bean and the core service
>> implementation of a HiveMind service. The implementation can be
>> extended with interceptors and injected into other HiveMind services.
>>
>> At Javapolis, I talked with Rod about having something similar going
>> the other direction, allowing HiveMind services to be referencable
>> (and injectable) as Spring beans. I'd like to provoke a discussion on
>> what that would look like, and what API changes would be needed in
>> HiveMind 1.1 to support it.
>>
>> Rod seemed to think (and I didn't follow the reasoning) that HiveMind
>> would need an API to iterate over the names of all services.
>>
>> In addition, configuration data (in either List or Map form) is also
>> quite valuable and something that Spring beans would like to have
>> access to.
>>
>> --
>> Howard M. Lewis Ship
>> Independent J2EE / Open-Source Java Consultant
>> Creator, Jakarta Tapestry
>> Creator, Jakarta HiveMind
>>
>> Professional Tapestry training, mentoring, support
>> and project work. http://howardlewisship.com
>>
>>
>> -------------------------------------------------------
>> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
>> Tool for open source databases. Create drag-&-drop reports. Save time
>> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
>> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
>> _______________________________________________
>> Springframework-developer mailing list
>> Spr...@li...
>> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>>
>>
>>
>>
>>
>
>
>
>
|
|
From: Juergen H. <ju...@in...> - 2005-01-29 10:43:57
|
Actually, this can happen without either Spring or the ThreadLocal mechanism
breaking: One of your persistent objects might hold a lazy persistent
collection, which holds a reference to the Session that originally loaded
it.
If you put such a persistent object into the HttpSession, for example, the
original request that loaded the object (in thread TPProcessor1) will have
completed and thus the Hibernate Session have been closed. Now, if you take
your persistent object out of the HttpSession again in a new request (in
thread TPProcessor7) and try to access it lazy collection, it's gonna fail
because the original Session has been closed.
So the "leak" where a Session reference got out of its original
request/thread context is your persistent object in the HttpSession here.
This is a well-known problem: To make lazy loading work here, you need to
attach the persistent object to the new Hibernate Session (via lock or
saveOrUpdate).
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...]On Behalf Of
March, Andres
Sent: Friday, January 28, 2005 8:27 PM
To: spr...@li...
Subject: [Springframework-developer] Non Thread-safe hibernate session
As you can see below, a thread, other than the one that had the session
created for it, tries to access a session but it has been closed by the
valid owner thread. This only occurs under decent load. There must be some
thread safety issue in Spring or the whole ThreadLocal idea goes out the
window. Does anybody have any idea how this could occur? I don't see how I
could be misinterpreting this trace.
FATAL (SessionImpl.java:528) - Constructor for session:
net.sf.hibernate.impl.SessionImpl@b72884 on thread : TP-Processor1
FATAL (SessionFactoryImpl.java:342) - Session :
net.sf.hibernate.impl.SessionImpl@b72884 created for Thread : TP-Processor1
.later on.
closing session : net.sf.hibernate.impl.SessionImpl@b72884 and conn:
com.mchange.v2.c3p0.impl.NewProxyConnection@4ad009 on Thread : TP-Processor1
.later on.
net.sf.hibernate.HibernateException: Session is closed :
net.sf.hibernate.impl.SessionImpl@b72884 on thread : TP-Processor7
at
net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3313)
at
net.sf.hibernate.proxy.LazyInitializer.initialize(LazyInitializer.java:47)
at
net.sf.hibernate.proxy.LazyInitializer.initializeWrapExceptions(LazyInitiali
zer.java:60)
at
net.sf.hibernate.proxy.LazyInitializer.getImplementation(LazyInitializer.jav
a:164)
at
net.sf.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.j
ava:108)
at
com.sony.soe.guilds.model.GameCharacter$$EnhancerByCGLIB$$25b6cd13.getBioIma
ge(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.velocity.runtime.parser.node.PropertyExecutor.execute(PropertyExe
cutor.java:111)
at
org.apache.velocity.util.introspection.UberspectImpl$VelGetterImpl.invoke(Ub
erspectImpl.java:300)
at
org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentifier.
java:157)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.ja
va:175)
at
org.apache.velocity.runtime.parser.node.ASTReference.evaluate(ASTReference.j
ava:307)
at
org.apache.velocity.runtime.parser.node.ASTNotNode.evaluate(ASTNotNode.java:
47)
at
org.apache.velocity.runtime.parser.node.ASTExpression.evaluate(ASTExpression
.java:46)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement
.java:69)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:23
1)
at
org.apache.velocity.runtime.directive.Parse.render(Parse.java:181)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.jav
a:116)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:56)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement
.java:71)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:56)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement
.java:71)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:23
1)
at
org.apache.velocity.runtime.directive.Parse.render(Parse.java:181)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.jav
a:116)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:23
1)
at org.apache.velocity.Template.merge(Template.java:256)
at com.sony.soe.web.mvc.VelocityView.go(VelocityView.java:181)
at
com.sony.soe.guilds.view.VelocityLayout.go(VelocityLayout.java:135)
at
org.infohazard.maverick.flow.CommandBase.go(CommandBase.java:79)
at org.infohazard.maverick.Dispatcher.service(Dispatcher.java:345)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
at
net.sf.acegisecurity.ui.AbstractIntegrationFilter.doFilter(AbstractIntegrati
onFilter.java:170)
at
com.sony.soe.guilds.controller.SecurityFilter.doFilter(SecurityFilter.java:1
18)
at
net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:
88)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
at
org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterIn
ternal(OpenSessionInViewFilter.java:17
1)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestF
ilter.java:76)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
Valve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137
)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117
)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
at
org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java
:169)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:296)
at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:372)
at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:694)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:626)
at
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:807)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:644)
at java.lang.Thread.run(Thread.java:534)
-----------------------------------------
Andres March
Platform - Apps Engineering
Sony Online Entertainment
desk: 858.577.3373
cell: 619.519.1519
|
|
From: Juergen H. <ju...@in...> - 2005-01-29 10:32:35
|
Alef,
There hasn't been a new nightly build in the past couple of days. Is the
build server down?
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...]On Behalf Of
al...@jt...
Sent: Friday, January 28, 2005 12:19 AM
To: spr...@li...
Subject: [Springframework-developer] spring Build Failed
Importance: High
BUILD FAILED
Ant Error Message:
/jteam/build2/checkout/spring/spring/build.xml:61: Unable to delete file
/jteam/build2/checkout/spring/spring/target/classes/META-INF/spring.tld
Date of build: 01/28/2005 00:16:06
Time to build: 28 seconds
Last changed: 01/27/2005 17:39:18
Last log entry: fixed javadoc typo
Unit Tests: (2366)
failure testAllMacros
org.springframework.web.servlet.view.freemarker.FreeMarkerMacroTests
Unit Test Error Details: (1)
Test: testAllMacros
Class:
org.springframework.web.servlet.view.freemarker.FreeMarkerMacroTests
Type: junit.framework.ComparisonFailure
Message: expected:<... >> but was:<...>
junit.framework.ComparisonFailure: expected:<... >> but was:<...> at
org.springframework.web.servlet.view.freemarker.FreeMarkerMacroTests.testAll
Macros(FreeMarkerMacroTests.java:163) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
Modifications since last build: (86)
modified jhoeller
src/org/springframework/context/support/AbstractApplicationContext.java
fixed javadoc typo
modified davison
test/org/springframework/web/servlet/view/freemarker/FreeMarkerMacroTests.ja
va *** empty log message ***
modified jhoeller
src/org/springframework/context/support/ReloadableResourceBundleMessageSourc
e.java never check the same message file twice for the same message
modified robharrop
sandbox/src/org/springframework/jmx/util/package.html Polished JMX
JavaDocs - still more to do.
modified robharrop
sandbox/src/org/springframework/jmx/metadata/AbstractJmxAttribute.java
Polished JMX JavaDocs - still more to do.
modified robharrop
sandbox/src/org/springframework/jmx/metadata/InvalidMetadataException.java
Polished JMX JavaDocs - still more to do.
added robharrop
sandbox/src/org/springframework/jmx/metadata/package.html Polished JMX
JavaDocs - still more to do.
added robharrop
sandbox/src/org/springframework/jmx/naming/package.html Polished JMX
JavaDocs - still more to do.
modified robharrop
sandbox/src/org/springframework/jmx/support/ConnectorServerFactoryBean.java
Polished JMX JavaDocs - still more to do.
modified robharrop
sandbox/src/org/springframework/jmx/assembler/MetadataModelMBeanInfoAssemble
r.java Polished JMX JavaDocs - still more to do.
added robharrop
sandbox/src/org/springframework/jmx/assembler/package.html Polished JMX
JavaDocs - still more to do.
modified robharrop
sandbox/src/org/springframework/jmx/assembler/InterfaceBasedModelMBeanInfoAs
sembler.java Polished JMX JavaDocs - still more to do.
deleted robharrop
sandbox/src/org/springframework/jmx/adapters/AdapterRegistrationException.ja
va Polished JMX JavaDocs - still more to do.
modified robharrop
sandbox/src/org/springframework/jmx/access/package.html Polished JMX
JavaDocs - still more to do.
modified jhoeller
test/org/springframework/orm/hibernate/support/LobTypeTests.java refined
AbstractLobType' JTA synchronization to close the LobCreator as early as
possible (earlier for a commit)
modified jhoeller
src/org/springframework/orm/hibernate/support/AbstractLobType.java refined
AbstractLobType' JTA synchronization to close the LobCreator as early as
possible (earlier for a commit)
modified jhoeller
test/org/springframework/orm/hibernate/HibernateJtaTransactionTests.java
refined JTA synchronization to unbind the Session as early as possible
(earlier for a commit)
modified jhoeller
src/org/springframework/orm/hibernate/SessionFactoryUtils.java refined JTA
synchronization to unbind the Session as early as possible (earlier for a
commit)
modified jhoeller
src/org/springframework/web/servlet/mvc/AbstractFormController.java polished
error messages
modified jhoeller
test/org/springframework/remoting/jaxrpc/JaxRpcSupportTests.java reworked to
avoid repeated HTTP lookup attempts
added jhoeller samples/petclinic/src/OJB-repository.dtd added OJB
repository DTD file (not included in ojb.jar)
modified jhoeller samples/petclinic/src/OJB-repository.xml added OJB
repository DTD file (not included in ojb.jar)
added jhoeller lib/ojb/repository.dtd added OJB repository DTD file
(not included in ojb.jar)
modified jhoeller
samples/petclinic/src/org/springframework/samples/petclinic/ojb/PersistenceB
rokerClinic.java leveraged "getObjectById", added order-by clauses
modified jhoeller
test/org/springframework/web/servlet/view/freemarker/FreeMarkerMacroTests.ja
va reformatted, commented out failing tests
modified jhoeller
test/org/springframework/orm/ojb/PersistenceBrokerTemplateTests.java added
"getObjectById(entityClass, idValue)" method, for single primary keys
modified jhoeller
src/org/springframework/orm/ojb/PersistenceBrokerOperations.java added
"getObjectById(entityClass, idValue)" method, for single primary keys
modified jhoeller
src/org/springframework/orm/ojb/PersistenceBrokerTemplate.java added
"getObjectById(entityClass, idValue)" method, for single primary keys
modified jhoeller build.xml removed unnecessary javadoc links for
secondary dependencies
modified jhoeller lib/readme.txt re-added Commons Lang (for OJB)
modified jhoeller lib/jakarta-commons/commons-lang.jar re-added
Commons Lang (for OJB)
modified robharrop
sandbox/src/org/springframework/aop/framework/aspectwerkz/AspectWerkzAopProx
y.java Added tests for AspectWerkz proxy
added robharrop
sandbox/src/org/springframework/aop/framework/aspectwerkz/ExpressionBasedPoi
ntcut.java Added tests for AspectWerkz proxy
modified jhoeller
test/org/springframework/orm/hibernate/HibernateJtaTransactionTests.java
fixed NPE in Session lookup code (when using both JTA synchronization and
Spring synchronization)
modified jhoeller
src/org/springframework/orm/hibernate/SessionFactoryUtils.java fixed NPE in
Session lookup code (when using both JTA synchronization and Spring
synchronization)
modified jhoeller
src/org/springframework/orm/ibatis/SqlMapClientFactoryBean.java polishing
modified jhoeller
src/org/springframework/orm/ojb/support/PersistenceBrokerDaoSupport.java
polishing
modified jhoeller
src/org/springframework/transaction/support/AbstractPlatformTransactionManag
er.java removed invalid javadoc references
modified jhoeller
src/org/springframework/orm/ojb/PersistenceBrokerTransactionManager.java
removed invalid javadoc references
modified jhoeller
src/org/springframework/orm/jdo/JdoTransactionManager.java removed invalid
javadoc references
modified jhoeller
src/org/springframework/orm/hibernate/HibernateTransactionManager.java
removed invalid javadoc references
added jhoeller
src/org/springframework/orm/ojb/support/TransactionAwareDataSourceConnection
Factory.java added TransactionAwareDataSourceConnectionFactory for OJB
modified jhoeller
src/org/springframework/orm/ojb/support/LocalDataSourceConnectionFactory.jav
a added TransactionAwareDataSourceConnectionFactory for OJB
modified jhoeller
src/org/springframework/orm/ojb/support/LocalOjbConfigurer.java added
TransactionAwareDataSourceConnectionFactory for OJB
modified jhoeller
test/org/springframework/orm/hibernate/LocalSessionFactoryBeanTests.java
added "useTransactionAwareDataSource" flag to LocalSessionFactoryBean
modified jhoeller
src/org/springframework/orm/hibernate/LocalDataSourceConnectionProvider.java
added "useTransactionAwareDataSource" flag to LocalSessionFactoryBean
modified jhoeller
src/org/springframework/orm/hibernate/LocalSessionFactoryBean.java added
"useTransactionAwareDataSource" flag to LocalSessionFactoryBean
added jhoeller
src/org/springframework/orm/hibernate/TransactionAwareDataSourceConnectionPr
ovider.java added "useTransactionAwareDataSource" flag to
LocalSessionFactoryBean
added robharrop
sandbox/src/org/springframework/aop/framework/aspectwerkz/AspectWerkzAopProx
y.java Added initial AspectWerkz proxy stuff - really rough at the moment.
added robharrop
sandbox/src/org/springframework/aop/framework/aspectwerkz/AspectWerkzAopProx
yFactory.java Added initial AspectWerkz proxy stuff - really rough at the
moment.
added robharrop
lib/aspectwerkz/aspectwerkz-core-2.0.RC3-snapshot.jar Added initial
AspectWerkz proxy stuff - really rough at the moment.
added robharrop lib/aspectwerkz/aspectwerkz-2.0.RC3-snapshot.jar
Added initial AspectWerkz proxy stuff - really rough at the moment.
modified davison
src/org/springframework/web/servlet/view/freemarker/spring.ftl need to
explicitly handle all boolean content separately from other data types.
modified davison
src/org/springframework/web/servlet/view/freemarker/spring.ftl backing out
previous changes, tests must be passing falsely
modified kdonald sandbox/src/org/springframework/web/flow/Flow.java
*** empty log message ***
added kdonald
sandbox/src/org/springframework/web/flow/NoSuchFlowAttributeMapperException.
java *** empty log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/TransitionableState.java *** empty
log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/AttributesAccessor.java *** empty
log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/FlowDao.java *** empty log message
***
modified kdonald
sandbox/src/org/springframework/web/flow/FlowEventProcessor.java *** empty
log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/FlowSessionExecutionInfo.java ***
empty log message ***
added kdonald
sandbox/src/org/springframework/web/flow/FlowSessionExecutionStartResult.jav
a *** empty log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/MulticastFlowLifecycleListener.java
*** empty log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/StartState.java *** empty log
message ***
modified kdonald
sandbox/src/org/springframework/web/flow/Transition.java *** empty log
message ***
modified kdonald
sandbox/src/org/springframework/web/flow/ViewState.java *** empty log
message ***
modified kdonald
sandbox/src/org/springframework/web/flow/AbstractState.java *** empty log
message ***
modified kdonald
sandbox/src/org/springframework/web/flow/ActionState.java *** empty log
message ***
added kdonald
sandbox/src/org/springframework/web/flow/FlowAttributesMapper.java *** empty
log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/FlowLifecycleListener.java ***
empty log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/FlowSessionExecutionStack.java ***
empty log message ***
deleted kdonald
sandbox/src/org/springframework/web/flow/NoSuchAttributeMapperException.java
*** empty log message ***
added kdonald
sandbox/src/org/springframework/web/flow/ParameterizableFlowAttributesMapper
.java *** empty log message ***
deleted kdonald
sandbox/src/org/springframework/web/flow/ParameterizableSubFlowAttributesMap
per.java *** empty log message ***
deleted kdonald
sandbox/src/org/springframework/web/flow/SubFlowAttributesMapper.java ***
empty log message ***
modified kdonald
sandbox/src/org/springframework/web/flow/SubFlowState.java *** empty log
message ***
modified kdonald
sandbox/src/org/springframework/web/flow/FlowSession.java *** empty log
message ***
modified kdonald sandbox/src/org/springframework/web/flow/Flow.java
*** empty log message ***
modified kdonald
sandbox/test/org/springframework/web/flow/FlowTests.java polishing
modified kdonald
sandbox/test/org/springframework/web/flow/MulticastFlowLifecycleListenerTest
s.java polishing
modified kdonald
sandbox/src/org/springframework/web/flow/struts/FlowAction.java polishing
modified kdonald
sandbox/src/org/springframework/web/flow/action/AbstractActionBean.java
polishing
modified jhoeller changelog.txt SQLErrorCodes, SqlMapClientTemplate,
RmiServiceExporter
modified jhoeller
src/org/springframework/orm/ojb/PersistenceBrokerTemplate.java polishing
modified jhoeller src/org/springframework/orm/jdo/JdoTemplate.java
polishing
modified jhoeller
src/org/springframework/orm/hibernate/HibernateTemplate.java polishing
|
|
From: Mason, R. <ros...@vi...> - 2005-01-29 06:46:46
|
SG93YXJkLA0KVGhhbmtzIGZvciB0aGUgcmVzcG9uc2UuIEkgYWdyZWUgdGhhdCBpdCB3b3VsZCBi ZSBiZXR0ZXIgdG8gZm9zdGVyIGNvb3BlcmF0aW9uIGFuZCBJIGxvb2sgZm9yd2FyZCB0byBkZWx2 aW5nIGRlZXBlci4NCiANCkNoZWVycywNCiANClJvc3MNCg0KCS0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tIA0KCUZyb206IHNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXItYWRtaW5AbGlzdHMuc291 cmNlZm9yZ2UubmV0IG9uIGJlaGFsZiBvZiBIb3dhcmQgTGV3aXMgU2hpcCANCglTZW50OiBGcmkg MjgvMDEvMjAwNSAxMjozMyBQTSANCglUbzogc3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlckBsaXN0 cy5zb3VyY2Vmb3JnZS5uZXQgDQoJQ2M6IA0KCVN1YmplY3Q6IFJlOiBbU3ByaW5nZnJhbWV3b3Jr LWRldmVsb3Blcl0gU3ByaW5nIC8gSGl2ZU1pbmQgSW50ZWdyYXRpb24NCgkNCgkNCg0KCVRoaXMg Y29tZXMgdXAgcXVpdGUgYSBiaXQsIHRoZXkgYXJlIHNpbWlsaWFyIGluIGludGVudCBidXQgcXVp dGUNCglkaWZmZXJlbnQgaW4gZXhlY3V0aW9uLg0KCQ0KCS0gSGl2ZU1pbmQgaGFzIGEgdmVyeSBz b3BoaXNpdGljYXRlZCBjb25maWd1cmF0aW9ucyBtb2RlbCAodmVyeQ0KCXNpbWlsYXIgdG8gRWNs aXBzZSBwbHVnaW5zKSBiYXNlZCBvbiBjb25maWd1cmF0aW9uIHBvaW50cyBhbmQNCgljb250cmli dXRpb25zIChmcm9tIG11bHRpcGxlIGxvY2F0aW9ucykNCgktIEhpdmVNaW5kIGlzIHRoZSBpbmZy YXN0cnVjdHVyZSBmb3IgVGFwZXN0cnkgMy4xLCBhbmQgbWFueSBUYXBlc3RyeQ0KCWFwcGxpY2F0 aW9ucyBhbHNvIHVzZSBTcHJpbmcNCgktIEJlY2F1c2UgUm9kIGFuZCBJIChhbmQgdGhlIG90aGVy IFNwcmluZyB0ZWFtIG1lbWJlcidzIEkndmUgdGFsa2VkDQoJdG8pIHdhbnQgdG8gZm9zdGVyIGNv b3BlcmF0aW9uIGFuZCBjb21wYXRhYmlsaXR5IHJhdGhlciB0aGFuDQoJY29tcGV0aXRpb24NCgkN CgkNCglPbiBGcmksIDI4IEphbiAyMDA1IDEwOjQ3OjQ4ICsxMTAwLCBNYXNvbiwgUm9zcyA8cm9z cy5tYXNvbkB2aWduZXR0ZS5jb20+IHdyb3RlOg0KCT4gSGkgSG93YXJkLA0KCT4NCgk+IFdoYXQg aXMgdGhlIHVzZSBjYXNlIGZvciBpbnRlZ3JhdGluZyBIaXZlTWluZCBhbmQgU3ByaW5nPyAgSSBt dXN0IGFkbWl0IEkgaGF2ZW4ndCBoYWQgYSBjaGFuY2UgdG8gZ2V0IGEgZ29vZCBsb29rIGF0IEhp dmVNaW5kLCBidXQgbXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGl0IGlzIGEgREkgY29udGFpbmVy IHRoYXQgcHJvdmlkZXMgc2VydmljZSB3aXJpbmcgYW5kIGludGVyY2VwdGlvbiwgbXVjaCBpbiB0 aGUgc2FtZSB2ZWluIGFzIHRoZSBTcHJpbmcgQ29udGFpbmVyLiAgRnJvbSB0aGUgb3V0c2V0IHRo ZSB0d28gY29udGFpbmVycyBzZWVtIHRvIGJlIG11dGFsbHkgZXhjbHVzaXZlIHJhdGhlciB0aGFu IGNvbXBsaW1lbnRhcnkuDQoJPg0KCT4gQ2FuIHlvdSBzaGVkIHNvbWUgbGlnaHQgb24gdGhpcyBm b3IgbWU/DQoJPg0KCT4gQ2hlZXJzLA0KCT4NCgk+IFJvc3MNCgk+DQoJPiAgICAgICAgIC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQoJPiAgICAgICAgIEZyb206IHNwcmluZ2ZyYW1ld29yay1k ZXZlbG9wZXItYWRtaW5AbGlzdHMuc291cmNlZm9yZ2UubmV0IG9uIGJlaGFsZiBvZiBIb3dhcmQg TGV3aXMgU2hpcA0KCT4gICAgICAgICBTZW50OiBXZWQgMjYvMDEvMjAwNSAyOjQ2IFBNDQoJPiAg ICAgICAgIFRvOiBzcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyQGxpc3RzLnNvdXJjZWZvcmdlLm5l dA0KCT4gICAgICAgICBDYzoNCgk+ICAgICAgICAgU3ViamVjdDogW1NwcmluZ2ZyYW1ld29yay1k ZXZlbG9wZXJdIFNwcmluZyAvIEhpdmVNaW5kIEludGVncmF0aW9uDQoJPg0KCT4gICAgICAgICBT aW5jZSBIaXZlTWluZCAxLjAsIGFuZCBpbXByb3ZlZCBpbiBIaXZlTWluZCAxLjEsIHRoZXJlJ3Mg YmVlbiBiYXNpYw0KCT4gICAgICAgICBpbnRlZ3JhdGlvbiBiZXR3ZWVuIEhpdmVNaW5kIGFuZCBT cHJpbmcuDQoJPg0KCT4gICAgICAgICBBdCB0aGUgY29yZSBvZiBpdCBpcyB0aGUgYWJpbGl0eSB0 byBkZWZpbmUgYSBIaXZlTWluZCBzZXJ2aWNlIGluIHRlcm1zDQoJPiAgICAgICAgIG9mIGEgU3By aW5nIGJlYW4gd2l0aGluIGEgQmVhbkZhY3RvcnkuICBUaGUgZXNzZW50aWFsIGNvZGUgaXM6DQoJ Pg0KCT4gICAgICAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGVDb3JlU2VydmljZUltcGxlbWVu dGF0aW9uKA0KCT4gICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSW1wbGVtZW50YXRpb25GYWN0 b3J5UGFyYW1ldGVycyBmYWN0b3J5UGFyYW1ldGVycykNCgk+ICAgICAgICAgICAgIHsNCgk+ICAg ICAgICAgICAgICAgICBTcHJpbmdCZWFuUGFyYW1ldGVyIHAgPSAoU3ByaW5nQmVhblBhcmFtZXRl cikNCgk+ICAgICAgICAgZmFjdG9yeVBhcmFtZXRlcnMuZ2V0Rmlyc3RQYXJhbWV0ZXIoKTsNCgk+ ICAgICAgICAgICAgICAgICBTdHJpbmcgYmVhbk5hbWUgPSBwLmdldE5hbWUoKTsNCgk+DQoJPiAg ICAgICAgICAgICAgICAgQmVhbkZhY3RvcnkgZiA9IHAuZ2V0QmVhbkZhY3RvcnkoKTsNCgk+DQoJ PiAgICAgICAgICAgICAgICAgaWYgKGYgPT0gbnVsbCkNCgk+ICAgICAgICAgICAgICAgICAgICAg ZiA9IF9kZWZhdWx0QmVhbkZhY3Rvcnk7DQoJPg0KCT4gICAgICAgICAgICAgICAgIHJldHVybiBm LmdldEJlYW4oYmVhbk5hbWUsIGZhY3RvcnlQYXJhbWV0ZXJzLmdldFNlcnZpY2VJbnRlcmZhY2Uo KSk7DQoJPiAgICAgICAgICAgICB9DQoJPg0KCT4gICAgICAgICBXaXRoIHRoaXMsIGl0cyBwb3Nz aWJsZSB0byBvYnRhaW4gYSBTcHJpbmcgYmVhbiBhbmQgdGhlIGNvcmUgc2VydmljZQ0KCT4gICAg ICAgICBpbXBsZW1lbnRhdGlvbiBvZiBhIEhpdmVNaW5kIHNlcnZpY2UuICBUaGUgaW1wbGVtZW50 YXRpb24gY2FuIGJlDQoJPiAgICAgICAgIGV4dGVuZGVkIHdpdGggaW50ZXJjZXB0b3JzIGFuZCBp bmplY3RlZCBpbnRvIG90aGVyIEhpdmVNaW5kIHNlcnZpY2VzLg0KCT4NCgk+ICAgICAgICAgQXQg SmF2YXBvbGlzLCBJIHRhbGtlZCB3aXRoIFJvZCBhYm91dCBoYXZpbmcgc29tZXRoaW5nIHNpbWls YXIgZ29pbmcNCgk+ICAgICAgICAgdGhlIG90aGVyIGRpcmVjdGlvbiwgYWxsb3dpbmcgSGl2ZU1p bmQgc2VydmljZXMgdG8gYmUgcmVmZXJlbmNhYmxlDQoJPiAgICAgICAgIChhbmQgaW5qZWN0YWJs ZSkgYXMgU3ByaW5nIGJlYW5zLiBJJ2QgbGlrZSB0byBwcm92b2tlIGEgZGlzY3Vzc2lvbiBvbg0K CT4gICAgICAgICB3aGF0IHRoYXQgd291bGQgbG9vayBsaWtlLCBhbmQgd2hhdCBBUEkgY2hhbmdl cyB3b3VsZCBiZSBuZWVkZWQgaW4NCgk+ICAgICAgICAgSGl2ZU1pbmQgMS4xIHRvIHN1cHBvcnQg aXQuDQoJPg0KCT4gICAgICAgICBSb2Qgc2VlbWVkIHRvIHRoaW5rIChhbmQgSSBkaWRuJ3QgZm9s bG93IHRoZSByZWFzb25pbmcpIHRoYXQgSGl2ZU1pbmQNCgk+ICAgICAgICAgd291bGQgbmVlZCBh biBBUEkgdG8gaXRlcmF0ZSBvdmVyIHRoZSBuYW1lcyBvZiBhbGwgc2VydmljZXMuDQoJPg0KCT4g ICAgICAgICBJbiBhZGRpdGlvbiwgY29uZmlndXJhdGlvbiBkYXRhIChpbiBlaXRoZXIgTGlzdCBv ciBNYXAgZm9ybSkgaXMgYWxzbw0KCT4gICAgICAgICBxdWl0ZSB2YWx1YWJsZSBhbmQgc29tZXRo aW5nIHRoYXQgU3ByaW5nIGJlYW5zIHdvdWxkIGxpa2UgdG8gaGF2ZQ0KCT4gICAgICAgICBhY2Nl c3MgdG8uDQoJPg0KCT4gICAgICAgICAtLQ0KCT4gICAgICAgICBIb3dhcmQgTS4gTGV3aXMgU2hp cA0KCT4gICAgICAgICBJbmRlcGVuZGVudCBKMkVFIC8gT3Blbi1Tb3VyY2UgSmF2YSBDb25zdWx0 YW50DQoJPiAgICAgICAgIENyZWF0b3IsIEpha2FydGEgVGFwZXN0cnkNCgk+ICAgICAgICAgQ3Jl YXRvciwgSmFrYXJ0YSBIaXZlTWluZA0KCT4NCgk+ICAgICAgICAgUHJvZmVzc2lvbmFsIFRhcGVz dHJ5IHRyYWluaW5nLCBtZW50b3JpbmcsIHN1cHBvcnQNCgk+ICAgICAgICAgYW5kIHByb2plY3Qg d29yay4gIGh0dHA6Ly9ob3dhcmRsZXdpc3NoaXAuY29tDQoJPg0KCT4gICAgICAgIA0KCT4gICAg ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQoJPiAgICAgICAgIFRoaXMgU0YuTmV0IGVtYWlsIGlzIHNwb25zb3JlZCBieTogSW50ZWxs aVZJRVcgLS0gSW50ZXJhY3RpdmUgUmVwb3J0aW5nDQoJPiAgICAgICAgIFRvb2wgZm9yIG9wZW4g c291cmNlIGRhdGFiYXNlcy4gQ3JlYXRlIGRyYWctJi1kcm9wIHJlcG9ydHMuIFNhdmUgdGltZQ0K CT4gICAgICAgICBieSBvdmVyIDc1JSEgUHVibGlzaCByZXBvcnRzIG9uIHRoZSB3ZWIuIEV4cG9y dCB0byBET0MsIFhMUywgUlRGLCBldGMuDQoJPiAgICAgICAgIERvd25sb2FkIGEgRlJFRSBjb3B5 IGF0IGh0dHA6Ly93d3cuaW50ZWxsaXZpZXcuY29tL2dvL29zZG5fbmwNCgk+ICAgICAgICAgX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCgk+ICAgICAgICAg U3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlciBtYWlsaW5nIGxpc3QNCgk+ICAgICAgICAgU3ByaW5n ZnJhbWV3b3JrLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCgk+ICAgICAgICAgaHR0 cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc3ByaW5nZnJhbWV3b3Jr LWRldmVsb3Blcg0KCT4NCgk+DQoJPg0KCQ0KCQ0KCS0tDQoJSG93YXJkIE0uIExld2lzIFNoaXAN CglJbmRlcGVuZGVudCBKMkVFIC8gT3Blbi1Tb3VyY2UgSmF2YSBDb25zdWx0YW50DQoJQ3JlYXRv ciwgSmFrYXJ0YSBUYXBlc3RyeQ0KCUNyZWF0b3IsIEpha2FydGEgSGl2ZU1pbmQNCgkNCglQcm9m ZXNzaW9uYWwgVGFwZXN0cnkgdHJhaW5pbmcsIG1lbnRvcmluZywgc3VwcG9ydA0KCWFuZCBwcm9q ZWN0IHdvcmsuICBodHRwOi8vaG93YXJkbGV3aXNzaGlwLmNvbQ0KCQ0KCQ0KCS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCglUaGlzIFNGLk5l dCBlbWFpbCBpcyBzcG9uc29yZWQgYnk6IEludGVsbGlWSUVXIC0tIEludGVyYWN0aXZlIFJlcG9y dGluZw0KCVRvb2wgZm9yIG9wZW4gc291cmNlIGRhdGFiYXNlcy4gQ3JlYXRlIGRyYWctJi1kcm9w IHJlcG9ydHMuIFNhdmUgdGltZQ0KCWJ5IG92ZXIgNzUlISBQdWJsaXNoIHJlcG9ydHMgb24gdGhl IHdlYi4gRXhwb3J0IHRvIERPQywgWExTLCBSVEYsIGV0Yy4NCglEb3dubG9hZCBhIEZSRUUgY29w eSBhdCBodHRwOi8vd3d3LmludGVsbGl2aWV3LmNvbS9nby9vc2RuX25sDQoJX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCglTcHJpbmdmcmFtZXdvcmstZGV2 ZWxvcGVyIG1haWxpbmcgbGlzdA0KCVNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291 cmNlZm9yZ2UubmV0DQoJaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGlu Zm8vc3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blcg0KCQ0KDQo= |
|
From: Drew D. <dr...@og...> - 2005-01-28 23:24:22
|
Estes, James D - St. Louis, MO wrote: >Cool, more ammo for factoring out the parts of >PropertyPlaceholderConfigurer that do the digging through the bean >definitions and creating an abstract PlaceholderConfigurer. > >http://opensource.atlassian.com/projects/spring/browse/SPR-260 >(IGNORE the examples). > > That's a good comment. The JIRA report on this should get implemented, I think - you've got some good ideas there. I was wondering about the abstract superclass thing myself; it seems that the functionality that the PropertyPlaceholderConfigurer implements would be 95% taken care of by a generic tree walker. Considering the usual high level of reusability in the Spring code it suprised me to see such a "blob" of useful code not being abstracted. Bear in mind that the PPC code needs to be careful detecting start and end tokens. The PPC works like a token substituter - it scans strings and replaces possible multiple occurences within values, keys, etc. The OGNL replacer does not allow this because the result of the evaluation can be any object; therefore the totality of the <value> contents or attribute value must be :[ <ognl expr> ]. - Drew -- +---------------------------------+ < Drew Davidson | OGNL Technology > +---------------------------------+ | Email: dr...@og... / | Web: http://www.ognl.org / | Vox: (520) 531-1966 < | Fax: (520) 531-1965 \ | Mobile: (520) 405-2967 \ +---------------------------------+ |
|
From: March, A. <am...@so...> - 2005-01-28 19:31:36
|
As you can see below, a thread, other than the one that had the session
created for it, tries to access a session but it has been closed by the
valid owner thread. This only occurs under decent load. There must be
some thread safety issue in Spring or the whole ThreadLocal idea goes
out the window. Does anybody have any idea how this could occur? I
don't see how I could be misinterpreting this trace.
=20
FATAL (SessionImpl.java:528) - Constructor for session:
net.sf.hibernate.impl.SessionImpl@b72884 on thread : TP-Processor1
FATAL (SessionFactoryImpl.java:342) - Session :
net.sf.hibernate.impl.SessionImpl@b72884 created for Thread :
TP-Processor1
...later on...=20
closing session : net.sf.hibernate.impl.SessionImpl@b72884 and conn:
com.mchange.v2.c3p0.impl.NewProxyConnection@4ad009 on Thread :
TP-Processor1
...later on...
net.sf.hibernate.HibernateException: Session is closed :
net.sf.hibernate.impl.SessionImpl@b72884 on thread : TP-Processor7
at
net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3313)
at
net.sf.hibernate.proxy.LazyInitializer.initialize(LazyInitializer.java:4
7)
at
net.sf.hibernate.proxy.LazyInitializer.initializeWrapExceptions(LazyInit
ializer.java:60)
at
net.sf.hibernate.proxy.LazyInitializer.getImplementation(LazyInitializer
.java:164)
at
net.sf.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializ
er.java:108)
at
com.sony.soe.guilds.model.GameCharacter$$EnhancerByCGLIB$$25b6cd13.getBi
oImage(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.velocity.runtime.parser.node.PropertyExecutor.execute(Propert
yExecutor.java:111)
at
org.apache.velocity.util.introspection.UberspectImpl$VelGetterImpl.invok
e(UberspectImpl.java:300)
at
org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentif
ier.java:157)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReferenc
e.java:175)
at
org.apache.velocity.runtime.parser.node.ASTReference.evaluate(ASTReferen
ce.java:307)
at
org.apache.velocity.runtime.parser.node.ASTNotNode.evaluate(ASTNotNode.j
ava:47)
at
org.apache.velocity.runtime.parser.node.ASTExpression.evaluate(ASTExpres
sion.java:46)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfState
ment.java:69)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.jav
a:231)
at
org.apache.velocity.runtime.directive.Parse.render(Parse.java:181)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective
.java:116)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:56
)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfState
ment.java:71)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:56
)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfState
ment.java:71)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.jav
a:231)
at
org.apache.velocity.runtime.directive.Parse.render(Parse.java:181)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective
.java:116)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.jav
a:231)
at org.apache.velocity.Template.merge(Template.java:256)
at com.sony.soe.web.mvc.VelocityView.go(VelocityView.java:181)
at
com.sony.soe.guilds.view.VelocityLayout.go(VelocityLayout.java:135)
at
org.infohazard.maverick.flow.CommandBase.go(CommandBase.java:79)
at
org.infohazard.maverick.Dispatcher.service(Dispatcher.java:345)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
at
net.sf.acegisecurity.ui.AbstractIntegrationFilter.doFilter(AbstractInteg
rationFilter.java:170)
at
com.sony.soe.guilds.controller.SecurityFilter.doFilter(SecurityFilter.ja
va:118)
at
net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.j
ava:88)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
at
org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilt
erInternal(OpenSessionInViewFilter.java:17
1)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequ
estFilter.java:76)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
textValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
at
org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.
java:169)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:296)
at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:372)
at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:694)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
626)
at
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:807)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:644)
at java.lang.Thread.run(Thread.java:534)
=20
-----------------------------------------
Andres March
Platform - Apps Engineering
Sony Online Entertainment
desk: 858.577.3373
cell: 619.519.1519
=20
|
|
From: Estes, J. D - S. L. M. <jam...@us...> - 2005-01-28 13:24:32
|
Cool, more ammo for factoring out the parts of PropertyPlaceholderConfigurer that do the digging through the bean definitions and creating an abstract PlaceholderConfigurer. http://opensource.atlassian.com/projects/spring/browse/SPR-260 (IGNORE the examples). James -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf Of Drew Davidson Sent: Thursday, January 27, 2005 8:24 AM To: spr...@li... Subject: Re: [Springframework-developer] OGNL property configurer bean factory post-processor Dirk Markert wrote: >this all sounds *very* good. I would like this to be a core part of >spring. > >Do you already distribute your configurer somewhere? I would like to >use it right now :-) > =20 > It's now available at: http://www.ognl.org/resources/ognl-spring.zip - Drew --=20 +---------------------------------+ < Drew Davidson | OGNL Technology > +---------------------------------+ | Email: dr...@og... / | Web: http://www.ognl.org / | Vox: (520) 531-1966 < | Fax: (520) 531-1965 \ | Mobile: (520) 405-2967 \ +---------------------------------+ ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Howard L. S. <hl...@gm...> - 2005-01-28 12:33:28
|
This comes up quite a bit, they are similiar in intent but quite
different in execution.
- HiveMind has a very sophisiticated configurations model (very
similar to Eclipse plugins) based on configuration points and
contributions (from multiple locations)
- HiveMind is the infrastructure for Tapestry 3.1, and many Tapestry
applications also use Spring
- Because Rod and I (and the other Spring team member's I've talked
to) want to foster cooperation and compatability rather than
competition
On Fri, 28 Jan 2005 10:47:48 +1100, Mason, Ross <ros...@vi...> wrote:
> Hi Howard,
>
> What is the use case for integrating HiveMind and Spring? I must admit I haven't had a chance to get a good look at HiveMind, but my understanding is that it is a DI container that provides service wiring and interception, much in the same vein as the Spring Container. From the outset the two containers seem to be mutally exclusive rather than complimentary.
>
> Can you shed some light on this for me?
>
> Cheers,
>
> Ross
>
> -----Original Message-----
> From: spr...@li... on behalf of Howard Lewis Ship
> Sent: Wed 26/01/2005 2:46 PM
> To: spr...@li...
> Cc:
> Subject: [Springframework-developer] Spring / HiveMind Integration
>
> Since HiveMind 1.0, and improved in HiveMind 1.1, there's been basic
> integration between HiveMind and Spring.
>
> At the core of it is the ability to define a HiveMind service in terms
> of a Spring bean within a BeanFactory. The essential code is:
>
> public Object createCoreServiceImplementation(
> ServiceImplementationFactoryParameters factoryParameters)
> {
> SpringBeanParameter p = (SpringBeanParameter)
> factoryParameters.getFirstParameter();
> String beanName = p.getName();
>
> BeanFactory f = p.getBeanFactory();
>
> if (f == null)
> f = _defaultBeanFactory;
>
> return f.getBean(beanName, factoryParameters.getServiceInterface());
> }
>
> With this, its possible to obtain a Spring bean and the core service
> implementation of a HiveMind service. The implementation can be
> extended with interceptors and injected into other HiveMind services.
>
> At Javapolis, I talked with Rod about having something similar going
> the other direction, allowing HiveMind services to be referencable
> (and injectable) as Spring beans. I'd like to provoke a discussion on
> what that would look like, and what API changes would be needed in
> HiveMind 1.1 to support it.
>
> Rod seemed to think (and I didn't follow the reasoning) that HiveMind
> would need an API to iterate over the names of all services.
>
> In addition, configuration data (in either List or Map form) is also
> quite valuable and something that Spring beans would like to have
> access to.
>
> --
> Howard M. Lewis Ship
> Independent J2EE / Open-Source Java Consultant
> Creator, Jakarta Tapestry
> Creator, Jakarta HiveMind
>
> Professional Tapestry training, mentoring, support
> and project work. http://howardlewisship.com
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
> Tool for open source databases. Create drag-&-drop reports. Save time
> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
--
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind
Professional Tapestry training, mentoring, support
and project work. http://howardlewisship.com
|
|
From: Alef A. <al...@jt...> - 2005-01-28 10:29:24
|
Hi JP, Totally forgot about this. I just tried things out using = java.awt.headless=3Dtrue (because this was the problem) and it works... = I'll commit this later today (don't have access to my own machine right = now). Regards, Alef > -----Original Message----- > From: jp....@ti... [mailto:jp....@ti...]=20 > Sent: Friday, January 28, 2005 11:16 AM > To: Alef Arendsen > Subject: PDF Doc-ref in nightly builds >=20 > Hello Alef, >=20 > The issue concerning the build of the PDF file on nightly=20 > builds is still not resolved. >=20 > The PDF in the last release (26th) has a size of 81 Kb while=20 > the 1.1.3 release form SF has 1178 kb. >=20 > It seems that the nightly process is not able to finish the=20 > PDF creation. >=20 > Best regards, > Jean-Pierre Pawlak >=20 > ************************ ADSL JUSQU'A 16 MEGA + TELEPHONE=20 > GRATUIT ************************ L'ultra haut d=E9bit =E0=20 > 30EUR/mois seulement ! Et vous t=E9l=E9phonez gratuitement en=20 > France vers les postes fixes, hors num=E9ros sp=E9ciaux. > Pour profiter de cette offre exceptionnelle, cliquez ici :=20 > http://register.tiscali.fr/adsl/ (voir conditions sur le site) >=20 >=20 >=20 >=20 >=20 >=20 |
|
From: Rob H. <ro...@ca...> - 2005-01-28 09:29:24
|
Thank you - fixed. Rob Olcoz Chiva, Fernando wrote: > Hi, I think there is a minor documentation bug in the javadoc comments > of method: > > protected boolean shouldSkip(Object bean, String beanName) > > in class > org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator > where it says "This implementation returns true." > > F. > > > ------------------------------------------------------------------------------------------------------------ > << Si ha recibido este correo electrónico por error, le informamos que > puede contener información confidencial y que está prohibido su uso. > Le rogamos lo comunique a su remitente y lo elimine. > Gracias por su colaboración. > > > If you receive this e-mail by error, please note that it may contain > confidential information, therefore, the use of this information is > strictly forbidden. Please inform the sender of the error and delete > the information received. Thank you for your collaboration. >> > ------------------------------------------------------------------------------------------------------------- |
|
From: Olcoz C. F. <fer...@ma...> - 2005-01-28 09:05:50
|
Hi, I think there is a minor documentation bug in the javadoc comments
of method:
=20
protected boolean shouldSkip(Object bean, String beanName)
=20
in class
org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator
where it says "This implementation returns true."
=20
F.
-------------------------------------------------------------------------=
-----------------------------------
<< Si ha recibido este correo electr=F3nico por error, le informamos que
puede contener informaci=F3n confidencial y que est=E1 prohibido su uso.
Le rogamos lo comunique a su remitente y lo elimine.
Gracias por su colaboraci=F3n.
If you receive this e-mail by error, please note that it may contain
confidential information, therefore, the use of this information is=20
strictly forbidden. Please inform the sender of the error and delete
the information received. Thank you for your collaboration. >>
-------------------------------------------------------------------------=
------------------------------------
|
|
From: Michael S. <mi...@sc...> - 2005-01-28 09:05:38
|
On Thursday 27 January 2005 09:48, Rob Harrop wrote: > Alternatively, I wonder if it is about time we started a separate > project for Spring add-ons. Still underneath the Spring umberella, > just a separate project away from the core. Yes, please. > This way we can keep the > core compact and free from clutter. Thoughts everyone? Altough in the case of Drew's OGNL contribution, I hope it migrates to the core. Michael -- Michael Schuerig There is no matrix, mailto:mi...@sc... only reality. http://www.schuerig.de/michael/ --Lawrence Fishburn |
|
From: Dirk M. <pos...@gm...> - 2005-01-28 06:43:58
|
Hello Drew, great. Thank you. Thursday, January 27, 2005, 3:24:26 PM, you wrote: DD> Dirk Markert wrote: >>this all sounds *very* good. I would like this to be a core part of >>spring. >> >>Do you already distribute your configurer somewhere? I would like to >>use it right now :-) >> >> DD> It's now available at: DD> http://www.ognl.org/resources/ognl-spring.zip DD> - Drew -- Best regards, Dirk |
|
From: jbetancourt <jbe...@co...> - 2005-01-28 00:24:03
|
I used OGNL and Spring. The ability to evoke method call expressions on a managed pojo via OGNL is pretty interesting. ----- Original Message ----- From: "Drew Davidson" <dr...@og...> To: <spr...@li...> Sent: Thursday, January 27, 2005 9:26 AM Subject: Re: [Springframework-developer] OGNL property configurer bean factory post-processor > jbetancourt wrote: > > >I am using OGNL in conjunction with Spring. I will be publishing something soon on this. > >OGNL is really great! > > > > > > Thanks! > > Could you provide some details on exactly how you are using it in > conjunction with Spring? Do you mean using it within Spring constructs > or do you just use OGNL and Spring? > > - Drew > > -- > +---------------------------------+ > < Drew Davidson | OGNL Technology > > +---------------------------------+ > | Email: dr...@og... / > | Web: http://www.ognl.org / > | Vox: (520) 531-1966 < > | Fax: (520) 531-1965 \ > | Mobile: (520) 405-2967 \ > +---------------------------------+ > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting > Tool for open source databases. Create drag-&-drop reports. Save time > by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. > Download a FREE copy at http://www.intelliview.com/go/osdn_nl > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > |
|
From: Mason, R. <ros...@vi...> - 2005-01-27 23:48:30
|
SGkgSG93YXJkLA0KIA0KV2hhdCBpcyB0aGUgdXNlIGNhc2UgZm9yIGludGVncmF0aW5nIEhpdmVN aW5kIGFuZCBTcHJpbmc/ICBJIG11c3QgYWRtaXQgSSBoYXZlbid0IGhhZCBhIGNoYW5jZSB0byBn ZXQgYSBnb29kIGxvb2sgYXQgSGl2ZU1pbmQsIGJ1dCBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQg aXQgaXMgYSBESSBjb250YWluZXIgdGhhdCBwcm92aWRlcyBzZXJ2aWNlIHdpcmluZyBhbmQgaW50 ZXJjZXB0aW9uLCBtdWNoIGluIHRoZSBzYW1lIHZlaW4gYXMgdGhlIFNwcmluZyBDb250YWluZXIu ICBGcm9tIHRoZSBvdXRzZXQgdGhlIHR3byBjb250YWluZXJzIHNlZW0gdG8gYmUgbXV0YWxseSBl eGNsdXNpdmUgcmF0aGVyIHRoYW4gY29tcGxpbWVudGFyeS4NCiANCkNhbiB5b3Ugc2hlZCBzb21l IGxpZ2h0IG9uIHRoaXMgZm9yIG1lPw0KIA0KQ2hlZXJzLA0KIA0KUm9zcw0KDQoJLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0gDQoJRnJvbTogc3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blci1hZG1p bkBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQgb24gYmVoYWxmIG9mIEhvd2FyZCBMZXdpcyBTaGlwIA0K CVNlbnQ6IFdlZCAyNi8wMS8yMDA1IDI6NDYgUE0gDQoJVG86IHNwcmluZ2ZyYW1ld29yay1kZXZl bG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0IA0KCUNjOiANCglTdWJqZWN0OiBbU3ByaW5nZnJh bWV3b3JrLWRldmVsb3Blcl0gU3ByaW5nIC8gSGl2ZU1pbmQgSW50ZWdyYXRpb24NCgkNCgkNCg0K CVNpbmNlIEhpdmVNaW5kIDEuMCwgYW5kIGltcHJvdmVkIGluIEhpdmVNaW5kIDEuMSwgdGhlcmUn cyBiZWVuIGJhc2ljDQoJaW50ZWdyYXRpb24gYmV0d2VlbiBIaXZlTWluZCBhbmQgU3ByaW5nLg0K CQ0KCUF0IHRoZSBjb3JlIG9mIGl0IGlzIHRoZSBhYmlsaXR5IHRvIGRlZmluZSBhIEhpdmVNaW5k IHNlcnZpY2UgaW4gdGVybXMNCglvZiBhIFNwcmluZyBiZWFuIHdpdGhpbiBhIEJlYW5GYWN0b3J5 LiAgVGhlIGVzc2VudGlhbCBjb2RlIGlzOg0KCQ0KCSAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZUNv cmVTZXJ2aWNlSW1wbGVtZW50YXRpb24oDQoJICAgICAgICAgICAgU2VydmljZUltcGxlbWVudGF0 aW9uRmFjdG9yeVBhcmFtZXRlcnMgZmFjdG9yeVBhcmFtZXRlcnMpDQoJICAgIHsNCgkgICAgICAg IFNwcmluZ0JlYW5QYXJhbWV0ZXIgcCA9IChTcHJpbmdCZWFuUGFyYW1ldGVyKQ0KCWZhY3RvcnlQ YXJhbWV0ZXJzLmdldEZpcnN0UGFyYW1ldGVyKCk7DQoJICAgICAgICBTdHJpbmcgYmVhbk5hbWUg PSBwLmdldE5hbWUoKTsNCgkNCgkgICAgICAgIEJlYW5GYWN0b3J5IGYgPSBwLmdldEJlYW5GYWN0 b3J5KCk7DQoJDQoJICAgICAgICBpZiAoZiA9PSBudWxsKQ0KCSAgICAgICAgICAgIGYgPSBfZGVm YXVsdEJlYW5GYWN0b3J5Ow0KCQ0KCSAgICAgICAgcmV0dXJuIGYuZ2V0QmVhbihiZWFuTmFtZSwg ZmFjdG9yeVBhcmFtZXRlcnMuZ2V0U2VydmljZUludGVyZmFjZSgpKTsNCgkgICAgfQ0KCQ0KCVdp dGggdGhpcywgaXRzIHBvc3NpYmxlIHRvIG9idGFpbiBhIFNwcmluZyBiZWFuIGFuZCB0aGUgY29y ZSBzZXJ2aWNlDQoJaW1wbGVtZW50YXRpb24gb2YgYSBIaXZlTWluZCBzZXJ2aWNlLiAgVGhlIGlt cGxlbWVudGF0aW9uIGNhbiBiZQ0KCWV4dGVuZGVkIHdpdGggaW50ZXJjZXB0b3JzIGFuZCBpbmpl Y3RlZCBpbnRvIG90aGVyIEhpdmVNaW5kIHNlcnZpY2VzLg0KCQ0KCUF0IEphdmFwb2xpcywgSSB0 YWxrZWQgd2l0aCBSb2QgYWJvdXQgaGF2aW5nIHNvbWV0aGluZyBzaW1pbGFyIGdvaW5nDQoJdGhl IG90aGVyIGRpcmVjdGlvbiwgYWxsb3dpbmcgSGl2ZU1pbmQgc2VydmljZXMgdG8gYmUgcmVmZXJl bmNhYmxlDQoJKGFuZCBpbmplY3RhYmxlKSBhcyBTcHJpbmcgYmVhbnMuIEknZCBsaWtlIHRvIHBy b3Zva2UgYSBkaXNjdXNzaW9uIG9uDQoJd2hhdCB0aGF0IHdvdWxkIGxvb2sgbGlrZSwgYW5kIHdo YXQgQVBJIGNoYW5nZXMgd291bGQgYmUgbmVlZGVkIGluDQoJSGl2ZU1pbmQgMS4xIHRvIHN1cHBv cnQgaXQuDQoJDQoJUm9kIHNlZW1lZCB0byB0aGluayAoYW5kIEkgZGlkbid0IGZvbGxvdyB0aGUg cmVhc29uaW5nKSB0aGF0IEhpdmVNaW5kDQoJd291bGQgbmVlZCBhbiBBUEkgdG8gaXRlcmF0ZSBv dmVyIHRoZSBuYW1lcyBvZiBhbGwgc2VydmljZXMuDQoJDQoJSW4gYWRkaXRpb24sIGNvbmZpZ3Vy YXRpb24gZGF0YSAoaW4gZWl0aGVyIExpc3Qgb3IgTWFwIGZvcm0pIGlzIGFsc28NCglxdWl0ZSB2 YWx1YWJsZSBhbmQgc29tZXRoaW5nIHRoYXQgU3ByaW5nIGJlYW5zIHdvdWxkIGxpa2UgdG8gaGF2 ZQ0KCWFjY2VzcyB0by4NCgkNCgktLQ0KCUhvd2FyZCBNLiBMZXdpcyBTaGlwDQoJSW5kZXBlbmRl bnQgSjJFRSAvIE9wZW4tU291cmNlIEphdmEgQ29uc3VsdGFudA0KCUNyZWF0b3IsIEpha2FydGEg VGFwZXN0cnkNCglDcmVhdG9yLCBKYWthcnRhIEhpdmVNaW5kDQoJDQoJUHJvZmVzc2lvbmFsIFRh cGVzdHJ5IHRyYWluaW5nLCBtZW50b3JpbmcsIHN1cHBvcnQNCglhbmQgcHJvamVjdCB3b3JrLiAg aHR0cDovL2hvd2FyZGxld2lzc2hpcC5jb20NCgkNCgkNCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJVGhpcyBTRi5OZXQgZW1haWwgaXMg c3BvbnNvcmVkIGJ5OiBJbnRlbGxpVklFVyAtLSBJbnRlcmFjdGl2ZSBSZXBvcnRpbmcNCglUb29s IGZvciBvcGVuIHNvdXJjZSBkYXRhYmFzZXMuIENyZWF0ZSBkcmFnLSYtZHJvcCByZXBvcnRzLiBT YXZlIHRpbWUNCglieSBvdmVyIDc1JSEgUHVibGlzaCByZXBvcnRzIG9uIHRoZSB3ZWIuIEV4cG9y dCB0byBET0MsIFhMUywgUlRGLCBldGMuDQoJRG93bmxvYWQgYSBGUkVFIGNvcHkgYXQgaHR0cDov L3d3dy5pbnRlbGxpdmlldy5jb20vZ28vb3Nkbl9ubA0KCV9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fDQoJU3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlciBtYWls aW5nIGxpc3QNCglTcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyQGxpc3RzLnNvdXJjZWZvcmdlLm5l dA0KCWh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL3NwcmluZ2Zy YW1ld29yay1kZXZlbG9wZXINCgkNCg0K |
|
From: <al...@jt...> - 2005-01-27 23:18:53
|
<html><head>
<style>
.white { color:#FFFFFF }.index { background-color:#FFFFFF }.index-passed { =
color:#004400 }.index-failed { color:#FF0000; font-weight:bold }.index-head=
er { font-weight:bold }.link { font-family:arial,helvetica,sans-serif; font=
-size:10pt; color:#FFFFFF; text-decoration:none; }.tab-table { margin: 0em =
0em 0.5em 0em; }.tabs { font-family:arial,helvetica,sans-serif; font-size:8=
pt; color:#000000; font-weight:bold; padding: 0em 2em; background-color:#EE=
EEEE; }.tabs-link { color:#000000; text-decoration:none; }.tabs-link:visite=
d { color:#000000; text-decoration:none; }.tabs-selected { font-family:aria=
l,helvetica,sans-serif; font-size:8pt; color:#000000; font-weight:bold; pad=
ding: 0em 2em; }.tabs-selected { border: inset; }.header-title { font-famil=
y:arial,helvetica,sans-serif; font-size:12pt; color:#000000; font-weight:bo=
ld; }.header-label { font-weight:bold; }.header-data { font-family:arial,he=
lvetica,sans-serif; font-size:10pt; color:#000000; }.modifications-data { f=
ont-family:arial,helvetica,sans-serif; font-size:8pt; color:#000000; }.modi=
fications-sectionheader { background-color:#000066; font-family:arial,helve=
tica,sans-serif; font-size:10pt; color:#FFFFFF; }.modifications-oddrow { ba=
ckground-color:#CCCCCC }.modifications-evenrow { background-color:#FFFFCC }=
.changelists-oddrow { background-color:#CCCCCC }.changelists-evenrow { back=
ground-color:#FFFFCC }.changelists-file-spacer { background-color:#FFFFFF }=
.changelists-file-evenrow { background-color:#EEEEEE }.changelists-file-odd=
row { background-color:#FFFFEE }.changelists-file-header { background-color=
:#666666; font-family:arial,helvetica,sans-serif; font-size:8pt; color:#FFF=
FFF; }.compile-data { font-family:arial,helvetica,sans-serif; font-size:8pt=
; color:#000000; }.compile-error-data { font-family:arial,helvetica,sans-se=
rif; font-size:8pt; color:#FF0000; }.compile-warn-data { font-family:arial,=
helvetica,sans-serif; font-size:8pt; color:#CC9900; }.compile-sectionheader=
{ background-color:#000066; font-family:arial,helvetica,sans-serif; font-s=
ize:10pt; color:#FFFFFF; }.distributables-data { font-family:arial,helvetic=
a,sans-serif; font-size:8pt; color:#000000; }.distributables-sectionheader =
{ background-color:#000066; font-family:arial,helvetica,sans-serif; font-si=
ze:10pt; color:#FFFFFF; }.distributables-oddrow { background-color:#CCCCCC =
}.unittests-sectionheader { background-color:#000066; font-family:arial,hel=
vetica,sans-serif; font-size:10pt; color:#FFFFFF; }.unittests-oddrow { back=
ground-color:#CCCCCC }.unittests-data { font-family:arial,helvetica,sans-se=
rif; font-size:8pt; color:#000000; }.unittests-error { font-family:arial,he=
lvetica,sans-serif; font-size:8pt; color:#901090; }.unittests-failure { fon=
t-family:arial,helvetica,sans-serif; font-size:8pt; color:#FF0000; }.checks=
tyle-oddrow { background-color:#CCCCCC }.checkstyle-data { font-family:aria=
l,helvetica,sans-serif; font-size:8pt; color:#000000; }.checkstyle-sectionh=
eader { background-color:#000066; font-family:arial,helvetica,sans-serif; f=
ont-size:10pt; color:#FFFFFF; }
</style>
</head><body>
<p>
<table width=3D"98%" border=3D"0" cellspacing=3D"0" cellpadding=3D"2" align=
=3D"center"><tr><td class=3D"header-title">BUILD FAILED</td></tr><tr><td cl=
ass=3D"header-data"><span class=3D"header-label">Ant Error Message: </=
span>/jteam/build2/checkout/spring/spring/build.xml:61: Unable to delete fi=
le /jteam/build2/checkout/spring/spring/target/classes/META-INF/spring.tld<=
/td></tr><tr><td class=3D"header-data"><span class=3D"header-label">Date of=
build: </span>01/28/2005 00:16:06</td></tr><tr><td class=3D"header-da=
ta"><span class=3D"header-label">Time to build: </span>28 seconds</td>=
</tr><tr><td class=3D"header-data"><span class=3D"header-label">Last change=
d: </span>01/27/2005 17:39:18</td></tr><tr><td class=3D"header-data"><=
span class=3D"header-label">Last log entry: </span>fixed javadoc typo<=
/td></tr></table><p>
<p>
<p>
<p>
<p>
<table width=3D"98%" border=3D"0" cellspacing=3D"0" cellpadding=3D"2" align=
=3D"center"><tr><td colspan=3D"4" class=3D"unittests-sectionheader"> =
Unit Tests: (2366) </td></tr><tr><td><tabl=
e width=3D"98%" border=3D"0" cellspacing=3D"0" cellpadding=3D"2" align=3D"c=
enter"><tr><td class=3D"unittests-data"> failure =
</td><td width=3D"40%" class=3D"unittests-data">testAllMacros</td><td width=
=3D"40%" class=3D"unittests-data">org.springframework.web.servlet.view.free=
marker.FreeMarkerMacroTests</td></tr></table></td></tr><tr></tr><tr><td col=
span=3D"2"> </td></tr><tr><td colspan=3D"4" class=3D"unittests-section=
header"> Unit Test Error Details: (1) =
</td></tr><tr><td class=3D"unittests-data" colspan=3D"2"> =
Test: testAllMacros</td></tr><tr><td class=3D"unittests-data" co=
lspan=3D"2"> Class: org.springframework.web.servlet.vie=
w.freemarker.FreeMarkerMacroTests</td></tr><tr><td class=3D"unittests-data"=
colspan=3D"2"> Type: junit.framework.ComparisonFailure</td>=
</tr><tr><td class=3D"unittests-data" colspan=3D"2"> Message=
: expected:<... >> but was:<...></td></tr><tr><td class=
=3D"unittests-failure" colspan=3D"2"><pre>junit.framework.ComparisonFailure=
: expected:<... >> but was:<...><br>=09at org.springfra=
mework.web.servlet.view.freemarker.FreeMarkerMacroTests.testAllMacros(FreeM=
arkerMacroTests.java:163)<br>=09at sun.reflect.NativeMethodAccessorImpl.inv=
oke0(Native Method)<br>=09at sun.reflect.NativeMethodAccessorImpl.invoke(Na=
tiveMethodAccessorImpl.java:39)<br>=09at sun.reflect.DelegatingMethodAccess=
orImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br></pre></td></tr><tr>=
<td colspan=3D"2"> </td></tr></table><p>
<table width=3D"98%" border=3D"0" cellspacing=3D"1" cellpadding=3D"2" align=
=3D"center"><tr><td colspan=3D"6" class=3D"modifications-sectionheader"> =
Modifications since last build: =
(86) </td></tr><tr class=3D"modifications-evenrow"><td =
class=3D"modifications-data">modified</td><td class=3D"modifications-data">=
jhoeller</td><td class=3D"modifications-data">src/org/springframework/conte=
xt/support/AbstractApplicationContext.java</td><td class=3D"modifications-d=
ata">fixed javadoc typo</td></tr><tr class=3D"modifications-oddrow"><td cla=
ss=3D"modifications-data">modified</td><td class=3D"modifications-data">dav=
ison</td><td class=3D"modifications-data">test/org/springframework/web/serv=
let/view/freemarker/FreeMarkerMacroTests.java</td><td class=3D"modification=
s-data">*** empty log message ***</td></tr><tr class=3D"modifications-evenr=
ow"><td class=3D"modifications-data">modified</td><td class=3D"modification=
s-data">jhoeller</td><td class=3D"modifications-data">src/org/springframewo=
rk/context/support/ReloadableResourceBundleMessageSource.java</td><td class=
=3D"modifications-data">never check the same message file twice for the sam=
e message</td></tr><tr class=3D"modifications-oddrow"><td class=3D"modifica=
tions-data">modified</td><td class=3D"modifications-data">robharrop</td><td=
class=3D"modifications-data">sandbox/src/org/springframework/jmx/util/pack=
age.html</td><td class=3D"modifications-data">Polished JMX JavaDocs - still=
more to do.</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modi=
fications-data">modified</td><td class=3D"modifications-data">robharrop</td=
><td class=3D"modifications-data">sandbox/src/org/springframework/jmx/metad=
ata/AbstractJmxAttribute.java</td><td class=3D"modifications-data">Polished=
JMX JavaDocs - still more to do.</td></tr><tr class=3D"modifications-oddro=
w"><td class=3D"modifications-data">modified</td><td class=3D"modifications=
-data">robharrop</td><td class=3D"modifications-data">sandbox/src/org/sprin=
gframework/jmx/metadata/InvalidMetadataException.java</td><td class=3D"modi=
fications-data">Polished JMX JavaDocs - still more to do.</td></tr><tr clas=
s=3D"modifications-evenrow"><td class=3D"modifications-data">added</td><td =
class=3D"modifications-data">robharrop</td><td class=3D"modifications-data"=
>sandbox/src/org/springframework/jmx/metadata/package.html</td><td class=3D=
"modifications-data">Polished JMX JavaDocs - still more to do.</td></tr><tr=
class=3D"modifications-oddrow"><td class=3D"modifications-data">added</td>=
<td class=3D"modifications-data">robharrop</td><td class=3D"modifications-d=
ata">sandbox/src/org/springframework/jmx/naming/package.html</td><td class=
=3D"modifications-data">Polished JMX JavaDocs - still more to do.</td></tr>=
<tr class=3D"modifications-evenrow"><td class=3D"modifications-data">modifi=
ed</td><td class=3D"modifications-data">robharrop</td><td class=3D"modifica=
tions-data">sandbox/src/org/springframework/jmx/support/ConnectorServerFact=
oryBean.java</td><td class=3D"modifications-data">Polished JMX JavaDocs - s=
till more to do.</td></tr><tr class=3D"modifications-oddrow"><td class=3D"m=
odifications-data">modified</td><td class=3D"modifications-data">robharrop<=
/td><td class=3D"modifications-data">sandbox/src/org/springframework/jmx/as=
sembler/MetadataModelMBeanInfoAssembler.java</td><td class=3D"modifications=
-data">Polished JMX JavaDocs - still more to do.</td></tr><tr class=3D"modi=
fications-evenrow"><td class=3D"modifications-data">added</td><td class=3D"=
modifications-data">robharrop</td><td class=3D"modifications-data">sandbox/=
src/org/springframework/jmx/assembler/package.html</td><td class=3D"modific=
ations-data">Polished JMX JavaDocs - still more to do.</td></tr><tr class=
=3D"modifications-oddrow"><td class=3D"modifications-data">modified</td><td=
class=3D"modifications-data">robharrop</td><td class=3D"modifications-data=
">sandbox/src/org/springframework/jmx/assembler/InterfaceBasedModelMBeanInf=
oAssembler.java</td><td class=3D"modifications-data">Polished JMX JavaDocs =
- still more to do.</td></tr><tr class=3D"modifications-evenrow"><td class=
=3D"modifications-data">deleted</td><td class=3D"modifications-data">robhar=
rop</td><td class=3D"modifications-data">sandbox/src/org/springframework/jm=
x/adapters/AdapterRegistrationException.java</td><td class=3D"modifications=
-data">Polished JMX JavaDocs - still more to do.</td></tr><tr class=3D"modi=
fications-oddrow"><td class=3D"modifications-data">modified</td><td class=
=3D"modifications-data">robharrop</td><td class=3D"modifications-data">sand=
box/src/org/springframework/jmx/access/package.html</td><td class=3D"modifi=
cations-data">Polished JMX JavaDocs - still more to do.</td></tr><tr class=
=3D"modifications-evenrow"><td class=3D"modifications-data">modified</td><t=
d class=3D"modifications-data">jhoeller</td><td class=3D"modifications-data=
">test/org/springframework/orm/hibernate/support/LobTypeTests.java</td><td =
class=3D"modifications-data">refined AbstractLobType' JTA synchronization t=
o close the LobCreator as early as possible (earlier for a commit)</td></tr=
><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">modifi=
ed</td><td class=3D"modifications-data">jhoeller</td><td class=3D"modificat=
ions-data">src/org/springframework/orm/hibernate/support/AbstractLobType.ja=
va</td><td class=3D"modifications-data">refined AbstractLobType' JTA synchr=
onization to close the LobCreator as early as possible (earlier for a commi=
t)</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-=
data">modified</td><td class=3D"modifications-data">jhoeller</td><td class=
=3D"modifications-data">test/org/springframework/orm/hibernate/HibernateJta=
TransactionTests.java</td><td class=3D"modifications-data">refined JTA sync=
hronization to unbind the Session as early as possible (earlier for a commi=
t)</td></tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-d=
ata">modified</td><td class=3D"modifications-data">jhoeller</td><td class=
=3D"modifications-data">src/org/springframework/orm/hibernate/SessionFactor=
yUtils.java</td><td class=3D"modifications-data">refined JTA synchronizatio=
n to unbind the Session as early as possible (earlier for a commit)</td></t=
r><tr class=3D"modifications-evenrow"><td class=3D"modifications-data">modi=
fied</td><td class=3D"modifications-data">jhoeller</td><td class=3D"modific=
ations-data">src/org/springframework/web/servlet/mvc/AbstractFormController=
.java</td><td class=3D"modifications-data">polished error messages</td></tr=
><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">modifi=
ed</td><td class=3D"modifications-data">jhoeller</td><td class=3D"modificat=
ions-data">test/org/springframework/remoting/jaxrpc/JaxRpcSupportTests.java=
</td><td class=3D"modifications-data">reworked to avoid repeated HTTP looku=
p attempts</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifi=
cations-data">added</td><td class=3D"modifications-data">jhoeller</td><td c=
lass=3D"modifications-data">samples/petclinic/src/OJB-repository.dtd</td><t=
d class=3D"modifications-data">added OJB repository DTD file (not included =
in ojb.jar)</td></tr><tr class=3D"modifications-oddrow"><td class=3D"modifi=
cations-data">modified</td><td class=3D"modifications-data">jhoeller</td><t=
d class=3D"modifications-data">samples/petclinic/src/OJB-repository.xml</td=
><td class=3D"modifications-data">added OJB repository DTD file (not includ=
ed in ojb.jar)</td></tr><tr class=3D"modifications-evenrow"><td class=3D"mo=
difications-data">added</td><td class=3D"modifications-data">jhoeller</td><=
td class=3D"modifications-data">lib/ojb/repository.dtd</td><td class=3D"mod=
ifications-data">added OJB repository DTD file (not included in ojb.jar)</t=
d></tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">=
modified</td><td class=3D"modifications-data">jhoeller</td><td class=3D"mod=
ifications-data">samples/petclinic/src/org/springframework/samples/petclini=
c/ojb/PersistenceBrokerClinic.java</td><td class=3D"modifications-data">lev=
eraged "getObjectById", added order-by clauses</td></tr><tr class=3D"modifi=
cations-evenrow"><td class=3D"modifications-data">modified</td><td class=3D=
"modifications-data">jhoeller</td><td class=3D"modifications-data">test/org=
/springframework/web/servlet/view/freemarker/FreeMarkerMacroTests.java</td>=
<td class=3D"modifications-data">reformatted, commented out failing tests</=
td></tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-data"=
>modified</td><td class=3D"modifications-data">jhoeller</td><td class=3D"mo=
difications-data">test/org/springframework/orm/ojb/PersistenceBrokerTemplat=
eTests.java</td><td class=3D"modifications-data">added "getObjectById(entit=
yClass, idValue)" method, for single primary keys</td></tr><tr class=3D"mod=
ifications-evenrow"><td class=3D"modifications-data">modified</td><td class=
=3D"modifications-data">jhoeller</td><td class=3D"modifications-data">src/o=
rg/springframework/orm/ojb/PersistenceBrokerOperations.java</td><td class=
=3D"modifications-data">added "getObjectById(entityClass, idValue)" method,=
for single primary keys</td></tr><tr class=3D"modifications-oddrow"><td cl=
ass=3D"modifications-data">modified</td><td class=3D"modifications-data">jh=
oeller</td><td class=3D"modifications-data">src/org/springframework/orm/ojb=
/PersistenceBrokerTemplate.java</td><td class=3D"modifications-data">added =
"getObjectById(entityClass, idValue)" method, for single primary keys</td><=
/tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-data">mo=
dified</td><td class=3D"modifications-data">jhoeller</td><td class=3D"modif=
ications-data">build.xml</td><td class=3D"modifications-data">removed unnec=
essary javadoc links for secondary dependencies</td></tr><tr class=3D"modif=
ications-oddrow"><td class=3D"modifications-data">modified</td><td class=3D=
"modifications-data">jhoeller</td><td class=3D"modifications-data">lib/read=
me.txt</td><td class=3D"modifications-data">re-added Commons Lang (for OJB)=
</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-da=
ta">modified</td><td class=3D"modifications-data">jhoeller</td><td class=3D=
"modifications-data">lib/jakarta-commons/commons-lang.jar</td><td class=3D"=
modifications-data">re-added Commons Lang (for OJB)</td></tr><tr class=3D"m=
odifications-oddrow"><td class=3D"modifications-data">modified</td><td clas=
s=3D"modifications-data">robharrop</td><td class=3D"modifications-data">san=
dbox/src/org/springframework/aop/framework/aspectwerkz/AspectWerkzAopProxy.=
java</td><td class=3D"modifications-data">Added tests for AspectWerkz proxy=
</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-da=
ta">added</td><td class=3D"modifications-data">robharrop</td><td class=3D"m=
odifications-data">sandbox/src/org/springframework/aop/framework/aspectwerk=
z/ExpressionBasedPointcut.java</td><td class=3D"modifications-data">Added t=
ests for AspectWerkz proxy</td></tr><tr class=3D"modifications-oddrow"><td =
class=3D"modifications-data">modified</td><td class=3D"modifications-data">=
jhoeller</td><td class=3D"modifications-data">test/org/springframework/orm/=
hibernate/HibernateJtaTransactionTests.java</td><td class=3D"modifications-=
data">fixed NPE in Session lookup code (when using both JTA synchronization=
and Spring synchronization)</td></tr><tr class=3D"modifications-evenrow"><=
td class=3D"modifications-data">modified</td><td class=3D"modifications-dat=
a">jhoeller</td><td class=3D"modifications-data">src/org/springframework/or=
m/hibernate/SessionFactoryUtils.java</td><td class=3D"modifications-data">f=
ixed NPE in Session lookup code (when using both JTA synchronization and Sp=
ring synchronization)</td></tr><tr class=3D"modifications-oddrow"><td class=
=3D"modifications-data">modified</td><td class=3D"modifications-data">jhoel=
ler</td><td class=3D"modifications-data">src/org/springframework/orm/ibatis=
/SqlMapClientFactoryBean.java</td><td class=3D"modifications-data">polishin=
g</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-d=
ata">modified</td><td class=3D"modifications-data">jhoeller</td><td class=
=3D"modifications-data">src/org/springframework/orm/ojb/support/Persistence=
BrokerDaoSupport.java</td><td class=3D"modifications-data">polishing</td></=
tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">modi=
fied</td><td class=3D"modifications-data">jhoeller</td><td class=3D"modific=
ations-data">src/org/springframework/transaction/support/AbstractPlatformTr=
ansactionManager.java</td><td class=3D"modifications-data">removed invalid =
javadoc references</td></tr><tr class=3D"modifications-evenrow"><td class=
=3D"modifications-data">modified</td><td class=3D"modifications-data">jhoel=
ler</td><td class=3D"modifications-data">src/org/springframework/orm/ojb/Pe=
rsistenceBrokerTransactionManager.java</td><td class=3D"modifications-data"=
>removed invalid javadoc references</td></tr><tr class=3D"modifications-odd=
row"><td class=3D"modifications-data">modified</td><td class=3D"modificatio=
ns-data">jhoeller</td><td class=3D"modifications-data">src/org/springframew=
ork/orm/jdo/JdoTransactionManager.java</td><td class=3D"modifications-data"=
>removed invalid javadoc references</td></tr><tr class=3D"modifications-eve=
nrow"><td class=3D"modifications-data">modified</td><td class=3D"modificati=
ons-data">jhoeller</td><td class=3D"modifications-data">src/org/springframe=
work/orm/hibernate/HibernateTransactionManager.java</td><td class=3D"modifi=
cations-data">removed invalid javadoc references</td></tr><tr class=3D"modi=
fications-oddrow"><td class=3D"modifications-data">added</td><td class=3D"m=
odifications-data">jhoeller</td><td class=3D"modifications-data">src/org/sp=
ringframework/orm/ojb/support/TransactionAwareDataSourceConnectionFactory.j=
ava</td><td class=3D"modifications-data">added TransactionAwareDataSourceCo=
nnectionFactory for OJB</td></tr><tr class=3D"modifications-evenrow"><td cl=
ass=3D"modifications-data">modified</td><td class=3D"modifications-data">jh=
oeller</td><td class=3D"modifications-data">src/org/springframework/orm/ojb=
/support/LocalDataSourceConnectionFactory.java</td><td class=3D"modificatio=
ns-data">added TransactionAwareDataSourceConnectionFactory for OJB</td></tr=
><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">modifi=
ed</td><td class=3D"modifications-data">jhoeller</td><td class=3D"modificat=
ions-data">src/org/springframework/orm/ojb/support/LocalOjbConfigurer.java<=
/td><td class=3D"modifications-data">added TransactionAwareDataSourceConnec=
tionFactory for OJB</td></tr><tr class=3D"modifications-evenrow"><td class=
=3D"modifications-data">modified</td><td class=3D"modifications-data">jhoel=
ler</td><td class=3D"modifications-data">test/org/springframework/orm/hiber=
nate/LocalSessionFactoryBeanTests.java</td><td class=3D"modifications-data"=
>added "useTransactionAwareDataSource" flag to LocalSessionFactoryBean</td>=
</tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">mo=
dified</td><td class=3D"modifications-data">jhoeller</td><td class=3D"modif=
ications-data">src/org/springframework/orm/hibernate/LocalDataSourceConnect=
ionProvider.java</td><td class=3D"modifications-data">added "useTransaction=
AwareDataSource" flag to LocalSessionFactoryBean</td></tr><tr class=3D"modi=
fications-evenrow"><td class=3D"modifications-data">modified</td><td class=
=3D"modifications-data">jhoeller</td><td class=3D"modifications-data">src/o=
rg/springframework/orm/hibernate/LocalSessionFactoryBean.java</td><td class=
=3D"modifications-data">added "useTransactionAwareDataSource" flag to Local=
SessionFactoryBean</td></tr><tr class=3D"modifications-oddrow"><td class=3D=
"modifications-data">added</td><td class=3D"modifications-data">jhoeller</t=
d><td class=3D"modifications-data">src/org/springframework/orm/hibernate/Tr=
ansactionAwareDataSourceConnectionProvider.java</td><td class=3D"modificati=
ons-data">added "useTransactionAwareDataSource" flag to LocalSessionFactory=
Bean</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modification=
s-data">added</td><td class=3D"modifications-data">robharrop</td><td class=
=3D"modifications-data">sandbox/src/org/springframework/aop/framework/aspec=
twerkz/AspectWerkzAopProxy.java</td><td class=3D"modifications-data">Added =
initial AspectWerkz proxy stuff - really rough at the moment.</td></tr><tr =
class=3D"modifications-oddrow"><td class=3D"modifications-data">added</td><=
td class=3D"modifications-data">robharrop</td><td class=3D"modifications-da=
ta">sandbox/src/org/springframework/aop/framework/aspectwerkz/AspectWerkzAo=
pProxyFactory.java</td><td class=3D"modifications-data">Added initial Aspec=
tWerkz proxy stuff - really rough at the moment.</td></tr><tr class=3D"modi=
fications-evenrow"><td class=3D"modifications-data">added</td><td class=3D"=
modifications-data">robharrop</td><td class=3D"modifications-data">lib/aspe=
ctwerkz/aspectwerkz-core-2.0.RC3-snapshot.jar</td><td class=3D"modification=
s-data">Added initial AspectWerkz proxy stuff - really rough at the moment.=
</td></tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-dat=
a">added</td><td class=3D"modifications-data">robharrop</td><td class=3D"mo=
difications-data">lib/aspectwerkz/aspectwerkz-2.0.RC3-snapshot.jar</td><td =
class=3D"modifications-data">Added initial AspectWerkz proxy stuff - really=
rough at the moment.</td></tr><tr class=3D"modifications-evenrow"><td clas=
s=3D"modifications-data">modified</td><td class=3D"modifications-data">davi=
son</td><td class=3D"modifications-data">src/org/springframework/web/servle=
t/view/freemarker/spring.ftl</td><td class=3D"modifications-data">need to e=
xplicitly handle all boolean content separately from other data types.</td>=
</tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">mo=
dified</td><td class=3D"modifications-data">davison</td><td class=3D"modifi=
cations-data">src/org/springframework/web/servlet/view/freemarker/spring.ft=
l</td><td class=3D"modifications-data">backing out previous changes, tests =
must be passing falsely</td></tr><tr class=3D"modifications-evenrow"><td cl=
ass=3D"modifications-data">modified</td><td class=3D"modifications-data">kd=
onald</td><td class=3D"modifications-data">sandbox/src/org/springframework/=
web/flow/Flow.java</td><td class=3D"modifications-data">*** empty log messa=
ge ***</td></tr><tr class=3D"modifications-oddrow"><td class=3D"modificatio=
ns-data">added</td><td class=3D"modifications-data">kdonald</td><td class=
=3D"modifications-data">sandbox/src/org/springframework/web/flow/NoSuchFlow=
AttributeMapperException.java</td><td class=3D"modifications-data">*** empt=
y log message ***</td></tr><tr class=3D"modifications-evenrow"><td class=3D=
"modifications-data">modified</td><td class=3D"modifications-data">kdonald<=
/td><td class=3D"modifications-data">sandbox/src/org/springframework/web/fl=
ow/TransitionableState.java</td><td class=3D"modifications-data">*** empty =
log message ***</td></tr><tr class=3D"modifications-oddrow"><td class=3D"mo=
difications-data">modified</td><td class=3D"modifications-data">kdonald</td=
><td class=3D"modifications-data">sandbox/src/org/springframework/web/flow/=
AttributesAccessor.java</td><td class=3D"modifications-data">*** empty log =
message ***</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modif=
ications-data">modified</td><td class=3D"modifications-data">kdonald</td><t=
d class=3D"modifications-data">sandbox/src/org/springframework/web/flow/Flo=
wDao.java</td><td class=3D"modifications-data">*** empty log message ***</t=
d></tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">=
modified</td><td class=3D"modifications-data">kdonald</td><td class=3D"modi=
fications-data">sandbox/src/org/springframework/web/flow/FlowEventProcessor=
.java</td><td class=3D"modifications-data">*** empty log message ***</td></=
tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-data">mod=
ified</td><td class=3D"modifications-data">kdonald</td><td class=3D"modific=
ations-data">sandbox/src/org/springframework/web/flow/FlowSessionExecutionI=
nfo.java</td><td class=3D"modifications-data">*** empty log message ***</td=
></tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">a=
dded</td><td class=3D"modifications-data">kdonald</td><td class=3D"modifica=
tions-data">sandbox/src/org/springframework/web/flow/FlowSessionExecutionSt=
artResult.java</td><td class=3D"modifications-data">*** empty log message *=
**</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-=
data">modified</td><td class=3D"modifications-data">kdonald</td><td class=
=3D"modifications-data">sandbox/src/org/springframework/web/flow/MulticastF=
lowLifecycleListener.java</td><td class=3D"modifications-data">*** empty lo=
g message ***</td></tr><tr class=3D"modifications-oddrow"><td class=3D"modi=
fications-data">modified</td><td class=3D"modifications-data">kdonald</td><=
td class=3D"modifications-data">sandbox/src/org/springframework/web/flow/St=
artState.java</td><td class=3D"modifications-data">*** empty log message **=
*</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-d=
ata">modified</td><td class=3D"modifications-data">kdonald</td><td class=3D=
"modifications-data">sandbox/src/org/springframework/web/flow/Transition.ja=
va</td><td class=3D"modifications-data">*** empty log message ***</td></tr>=
<tr class=3D"modifications-oddrow"><td class=3D"modifications-data">modifie=
d</td><td class=3D"modifications-data">kdonald</td><td class=3D"modificatio=
ns-data">sandbox/src/org/springframework/web/flow/ViewState.java</td><td cl=
ass=3D"modifications-data">*** empty log message ***</td></tr><tr class=3D"=
modifications-evenrow"><td class=3D"modifications-data">modified</td><td cl=
ass=3D"modifications-data">kdonald</td><td class=3D"modifications-data">san=
dbox/src/org/springframework/web/flow/AbstractState.java</td><td class=3D"m=
odifications-data">*** empty log message ***</td></tr><tr class=3D"modifica=
tions-oddrow"><td class=3D"modifications-data">modified</td><td class=3D"mo=
difications-data">kdonald</td><td class=3D"modifications-data">sandbox/src/=
org/springframework/web/flow/ActionState.java</td><td class=3D"modification=
s-data">*** empty log message ***</td></tr><tr class=3D"modifications-evenr=
ow"><td class=3D"modifications-data">added</td><td class=3D"modifications-d=
ata">kdonald</td><td class=3D"modifications-data">sandbox/src/org/springfra=
mework/web/flow/FlowAttributesMapper.java</td><td class=3D"modifications-da=
ta">*** empty log message ***</td></tr><tr class=3D"modifications-oddrow"><=
td class=3D"modifications-data">modified</td><td class=3D"modifications-dat=
a">kdonald</td><td class=3D"modifications-data">sandbox/src/org/springframe=
work/web/flow/FlowLifecycleListener.java</td><td class=3D"modifications-dat=
a">*** empty log message ***</td></tr><tr class=3D"modifications-evenrow"><=
td class=3D"modifications-data">modified</td><td class=3D"modifications-dat=
a">kdonald</td><td class=3D"modifications-data">sandbox/src/org/springframe=
work/web/flow/FlowSessionExecutionStack.java</td><td class=3D"modifications=
-data">*** empty log message ***</td></tr><tr class=3D"modifications-oddrow=
"><td class=3D"modifications-data">deleted</td><td class=3D"modifications-d=
ata">kdonald</td><td class=3D"modifications-data">sandbox/src/org/springfra=
mework/web/flow/NoSuchAttributeMapperException.java</td><td class=3D"modifi=
cations-data">*** empty log message ***</td></tr><tr class=3D"modifications=
-evenrow"><td class=3D"modifications-data">added</td><td class=3D"modificat=
ions-data">kdonald</td><td class=3D"modifications-data">sandbox/src/org/spr=
ingframework/web/flow/ParameterizableFlowAttributesMapper.java</td><td clas=
s=3D"modifications-data">*** empty log message ***</td></tr><tr class=3D"mo=
difications-oddrow"><td class=3D"modifications-data">deleted</td><td class=
=3D"modifications-data">kdonald</td><td class=3D"modifications-data">sandbo=
x/src/org/springframework/web/flow/ParameterizableSubFlowAttributesMapper.j=
ava</td><td class=3D"modifications-data">*** empty log message ***</td></tr=
><tr class=3D"modifications-evenrow"><td class=3D"modifications-data">delet=
ed</td><td class=3D"modifications-data">kdonald</td><td class=3D"modificati=
ons-data">sandbox/src/org/springframework/web/flow/SubFlowAttributesMapper.=
java</td><td class=3D"modifications-data">*** empty log message ***</td></t=
r><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">modif=
ied</td><td class=3D"modifications-data">kdonald</td><td class=3D"modificat=
ions-data">sandbox/src/org/springframework/web/flow/SubFlowState.java</td><=
td class=3D"modifications-data">*** empty log message ***</td></tr><tr clas=
s=3D"modifications-evenrow"><td class=3D"modifications-data">modified</td><=
td class=3D"modifications-data">kdonald</td><td class=3D"modifications-data=
">sandbox/src/org/springframework/web/flow/FlowSession.java</td><td class=
=3D"modifications-data">*** empty log message ***</td></tr><tr class=3D"mod=
ifications-oddrow"><td class=3D"modifications-data">modified</td><td class=
=3D"modifications-data">kdonald</td><td class=3D"modifications-data">sandbo=
x/src/org/springframework/web/flow/Flow.java</td><td class=3D"modifications=
-data">*** empty log message ***</td></tr><tr class=3D"modifications-evenro=
w"><td class=3D"modifications-data">modified</td><td class=3D"modifications=
-data">kdonald</td><td class=3D"modifications-data">sandbox/test/org/spring=
framework/web/flow/FlowTests.java</td><td class=3D"modifications-data">poli=
shing</td></tr><tr class=3D"modifications-oddrow"><td class=3D"modification=
s-data">modified</td><td class=3D"modifications-data">kdonald</td><td class=
=3D"modifications-data">sandbox/test/org/springframework/web/flow/Multicast=
FlowLifecycleListenerTests.java</td><td class=3D"modifications-data">polish=
ing</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications=
-data">modified</td><td class=3D"modifications-data">kdonald</td><td class=
=3D"modifications-data">sandbox/src/org/springframework/web/flow/struts/Flo=
wAction.java</td><td class=3D"modifications-data">polishing</td></tr><tr cl=
ass=3D"modifications-oddrow"><td class=3D"modifications-data">modified</td>=
<td class=3D"modifications-data">kdonald</td><td class=3D"modifications-dat=
a">sandbox/src/org/springframework/web/flow/action/AbstractActionBean.java<=
/td><td class=3D"modifications-data">polishing</td></tr><tr class=3D"modifi=
cations-evenrow"><td class=3D"modifications-data">modified</td><td class=3D=
"modifications-data">jhoeller</td><td class=3D"modifications-data">changelo=
g.txt</td><td class=3D"modifications-data">SQLErrorCodes, SqlMapClientTempl=
ate, RmiServiceExporter</td></tr><tr class=3D"modifications-oddrow"><td cla=
ss=3D"modifications-data">modified</td><td class=3D"modifications-data">jho=
eller</td><td class=3D"modifications-data">src/org/springframework/orm/ojb/=
PersistenceBrokerTemplate.java</td><td class=3D"modifications-data">polishi=
ng</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-=
data">modified</td><td class=3D"modifications-data">jhoeller</td><td class=
=3D"modifications-data">src/org/springframework/orm/jdo/JdoTemplate.java</t=
d><td class=3D"modifications-data">polishing</td></tr><tr class=3D"modifica=
tions-oddrow"><td class=3D"modifications-data">modified</td><td class=3D"mo=
difications-data">jhoeller</td><td class=3D"modifications-data">src/org/spr=
ingframework/orm/hibernate/HibernateTemplate.java</td><td class=3D"modifica=
tions-data">polishing</td></tr></table><p>
<table width=3D"98%" border=3D"0" cellspacing=3D"0" cellpadding=3D"2" align=
=3D"center"></table>
</body></html> |
|
From: Darren D. <da...@da...> - 2005-01-27 16:40:55
|
On Thu, January 27, 2005 8:42, Juergen Hoeller said: > Could you please have a look at that "testAllMacros" failure? The "FORM= 1" > and "FORM2" checks fail there. looks like I hadn't selected the amended tests for commit alongside the macros. s/be ok now. --=20 Darren Davison Public Key: #DD356B0D |
|
From: Colin S. <col...@ex...> - 2005-01-27 15:09:23
|
(I am starting to hate SourceForge intensely. I got 3 replies to Drew's
message, but not Drew's message Add to the the ongoing CVS issue for
the better part of 2 years now (which seem to have gotten worse, I
simply can't do a proper update without trying dozens of times) or the
last week's disk space problems. I guess we get what we pay for).
This code looks pretty interesting. I agree about it probably making
sense to include in Spring. Drew, do you have any feel for performance,
i.e. how big an impact there would be to using a lot of these
expressions in a config file? I'm also trying to get my head around how
this affects lifecycles and when initialization happens.
PropertyPlaceholderConfigurer is obviously pretty simplistic, all it's
going to do is replace a placehold value in a text property value with
another. It can't trigger the initialization of another bean. Now in
this OGNL variant, if the OGNL script references the context, then it
can trigger the initialization of other beans, similar in fashion to how
a <ref bean="xxx"> will trigger the init of that other bean first. Now
the difference here is that while the <ref bean=""> will trigger that
init only if used, since this approach is as a bean factory
postprocessor and all expressions are evaluated at init time, all
references beans will be immediately initialized at init time. For this
reason, while I think this is a valid approach, and has the advantage
that it doesn't require changes to the guts of Spring, I think there's
still added value in having the idea of expressions known to Spring
itself, which are only evaluated on demand... Possibly the 2nd step...
Colin
Rob Harrop wrote:
> Drew,
> This sounds excellent - I would certainly like to include it in the
> main Spring codebase. If everyone else is in agreement feel free to
> either post this to JIRA or send it to me and I'll put it in the
> sandbox. I think it would be really nice to get this up and running
> for the 1.2 release.
>
> Alternatively, I wonder if it is about time we started a separate
> project for Spring add-ons. Still underneath the Spring umberella,
> just a separate project away from the core. This way we can keep the
> core compact and free from clutter. Thoughts everyone?
>
> Rob
>
> Drew Davidson wrote:
>
>> I wrote an OGNL-based property configurer (BeanFactoryPostProcessor
>> implementor) that evaluates OGNL expressions in <value>, <map> and
>> <list> entries, etc.
>>
>> It is similar in spirit to the PropertyPlaceholderConfigurer in that
>> is substitutes values during the post processing phase. It looks for
>> values delimitted by :[ and ] and processes them as OGNL expressions,
>> which return a value.
>>
>> Advantages of OGNL expressions in Spring configurations:
>> * Reference static members of classes directly (great for setting
>> values from "static final int" constants):
>>
>> <property name="aConstValue"><value>:[
>> @org.ognl.SomeClass@CONSTANT_VALUE ]</value>
>>
>> * Access Java data structures (and Collections) more easily than
>> in Spring. Here are some examples, but I can't do justice to the
>> amount of data structure manipulation possibilities in OGNL in this
>> small space:
>>
>> - Create a Map:
>> #{
>> "name": "MyName",
>> "description:" "This is a description of myName"
>> }
>>
>> - Create a List of Strings:
>>
>> { "one", "two", "three" }
>>
>> - Create a List, filtered for certain elements:
>>
>> #someObjectInContext.items.{? name.startsWith("foo") }
>>
>> * Call methods on any object reachable by the bean factory
>>
>> * Reference and navigate other objects in the factory by name
>>
>>
>> Example from my commerce library of configuring a factory that
>> produces OrderQueryCriteria objects. These objects have setup
>> requiring bindings to helper objects (OrderStatus is a custom
>> enumerated type, SortOrdering is similar to Hibernate's Order class
>> but slightly different usage pattern). One way to do this is to
>> change the objects to take primitive-based setters and getters to
>> construct these, or to complexify the Spring configuration file to
>> provide these objects through factories, etc. I tried that and the
>> config file was a bit heavy with "noise" due to the number of custom
>> classes I needed just to get to static members, constructors, etc.
>>
>> public class OrderQueryCriteria extends AbstractQueryCriteria
>> {
>> ...
>>
>> public List getOrderStatus()
>> {
>> return orderStatus;
>> }
>>
>> public void setOrderStatus(List value)
>> {
>> orderStatus = value;
>> }
>>
>> public SortOrdering getPrimaryOrdering()
>> {
>> return primaryOrdering;
>> }
>>
>> public void setPrimaryOrdering(SortOrdering value)
>> {
>> primaryOrdering = value;
>> }
>>
>> public int getPageSize()
>> {
>> return pageSize;
>> }
>>
>> public void setPageSize(int value)
>> {
>> pageSize = value;
>> }
>> }
>>
>> applicationContext-dao.xml:
>>
>> <bean id="orderQueryCriteria"
>> class="org.ognl.dao.OrderQueryCriteria" singleton="false"
>> autowire="byName">
>> <property name="orderStatus"><value>:[
>> @EnumeratedType@getFactory(@OrderStatus@class).instances.{ #this }
>> ]</value></property>
>> <property name="primaryOrdering"><value>:[ new
>> SortOrdering('orderDate', @SortOrdering@DESCENDING) ]</value></property>
>> <property name="pageSize"><value>10</value></property>
>> </bean>
>>
>> EnumeratedType is an abstraction for managing enumerated type
>> objects. It allows you to get lists of instances and manages
>> indexing the enumerations by other properties as well. Access is
>> through static factory that implements the getInstances() method.
>>
>> orderStatus is a List of OrderStatus objects. To construct this we
>> need to get the List from the EnumeratedType's factory and get a copy
>> of the list that is returned (the copy is done by "projecting" the
>> instances list via { #this }, which creates a new List as a result).
>>
>> primaryOrdering is a SortOrdering object that has an Object "target"
>> and an ordering value (ASCENDING, DESCENDING or NONE). Note here
>> that we are constructing this object using it's own static constant
>> fields.
>>
>> The above code is accessing SortOrdering, EnumeratedType, and
>> OrderStatus without any package specifications, you may note. This
>> works here because the processor is looking for beans of type
>> ognl.ClassResolver to use to resolve class names to actual Class
>> objects. I've written an ImportClassResolver that is configured thus:
>>
>> <!-- id does not matter; only the fact that it exists in the
>> context -->
>> <bean id="imports"
>> class="org.ognl.spring.config.ImportClassResolver">
>> <property name="imports">
>> <list>
>> <value>org.ognl.util.*</value>
>> <value>org.ognl.model.shop.*</value>
>> <value>org.ognl.pager.*</value>
>> </list>
>> </property>
>> </bean>
>> You can define as many of these as you like and they do inherit.
>>
>> Another feature is that the OGNL "context" object allows access to
>> the rest of the Spring applicationContext through OGNL's "context
>> variable" syntax.
>>
>> In the above code you saw reference to "#this" - this is the implicit
>> value of the current object of the navigation; also available is
>> #root (the original root object of the expression). This syntax also
>> is used to access other elements in the context:
>>
>> <!-- a ListFactory produces, as the result of the factory, a List
>> object -->
>> <bean id="itemSortProperties"
>> class="org.ognl.spring.config.ListFactory">
>> <property name="list">
>> <value>:[
>> {
>> #{ "name": "Item #",
>> "property": "itemNumber",
>> "advanced": false
>> },
>> #{ "name": "Name",
>> "property": "name",
>> "advanced": false
>> },
>> #{ "name": "Categorization",
>> "property": { "product.category.name",
>> "product.name" },
>> "advanced": false
>> },
>> }
>> ]</value>
>> </property>
>> </bean>
>>
>>
>> <bean id="itemQueryCriteria"
>> class="org.ognl.dao.ItemQueryCriteria" singleton="false"
>> autowire="byName">
>> ...
>> <property name="primaryOrdering"><value>:[
>> new SortOrdering(#itemSortProperties.{? name ==
>> "Categorization" }[^].property, @SortOrdering@ASCENDING)
>> ]</value></property>
>>
>> <property name="secondaryOrdering"><value>:[
>> new SortOrdering(#itemSortProperties.{? name == "Item #"
>> }[^].property, @SortOrdering@ASCENDING)
>> ]</value></property>
>>
>> <property name="tertiaryOrdering"><value>:[
>> new SortOrdering(#itemSortProperties.{? name == "Name"
>> }[^].property, @SortOrdering@ASCENDING)
>> ]</value></property>
>>
>> <property name="pageSize"><value>10</value></property>
>>
>> </bean>
>>
>> The above configures a List of Map objects, each of which has a
>> "name", "property" and "advanced" key/value pair. The
>> itemQueryCriteria object is configured from this list by referencing
>> the other bean via "#itemSortProperties". Each of these uses the
>> selection syntax to get a specific item out of the list, then the
>> dynamic subscript "[^]" to return the first item of the list.
>>
>> You can also navigate through other objects in the context for other
>> purposes such as mirroring another configuration value:
>>
>> <bean id="myObject" class="...">
>> <property name="foo"><value>1254</value></property>
>> ...
>> </bean>
>>
>> <bean id="otherObject" class="...">
>> <property name="bar"><value>:[ #myObject.foo ]</value></property>
>> </bean>
>>
>> This can help cut down on error where properties are used repetitively.
>>
>> I'm not sure how I should distribute the source to this or if the
>> project takes contributions. The code has a dependency on OGNL 2.6.3
>> and above (1 jar file of ~185k). Is there a contribution mechanism
>> that I can use to put instructions for use, the jar and the source up
>> somewhere?
>>
>> - Drew
>
|
|
From: Drew D. <dr...@og...> - 2005-01-27 14:26:13
|
jbetancourt wrote: >I am using OGNL in conjunction with Spring. I will be publishing something soon on this. >OGNL is really great! > > Thanks! Could you provide some details on exactly how you are using it in conjunction with Spring? Do you mean using it within Spring constructs or do you just use OGNL and Spring? - Drew -- +---------------------------------+ < Drew Davidson | OGNL Technology > +---------------------------------+ | Email: dr...@og... / | Web: http://www.ognl.org / | Vox: (520) 531-1966 < | Fax: (520) 531-1965 \ | Mobile: (520) 405-2967 \ +---------------------------------+ |