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: Tony F. <ton...@ya...> - 2003-04-17 16:03:24
|
The headers should be able to be cleaned up nicely with Jalopy code formatter. I've submitted a list of things I saw as far as header/code cleanup goes to Rod for review. I have the build script changes necessary already in my copy of the code, just waiting to see if Jalopy is acceptable to Rod. jürgen_höller_[werk3AT] <jue...@we...> wrote:Yep, Apache License. It's mentioned on the project page: http://sourceforge.net/projects/springframework BTW, we still need to apply appropriate and consistent source headers. Juergen -----Original Message----- From: William G. Thompson, Jr. [mailto:wg...@rc...] Sent: Thursday, April 17, 2003 4:37 PM To: Isabelle Muszynski Cc: Kopylenko, Dmitry; spr...@li... Subject: Re: FW: Fw: [Springframework-developer] insert functionality in jdbc package Did we settle on a license for the poject? LGPL? Isabelle Muszynski wrote: > Hi Dmitry, > > Can you "donate" this code to spring? The only thing I'd change is to return a long instead of an int. Seems silly to have to redo basically the same thing. > I could then provide an implementation something for mySQL. > > If the answer is yes, please email me the code, so that I don't have to retype everything. > I'd also move it to the jdbc spring package. > > Isabelle > > On Wed, Apr 16, 2003 at 12:19:48PM -0400, Kopylenko, Dmitry wrote: > >> >>-----Original Message----- >>From: Rod Johnson [mailto:rod...@in...] >>Sent: Wednesday, April 16, 2003 11:57 AM >>To: Kopylenko, Dmitry >>Subject: Re: Fw: [Springframework-developer] insert functionality in >>jdbc package >> >> >>Dmitry, >> >>I think you sent this only to me, not the list (the reply-to thing gets me >>often, too). >> >>Regards, >>Rod >> >>----- Original Message ----- >>From: "Kopylenko, Dmitry" >>To: "'Rod Johnson'" >>Sent: Wednesday, April 16, 2003 2:29 PM >>Subject: RE: Fw: [Springframework-developer] insert functionality in jdbc >>package >> >> >> >>>Rod, >>> >>>here is what I've implemented for the purpose of generating key values for >>>our projects here at Rutgers. It's simple, but it works (We're are an >> >>Oracle >> >>>shop). >>> >>>1) Here is the main abstraction: >>> >>>package edu.rutgers.acs.commons.helpers.dao; >>> >>>import com.interface21.dao.DataAccessException; >>> >>>/** >>> * Interface that defines contract of incrementing >>> * any data store field's maximum value. Works much like >>> * sequence number generator. Typical implementations could use >>> * RDBMS SQL and/or Stored Procedures to do the job. >>> * @author Dmitriy Kopylenko >>> * @version $Id: DataFieldMaxValueIncrementer.java,v 1.1 2003/02/28 >> >>16:32:44 >> >>>dkopylen Exp $ >>> */ >>>public interface DataFieldMaxValueIncrementer { >>> >>>/** >>>* Increments data store field's max value as int >>>* @return int next data store value such as max + 1 >>>* @throws DataAccessException >>>*/ >>>public int nextIntValue() throws DataAccessException; >>> >>>/** >>>* Increments data store field's max value as String >>>* @return String next data store value such as max + 1 >>>* @throws DataAccessException >>>*/ >>>public String nextStringValue() throws DataAccessException; >>> >>>} >>> >>>2) Abstract implementation: >>> >>>package edu.rutgers.acs.commons.helpers.dao; >>> >>>import com.interface21.dao.DataAccessException; >>> >>>/** >>> * Implementation of {@link DataFieldMaxValueIncrementer} >>> * Uses Template Method design pattern. >>> * Subclasses should provide implementations of protected abstract >> >>methods. >> >>> * @author Dmitriy Kopylenko >>> * @version $Id: AbstractDataFieldMaxValueIncrementer.java,v 1.4 >> >>2003/03/05 >> >>>13:44:10 dkopylen Exp $ >>> */ >>>public abstract class AbstractDataFieldMaxValueIncrementer implements >>>DataFieldMaxValueIncrementer { >>> >>>/** >>>* Template method >>>* @see >>> >> >>edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextIntValu >> >>>e() >>>*/ >>>public final int nextIntValue() throws DataAccessException { >>>return incrementIntValue(); >>>} >>> >>>/** >>>* Template method >>>* @see >>> >> >>edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextStringV >> >>>alue() >>>*/ >>>public final String nextStringValue() throws DataAccessException { >>>return incrementStringValue(); >>>} >>> >>>/** >>>* Subclasses should provide implementation >>>* @return int >>>*/ >>>protected abstract int incrementIntValue(); >>> >>>/** >>>* Subclasses should provide implementation. >>>* @return String >>>*/ >>>protected abstract String incrementStringValue(); >>>} >>> >>>3) Oracle sequence [generic] implementation. It is a JavaBean and it is >>>usually set as a property on the object that >>>requires it through the bean factory: >>> >>>package edu.rutgers.acs.commons.helpers.dao; >>> >>>import javax.sql.DataSource; >>> >>>import com.interface21.beans.factory.InitializingBean; >>>import com.interface21.jdbc.core.DataSourceUtils; >>>import com.interface21.jdbc.object.SqlFunction; >>> >>>/** >>> * Class to inceremnet maximum value of a given Oracle SEQUENCE >>> * @author Dmitriy Kopylenko >>> * @version $Id: OracleSequenceMaxValueIncrementer.java,v 1.3 2003/04/04 >>>18:15:17 dkopylen Exp $ >>> */ >>>public class OracleSequenceMaxValueIncrementer >>>extends AbstractDataFieldMaxValueIncrementer >>>implements InitializingBean { >>> >>>//----------------------------------------------------------------- >>>// Instance data >>>//----------------------------------------------------------------- >>>private DataSource ds; >>> >>>private String dsName; >>> >>>private String sequenceName; >>> >>>private boolean prefixWithZero; >>> >>>private NextMaxValueProvider nextMaxValueProvider; >>> >>>//----------------------------------------------------------------- >>>// Constructors >>>//----------------------------------------------------------------- >>>public OracleSequenceMaxValueIncrementer() { >>>this.nextMaxValueProvider = new NextMaxValueProvider(); >>>} >>> >>>/** >>>* @see >>> >> >>edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncrementer#inc >> >>>rementIntValue() >>>*/ >>>protected int incrementIntValue() { >>>return nextMaxValueProvider.getNextIntValue(); >>>} >>> >>>/** >>>* @see >>> >> >>edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncrementer#inc >> >>>rementStringValue() >>>*/ >>>protected String incrementStringValue() { >>>return nextMaxValueProvider.getNextStringValue(); >>>} >>> >>>// Private class that does the actual >>>// job of getting the sequence.nextVal value >>>private class NextMaxValueProvider { >>> >>>public String getNextStringValue() { >>>String s = new Integer(nextIntValue()).toString(); >>> >>>if (s.length() == 1) { >>>if (prefixWithZero) >>>return "0" + s; >>>} >>> >>>return s; >>>} >>> >>>public int getNextIntValue() { >>>SqlFunction sqlf = new SqlFunction(ds, "SELECT " + >>>sequenceName + ".NEXTVAL FROM DUAL"); >>>sqlf.compile(); >>>return sqlf.run(); >>>} >>>} >>> >>>/** >>>* Sets the dsName. >>>* @param dsName The dsName to set >>>*/ >>>public void setDsName(String dsName) { >>>this.dsName = dsName; >>>} >>> >>>/** >>>* @see >>>com.interface21.beans.factory.InitializingBean#afterPropertiesSet() >>>*/ >>>public void afterPropertiesSet() throws Exception { >>>if (dsName == null || sequenceName == null) >>>throw new Exception("dsName, sequenceName properties >>>must be set on " + getClass().getName()); >>> >>>this.ds = DataSourceUtils.getDataSourceFromJndi(dsName); >>>} >>> >>>/** >>>* Sets the prefixWithZero. >>>* @param prefixWithZero The prefixWithZero to set >>>*/ >>>public void setPrefixWithZero(boolean prefixWithZero) { >>>this.prefixWithZero = prefixWithZero; >>>} >>> >>>/** >>>* Sets the sequenceName. >>>* @param sequenceName The sequenceName to set >>>*/ >>>public void setSequenceName(String sequenceName) { >>>this.sequenceName = sequenceName; >>>} >>>} >>> >>>I guess that there could be different implementations for different DBMS >>>platforms. >>> >>>Regards, >>> >>>Dmitriy. >>> >>>-----Original Message----- >>>From: Rod Johnson [mailto:rod...@in...] >>>Sent: Wednesday, April 16, 2003 09:11 AM >>>To: Isabelle Muszynski; spr...@li... >>>Subject: Re: Fw: [Springframework-developer] insert functionality in >>>jdbc package >>> >>> >>>Isabelle, >>> >>>You make a valid point about not wanting to need another product for just >>>one problem. >>> >>>My view is that >>>- we don't want to get into full-blown O/R mapping >>>- BUT there is scope in building more JDBC-based functionality and >>>abstractions on top of the Spring JDBC way of doing things. To my mind the >>>central value proposition of Spring JDBC is the exception hierarchy and >> >>way >> >>>it frees developers of the tedious and error-prone tasks of raw JDBC. >>>Additional features can validly be layered on top. >>> >>>So I think you should propose how you think we should add the insert >>>functionality, perhaps even implement it, so we can discuss it and >>>incorporate it if we're all comfortable with it. I think it's >>>- important that any abstraction shouldn't impose potential inefficiency, >>>and should allow the use of efficient RDBMS functions like Oracle >> >>sequences >> >>>- important that it should be compatible with JDBC 3.0 moving forward. >>> >>>Thomas, do you have any thoughts on this? >>> >>>Regards, >>>Rod >>> >>> >>>>Personally, I don't think I'd want to commit to yet another framework >> >>such >> >>>as hibernate for ex. in the project at work we're planning to do with >>>spring. Most of what we need for jdbc is in spring, except for the insert >>>functionality. Even with oracle, I don't like the idea of having to write >> >>a >> >>>stored procedure for every single insert, I'd probably opt for the >>>additional cost of a select next_val from dual in jdbc code (i.e. instead >> >>of >> >>>just doing an insert, first retrieve the key val then do the insert). The >>>main problem is with db's that don't have sequences, and if we agree to >> >>live >> >>>with holes in the primary key sequences we can implement an algorithm >> >>where >> >>>some sort of key manager per VM reserves a range of key values per table. >>> >>>>Isabelle >>> ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: <jue...@we...> - 2003-04-17 15:40:58
|
Yep, Apache License. It's mentioned on the project page: http://sourceforge.net/projects/springframework BTW, we still need to apply appropriate and consistent source headers. Juergen -----Original Message----- From: William G. Thompson, Jr. [mailto:wg...@rc...] Sent: Thursday, April 17, 2003 4:37 PM To: Isabelle Muszynski Cc: Kopylenko, Dmitry; spr...@li... Subject: Re: FW: Fw: [Springframework-developer] insert functionality in jdbc package Did we settle on a license for the poject? LGPL? Isabelle Muszynski wrote: > Hi Dmitry, >=20 > Can you "donate" this code to spring? The only thing I'd change is to = return a long instead of an int. Seems silly to have to redo basically = the same thing.=20 > I could then provide an implementation something for mySQL. >=20 > If the answer is yes, please email me the code, so that I don't have = to retype everything. > I'd also move it to the jdbc spring package. >=20 > Isabelle >=20 > On Wed, Apr 16, 2003 at 12:19:48PM -0400, Kopylenko, Dmitry wrote: >=20 >> >>-----Original Message----- >>From: Rod Johnson [mailto:rod...@in...]=20 >>Sent: Wednesday, April 16, 2003 11:57 AM >>To: Kopylenko, Dmitry >>Subject: Re: Fw: [Springframework-developer] insert functionality in >>jdbc package >> >> >>Dmitry, >> >>I think you sent this only to me, not the list (the reply-to thing = gets me >>often, too). >> >>Regards, >>Rod >> >>----- Original Message ----- >>From: "Kopylenko, Dmitry" <dko...@su...> >>To: "'Rod Johnson'" <rod...@in...> >>Sent: Wednesday, April 16, 2003 2:29 PM >>Subject: RE: Fw: [Springframework-developer] insert functionality in = jdbc >>package >> >> >> >>>Rod, >>> >>>here is what I've implemented for the purpose of generating key = values for >>>our projects here at Rutgers. It's simple, but it works (We're are an >> >>Oracle >> >>>shop). >>> >>>1) Here is the main abstraction: >>> >>>package edu.rutgers.acs.commons.helpers.dao; >>> >>>import com.interface21.dao.DataAccessException; >>> >>>/** >>> * Interface that defines contract of incrementing >>> * any data store field's maximum value. Works much like >>> * sequence number generator. Typical implementations could use >>> * RDBMS SQL and/or Stored Procedures to do the job. >>> * @author Dmitriy Kopylenko >>> * @version $Id: DataFieldMaxValueIncrementer.java,v 1.1 2003/02/28 >> >>16:32:44 >> >>>dkopylen Exp $ >>> */ >>>public interface DataFieldMaxValueIncrementer { >>> >>>/** >>>* Increments data store field's max value as int >>>* @return int next data store value such as <b>max + 1</b> >>>* @throws DataAccessException >>>*/ >>>public int nextIntValue() throws DataAccessException; >>> >>>/** >>>* Increments data store field's max value as String >>>* @return String next data store value such as <b>max + 1</b> >>>* @throws DataAccessException >>>*/ >>>public String nextStringValue() throws DataAccessException; >>> >>>} >>> >>>2) Abstract implementation: >>> >>>package edu.rutgers.acs.commons.helpers.dao; >>> >>>import com.interface21.dao.DataAccessException; >>> >>>/** >>> * Implementation of {@link DataFieldMaxValueIncrementer} >>> * Uses <b>Template Method</b> design pattern. >>> * Subclasses should provide implementations of protected abstract >> >>methods. >> >>> * @author Dmitriy Kopylenko >>> * @version $Id: AbstractDataFieldMaxValueIncrementer.java,v 1.4 >> >>2003/03/05 >> >>>13:44:10 dkopylen Exp $ >>> */ >>>public abstract class AbstractDataFieldMaxValueIncrementer implements >>>DataFieldMaxValueIncrementer { >>> >>>/** >>>* Template method >>>* @see >>> >> >>edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextIn= tValu >> >>>e() >>>*/ >>>public final int nextIntValue() throws DataAccessException { >>>return incrementIntValue(); >>>} >>> >>>/** >>>* Template method >>>* @see >>> >> >>edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextSt= ringV >> >>>alue() >>>*/ >>>public final String nextStringValue() throws DataAccessException { >>>return incrementStringValue(); >>>} >>> >>>/** >>>* Subclasses should provide implementation >>>* @return int >>>*/ >>>protected abstract int incrementIntValue(); >>> >>>/** >>>* Subclasses should provide implementation. >>>* @return String >>>*/ >>>protected abstract String incrementStringValue(); >>>} >>> >>>3) Oracle sequence [generic] implementation. It is a JavaBean and it = is >>>usually set as a property on the object that >>>requires it through the bean factory: >>> >>>package edu.rutgers.acs.commons.helpers.dao; >>> >>>import javax.sql.DataSource; >>> >>>import com.interface21.beans.factory.InitializingBean; >>>import com.interface21.jdbc.core.DataSourceUtils; >>>import com.interface21.jdbc.object.SqlFunction; >>> >>>/** >>> * Class to inceremnet maximum value of a given Oracle SEQUENCE >>> * @author Dmitriy Kopylenko >>> * @version $Id: OracleSequenceMaxValueIncrementer.java,v 1.3 = 2003/04/04 >>>18:15:17 dkopylen Exp $ >>> */ >>>public class OracleSequenceMaxValueIncrementer >>>extends AbstractDataFieldMaxValueIncrementer >>>implements InitializingBean { >>> >>>//----------------------------------------------------------------- >>>// Instance data >>>//----------------------------------------------------------------- >>>private DataSource ds; >>> >>>private String dsName; >>> >>>private String sequenceName; >>> >>>private boolean prefixWithZero; >>> >>>private NextMaxValueProvider nextMaxValueProvider; >>> >>>//----------------------------------------------------------------- >>>// Constructors >>>//----------------------------------------------------------------- >>>public OracleSequenceMaxValueIncrementer() { >>>this.nextMaxValueProvider =3D new NextMaxValueProvider(); >>>} >>> >>>/** >>>* @see >>> >> >>edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncremente= r#inc >> >>>rementIntValue() >>>*/ >>>protected int incrementIntValue() { >>>return nextMaxValueProvider.getNextIntValue(); >>>} >>> >>>/** >>>* @see >>> >> >>edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncremente= r#inc >> >>>rementStringValue() >>>*/ >>>protected String incrementStringValue() { >>>return nextMaxValueProvider.getNextStringValue(); >>>} >>> >>>// Private class that does the actual >>>// job of getting the sequence.nextVal value >>>private class NextMaxValueProvider { >>> >>>public String getNextStringValue() { >>>String s =3D new Integer(nextIntValue()).toString(); >>> >>>if (s.length() =3D=3D 1) { >>>if (prefixWithZero) >>>return "0" + s; >>>} >>> >>>return s; >>>} >>> >>>public int getNextIntValue() { >>>SqlFunction sqlf =3D new SqlFunction(ds, "SELECT " + >>>sequenceName + ".NEXTVAL FROM DUAL"); >>>sqlf.compile(); >>>return sqlf.run(); >>>} >>>} >>> >>>/** >>>* Sets the dsName. >>>* @param dsName The dsName to set >>>*/ >>>public void setDsName(String dsName) { >>>this.dsName =3D dsName; >>>} >>> >>>/** >>>* @see >>>com.interface21.beans.factory.InitializingBean#afterPropertiesSet() >>>*/ >>>public void afterPropertiesSet() throws Exception { >>>if (dsName =3D=3D null || sequenceName =3D=3D null) >>>throw new Exception("dsName, sequenceName properties >>>must be set on " + getClass().getName()); >>> >>>this.ds =3D DataSourceUtils.getDataSourceFromJndi(dsName); >>>} >>> >>>/** >>>* Sets the prefixWithZero. >>>* @param prefixWithZero The prefixWithZero to set >>>*/ >>>public void setPrefixWithZero(boolean prefixWithZero) { >>>this.prefixWithZero =3D prefixWithZero; >>>} >>> >>>/** >>>* Sets the sequenceName. >>>* @param sequenceName The sequenceName to set >>>*/ >>>public void setSequenceName(String sequenceName) { >>>this.sequenceName =3D sequenceName; >>>} >>>} >>> >>>I guess that there could be different implementations for different = DBMS >>>platforms. >>> >>>Regards, >>> >>>Dmitriy. >>> >>>-----Original Message----- >>>From: Rod Johnson [mailto:rod...@in...] >>>Sent: Wednesday, April 16, 2003 09:11 AM >>>To: Isabelle Muszynski; = spr...@li... >>>Subject: Re: Fw: [Springframework-developer] insert functionality in >>>jdbc package >>> >>> >>>Isabelle, >>> >>>You make a valid point about not wanting to need another product for = just >>>one problem. >>> >>>My view is that >>>- we don't want to get into full-blown O/R mapping >>>- BUT there is scope in building more JDBC-based functionality and >>>abstractions on top of the Spring JDBC way of doing things. To my = mind the >>>central value proposition of Spring JDBC is the exception hierarchy = and >> >>way >> >>>it frees developers of the tedious and error-prone tasks of raw JDBC. >>>Additional features can validly be layered on top. >>> >>>So I think you should propose how you think we should add the insert >>>functionality, perhaps even implement it, so we can discuss it and >>>incorporate it if we're all comfortable with it. I think it's >>>- important that any abstraction shouldn't impose potential = inefficiency, >>>and should allow the use of efficient RDBMS functions like Oracle >> >>sequences >> >>>- important that it should be compatible with JDBC 3.0 moving = forward. >>> >>>Thomas, do you have any thoughts on this? >>> >>>Regards, >>>Rod >>> >>> >>>>Personally, I don't think I'd want to commit to yet another = framework >> >>such >> >>>as hibernate for ex. in the project at work we're planning to do with >>>spring. Most of what we need for jdbc is in spring, except for the = insert >>>functionality. Even with oracle, I don't like the idea of having to = write >> >>a >> >>>stored procedure for every single insert, I'd probably opt for the >>>additional cost of a select next_val from dual in jdbc code (i.e. = instead >> >>of >> >>>just doing an insert, first retrieve the key val then do the insert). = The >>>main problem is with db's that don't have sequences, and if we agree = to >> >>live >> >>>with holes in the primary key sequences we can implement an algorithm >> >>where >> >>>some sort of key manager per VM reserves a range of key values per = table. >>> >>>>Isabelle >>> ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Isabelle M. <isa...@me...> - 2003-04-17 15:24:25
|
Hi Thomas, It's been a while since I've looked at argoUML, and at the time it was too immature for my needs. And what's open source these days ... if you look at the JBoss site it seems they are trying to make tons of money off of JBoss. I'm not against trying to make a buck, running a company myself, but I feel they are very blatant about it. Back to MagicDraw. I did a whole project with version 5, and it's rock solid. Plus it produces very nice browsable docs, which would be a great help to me (less to write myself). So I say let's go for it. Isabelle On Thu, Apr 17, 2003 at 10:44:25AM -0400, Thomas Risberg wrote: > Isabelle, > > The Professional Edition of MagicDraw also alows you to do database > schema modeling as a UML class diagram. Could come in handy for the > demo application. It also lets you generate DDL based on your model. > It supports Standard SQL2, Oracle8, Cloudscape 3.5, MySQL, Pointbase, > and DB2. Again, this would be nice for the demo application. > > I think his offer sounds fair, but I would prefer an open source > solution if possible. Have we considered using Argo UML? I don't think > that DDL generation is a must for the demo app. > > Thomas > > > > > Hi everyone, > > > > What do you think of Gary's message re MagicDraw? The professional > version really only has reverse-engineering extra. Since it looks like > I'm going to be doing the docs, reverse-engineering might be handy. With > the standard licences, you could all load and modify the models I create. > > > > What about the website? Is anyone a wizard at creating a web site in 5 > minutes? > > > > Isabelle > > > > -- > > Isabelle Muszynski > > Software Engineer > > Zandweellaan 4 > > 2660 Antwerpen > > Belgium > > Tel. 32-(0)3-830 18 54 > > Mobile: 32-(0)485 49 50 89 > > Email: isa...@me... > > Website: www.meta-logix.com > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > > -- > Thomas Risberg > tri...@tr... > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Isabelle M. <isa...@me...> - 2003-04-17 15:15:15
|
Hi Bill, It's indeed pretty simple. I'll try to put something together over the weekend. But I'm not sure I have the rights to upload to the project. I'll keep everyone informed, I can always put the stuff on my own website for download by the project administrator(s). By the way, if anyone else wants to volunteer for the website, be my guest, I have plenty to do already with the tutorial and docs. Isabelle On Thu, Apr 17, 2003 at 10:07:55AM -0400, William G. Thompson, Jr. wrote: > Isabelle Muszynski wrote: > >Hi everyone, > > > >What do you think of Gary's message re MagicDraw? The professional > >version really only has reverse-engineering extra. Since it looks like > >I'm going to be doing the docs, reverse-engineering might be handy. > >With the standard licences, you could all load and modify the models I > >create. > > > >What about the website? Is anyone a wizard at creating a web site in 5 > >minutes? > > > >Isabelle > > > > Forrest will create a full project documention structure suitable for > the web in less than 5 minutes with one command. > > $ forrest seed > > http://xml.apache.org/forrest/index.html > > > later. > Bill > -- > William G. Thompson, Jr. > Associate Director of New Technologies > Administrative Computing Services, Rutgers University > voice: 732 445-5428 | fax: 732 445-5493 | wth...@ac... > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Thomas R. <tri...@tr...> - 2003-04-17 14:44:30
|
Isabelle, The Professional Edition of MagicDraw also alows you to do database schema modeling as a UML class diagram. Could come in handy for the demo application. It also lets you generate DDL based on your model. It supports Standard SQL2, Oracle8, Cloudscape 3.5, MySQL, Pointbase, and DB2. Again, this would be nice for the demo application. I think his offer sounds fair, but I would prefer an open source solution if possible. Have we considered using Argo UML? I don't think that DDL generation is a must for the demo app. Thomas > Hi everyone, > > What do you think of Gary's message re MagicDraw? The professional version really only has reverse-engineering extra. Since it looks like I'm going to be doing the docs, reverse-engineering might be handy. With the standard licences, you could all load and modify the models I create. > > What about the website? Is anyone a wizard at creating a web site in 5 minutes? > > Isabelle > > -- > Isabelle Muszynski > Software Engineer > Zandweellaan 4 > 2660 Antwerpen > Belgium > Tel. 32-(0)3-830 18 54 > Mobile: 32-(0)485 49 50 89 > Email: isa...@me... > Website: www.meta-logix.com > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Thomas Risberg tri...@tr... |
|
From: William G. T. Jr. <wg...@rc...> - 2003-04-17 14:37:18
|
Did we settle on a license for the poject? LGPL?
Isabelle Muszynski wrote:
> Hi Dmitry,
>
> Can you "donate" this code to spring? The only thing I'd change is to return a long instead of an int. Seems silly to have to redo basically the same thing.
> I could then provide an implementation something for mySQL.
>
> If the answer is yes, please email me the code, so that I don't have to retype everything.
> I'd also move it to the jdbc spring package.
>
> Isabelle
>
> On Wed, Apr 16, 2003 at 12:19:48PM -0400, Kopylenko, Dmitry wrote:
>
>>
>>-----Original Message-----
>>From: Rod Johnson [mailto:rod...@in...]
>>Sent: Wednesday, April 16, 2003 11:57 AM
>>To: Kopylenko, Dmitry
>>Subject: Re: Fw: [Springframework-developer] insert functionality in
>>jdbc package
>>
>>
>>Dmitry,
>>
>>I think you sent this only to me, not the list (the reply-to thing gets me
>>often, too).
>>
>>Regards,
>>Rod
>>
>>----- Original Message -----
>>From: "Kopylenko, Dmitry" <dko...@su...>
>>To: "'Rod Johnson'" <rod...@in...>
>>Sent: Wednesday, April 16, 2003 2:29 PM
>>Subject: RE: Fw: [Springframework-developer] insert functionality in jdbc
>>package
>>
>>
>>
>>>Rod,
>>>
>>>here is what I've implemented for the purpose of generating key values for
>>>our projects here at Rutgers. It's simple, but it works (We're are an
>>
>>Oracle
>>
>>>shop).
>>>
>>>1) Here is the main abstraction:
>>>
>>>package edu.rutgers.acs.commons.helpers.dao;
>>>
>>>import com.interface21.dao.DataAccessException;
>>>
>>>/**
>>> * Interface that defines contract of incrementing
>>> * any data store field's maximum value. Works much like
>>> * sequence number generator. Typical implementations could use
>>> * RDBMS SQL and/or Stored Procedures to do the job.
>>> * @author Dmitriy Kopylenko
>>> * @version $Id: DataFieldMaxValueIncrementer.java,v 1.1 2003/02/28
>>
>>16:32:44
>>
>>>dkopylen Exp $
>>> */
>>>public interface DataFieldMaxValueIncrementer {
>>>
>>>/**
>>>* Increments data store field's max value as int
>>>* @return int next data store value such as <b>max + 1</b>
>>>* @throws DataAccessException
>>>*/
>>>public int nextIntValue() throws DataAccessException;
>>>
>>>/**
>>>* Increments data store field's max value as String
>>>* @return String next data store value such as <b>max + 1</b>
>>>* @throws DataAccessException
>>>*/
>>>public String nextStringValue() throws DataAccessException;
>>>
>>>}
>>>
>>>2) Abstract implementation:
>>>
>>>package edu.rutgers.acs.commons.helpers.dao;
>>>
>>>import com.interface21.dao.DataAccessException;
>>>
>>>/**
>>> * Implementation of {@link DataFieldMaxValueIncrementer}
>>> * Uses <b>Template Method</b> design pattern.
>>> * Subclasses should provide implementations of protected abstract
>>
>>methods.
>>
>>> * @author Dmitriy Kopylenko
>>> * @version $Id: AbstractDataFieldMaxValueIncrementer.java,v 1.4
>>
>>2003/03/05
>>
>>>13:44:10 dkopylen Exp $
>>> */
>>>public abstract class AbstractDataFieldMaxValueIncrementer implements
>>>DataFieldMaxValueIncrementer {
>>>
>>>/**
>>>* Template method
>>>* @see
>>>
>>
>>edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextIntValu
>>
>>>e()
>>>*/
>>>public final int nextIntValue() throws DataAccessException {
>>>return incrementIntValue();
>>>}
>>>
>>>/**
>>>* Template method
>>>* @see
>>>
>>
>>edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextStringV
>>
>>>alue()
>>>*/
>>>public final String nextStringValue() throws DataAccessException {
>>>return incrementStringValue();
>>>}
>>>
>>>/**
>>>* Subclasses should provide implementation
>>>* @return int
>>>*/
>>>protected abstract int incrementIntValue();
>>>
>>>/**
>>>* Subclasses should provide implementation.
>>>* @return String
>>>*/
>>>protected abstract String incrementStringValue();
>>>}
>>>
>>>3) Oracle sequence [generic] implementation. It is a JavaBean and it is
>>>usually set as a property on the object that
>>>requires it through the bean factory:
>>>
>>>package edu.rutgers.acs.commons.helpers.dao;
>>>
>>>import javax.sql.DataSource;
>>>
>>>import com.interface21.beans.factory.InitializingBean;
>>>import com.interface21.jdbc.core.DataSourceUtils;
>>>import com.interface21.jdbc.object.SqlFunction;
>>>
>>>/**
>>> * Class to inceremnet maximum value of a given Oracle SEQUENCE
>>> * @author Dmitriy Kopylenko
>>> * @version $Id: OracleSequenceMaxValueIncrementer.java,v 1.3 2003/04/04
>>>18:15:17 dkopylen Exp $
>>> */
>>>public class OracleSequenceMaxValueIncrementer
>>>extends AbstractDataFieldMaxValueIncrementer
>>>implements InitializingBean {
>>>
>>>//-----------------------------------------------------------------
>>>// Instance data
>>>//-----------------------------------------------------------------
>>>private DataSource ds;
>>>
>>>private String dsName;
>>>
>>>private String sequenceName;
>>>
>>>private boolean prefixWithZero;
>>>
>>>private NextMaxValueProvider nextMaxValueProvider;
>>>
>>>//-----------------------------------------------------------------
>>>// Constructors
>>>//-----------------------------------------------------------------
>>>public OracleSequenceMaxValueIncrementer() {
>>>this.nextMaxValueProvider = new NextMaxValueProvider();
>>>}
>>>
>>>/**
>>>* @see
>>>
>>
>>edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncrementer#inc
>>
>>>rementIntValue()
>>>*/
>>>protected int incrementIntValue() {
>>>return nextMaxValueProvider.getNextIntValue();
>>>}
>>>
>>>/**
>>>* @see
>>>
>>
>>edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncrementer#inc
>>
>>>rementStringValue()
>>>*/
>>>protected String incrementStringValue() {
>>>return nextMaxValueProvider.getNextStringValue();
>>>}
>>>
>>>// Private class that does the actual
>>>// job of getting the sequence.nextVal value
>>>private class NextMaxValueProvider {
>>>
>>>public String getNextStringValue() {
>>>String s = new Integer(nextIntValue()).toString();
>>>
>>>if (s.length() == 1) {
>>>if (prefixWithZero)
>>>return "0" + s;
>>>}
>>>
>>>return s;
>>>}
>>>
>>>public int getNextIntValue() {
>>>SqlFunction sqlf = new SqlFunction(ds, "SELECT " +
>>>sequenceName + ".NEXTVAL FROM DUAL");
>>>sqlf.compile();
>>>return sqlf.run();
>>>}
>>>}
>>>
>>>/**
>>>* Sets the dsName.
>>>* @param dsName The dsName to set
>>>*/
>>>public void setDsName(String dsName) {
>>>this.dsName = dsName;
>>>}
>>>
>>>/**
>>>* @see
>>>com.interface21.beans.factory.InitializingBean#afterPropertiesSet()
>>>*/
>>>public void afterPropertiesSet() throws Exception {
>>>if (dsName == null || sequenceName == null)
>>>throw new Exception("dsName, sequenceName properties
>>>must be set on " + getClass().getName());
>>>
>>>this.ds = DataSourceUtils.getDataSourceFromJndi(dsName);
>>>}
>>>
>>>/**
>>>* Sets the prefixWithZero.
>>>* @param prefixWithZero The prefixWithZero to set
>>>*/
>>>public void setPrefixWithZero(boolean prefixWithZero) {
>>>this.prefixWithZero = prefixWithZero;
>>>}
>>>
>>>/**
>>>* Sets the sequenceName.
>>>* @param sequenceName The sequenceName to set
>>>*/
>>>public void setSequenceName(String sequenceName) {
>>>this.sequenceName = sequenceName;
>>>}
>>>}
>>>
>>>I guess that there could be different implementations for different DBMS
>>>platforms.
>>>
>>>Regards,
>>>
>>>Dmitriy.
>>>
>>>-----Original Message-----
>>>From: Rod Johnson [mailto:rod...@in...]
>>>Sent: Wednesday, April 16, 2003 09:11 AM
>>>To: Isabelle Muszynski; spr...@li...
>>>Subject: Re: Fw: [Springframework-developer] insert functionality in
>>>jdbc package
>>>
>>>
>>>Isabelle,
>>>
>>>You make a valid point about not wanting to need another product for just
>>>one problem.
>>>
>>>My view is that
>>>- we don't want to get into full-blown O/R mapping
>>>- BUT there is scope in building more JDBC-based functionality and
>>>abstractions on top of the Spring JDBC way of doing things. To my mind the
>>>central value proposition of Spring JDBC is the exception hierarchy and
>>
>>way
>>
>>>it frees developers of the tedious and error-prone tasks of raw JDBC.
>>>Additional features can validly be layered on top.
>>>
>>>So I think you should propose how you think we should add the insert
>>>functionality, perhaps even implement it, so we can discuss it and
>>>incorporate it if we're all comfortable with it. I think it's
>>>- important that any abstraction shouldn't impose potential inefficiency,
>>>and should allow the use of efficient RDBMS functions like Oracle
>>
>>sequences
>>
>>>- important that it should be compatible with JDBC 3.0 moving forward.
>>>
>>>Thomas, do you have any thoughts on this?
>>>
>>>Regards,
>>>Rod
>>>
>>>
>>>>Personally, I don't think I'd want to commit to yet another framework
>>
>>such
>>
>>>as hibernate for ex. in the project at work we're planning to do with
>>>spring. Most of what we need for jdbc is in spring, except for the insert
>>>functionality. Even with oracle, I don't like the idea of having to write
>>
>>a
>>
>>>stored procedure for every single insert, I'd probably opt for the
>>>additional cost of a select next_val from dual in jdbc code (i.e. instead
>>
>>of
>>
>>>just doing an insert, first retrieve the key val then do the insert). The
>>>main problem is with db's that don't have sequences, and if we agree to
>>
>>live
>>
>>>with holes in the primary key sequences we can implement an algorithm
>>
>>where
>>
>>>some sort of key manager per VM reserves a range of key values per table.
>>>
>>>>Isabelle
>>>
|
|
From: Isabelle M. <isa...@me...> - 2003-04-17 14:21:01
|
Hi Dmitry,
Can you "donate" this code to spring? The only thing I'd change is to return a long instead of an int. Seems silly to have to redo basically the same thing.
I could then provide an implementation something for mySQL.
If the answer is yes, please email me the code, so that I don't have to retype everything.
I'd also move it to the jdbc spring package.
Isabelle
On Wed, Apr 16, 2003 at 12:19:48PM -0400, Kopylenko, Dmitry wrote:
>
>
> -----Original Message-----
> From: Rod Johnson [mailto:rod...@in...]
> Sent: Wednesday, April 16, 2003 11:57 AM
> To: Kopylenko, Dmitry
> Subject: Re: Fw: [Springframework-developer] insert functionality in
> jdbc package
>
>
> Dmitry,
>
> I think you sent this only to me, not the list (the reply-to thing gets me
> often, too).
>
> Regards,
> Rod
>
> ----- Original Message -----
> From: "Kopylenko, Dmitry" <dko...@su...>
> To: "'Rod Johnson'" <rod...@in...>
> Sent: Wednesday, April 16, 2003 2:29 PM
> Subject: RE: Fw: [Springframework-developer] insert functionality in jdbc
> package
>
>
> > Rod,
> >
> > here is what I've implemented for the purpose of generating key values for
> > our projects here at Rutgers. It's simple, but it works (We're are an
> Oracle
> > shop).
> >
> > 1) Here is the main abstraction:
> >
> > package edu.rutgers.acs.commons.helpers.dao;
> >
> > import com.interface21.dao.DataAccessException;
> >
> > /**
> > * Interface that defines contract of incrementing
> > * any data store field's maximum value. Works much like
> > * sequence number generator. Typical implementations could use
> > * RDBMS SQL and/or Stored Procedures to do the job.
> > * @author Dmitriy Kopylenko
> > * @version $Id: DataFieldMaxValueIncrementer.java,v 1.1 2003/02/28
> 16:32:44
> > dkopylen Exp $
> > */
> > public interface DataFieldMaxValueIncrementer {
> >
> > /**
> > * Increments data store field's max value as int
> > * @return int next data store value such as <b>max + 1</b>
> > * @throws DataAccessException
> > */
> > public int nextIntValue() throws DataAccessException;
> >
> > /**
> > * Increments data store field's max value as String
> > * @return String next data store value such as <b>max + 1</b>
> > * @throws DataAccessException
> > */
> > public String nextStringValue() throws DataAccessException;
> >
> > }
> >
> > 2) Abstract implementation:
> >
> > package edu.rutgers.acs.commons.helpers.dao;
> >
> > import com.interface21.dao.DataAccessException;
> >
> > /**
> > * Implementation of {@link DataFieldMaxValueIncrementer}
> > * Uses <b>Template Method</b> design pattern.
> > * Subclasses should provide implementations of protected abstract
> methods.
> > * @author Dmitriy Kopylenko
> > * @version $Id: AbstractDataFieldMaxValueIncrementer.java,v 1.4
> 2003/03/05
> > 13:44:10 dkopylen Exp $
> > */
> > public abstract class AbstractDataFieldMaxValueIncrementer implements
> > DataFieldMaxValueIncrementer {
> >
> > /**
> > * Template method
> > * @see
> >
> edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextIntValu
> > e()
> > */
> > public final int nextIntValue() throws DataAccessException {
> > return incrementIntValue();
> > }
> >
> > /**
> > * Template method
> > * @see
> >
> edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextStringV
> > alue()
> > */
> > public final String nextStringValue() throws DataAccessException {
> > return incrementStringValue();
> > }
> >
> > /**
> > * Subclasses should provide implementation
> > * @return int
> > */
> > protected abstract int incrementIntValue();
> >
> > /**
> > * Subclasses should provide implementation.
> > * @return String
> > */
> > protected abstract String incrementStringValue();
> > }
> >
> > 3) Oracle sequence [generic] implementation. It is a JavaBean and it is
> > usually set as a property on the object that
> > requires it through the bean factory:
> >
> > package edu.rutgers.acs.commons.helpers.dao;
> >
> > import javax.sql.DataSource;
> >
> > import com.interface21.beans.factory.InitializingBean;
> > import com.interface21.jdbc.core.DataSourceUtils;
> > import com.interface21.jdbc.object.SqlFunction;
> >
> > /**
> > * Class to inceremnet maximum value of a given Oracle SEQUENCE
> > * @author Dmitriy Kopylenko
> > * @version $Id: OracleSequenceMaxValueIncrementer.java,v 1.3 2003/04/04
> > 18:15:17 dkopylen Exp $
> > */
> > public class OracleSequenceMaxValueIncrementer
> > extends AbstractDataFieldMaxValueIncrementer
> > implements InitializingBean {
> >
> > //-----------------------------------------------------------------
> > // Instance data
> > //-----------------------------------------------------------------
> > private DataSource ds;
> >
> > private String dsName;
> >
> > private String sequenceName;
> >
> > private boolean prefixWithZero;
> >
> > private NextMaxValueProvider nextMaxValueProvider;
> >
> > //-----------------------------------------------------------------
> > // Constructors
> > //-----------------------------------------------------------------
> > public OracleSequenceMaxValueIncrementer() {
> > this.nextMaxValueProvider = new NextMaxValueProvider();
> > }
> >
> > /**
> > * @see
> >
> edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncrementer#inc
> > rementIntValue()
> > */
> > protected int incrementIntValue() {
> > return nextMaxValueProvider.getNextIntValue();
> > }
> >
> > /**
> > * @see
> >
> edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncrementer#inc
> > rementStringValue()
> > */
> > protected String incrementStringValue() {
> > return nextMaxValueProvider.getNextStringValue();
> > }
> >
> > // Private class that does the actual
> > // job of getting the sequence.nextVal value
> > private class NextMaxValueProvider {
> >
> > public String getNextStringValue() {
> > String s = new Integer(nextIntValue()).toString();
> >
> > if (s.length() == 1) {
> > if (prefixWithZero)
> > return "0" + s;
> > }
> >
> > return s;
> > }
> >
> > public int getNextIntValue() {
> > SqlFunction sqlf = new SqlFunction(ds, "SELECT " +
> > sequenceName + ".NEXTVAL FROM DUAL");
> > sqlf.compile();
> > return sqlf.run();
> > }
> > }
> >
> > /**
> > * Sets the dsName.
> > * @param dsName The dsName to set
> > */
> > public void setDsName(String dsName) {
> > this.dsName = dsName;
> > }
> >
> > /**
> > * @see
> > com.interface21.beans.factory.InitializingBean#afterPropertiesSet()
> > */
> > public void afterPropertiesSet() throws Exception {
> > if (dsName == null || sequenceName == null)
> > throw new Exception("dsName, sequenceName properties
> > must be set on " + getClass().getName());
> >
> > this.ds = DataSourceUtils.getDataSourceFromJndi(dsName);
> > }
> >
> > /**
> > * Sets the prefixWithZero.
> > * @param prefixWithZero The prefixWithZero to set
> > */
> > public void setPrefixWithZero(boolean prefixWithZero) {
> > this.prefixWithZero = prefixWithZero;
> > }
> >
> > /**
> > * Sets the sequenceName.
> > * @param sequenceName The sequenceName to set
> > */
> > public void setSequenceName(String sequenceName) {
> > this.sequenceName = sequenceName;
> > }
> > }
> >
> > I guess that there could be different implementations for different DBMS
> > platforms.
> >
> > Regards,
> >
> > Dmitriy.
> >
> > -----Original Message-----
> > From: Rod Johnson [mailto:rod...@in...]
> > Sent: Wednesday, April 16, 2003 09:11 AM
> > To: Isabelle Muszynski; spr...@li...
> > Subject: Re: Fw: [Springframework-developer] insert functionality in
> > jdbc package
> >
> >
> > Isabelle,
> >
> > You make a valid point about not wanting to need another product for just
> > one problem.
> >
> > My view is that
> > - we don't want to get into full-blown O/R mapping
> > - BUT there is scope in building more JDBC-based functionality and
> > abstractions on top of the Spring JDBC way of doing things. To my mind the
> > central value proposition of Spring JDBC is the exception hierarchy and
> way
> > it frees developers of the tedious and error-prone tasks of raw JDBC.
> > Additional features can validly be layered on top.
> >
> > So I think you should propose how you think we should add the insert
> > functionality, perhaps even implement it, so we can discuss it and
> > incorporate it if we're all comfortable with it. I think it's
> > - important that any abstraction shouldn't impose potential inefficiency,
> > and should allow the use of efficient RDBMS functions like Oracle
> sequences
> > - important that it should be compatible with JDBC 3.0 moving forward.
> >
> > Thomas, do you have any thoughts on this?
> >
> > Regards,
> > Rod
> >
> > > Personally, I don't think I'd want to commit to yet another framework
> such
> > as hibernate for ex. in the project at work we're planning to do with
> > spring. Most of what we need for jdbc is in spring, except for the insert
> > functionality. Even with oracle, I don't like the idea of having to write
> a
> > stored procedure for every single insert, I'd probably opt for the
> > additional cost of a select next_val from dual in jdbc code (i.e. instead
> of
> > just doing an insert, first retrieve the key val then do the insert). The
> > main problem is with db's that don't have sequences, and if we agree to
> live
> > with holes in the primary key sequences we can implement an algorithm
> where
> > some sort of key manager per VM reserves a range of key values per table.
> > >
> > > Isabelle
> >
> >
> >
> >
> >
> > -------------------------------------------------------
> > This sf.net email is sponsored by:ThinkGeek
> > Welcome to geek heaven.
> > http://thinkgeek.com/sf
> > _______________________________________________
> > Springframework-developer mailing list
> > Spr...@li...
> > https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
--
Isabelle Muszynski
Software Engineer
Zandweellaan 4
2660 Antwerpen
Belgium
Tel. 32-(0)3-830 18 54
Mobile: 32-(0)485 49 50 89
Email: isa...@me...
Website: www.meta-logix.com
|
|
From: William G. T. Jr. <wg...@rc...> - 2003-04-17 14:08:09
|
Isabelle Muszynski wrote: > Hi everyone, > > What do you think of Gary's message re MagicDraw? The professional version really only has reverse-engineering extra. Since it looks like I'm going to be doing the docs, reverse-engineering might be handy. With the standard licences, you could all load and modify the models I create. > > What about the website? Is anyone a wizard at creating a web site in 5 minutes? > > Isabelle > Forrest will create a full project documention structure suitable for the web in less than 5 minutes with one command. $ forrest seed http://xml.apache.org/forrest/index.html later. Bill -- William G. Thompson, Jr. Associate Director of New Technologies Administrative Computing Services, Rutgers University voice: 732 445-5428 | fax: 732 445-5493 | wth...@ac... |
|
From: Isabelle M. <isa...@me...> - 2003-04-17 13:43:53
|
Hi everyone, What do you think of Gary's message re MagicDraw? The professional version really only has reverse-engineering extra. Since it looks like I'm going to be doing the docs, reverse-engineering might be handy. With the standard licences, you could all load and modify the models I create. What about the website? Is anyone a wizard at creating a web site in 5 minutes? Isabelle -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Isabelle M. <isa...@me...> - 2003-04-16 16:51:21
|
This is pretty much the way we usually do things around here as well. For the trigger and PL-SQL agnostic, I'd suggest providing full keygen functionality in the JDBC package. Then everyone can pick and choose what suits them best. Isabelle On Wed, Apr 16, 2003 at 12:30:33PM -0400, Thomas Risberg wrote: > Rod, > > I'm pretty much in agreement with your position. > > What initially attracted me to your JDBC framework was that it freed me > from all the exception/connection closing issues. Another plus is that > it lets you work in a more object oriented fashion. I don't mind adding > layers on top of the basic Spring JDBC functionality, that would provide > a comlete set of the insert/select/update/delete functionality in a nice > and easy to use abstraction. > > For the primary key generation I like to use the functionality that the > database provides and isolate it in a java class that can be swapped for > a different implementation when you switch to a different database > platform. > > What I like to do for Oracle is use a sequence, and have an > insert-trigger that will look up the next value in the sequence if no > primarky key value is supplied. Then I also have a database function > that gets the next value from the sequence and returns it. This > function can be used from any PL/SQL code that insert rows. On top of > this I would have a "getNextKey" method to access this database function > in a Java class that wraps any database specific code. > > Thomas > > > > Isabelle, > > > > You make a valid point about not wanting to need another product for just > > one problem. > > > > My view is that > > - we don't want to get into full-blown O/R mapping > > - BUT there is scope in building more JDBC-based functionality and > > abstractions on top of the Spring JDBC way of doing things. To my mind the > > central value proposition of Spring JDBC is the exception hierarchy > and way > > it frees developers of the tedious and error-prone tasks of raw JDBC. > > Additional features can validly be layered on top. > > > > So I think you should propose how you think we should add the insert > > functionality, perhaps even implement it, so we can discuss it and > > incorporate it if we're all comfortable with it. I think it's > > - important that any abstraction shouldn't impose potential inefficiency, > > and should allow the use of efficient RDBMS functions like Oracle > sequences > > - important that it should be compatible with JDBC 3.0 moving forward. > > > > Thomas, do you have any thoughts on this? > > > > Regards, > > Rod > > > > > Personally, I don't think I'd want to commit to yet another > framework such > > as hibernate for ex. in the project at work we're planning to do with > > spring. Most of what we need for jdbc is in spring, except for the insert > > functionality. Even with oracle, I don't like the idea of having to > write a > > stored procedure for every single insert, I'd probably opt for the > > additional cost of a select next_val from dual in jdbc code (i.e. > instead of > > just doing an insert, first retrieve the key val then do the insert). The > > main problem is with db's that don't have sequences, and if we agree > to live > > with holes in the primary key sequences we can implement an algorithm > where > > some sort of key manager per VM reserves a range of key values per table. > > > > > > Isabelle > > > > > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Thomas R. <tri...@tr...> - 2003-04-16 16:30:38
|
Rod, I'm pretty much in agreement with your position. What initially attracted me to your JDBC framework was that it freed me from all the exception/connection closing issues. Another plus is that it lets you work in a more object oriented fashion. I don't mind adding layers on top of the basic Spring JDBC functionality, that would provide a comlete set of the insert/select/update/delete functionality in a nice and easy to use abstraction. For the primary key generation I like to use the functionality that the database provides and isolate it in a java class that can be swapped for a different implementation when you switch to a different database platform. What I like to do for Oracle is use a sequence, and have an insert-trigger that will look up the next value in the sequence if no primarky key value is supplied. Then I also have a database function that gets the next value from the sequence and returns it. This function can be used from any PL/SQL code that insert rows. On top of this I would have a "getNextKey" method to access this database function in a Java class that wraps any database specific code. Thomas > Isabelle, > > You make a valid point about not wanting to need another product for just > one problem. > > My view is that > - we don't want to get into full-blown O/R mapping > - BUT there is scope in building more JDBC-based functionality and > abstractions on top of the Spring JDBC way of doing things. To my mind the > central value proposition of Spring JDBC is the exception hierarchy and way > it frees developers of the tedious and error-prone tasks of raw JDBC. > Additional features can validly be layered on top. > > So I think you should propose how you think we should add the insert > functionality, perhaps even implement it, so we can discuss it and > incorporate it if we're all comfortable with it. I think it's > - important that any abstraction shouldn't impose potential inefficiency, > and should allow the use of efficient RDBMS functions like Oracle sequences > - important that it should be compatible with JDBC 3.0 moving forward. > > Thomas, do you have any thoughts on this? > > Regards, > Rod > > > Personally, I don't think I'd want to commit to yet another framework such > as hibernate for ex. in the project at work we're planning to do with > spring. Most of what we need for jdbc is in spring, except for the insert > functionality. Even with oracle, I don't like the idea of having to write a > stored procedure for every single insert, I'd probably opt for the > additional cost of a select next_val from dual in jdbc code (i.e. instead of > just doing an insert, first retrieve the key val then do the insert). The > main problem is with db's that don't have sequences, and if we agree to live > with holes in the primary key sequences we can implement an algorithm where > some sort of key manager per VM reserves a range of key values per table. > > > > Isabelle > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > |
|
From: Kopylenko, D. <dko...@ac...> - 2003-04-16 16:20:02
|
-----Original Message-----
From: Rod Johnson [mailto:rod...@in...]
Sent: Wednesday, April 16, 2003 11:57 AM
To: Kopylenko, Dmitry
Subject: Re: Fw: [Springframework-developer] insert functionality in
jdbc package
Dmitry,
I think you sent this only to me, not the list (the reply-to thing gets me
often, too).
Regards,
Rod
----- Original Message -----
From: "Kopylenko, Dmitry" <dko...@su...>
To: "'Rod Johnson'" <rod...@in...>
Sent: Wednesday, April 16, 2003 2:29 PM
Subject: RE: Fw: [Springframework-developer] insert functionality in jdbc
package
> Rod,
>
> here is what I've implemented for the purpose of generating key values for
> our projects here at Rutgers. It's simple, but it works (We're are an
Oracle
> shop).
>
> 1) Here is the main abstraction:
>
> package edu.rutgers.acs.commons.helpers.dao;
>
> import com.interface21.dao.DataAccessException;
>
> /**
> * Interface that defines contract of incrementing
> * any data store field's maximum value. Works much like
> * sequence number generator. Typical implementations could use
> * RDBMS SQL and/or Stored Procedures to do the job.
> * @author Dmitriy Kopylenko
> * @version $Id: DataFieldMaxValueIncrementer.java,v 1.1 2003/02/28
16:32:44
> dkopylen Exp $
> */
> public interface DataFieldMaxValueIncrementer {
>
> /**
> * Increments data store field's max value as int
> * @return int next data store value such as <b>max + 1</b>
> * @throws DataAccessException
> */
> public int nextIntValue() throws DataAccessException;
>
> /**
> * Increments data store field's max value as String
> * @return String next data store value such as <b>max + 1</b>
> * @throws DataAccessException
> */
> public String nextStringValue() throws DataAccessException;
>
> }
>
> 2) Abstract implementation:
>
> package edu.rutgers.acs.commons.helpers.dao;
>
> import com.interface21.dao.DataAccessException;
>
> /**
> * Implementation of {@link DataFieldMaxValueIncrementer}
> * Uses <b>Template Method</b> design pattern.
> * Subclasses should provide implementations of protected abstract
methods.
> * @author Dmitriy Kopylenko
> * @version $Id: AbstractDataFieldMaxValueIncrementer.java,v 1.4
2003/03/05
> 13:44:10 dkopylen Exp $
> */
> public abstract class AbstractDataFieldMaxValueIncrementer implements
> DataFieldMaxValueIncrementer {
>
> /**
> * Template method
> * @see
>
edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextIntValu
> e()
> */
> public final int nextIntValue() throws DataAccessException {
> return incrementIntValue();
> }
>
> /**
> * Template method
> * @see
>
edu.rutgers.acs.commons.helpers.dao.DataFieldMaxValueIncrementer#nextStringV
> alue()
> */
> public final String nextStringValue() throws DataAccessException {
> return incrementStringValue();
> }
>
> /**
> * Subclasses should provide implementation
> * @return int
> */
> protected abstract int incrementIntValue();
>
> /**
> * Subclasses should provide implementation.
> * @return String
> */
> protected abstract String incrementStringValue();
> }
>
> 3) Oracle sequence [generic] implementation. It is a JavaBean and it is
> usually set as a property on the object that
> requires it through the bean factory:
>
> package edu.rutgers.acs.commons.helpers.dao;
>
> import javax.sql.DataSource;
>
> import com.interface21.beans.factory.InitializingBean;
> import com.interface21.jdbc.core.DataSourceUtils;
> import com.interface21.jdbc.object.SqlFunction;
>
> /**
> * Class to inceremnet maximum value of a given Oracle SEQUENCE
> * @author Dmitriy Kopylenko
> * @version $Id: OracleSequenceMaxValueIncrementer.java,v 1.3 2003/04/04
> 18:15:17 dkopylen Exp $
> */
> public class OracleSequenceMaxValueIncrementer
> extends AbstractDataFieldMaxValueIncrementer
> implements InitializingBean {
>
> //-----------------------------------------------------------------
> // Instance data
> //-----------------------------------------------------------------
> private DataSource ds;
>
> private String dsName;
>
> private String sequenceName;
>
> private boolean prefixWithZero;
>
> private NextMaxValueProvider nextMaxValueProvider;
>
> //-----------------------------------------------------------------
> // Constructors
> //-----------------------------------------------------------------
> public OracleSequenceMaxValueIncrementer() {
> this.nextMaxValueProvider = new NextMaxValueProvider();
> }
>
> /**
> * @see
>
edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncrementer#inc
> rementIntValue()
> */
> protected int incrementIntValue() {
> return nextMaxValueProvider.getNextIntValue();
> }
>
> /**
> * @see
>
edu.rutgers.acs.commons.helpers.dao.AbstractDataFieldMaxValueIncrementer#inc
> rementStringValue()
> */
> protected String incrementStringValue() {
> return nextMaxValueProvider.getNextStringValue();
> }
>
> // Private class that does the actual
> // job of getting the sequence.nextVal value
> private class NextMaxValueProvider {
>
> public String getNextStringValue() {
> String s = new Integer(nextIntValue()).toString();
>
> if (s.length() == 1) {
> if (prefixWithZero)
> return "0" + s;
> }
>
> return s;
> }
>
> public int getNextIntValue() {
> SqlFunction sqlf = new SqlFunction(ds, "SELECT " +
> sequenceName + ".NEXTVAL FROM DUAL");
> sqlf.compile();
> return sqlf.run();
> }
> }
>
> /**
> * Sets the dsName.
> * @param dsName The dsName to set
> */
> public void setDsName(String dsName) {
> this.dsName = dsName;
> }
>
> /**
> * @see
> com.interface21.beans.factory.InitializingBean#afterPropertiesSet()
> */
> public void afterPropertiesSet() throws Exception {
> if (dsName == null || sequenceName == null)
> throw new Exception("dsName, sequenceName properties
> must be set on " + getClass().getName());
>
> this.ds = DataSourceUtils.getDataSourceFromJndi(dsName);
> }
>
> /**
> * Sets the prefixWithZero.
> * @param prefixWithZero The prefixWithZero to set
> */
> public void setPrefixWithZero(boolean prefixWithZero) {
> this.prefixWithZero = prefixWithZero;
> }
>
> /**
> * Sets the sequenceName.
> * @param sequenceName The sequenceName to set
> */
> public void setSequenceName(String sequenceName) {
> this.sequenceName = sequenceName;
> }
> }
>
> I guess that there could be different implementations for different DBMS
> platforms.
>
> Regards,
>
> Dmitriy.
>
> -----Original Message-----
> From: Rod Johnson [mailto:rod...@in...]
> Sent: Wednesday, April 16, 2003 09:11 AM
> To: Isabelle Muszynski; spr...@li...
> Subject: Re: Fw: [Springframework-developer] insert functionality in
> jdbc package
>
>
> Isabelle,
>
> You make a valid point about not wanting to need another product for just
> one problem.
>
> My view is that
> - we don't want to get into full-blown O/R mapping
> - BUT there is scope in building more JDBC-based functionality and
> abstractions on top of the Spring JDBC way of doing things. To my mind the
> central value proposition of Spring JDBC is the exception hierarchy and
way
> it frees developers of the tedious and error-prone tasks of raw JDBC.
> Additional features can validly be layered on top.
>
> So I think you should propose how you think we should add the insert
> functionality, perhaps even implement it, so we can discuss it and
> incorporate it if we're all comfortable with it. I think it's
> - important that any abstraction shouldn't impose potential inefficiency,
> and should allow the use of efficient RDBMS functions like Oracle
sequences
> - important that it should be compatible with JDBC 3.0 moving forward.
>
> Thomas, do you have any thoughts on this?
>
> Regards,
> Rod
>
> > Personally, I don't think I'd want to commit to yet another framework
such
> as hibernate for ex. in the project at work we're planning to do with
> spring. Most of what we need for jdbc is in spring, except for the insert
> functionality. Even with oracle, I don't like the idea of having to write
a
> stored procedure for every single insert, I'd probably opt for the
> additional cost of a select next_val from dual in jdbc code (i.e. instead
of
> just doing an insert, first retrieve the key val then do the insert). The
> main problem is with db's that don't have sequences, and if we agree to
live
> with holes in the primary key sequences we can implement an algorithm
where
> some sort of key manager per VM reserves a range of key values per table.
> >
> > Isabelle
>
>
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Isabelle M. <isa...@me...> - 2003-04-16 16:12:13
|
Hi everyone, While we sort out the upload problems at sourceforge, I will add a section to the downloads on my website (www.meta-logix.com). Should take me about 10 minutes. Isabelle On Wed, Apr 16, 2003 at 04:56:18PM +0100, Rod Johnson wrote: > I think you can upload it at SourceForge. Or your website would be fine. I'd > rather not have large attachments on the list (and I won't get a chance to > approve it before I go on holiday). > > Rod > > ----- Original Message ----- > From: "Isabelle Muszynski" <isa...@me...> > To: <spr...@li...> > Sent: Wednesday, April 16, 2003 4:34 PM > Subject: Re: [Springframework-developer] petclinic class diagram > > > > hmm, my mail is being held back until the list moderator approves it > because it is too big. > > Do we have a standard place to upload stuff? If not, I could put it on my > website. > > > > Isabelle > > > > On Wed, Apr 16, 2003 at 09:08:16AM -0400, Kopylenko, Dmitry wrote: > > > So, where is it? :-) > > > > > > -----Original Message----- > > > From: Isabelle Muszynski [mailto:isa...@me...] > > > Sent: Wednesday, April 16, 2003 09:09 AM > > > To: spr...@li... > > > Subject: [Springframework-developer] petclinic class diagram > > > > > > > > > Hi everyone, > > > > > > Here's the start of the tutorial application (UML class diagram in > HTML). > > > I've kept it very simple on purpose. > > > > > > Isabelle > > > > > > -- > > > Isabelle Muszynski > > > Software Engineer > > > Zandweellaan 4 > > > 2660 Antwerpen > > > Belgium > > > Tel. 32-(0)3-830 18 54 > > > Mobile: 32-(0)485 49 50 89 > > > Email: isa...@me... > > > Website: www.meta-logix.com > > > > > > > > > ------------------------------------------------------- > > > This sf.net email is sponsored by:ThinkGeek > > > Welcome to geek heaven. > > > http://thinkgeek.com/sf > > > _______________________________________________ > > > Springframework-developer mailing list > > > Spr...@li... > > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > > > > > > -- > > Isabelle Muszynski > > Software Engineer > > Zandweellaan 4 > > 2660 Antwerpen > > Belgium > > Tel. 32-(0)3-830 18 54 > > Mobile: 32-(0)485 49 50 89 > > Email: isa...@me... > > Website: www.meta-logix.com > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Rod J. <rod...@in...> - 2003-04-16 15:57:57
|
I think you can upload it at SourceForge. Or your website would be fine. I'd rather not have large attachments on the list (and I won't get a chance to approve it before I go on holiday). Rod ----- Original Message ----- From: "Isabelle Muszynski" <isa...@me...> To: <spr...@li...> Sent: Wednesday, April 16, 2003 4:34 PM Subject: Re: [Springframework-developer] petclinic class diagram > hmm, my mail is being held back until the list moderator approves it because it is too big. > Do we have a standard place to upload stuff? If not, I could put it on my website. > > Isabelle > > On Wed, Apr 16, 2003 at 09:08:16AM -0400, Kopylenko, Dmitry wrote: > > So, where is it? :-) > > > > -----Original Message----- > > From: Isabelle Muszynski [mailto:isa...@me...] > > Sent: Wednesday, April 16, 2003 09:09 AM > > To: spr...@li... > > Subject: [Springframework-developer] petclinic class diagram > > > > > > Hi everyone, > > > > Here's the start of the tutorial application (UML class diagram in HTML). > > I've kept it very simple on purpose. > > > > Isabelle > > > > -- > > Isabelle Muszynski > > Software Engineer > > Zandweellaan 4 > > 2660 Antwerpen > > Belgium > > Tel. 32-(0)3-830 18 54 > > Mobile: 32-(0)485 49 50 89 > > Email: isa...@me... > > Website: www.meta-logix.com > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > > -- > Isabelle Muszynski > Software Engineer > Zandweellaan 4 > 2660 Antwerpen > Belgium > Tel. 32-(0)3-830 18 54 > Mobile: 32-(0)485 49 50 89 > Email: isa...@me... > Website: www.meta-logix.com > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Isabelle M. <isa...@me...> - 2003-04-16 15:31:17
|
hmm, my mail is being held back until the list moderator approves it because it is too big. Do we have a standard place to upload stuff? If not, I could put it on my website. Isabelle On Wed, Apr 16, 2003 at 09:08:16AM -0400, Kopylenko, Dmitry wrote: > So, where is it? :-) > > -----Original Message----- > From: Isabelle Muszynski [mailto:isa...@me...] > Sent: Wednesday, April 16, 2003 09:09 AM > To: spr...@li... > Subject: [Springframework-developer] petclinic class diagram > > > Hi everyone, > > Here's the start of the tutorial application (UML class diagram in HTML). > I've kept it very simple on purpose. > > Isabelle > > -- > Isabelle Muszynski > Software Engineer > Zandweellaan 4 > 2660 Antwerpen > Belgium > Tel. 32-(0)3-830 18 54 > Mobile: 32-(0)485 49 50 89 > Email: isa...@me... > Website: www.meta-logix.com > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Isabelle M. <isa...@me...> - 2003-04-16 15:29:27
|
Will have a look at how we could best incorporate insert functionality and will get back to you. Isabelle On Wed, Apr 16, 2003 at 02:10:56PM +0100, Rod Johnson wrote: > Isabelle, > > You make a valid point about not wanting to need another product for just > one problem. > > My view is that > - we don't want to get into full-blown O/R mapping > - BUT there is scope in building more JDBC-based functionality and > abstractions on top of the Spring JDBC way of doing things. To my mind the > central value proposition of Spring JDBC is the exception hierarchy and way > it frees developers of the tedious and error-prone tasks of raw JDBC. > Additional features can validly be layered on top. > > So I think you should propose how you think we should add the insert > functionality, perhaps even implement it, so we can discuss it and > incorporate it if we're all comfortable with it. I think it's > - important that any abstraction shouldn't impose potential inefficiency, > and should allow the use of efficient RDBMS functions like Oracle sequences > - important that it should be compatible with JDBC 3.0 moving forward. > > Thomas, do you have any thoughts on this? > > Regards, > Rod > > > Personally, I don't think I'd want to commit to yet another framework such > as hibernate for ex. in the project at work we're planning to do with > spring. Most of what we need for jdbc is in spring, except for the insert > functionality. Even with oracle, I don't like the idea of having to write a > stored procedure for every single insert, I'd probably opt for the > additional cost of a select next_val from dual in jdbc code (i.e. instead of > just doing an insert, first retrieve the key val then do the insert). The > main problem is with db's that don't have sequences, and if we agree to live > with holes in the primary key sequences we can implement an algorithm where > some sort of key manager per VM reserves a range of key values per table. > > > > Isabelle > > > > > -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Rod J. <rod...@in...> - 2003-04-16 13:11:42
|
Isabelle, You make a valid point about not wanting to need another product for just one problem. My view is that - we don't want to get into full-blown O/R mapping - BUT there is scope in building more JDBC-based functionality and abstractions on top of the Spring JDBC way of doing things. To my mind the central value proposition of Spring JDBC is the exception hierarchy and way it frees developers of the tedious and error-prone tasks of raw JDBC. Additional features can validly be layered on top. So I think you should propose how you think we should add the insert functionality, perhaps even implement it, so we can discuss it and incorporate it if we're all comfortable with it. I think it's - important that any abstraction shouldn't impose potential inefficiency, and should allow the use of efficient RDBMS functions like Oracle sequences - important that it should be compatible with JDBC 3.0 moving forward. Thomas, do you have any thoughts on this? Regards, Rod > Personally, I don't think I'd want to commit to yet another framework such as hibernate for ex. in the project at work we're planning to do with spring. Most of what we need for jdbc is in spring, except for the insert functionality. Even with oracle, I don't like the idea of having to write a stored procedure for every single insert, I'd probably opt for the additional cost of a select next_val from dual in jdbc code (i.e. instead of just doing an insert, first retrieve the key val then do the insert). The main problem is with db's that don't have sequences, and if we agree to live with holes in the primary key sequences we can implement an algorithm where some sort of key manager per VM reserves a range of key values per table. > > Isabelle |
|
From: Isabelle M. <isa...@me...> - 2003-04-16 13:05:37
|
Hi everyone, Here's the start of the tutorial application (UML class diagram in HTML). I've kept it very simple on purpose. Isabelle -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Isabelle M. <isa...@me...> - 2003-04-16 06:57:10
|
Hi everyone, Personally, I don't think I'd want to commit to yet another framework such as hibernate for ex. in the project at work we're planning to do with spring. Most of what we need for jdbc is in spring, except for the insert functionality. Even with oracle, I don't like the idea of having to write a stored procedure for every single insert, I'd probably opt for the additional cost of a select next_val from dual in jdbc code (i.e. instead of just doing an insert, first retrieve the key val then do the insert). The main problem is with db's that don't have sequences, and if we agree to live with holes in the primary key sequences we can implement an algorithm where some sort of key manager per VM reserves a range of key values per table. Isabelle On Tue, Apr 15, 2003 at 09:10:13PM +0100, Rod Johnson wrote: > Reply to again. > > > I agree with Juergen. I don't think we should get carried away and think > we > > should compete with Hibernate and co. > > > > Spring JDBC is not O/R mapping. That space is way too crowded already. > > > > This is not to say that we cannot take on one or two selected problems, > such > > as those Isabelle proposed. But we have to be clear on the scope > limitation. > > > > Regards, > > Rod > > > > ----- Original Message ----- > > From: "jürgen höller [werk3AT]" <jue...@we...> > > To: <spr...@li...> > > Sent: Tuesday, April 15, 2003 10:56 AM > > Subject: RE: [Springframework-developer] insert functionality in jdbc > > package > > > > > > Hi Isabelle, everyone, > > > > IMO we should rethink the scope of Spring's JDBC package. Insert > > functionality would definitely make sense, but we are moving more and more > > towards full-fledged persistence. That area is a crowded one: E.g. the > issue > > of unique key retrieval is typically solved by almost every O/R mapping > > toolkit around. > > > > We should try to solve many typical problems, of course. But we should > also > > stick to a clear scope, without trying to compete with more focussed > > solutions - just like we're already sticking to e.g. J2EE DataSources, > > Log4J, JSP, and Velocity. They may not be perfect but they are good > enough, > > at least if you add some convenience stuff. > > > > I like Hibernate's "do one thing well" attitude > > (http://hibernate.bluemars.net/38.html): "Be the best at something. Let > > other projects worry about all the other things which you can't be the > best > > at." And: "Scope creep sinks more open source projects than any other > > danger". I feel that we're already rather close to that frontier. > > > > Regards, > > Juergen > > > > > > -----Original Message----- > > From: Isabelle Muszynski [mailto:met...@pa...] > > Sent: Friday, April 11, 2003 9:30 AM > > To: spr...@li... > > Subject: [Springframework-developer] insert functionality in jdbc > > package > > > > > > Hi everyone, > > > > I feel we need insert functionality in the jdbc package. Depending on > stored > > procedures as Rod advises in his book is not always a solution, for ex. > > mySQL does not currently support stored procedures. This introduces the > > topic of unique key retrieval which is again very DB-dependent. We cannot > > assume the DB has sequences or auto-increment columns. > > > > See http://ejbutils.sourceforge.net > > > > Your thoughts on this please. > > > > Isabelle > > > > -- > > Isabelle Muszynski > > Zandweellaan 4 > > 2660 Antwerpen > > Belgium > > Tel. 32-(0)3-830 18 54 > > Mobile: 32-(0)485 49 50 89 > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: Etnus, makers of TotalView, The > debugger > > for complex code. Debugging C/C++ programs can leave you feeling lost and > > disoriented. TotalView can help you find your way. Available on major UNIX > > and Linux platforms. Try it free. www.etnus.com > > _______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: Isabelle M. <isa...@me...> - 2003-04-16 06:49:44
|
OK, no problem, just a web app then. Isabelle On Tue, Apr 15, 2003 at 09:08:02PM +0100, Rod Johnson wrote: > > I'd thought to use at least some stateless session beans in the demo app. > Or am I being too ambitious again? > > I'm anti-Word, anti-Microsoft really, and want to go for portable formats, > which means pdf and html. Docbook would be an option too, but too much work > to learn and get the tools to work right now. > > I'm not particularly keen on EJB, and would prefer it isn't used in the demo > app. I expressed my scepticism in the book, but my views have hardened since > and I'm convinced that AOP is the way forward to solve many of the problems > EJB addresses. > > EJB has its place, but I don't think it's in apps such as our demo, which is > going to be a simple web app. > > Rod > > > > -- Isabelle Muszynski Software Engineer Zandweellaan 4 2660 Antwerpen Belgium Tel. 32-(0)3-830 18 54 Mobile: 32-(0)485 49 50 89 Email: isa...@me... Website: www.meta-logix.com |
|
From: William G. T. Jr. <wg...@rc...> - 2003-04-16 01:41:15
|
I would check these things: 1) file permissions are properly set 2) file name casing is correct (unix is case sensitive, NT is not) Kopylenko, Dmitry wrote: > Hello everybody. I just have a quick question. I'm trying to deploy the > Spring web app. on Jboss3.0.6/Tomcat 4.1.x on Solaris 8 OS. Locally (NT) > deploys ok, but on UNIX it throws the following: > parsing XML document for application context with display name [Root > WebApplicationContext'; nested exception is: > java.io.FileNotFoundException: /WEB-INF/applicationContext.xml (No > such file or directory) > > All the necessary files including applicationContext.xml are in the WEB-INF > for sure. Any suggestions. > > Thanks a lot. > > Dmitriy. > > > |
|
From: Kopylenko, D. <dko...@ac...> - 2003-04-15 20:49:40
|
Hello everybody. I just have a quick question. I'm trying to deploy the
Spring web app. on Jboss3.0.6/Tomcat 4.1.x on Solaris 8 OS. Locally (NT)
deploys ok, but on UNIX it throws the following:
parsing XML document for application context with display name [Root
WebApplicationContext'; nested exception is:
java.io.FileNotFoundException: /WEB-INF/applicationContext.xml (No
such file or directory)
All the necessary files including applicationContext.xml are in the WEB-INF
for sure. Any suggestions.
Thanks a lot.
Dmitriy.
|
|
From: Rod J. <rod...@in...> - 2003-04-15 20:10:49
|
Reply to again. > I agree with Juergen. I don't think we should get carried away and think we > should compete with Hibernate and co. > > Spring JDBC is not O/R mapping. That space is way too crowded already. > > This is not to say that we cannot take on one or two selected problems, such > as those Isabelle proposed. But we have to be clear on the scope limitation. > > Regards, > Rod > > ----- Original Message ----- > From: "jürgen höller [werk3AT]" <jue...@we...> > To: <spr...@li...> > Sent: Tuesday, April 15, 2003 10:56 AM > Subject: RE: [Springframework-developer] insert functionality in jdbc > package > > > Hi Isabelle, everyone, > > IMO we should rethink the scope of Spring's JDBC package. Insert > functionality would definitely make sense, but we are moving more and more > towards full-fledged persistence. That area is a crowded one: E.g. the issue > of unique key retrieval is typically solved by almost every O/R mapping > toolkit around. > > We should try to solve many typical problems, of course. But we should also > stick to a clear scope, without trying to compete with more focussed > solutions - just like we're already sticking to e.g. J2EE DataSources, > Log4J, JSP, and Velocity. They may not be perfect but they are good enough, > at least if you add some convenience stuff. > > I like Hibernate's "do one thing well" attitude > (http://hibernate.bluemars.net/38.html): "Be the best at something. Let > other projects worry about all the other things which you can't be the best > at." And: "Scope creep sinks more open source projects than any other > danger". I feel that we're already rather close to that frontier. > > Regards, > Juergen > > > -----Original Message----- > From: Isabelle Muszynski [mailto:met...@pa...] > Sent: Friday, April 11, 2003 9:30 AM > To: spr...@li... > Subject: [Springframework-developer] insert functionality in jdbc > package > > > Hi everyone, > > I feel we need insert functionality in the jdbc package. Depending on stored > procedures as Rod advises in his book is not always a solution, for ex. > mySQL does not currently support stored procedures. This introduces the > topic of unique key retrieval which is again very DB-dependent. We cannot > assume the DB has sequences or auto-increment columns. > > See http://ejbutils.sourceforge.net > > Your thoughts on this please. > > Isabelle > > -- > Isabelle Muszynski > Zandweellaan 4 > 2660 Antwerpen > Belgium > Tel. 32-(0)3-830 18 54 > Mobile: 32-(0)485 49 50 89 > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger > for complex code. Debugging C/C++ programs can leave you feeling lost and > disoriented. TotalView can help you find your way. Available on major UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > |
|
From: Rod J. <rod...@in...> - 2003-04-15 20:10:42
|
Reply to again. ----- Original Message ----- From: "Rod Johnson" <rod...@in...> To: "Isabelle Muszynski" <isa...@me...> Sent: Tuesday, April 15, 2003 9:08 PM Subject: Re: [Springframework-developer] tutorials and docs > > I'd thought to use at least some stateless session beans in the demo app. > Or am I being too ambitious again? > > I'm anti-Word, anti-Microsoft really, and want to go for portable formats, > which means pdf and html. Docbook would be an option too, but too much work > to learn and get the tools to work right now. > > I'm not particularly keen on EJB, and would prefer it isn't used in the demo > app. I expressed my scepticism in the book, but my views have hardened since > and I'm convinced that AOP is the way forward to solve many of the problems > EJB addresses. > > EJB has its place, but I don't think it's in apps such as our demo, which is > going to be a simple web app. > > Rod > |
|
From: Rod J. <rod...@in...> - 2003-04-15 18:36:08
|
Thomas, I think build.xml needs to ensure that sql-error-codes.xml is included in both jdbc and full Jars. Anyone who wants to override it with custom values can put their own version of the file earlier on their classpath. Or, better still, contribute their additional error codes. From some benchmarks I did today, it seems that getting the connection metadata when creating a JdbcTemplate is a very modest cost, at least with Oracle 9i. Using the batch prepared statement capabilities of Spring JDBC I reworked a complicated piece of JDBC code that took 7 seconds with raw JDBC and prepared statements to run in 1 second with the JdbcTemplate. Regards, Rod |