There it is https://www.apache.org/foundation/glossary.html#MajorityApproval

Gary


On Thu, May 9, 2013 at 11:08 AM, Gary Gregory <garydgreg...@gmail.com>wrote:

> On Thu, May 9, 2013 at 11:05 AM, Ralph Goers 
> <ralph.go...@dslextreme.com>wrote:
>
>> Commons?
>>
>
> Oops, sorry about that! I'm getting my lists mixed up!
>
> Gary
>
>
>>
>> The ASF requirements are at http://www.apache.org/dev/release.html.
>>
>> Ralph
>>
>> On May 9, 2013, at 7:41 AM, Gary Gregory wrote:
>>
>> The VOTE rules should be explained on
>> https://commons.apache.org/releases/prepare.html
>>
>> I would rephrase (IIRC, now I cannot find where this is written up):
>>
>> b) a release must have 3 more binding +1 votes than binding -1 votes
>> (which this does already unless Ivan or Gary were to change their vote). A
>> binding vote is a vote from a PMC member.
>>
>> Gary
>>
>>
>>
>> On Thu, May 9, 2013 at 1:47 AM, Ralph Goers 
>> <ralph.go...@dslextreme.com>wrote:
>>
>>> How it works is that
>>> a) a release cannot be vetoed.
>>> b) a release must have 3 binding +1 votes (which this does already
>>> unless Ivan or Gary were to change their vote)
>>> c) the release manager (in this case me) takes the issues found into
>>> consideration and determines whether a bug is serious enough to warrant
>>> redoing a release.
>>>
>>> In this case given that a) this bug apparently is not new, b) it is not
>>> a defect in the release contents (license headers, etc) c) this is a beta
>>> release and d) it is generally better to release often than to postpone I
>>> am not inclined to cancel the release due to this.  That said, just like we
>>> had a short release cycle between beta5 and beta6 I see no reason not to
>>> figure out what the fix is and release beta7 in a week if need be.
>>>
>>> Ralph
>>>
>>> On May 8, 2013, at 9:24 PM, Remko Popma wrote:
>>>
>>> > Nick, good job on finding the issue.
>>> >
>>> > Just curious, how does it work with new bugs found during the vote?
>>> > Are they always show stoppers or only if the new version introduces a
>>> bug that did not exist in the old version?
>>> >
>>> > Sent from my iPhone
>>> >
>>> > On 2013/05/09, at 13:06, Nick Williams <nicho...@nicholaswilliams.net>
>>> wrote:
>>> >
>>> >> Well, I hate to do this, but I've gotta -1 (non-binding, of course).
>>> beta5 and beta6 are both unusable with Spring Framework (I didn't go back
>>> any further). Any time an error gets logged through log4j-jcl bridge using
>>> Spring, the error below appears in the Tomcat log, masking the error that
>>> Spring was trying to log and making it very difficult to figure out what
>>> happened. I've also included my configuration file below the stack trace.
>>> The root error is happening on Tomcat 6 due to Spring bug, and that root
>>> problem is unimportant. The important problem is the Log4j error that masks
>>> it.
>>> >>
>>> >> I've created LOG4J2-245 regarding this issue.
>>> >>
>>> >> SEVERE: Exception sending context initialized event to listener
>>> instance of class org.springframework.web.context.ContextLoaderListener
>>> >> java.util.EmptyStackException
>>> >>   at java.util.Stack.peek(Stack.java:102)
>>> >>   at
>>> org.apache.logging.log4j.core.impl.ThrowableProxy.resolvePackageData(ThrowableProxy.java:339)
>>> >>   at
>>> org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(ThrowableProxy.java:71)
>>> >>   at
>>> org.apache.logging.log4j.core.impl.Log4jLogEvent.<init>(Log4jLogEvent.java:110)
>>> >>   at
>>> org.apache.logging.log4j.core.impl.Log4jLogEvent.<init>(Log4jLogEvent.java:81)
>>> >>   at
>>> org.apache.logging.log4j.core.config.LoggerConfig.createEvent(LoggerConfig.java:423)
>>> >>   at
>>> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344)
>>> >>   at org.apache.logging.log4j.core.Logger.log(Logger.java:110)
>>> >>   at
>>> org.apache.logging.log4j.spi.AbstractLoggerWrapper.log(AbstractLoggerWrapper.java:55)
>>> >>   at
>>> org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:539)
>>> >>   at
>>> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:319)
>>> >>   at
>>> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
>>> >>   at
>>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765)
>>> >>   at
>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5210)
>>> >>   at
>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>> >>   at
>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
>>> >>   at
>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
>>> >>   at
>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:698)
>>> >>   at
>>> org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1491)
>>> >>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> >>   at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>> >>   at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> >>   at java.lang.reflect.Method.invoke(Method.java:491)
>>> >>   at
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
>>> >>   at
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>> >>   at
>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792)
>>> >>   at
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:468)
>>> >>   at
>>> org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:415)
>>> >>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> >>   at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>> >>   at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> >>   at java.lang.reflect.Method.invoke(Method.java:491)
>>> >>   at
>>> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
>>> >>   at
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>>> >>   at
>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792)
>>> >>   at
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1465)
>>> >>   at
>>> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:75)
>>> >>   at
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1306)
>>> >>   at
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1398)
>>> >>   at
>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827)
>>> >>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> >>   at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>> >>   at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> >>   at java.lang.reflect.Method.invoke(Method.java:491)
>>> >>   at
>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
>>> >>   at sun.rmi.transport.Transport$1.run(Transport.java:177)
>>> >>   at sun.rmi.transport.Transport$1.run(Transport.java:174)
>>> >>   at java.security.AccessController.doPrivileged(Native Method)
>>> >>   at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
>>> >>   at
>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
>>> >>   at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
>>> >>   at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
>>> >>   at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>> >>   at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>> >>   at java.lang.Thread.run(Thread.java:724)
>>> >>
>>> >> <?xml version="1.0" encoding="UTF-8"?>
>>> >> <configuration status="WARN">
>>> >>   <appenders>
>>> >>       <Console name="Console" target="SYSTEM_OUT">
>>> >>           <PatternLayout
>>> >>                   pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36}
>>> - %msg%n"/>
>>> >>       </Console>
>>> >>       <RollingFile name="WroxFileAppender"
>>> fileName="../logs/application.log"
>>> >>
>>>  filePattern="../logs/application-%d{MM-dd-yyyy}-%i.log">
>>> >>           <PatternLayout>
>>> >>               <pattern>%d{HH:mm:ss.SSS} [%t] %X{id} %X{username}
>>> %-5level %c{36} %l: %msg%n</pattern>
>>> >>           </PatternLayout>
>>> >>           <Policies>
>>> >>               <SizeBasedTriggeringPolicy size="10 MB" />
>>> >>           </Policies>
>>> >>           <DefaultRolloverStrategy min="1" max="4" />
>>> >>       </RollingFile>
>>> >>   </appenders>
>>> >>   <loggers>
>>> >>       <root level="warn">
>>> >>           <appender-ref ref="Console" />
>>> >>           <appender-ref ref="WroxFileAppender" />
>>> >>       </root>
>>> >>       <logger name="com.wrox" level="info" />
>>> >>       <logger name="org.apache" level="info" />
>>> >>       <logger name="org.springframework" level="info" />
>>> >>   </loggers>
>>> >> </configuration>
>>> >>
>>> >> On May 6, 2013, at 10:52 PM, Ralph Goers wrote:
>>> >>
>>> >>> This is a vote to release Log4j 2.0-beta6, the eighth release of
>>> Log4j 2.0. This is the second release candidate which fixes issues with a
>>> few missing license headers and some findbugs issues.
>>> >>>
>>> >>> Changes in this version include:
>>> >>>
>>> >>> Fixed Bugs:
>>> >>> o LOG4J2-231:  Logger.getParent() was not returning the correct
>>> Logger.
>>> >>> o LOG4J2-201:  Renamed Plugin annotation attribute from "type" to
>>> "category".
>>> >>> o LOG4J2-219:  Fix: install default root logger if not configured
>>> (this is unchanged),
>>> >>>       but make sure to include configured named loggers. Clarified
>>> documentation. Thanks to Peter DePasquale.
>>> >>> o LOG4J2-159:  Use OSGi version format in Fragment-Host
>>> >>> o LOG4J2-234:  RegexFilter threw a NullPointerException when used as
>>> a context-wide filter.
>>> >>> o LOG4J2-192:  Add support for interpolating Environment variables
>>> when processing the configuration.
>>> >>> o LOG4J2-235:  Removed dependency on tools jar from core module,
>>> made jconsole dependency optional. Thanks to Sebastian Oerding.
>>> >>> o LOG4J2-233:  Fixed link to log4j-user mailing list.
>>> >>> o LOG4J2-222:  Disruptor will now shutdown during Tomcat shutdown.
>>> Thanks to Steven Yang.
>>> >>> o LOG4J2-224:  The FlumeAppender failed to start if the Flume
>>> RPCClient could not connect to any Flume agents.
>>> >>> o LOG4J2-223:  Fix LoggerContext start and stop to eliminate
>>> IllegalStateException and NoClassDefFound errors.
>>> >>> o LOG4J2-221:  Remove hundreds of compiler warnings. Thanks to Nick
>>> Williams.
>>> >>> o LOG4J2-215:  Various small documentation fixes.
>>> >>> o LOG4J2-217:  Ensure PluginManager streams are always closed.
>>> Thanks to Fabien Sanglard.
>>> >>>
>>> >>> Changes:
>>> >>> o LOG4J2-237:  Moved JMX Client GUI classes into separate jmx-gui
>>> submodule.
>>> >>> o LOG4J2-230:  Improved error reporting when misconfigured. Thanks
>>> to Wojciech Zaręba.
>>> >>> o Renamed AsynchAppender to AsyncAppender. Plugin name became Async
>>> (was Asynch).
>>> >>> o Removed CheckStyle false positives for NewlineAtEndOfFile and
>>> whitespace following '*' at end of line in javadoc.
>>> >>> o Moved Clock interface to package
>>> org.apache.logging.log4j.core.helpers.
>>> >>> o LOG4J2-225:  Documentation updates to clarify use and impact of
>>> location in pattern layouts.
>>> >>>
>>> >>> Please test and cast your votes.
>>> >>> [] +1, release the artifacts
>>> >>> [] -1, don't release because…
>>> >>>
>>> >>> The vote will remain open for 72 hours (or more if required).
>>> >>>
>>> >>> Tag:
>>> https://svn.apache.org/repos/asf/logging/log4j/log4j2/tags/log4j-2.0-beta6/
>>> >>>
>>> >>> Web Site: http://people.apache.org/~rgoers/log4j2/
>>> >>>
>>> >>> Artifacts:
>>> https://repository.apache.org/content/repositories/orgapachelogging-013/
>>> >>>
>>> >>> The artifacts may be downloaded using
>>> >>> wget -e robots=off --cut-dirs=3 -r -p -np --no-check-certificate
>>> https://repository.apache.org/content/repositories/orgapachelogging-013/org/apache/logging/log4j/
>>> >>>
>>> >>> Description:
>>> >>>
>>> >>> Log4j 2.0-beta6 rc2
>>> >>>
>>> >>> Details:
>>> >>>
>>> >>> The following artifacts have been staged to the
>>> org.apache.logging-013 (u:rgoers, a:99.180.69.21) repository.
>>> >>>
>>> >>> archetype-catalog.xml
>>> >>> log4j-jmx-gui-2.0-beta6.jar.asc
>>> >>> log4j-jmx-gui-2.0-beta6-sources.jar
>>> >>> log4j-jmx-gui-2.0-beta6-javadoc.jar
>>> >>> log4j-jmx-gui-2.0-beta6-sources.jar.asc
>>> >>> log4j-jmx-gui-2.0-beta6.pom
>>> >>> log4j-jmx-gui-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-jmx-gui-2.0-beta6.jar
>>> >>> log4j-jmx-gui-2.0-beta6.pom.asc
>>> >>> log4j-web-2.0-beta6.jar.asc
>>> >>> log4j-web-2.0-beta6-sources.jar
>>> >>> log4j-web-2.0-beta6.jar
>>> >>> log4j-web-2.0-beta6-sources.jar.asc
>>> >>> log4j-web-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-web-2.0-beta6.pom.asc
>>> >>> log4j-web-2.0-beta6-javadoc.jar
>>> >>> log4j-web-2.0-beta6.pom
>>> >>> log4j-slf4j-impl-2.0-beta6.pom.asc
>>> >>> log4j-slf4j-impl-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-slf4j-impl-2.0-beta6.pom
>>> >>> log4j-slf4j-impl-2.0-beta6-javadoc.jar
>>> >>> log4j-slf4j-impl-2.0-beta6.jar
>>> >>> log4j-slf4j-impl-2.0-beta6.jar.asc
>>> >>> log4j-slf4j-impl-2.0-beta6-sources.jar
>>> >>> log4j-slf4j-impl-2.0-beta6-sources.jar.asc
>>> >>> flume-remote-2.0-beta6.pom.asc
>>> >>> flume-remote-2.0-beta6.pom
>>> >>> flume-remote-2.0-beta6.war
>>> >>> flume-remote-2.0-beta6.war.asc
>>> >>> flume-remote-2.0-beta6-sources.jar.asc
>>> >>> flume-remote-2.0-beta6-sources.jar
>>> >>> flume-common-2.0-beta6.pom
>>> >>> flume-common-2.0-beta6-sources.jar
>>> >>> flume-common-2.0-beta6.jar
>>> >>> flume-common-2.0-beta6-javadoc.jar.asc
>>> >>> flume-common-2.0-beta6.jar.asc
>>> >>> flume-common-2.0-beta6-sources.jar.asc
>>> >>> flume-common-2.0-beta6.pom.asc
>>> >>> flume-common-2.0-beta6-javadoc.jar
>>> >>> flume-embedded-2.0-beta6.war
>>> >>> flume-embedded-2.0-beta6.pom.asc
>>> >>> flume-embedded-2.0-beta6-sources.jar.asc
>>> >>> flume-embedded-2.0-beta6.pom
>>> >>> flume-embedded-2.0-beta6.war.asc
>>> >>> flume-embedded-2.0-beta6-sources.jar
>>> >>> log4j-samples-2.0-beta6.pom
>>> >>> log4j-samples-2.0-beta6.pom.asc
>>> >>> log4j-jcl-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-jcl-2.0-beta6-sources.jar
>>> >>> log4j-jcl-2.0-beta6.jar
>>> >>> log4j-jcl-2.0-beta6.jar.asc
>>> >>> log4j-jcl-2.0-beta6.pom.asc
>>> >>> log4j-jcl-2.0-beta6.pom
>>> >>> log4j-jcl-2.0-beta6-javadoc.jar
>>> >>> log4j-jcl-2.0-beta6-sources.jar.asc
>>> >>> log4j-taglib-2.0-beta6-javadoc.jar
>>> >>> log4j-taglib-2.0-beta6.jar
>>> >>> log4j-taglib-2.0-beta6-sources.jar.asc
>>> >>> log4j-taglib-2.0-beta6.jar.asc
>>> >>> log4j-taglib-2.0-beta6.pom
>>> >>> log4j-taglib-2.0-beta6.pom.asc
>>> >>> log4j-taglib-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-taglib-2.0-beta6-sources.jar
>>> >>> log4j-distribution-2.0-beta6-src.tar.gz.asc
>>> >>> log4j-distribution-2.0-beta6-bin.tar.gz
>>> >>> log4j-distribution-2.0-beta6-src.tar.gz
>>> >>> log4j-distribution-2.0-beta6-bin.tar.gz.asc
>>> >>> log4j-distribution-2.0-beta6-src.zip
>>> >>> log4j-distribution-2.0-beta6-bin.zip.asc
>>> >>> log4j-distribution-2.0-beta6-src.zip.asc
>>> >>> log4j-distribution-2.0-beta6.pom.asc
>>> >>> log4j-distribution-2.0-beta6-bin.zip
>>> >>> log4j-distribution-2.0-beta6.pom
>>> >>> log4j-1.2-api-2.0-beta6-sources.jar
>>> >>> log4j-1.2-api-2.0-beta6-javadoc.jar
>>> >>> log4j-1.2-api-2.0-beta6-sources.jar.asc
>>> >>> log4j-1.2-api-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-1.2-api-2.0-beta6.pom
>>> >>> log4j-1.2-api-2.0-beta6.jar
>>> >>> log4j-1.2-api-2.0-beta6.jar.asc
>>> >>> log4j-1.2-api-2.0-beta6.pom.asc
>>> >>> log4j-flume-ng-2.0-beta6.jar.asc
>>> >>> log4j-flume-ng-2.0-beta6-sources.jar.asc
>>> >>> log4j-flume-ng-2.0-beta6-sources.jar
>>> >>> log4j-flume-ng-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-flume-ng-2.0-beta6.jar
>>> >>> log4j-flume-ng-2.0-beta6-tests.jar.asc
>>> >>> log4j-flume-ng-2.0-beta6-tests.jar
>>> >>> log4j-flume-ng-2.0-beta6-javadoc.jar
>>> >>> log4j-flume-ng-2.0-beta6.pom.asc
>>> >>> log4j-flume-ng-2.0-beta6.pom
>>> >>> log4j-to-slf4j-2.0-beta6-sources.jar
>>> >>> log4j-to-slf4j-2.0-beta6-sources.jar.asc
>>> >>> log4j-to-slf4j-2.0-beta6-javadoc.jar
>>> >>> log4j-to-slf4j-2.0-beta6.jar
>>> >>> log4j-to-slf4j-2.0-beta6.jar.asc
>>> >>> log4j-to-slf4j-2.0-beta6.pom
>>> >>> log4j-to-slf4j-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-to-slf4j-2.0-beta6.pom.asc
>>> >>> log4j-api-2.0-beta6.jar.asc
>>> >>> log4j-api-2.0-beta6-sources.jar
>>> >>> log4j-api-2.0-beta6-javadoc.jar
>>> >>> log4j-api-2.0-beta6.pom.asc
>>> >>> log4j-api-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-api-2.0-beta6.pom
>>> >>> log4j-api-2.0-beta6.jar
>>> >>> log4j-api-2.0-beta6-sources.jar.asc
>>> >>> log4j-core-2.0-beta6.jar
>>> >>> log4j-core-2.0-beta6-sources.jar
>>> >>> log4j-core-2.0-beta6-sources.jar.asc
>>> >>> log4j-core-2.0-beta6-tests.jar
>>> >>> log4j-core-2.0-beta6-javadoc.jar.asc
>>> >>> log4j-core-2.0-beta6.jar.asc
>>> >>> log4j-core-2.0-beta6-javadoc.jar
>>> >>> log4j-core-2.0-beta6.pom.asc
>>> >>> log4j-core-2.0-beta6-tests.jar.asc
>>> >>> log4j-core-2.0-beta6.pom
>>> >>> log4j-2.0-beta6.pom.asc
>>> >>> log4j-2.0-beta6.pom
>>> >>
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
>>> > For additional commands, e-mail: log4j-dev-h...@logging.apache.org
>>> >
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
>>> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
>>>
>>>
>>
>>
>> --
>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>> Java Persistence with Hibernate, Second 
>> Edition<http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>>
>>
>
>
> --
> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> Java Persistence with Hibernate, Second 
> Edition<http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory
>



-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
Java Persistence with Hibernate, Second Edition<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to