[jira] Created: (TORQUE-70) Escape Text in DBOracle not correct when using columns of type NVARCHAR2

2006-11-30 Thread Tobias Hilka (JIRA)
Escape Text in DBOracle not correct when using columns of type NVARCHAR2


 Key: TORQUE-70
 URL: http://issues.apache.org/jira/browse/TORQUE-70
 Project: Torque
  Issue Type: Bug
  Components: Runtime
Affects Versions: 3.3
 Environment: Oracle 9
Reporter: Tobias Hilka


The default escape string for DBOracle is '\'. This works fine for VARCHAR2 
columns. This statement is correct in these cases:

SELECT * FROM MYTABLE WHERE MYCOLUMN LIKE 'TEST\_%' ESCAPE '\'

This escape string does not work for columns of type NVARCHAR2. Using this 
escape character brings up the following error:

ORA-01425: escape character must be character string of length 1 

In case of columns of type NVARCHAR2 the correct escape character is N'\'. So 
the query above has to be written as follows:

SELECT * FROM MYTABLE WHERE MYCOLUMN LIKE 'TEST\_%' ESCAPE N'\'

We need some kind of mechanism to switch the escape string depending on the 
column used in the like statement. The problem is that at this point of 
execution, we don't have column objects but just plain strings representing the 
column names.  (SQLExpression.buildLike(...))



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



AW: Torque 4.0 plan

2006-11-30 Thread Thoralf Rickert
Hi!

 []
 - Use Java 5 style generics and enumerations. One can use compiler 
 settings to produce pre-1.5-executable class files.

Oh yes. I will be glad to help on this topic.

Another small topic is my suggestion some months ago (July, 10.) to
replace the ant velocity render task with our own velocity render task
to remove leading spaces in front of velocity statements (__#foreach
...). Therefore we have to rewrite some lines in
org.apache.velocity.texen.ant.TexenTask which we extend. This works here
for my XHTML generation very good. Maybe there are some other features
that could be possible with our own velocity renderer.

bye
Thoralf





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Torque 4.0 plan

2006-11-30 Thread Joe Carter

Is there any chance we can make the Peer classes non-static?
Currently it's hard/impossible to override/extend these without making
generator changes. Perhaps have some form of central registry to
hold these classes so that they can be globally looked up but
also replaced/extended if desired.

The other suggestions are all very good - especially removing village.

Thanks

Joe

On 29/11/06, Thomas Fischer [EMAIL PROTECTED] wrote:


Now that the first Torque RC is outit is time to think about what we'd
like
to do as next version. Personally, I'd like to propose the following:

- Next version should be 4.0. There can be major changes in the version,
but the 'look and feel' should change as little as possibl. The idea
would be that one can recompile one's Torque 3.2 or 3.3 project with the
new Torque version and it should run with minor changes only.

- Switch to Maven 2 as build system. Maven 2 has much better multiproject
support than Maven 1, so building will be easier.

- Simplify the repository structure: No svn externals any more. This would
mean that all Torque components can only be released simultaneously, but
as we have done so in the past anyway and compatibility problems would
arise if we would'nt do so, this should not be problematic.

- Use Java 5 style generics and enumerations. One can use compiler
settings to produce pre-1.5-executable class files.

- Kick out village. Village is bad. See the issue tracker for details.
This would mean: create the sql to insert / update objects ourselves; do
the Torque type / SQL type mapping of variables orselves; create objects
directly from jdbc result sets.

- Use the Criteria object only to hold query data and another object to
hold update data. Criteria should not extend Hashtable any more nor
sahould it implement the map interface, cause query data is not a Map in
any sense (e.g. the same column names can appear more than once in a
criteria)

- Criterias should not be modified any more inside queries. Of one needs
modification, one can copy the criteria.

- Disentangle Query description and SQL creation code. In my eyes, it
would be ideal to port the MVC paradigm to the SQL creation: The criteria
is the model (what do I want to query), the view would cretae the SQL from
the Query, and the controller would be the Peer class which executes the
query.

- Use a column object to hold the column name in the runtime instead of
Strings. So one could remove all that distributed guesswork of what is
the table name, do we have a schema name or not etc. This would also have
the advantge that a String is clearly a value and not a column name.

- Make the generator more generic. I'd like to turn the generator into a
generiy code generation tool, which can be used to create all sort of
code, not just database access code. I'm currently working on a proposal.

   Any opinions ?

  Thomas

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: Torque 4.0 plan

2006-11-30 Thread Thomas Fischer

Ups, I knew I forgot something on the list. This was in my mind but did not
make it into the email.
As you wrote, the problem of static methods is that you cannot override its
behaviour. The beauty of static methods is that invocation is very simple.

The idea would be to have a static Wrapper class, which holds a singleton
of the class with the implementation, and which passes all its static calls
to the implementation class. There would be a setter of the singleton in
the static class, so the backing class would be exchangeable.
So one can use the static class if simple invocation is wanted, and the
implementation class if maximum flexibility is needed.

   Thomas

[EMAIL PROTECTED] schrieb am 30.11.2006 11:58:25:

 Is there any chance we can make the Peer classes non-static?
 Currently it's hard/impossible to override/extend these without making
 generator changes. Perhaps have some form of central registry to
 hold these classes so that they can be globally looked up but
 also replaced/extended if desired.

 The other suggestions are all very good - especially removing village.

 Thanks

 Joe

 On 29/11/06, Thomas Fischer [EMAIL PROTECTED] wrote:
 
  Now that the first Torque RC is outit is time to think about what we'd
  like
  to do as next version. Personally, I'd like to propose the following:
 
  - Next version should be 4.0. There can be major changes in the
version,
  but the 'look and feel' should change as little as possibl. The idea
  would be that one can recompile one's Torque 3.2 or 3.3 project with
the
  new Torque version and it should run with minor changes only.
 
  - Switch to Maven 2 as build system. Maven 2 has much better
multiproject
  support than Maven 1, so building will be easier.
 
  - Simplify the repository structure: No svn externals any more. This
would
  mean that all Torque components can only be released simultaneously,
but
  as we have done so in the past anyway and compatibility problems would
  arise if we would'nt do so, this should not be problematic.
 
  - Use Java 5 style generics and enumerations. One can use compiler
  settings to produce pre-1.5-executable class files.
 
  - Kick out village. Village is bad. See the issue tracker for details.
  This would mean: create the sql to insert / update objects ourselves;
do
  the Torque type / SQL type mapping of variables orselves; create
objects
  directly from jdbc result sets.
 
  - Use the Criteria object only to hold query data and another object to
  hold update data. Criteria should not extend Hashtable any more nor
  sahould it implement the map interface, cause query data is not a Map
in
  any sense (e.g. the same column names can appear more than once in a
  criteria)
 
  - Criterias should not be modified any more inside queries. Of one
needs
  modification, one can copy the criteria.
 
  - Disentangle Query description and SQL creation code. In my eyes, it
  would be ideal to port the MVC paradigm to the SQL creation: The
criteria
  is the model (what do I want to query), the view would cretae the SQL
from
  the Query, and the controller would be the Peer class which executes
the
  query.
 
  - Use a column object to hold the column name in the runtime instead of
  Strings. So one could remove all that distributed guesswork of what is
  the table name, do we have a schema name or not etc. This would also
have
  the advantge that a String is clearly a value and not a column name.
 
  - Make the generator more generic. I'd like to turn the generator into
a
  generiy code generation tool, which can be used to create all sort of
  code, not just database access code. I'm currently working on a
proposal.
 
 Any opinions ?
 
Thomas
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Torque 4.0 plan

2006-11-30 Thread Greg Monroe
 Thomas Fischer said:
 
 Now that the first Torque RC is outit is time to think about 
 what we'd like to do as next version. Personally, I'd like 
 to propose the following:
 

Can't complain about that list.  Only +0 items I'd list
would be on the Maven 2 conversion and the generic generator.

 - Switch to Maven 2 as build system. Maven 2 has much better 
   multiproject support than Maven 1, so building will be 
   easier.

My +0 for Maven 2 is based on the little bit I dug into it 
for the add-on stuff. It seemed to add a lot of complication 
and extra more effort to do thing outside the Maven 2 norm 
that was fairly easy in 1.  IMHO, build systems should take a 
minimum of time away from your development time, not become 
a subproject of it's own.  

But to be fair, it could be I just didn't take the time to 
learn it well enough. But if someone else is doing the work ;)  
who am I to complain...lol

 - Make the generator more generic. I'd like to turn the 
   generator into a generic code generation tool

I'm +0 on the idea of the generic generator.  I can see the
worth in this, but I'm not sure it's a core Torque thing. 
It seems like this should be like Torque and Turbine, some
of the ground work layed here but with a plan to split it
off into a separate project.  Plus, is this competing with
Velocity/Texen?  None of this is a show stopper, just thoughts
for fine tuning the proposal.

Here's some idea's I'll throw in the ring:

Better support for non-record type queries.  I.e., the 
stuff people do with executeQuery / Village Records.  Queries
of this type that come to mind are:

- Optimized Join queries that return data from multiple 
  tables (for creating master lists).

- Queries with functions.

To support this and also assist in the Village exorcism,
I'd propose making the BaseObject an actual storage 
implimentation, like Village Record or ResultsSet.  Internally
the data would be stored as objects in OrderedMap with the 
getBy/setBy methods being the BaseObject access points.

This would allow executeQuery to return a list of BaseObject
records.

Additionally, the generated record objects could make use
of this new base class to support things like isNull() on
primitives.  We could also use this to track modified and
unmodified column values, which would be very useful (e.g.
updating tables without primary keys). 

Take a serious look at DDLUtils integration, and maybe do 
a little encouraging to get that project to do a release/
Maven repo set up.

Some stuff that may be V4.5 features but might be nice to 
start planning for:

Add full support for views, since most of the common DBs
support them. E.g., a way to define them in the DTD, 
support for creation, etc.

Look at being able to generate object level views.  E.g., 
I'm always creating wrapper objects that are based on 
subsets of data from two or more related tables, with access, 
load, and store methods.  I'm thinking this would be a way 
to define business objects via XML and have them generated.
  
Support for lazy record object population.  Sometimes it's
better to retrieve a set of partially filled objects (e.g. 
doing a master list), and only totally fill the object when
needed.  Adding an isLoaded option to the isNull, isModified,
column level tracking would make this fairly easy.

A GUID based idBroker method to autogenerate keys without
needing access to a table.



Duke CE Privacy Statement
Please be advised that this e-mail and any files transmitted with it are 
confidential communication or may otherwise be privileged or confidential and 
are intended solely for the individual or entity to whom they are addressed.  
If you are not the intended recipient you may not rely on the contents of this 
email or any attachments, and we ask that you  please not read, copy or 
retransmit this communication, but reply to the sender and destroy the email, 
its contents, and all copies thereof immediately.  Any unauthorized 
dissemination, distribution or copying of this communication is strictly 
prohibited.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Torque 4.0 plan

2006-11-30 Thread Thomas Vandahl

Greg Monroe wrote:


Additionally, the generated record objects could make use
of this new base class to support things like isNull() on
primitives.  We could also use this to track modified and
unmodified column values, which would be very useful (e.g.
updating tables without primary keys). 


I'd throw primitives away completely. There is no advantage in keeping 
them. Especially with JDK 1.5.



Add full support for views, since most of the common DBs
support them. E.g., a way to define them in the DTD, 
support for creation, etc.


+1 on this. This shouldn't be too difficult to handle.

Bye, Thomas.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Torque 4.0 plan

2006-11-30 Thread Greg Monroe
 Thomas Vandahl said:
 
 Greg Monroe wrote:
 
  Additionally, the generated record objects could make use
  of this new base class to support things like isNull() on
  primitives.  We could also use this to track modified and
  unmodified column values, which would be very useful (e.g.
  updating tables without primary keys). 
 
 I'd throw primitives away completely. There is no advantage 
 in keeping them. Especially with JDK 1.5.

I think there's still benefit in having record objects with
primitive get/set field access methods.  They are like the 
static Peer methods, not the best way to do things, but they 
make coding easier.

But the underlying storage could be Object based with conversion
occuring in the generated field methods.  Even with these, the
underlying objects could still be access via the getBy/setBy 
methods.  

Of course, there would be a slight performance hit since the 
conversion takes place each time the method is called rather 
than at population time.

Duke CE Privacy Statement
Please be advised that this e-mail and any files transmitted with it are 
confidential communication or may otherwise be privileged or confidential and 
are intended solely for the individual or entity to whom they are addressed.  
If you are not the intended recipient you may not rely on the contents of this 
email or any attachments, and we ask that you  please not read, copy or 
retransmit this communication, but reply to the sender and destroy the email, 
its contents, and all copies thereof immediately.  Any unauthorized 
dissemination, distribution or copying of this communication is strictly 
prohibited.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r481086 - /db/torque/site/trunk/xdocs/navigation.xml

2006-11-30 Thread tfischer
Author: tfischer
Date: Thu Nov 30 13:31:48 2006
New Revision: 481086

URL: http://svn.apache.org/viewvc?view=revrev=481086
Log:
added a link to the torque 3.2 site in the navigation

Modified:
db/torque/site/trunk/xdocs/navigation.xml

Modified: db/torque/site/trunk/xdocs/navigation.xml
URL: 
http://svn.apache.org/viewvc/db/torque/site/trunk/xdocs/navigation.xml?view=diffrev=481086r1=481085r2=481086
==
--- db/torque/site/trunk/xdocs/navigation.xml (original)
+++ db/torque/site/trunk/xdocs/navigation.xml Thu Nov 30 13:31:48 2006
@@ -64,6 +64,7 @@
   item name=Previous releases 
href=/documentation/previous-releases.html collapse=true
 !-- The following href attributes need to be absolute links,
  Otherwise they will not work in an archived version of the site. 
--
+item name=Torque 3.2  
href=http://db.apache.org/torque/releases/torque-3.2/index.html; 
target=_blank/
 item name=Torque 3.1.1
href=http://db.apache.org/torque/releases/torque-3.1.1/index.html; 
target=_blank/
 item name=Torque 3.1  
href=http://db.apache.org/torque/releases/torque-3.1/index.html; 
target=_blank/
   /item



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Site redeployed

2006-11-30 Thread Thomas Fischer
I just redeployed the site to remove an issue with the 3.2 site archive 
and to bring the updated tutorial online. If there are any issues, 
especially in the site archive, please let me know.


Thomas

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Torque 4.0 plan

2006-11-30 Thread Thomas Fischer



On Fri, 1 Dec 2006, Jonathan Purvis wrote:


Hi,

Everything about the Torque 4.0 plans sounds good to me, especially
getting rid of Village.  However this one won't work:


- Use Java 5 style generics and enumerations. One can use compiler
settings to produce pre-1.5-executable class files.


The autoboxing in 1.5 of int to Integer uses Integer.valueOf(int),
which doesn't exist in 1.4.  Also, javac won't let you:

 $ javac -target 1.4 Generic.java
 javac: target release 1.4 conflicts with default source release 1.5

 $ javac -target 1.4 -source 1.5 Generic.java
 javac: source release 1.5 requires target release 1.5


You are right, I was not aware of this. So what do we do ? I'd guess most 
people will use java 1.5 by the time the new release is ready (I do not 
think less than a year's development time is realistic), but I'm also sure 
there are some users who cannot use Java 1.5.


Supporting 1.5 in the generator is the minimum option (we have that 
already), but my original idea was to port the runtime and the other stuff 
as well.


I'd guess if we do not do it in the step towards 4.0 we'll never make that 
transition.


I'm undecided. Any opinions ?

Thomas

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Torque 4.0 plan

2006-11-30 Thread Thomas Fischer

On Thu, 30 Nov 2006, Greg Monroe wrote:

...

- Switch to Maven 2 as build system. Maven 2 has much better
  multiproject support than Maven 1, so building will be
  easier.


My +0 for Maven 2 is based on the little bit I dug into it
for the add-on stuff. It seemed to add a lot of complication
and extra more effort to do thing outside the Maven 2 norm
that was fairly easy in 1.  IMHO, build systems should take a
minimum of time away from your development time, not become
a subproject of it's own.

But to be fair, it could be I just didn't take the time to
learn it well enough. But if someone else is doing the work ;)
who am I to complain...lol


I'd volunteer to set it up. Maven 2 has a better multiproject support than 
maven 1, so some stuff will also be easier. Also, it is much faster on 
building.
if there is trouble, we can still decide what we do when we have a 
prototype.





- Make the generator more generic. I'd like to turn the
  generator into a generic code generation tool


I'm +0 on the idea of the generic generator.  I can see the
worth in this, but I'm not sure it's a core Torque thing.
It seems like this should be like Torque and Turbine, some
of the ground work layed here but with a plan to split it
off into a separate project.


The generator is already quite a separate project which can be
used on its own. The only torque specific stuff now is the parsing of the
schema.xml and putting it into the database model. Ok, throw that out, and 
nothing is left of the generator as it is now, but here my idea was a 
replacement and not a slow migration. The torque specific stuff (no 
java, but meta-information) can go into the templates.



Plus, is this competing with
Velocity/Texen?


Well, my idea would be to support velcocity, of course, but also other 
templating languages like xslt, and also plain java. So it would be more 
powerful than texen, but yes, you could call it competing if you like.



...
Here's some idea's I'll throw in the ring:

Better support for non-record type queries.  I.e., the
stuff people do with executeQuery / Village Records.  Queries
of this type that come to mind are:

- Optimized Join queries that return data from multiple
 tables (for creating master lists).


you mean something like the DoSelectJoinXXX() queries ?


- Queries with functions.


+1


To support this and also assist in the Village exorcism,
I'd propose making the BaseObject an actual storage
implimentation, like Village Record or ResultsSet.  Internally
the data would be stored as objects in OrderedMap with the
getBy/setBy methods being the BaseObject access points.

This would allow executeQuery to return a list of BaseObject
records.

Additionally, the generated record objects could make use
of this new base class to support things like isNull() on
primitives.  We could also use this to track modified and
unmodified column values, which would be very useful (e.g.
updating tables without primary keys).


I'm note sure whether this is the best possible approach. I'd rather work 
with a jdbc result set and generate a method that directly populates an 
object from the jdbc result set. This has the advantage that you can rely 
on type conversion of the jdbcDriver (getAsInt etc) and do not have the 
trouble to store which type which object is. It is also faster and less 
memory-consuming.


This can be achieved in two different ways. Thomas V's favorite is just 
calling an abstract method in BasePeer which gets overridden in each 
concrete peer and which is called for each row in the resultSet. something 
like


ResultSet resultSet = doSelectSomething();
while(resultSet.next())
{
  resultList.add(createObject(resultSet))
}

and the createObject() method would be generated for each peer.

My favourite is to use an ObjectCreator class, which would be called for 
each row in a resultSet and create an object out of it. The concrete Peer 
itself could be the Object creator.


The first has the advantage of being the simplest possible approach, the 
second is more flexible (the method which does the selects and calls the 
ObjectCreator could be used for custom object creators, which use the 
values in the data row in any way they like)., and so provide a 
replacement for the doSelectVollageRecords, which is uften used for 
custom selects now.



Take a serious look at DDLUtils integration, and maybe do
a little encouraging to get that project to do a release/
Maven repo set up.


+1


Some stuff that may be V4.5 features but might be nice to
start planning for:

Add full support for views, since most of the common DBs
support them. E.g., a way to define them in the DTD,
support for creation, etc.


+1 (repeating myself)


Look at being able to generate object level views.  E.g.,
I'm always creating wrapper objects that are based on
subsets of data from two or more related tables, with access,
load, and store methods.  I'm thinking this would be a way
to define business objects via XML and have them 

Re: Torque 4.0 plan

2006-11-30 Thread Joe Carter

Personally I'd just have the singleton and ditch the static wrapper
completely,
however I recognise that having the wrapper would keep is closer to what
exists already, so I'm not overly concerned. A method to get the singleton
would make sense to match the set and would allow you to get an extended
version
of the back-end should that be available.

Thanks

Joe

On 30/11/06, Thomas Fischer [EMAIL PROTECTED] wrote:



Ups, I knew I forgot something on the list. This was in my mind but did
not
make it into the email.
As you wrote, the problem of static methods is that you cannot override
its
behaviour. The beauty of static methods is that invocation is very simple.

The idea would be to have a static Wrapper class, which holds a singleton
of the class with the implementation, and which passes all its static
calls
to the implementation class. There would be a setter of the singleton in
the static class, so the backing class would be exchangeable.
So one can use the static class if simple invocation is wanted, and the
implementation class if maximum flexibility is needed.

   Thomas

[EMAIL PROTECTED] schrieb am 30.11.2006 11:58:25:

 Is there any chance we can make the Peer classes non-static?
 Currently it's hard/impossible to override/extend these without making
 generator changes. Perhaps have some form of central registry to
 hold these classes so that they can be globally looked up but
 also replaced/extended if desired.

 The other suggestions are all very good - especially removing village.

 Thanks

 Joe




Re: Torque 4.0 plan

2006-11-30 Thread Henning P. Schmiedehausen
Joe Carter [EMAIL PROTECTED] writes:

Is there any chance we can make the Peer classes non-static?
Currently it's hard/impossible to override/extend these without making
generator changes. Perhaps have some form of central registry to
hold these classes so that they can be globally looked up but
also replaced/extended if desired.

At that point you will need sort of a context object like all the other O/R 
mappers have. :-)

The other suggestions are all very good - especially removing village.

Definitely.

Best regards
Henning

-- 
Henning P. Schmiedehausen  -- [EMAIL PROTECTED] | J2EE, Linux,
91054 Buckenhof, Germany   -- +49 9131 506540 | Apache person
Open Source Consulting, Development, Design | Velocity - Turbine guy

  Save the cheerleader. Save the world.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Torque 4.0 plan

2006-11-30 Thread Henning P. Schmiedehausen
Greg Monroe [EMAIL PROTECTED] writes:

 - Switch to Maven 2 as build system. Maven 2 has much better 
   multiproject support than Maven 1, so building will be 
   easier.

My +0 for Maven 2 is based on the little bit I dug into it 
for the add-on stuff. It seemed to add a lot of complication 
and extra more effort to do thing outside the Maven 2 norm 
that was fairly easy in 1.  IMHO, build systems should take a 
minimum of time away from your development time, not become 
a subproject of it's own.  

I'd *strongly* suggest thinking about the maven support. Maven changed
from 1 to 2 completely (different POMs, different program name,
different properties, different plugins, different docs) so people
moving from m1 to m2 had to throw all their configs (project.xml,
maven.xml, properties) away and rework them (most of the time from
scratch).

And the projects relying on m1 suddently find out that people no
longer have the 'old' maven installed and complain about not being
able to build the project.

There is no guarantee that moving from m2 to m3 will not be the same
thing.

There *is* a simple solution: Provide basic project building with ant.

ant stood the test of time quite nicely. Keep the maven (m1, m2) build
optional but build your release archives with ant.

Best regards
Henning

-- 
Henning P. Schmiedehausen  -- [EMAIL PROTECTED] | J2EE, Linux,
91054 Buckenhof, Germany   -- +49 9131 506540 | Apache person
Open Source Consulting, Development, Design | Velocity - Turbine guy

  Save the cheerleader. Save the world.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Torque 4.0 plan

2006-11-30 Thread Henning P. Schmiedehausen
Thomas Vandahl [EMAIL PROTECTED] writes:

Greg Monroe wrote:

 Additionally, the generated record objects could make use
 of this new base class to support things like isNull() on
 primitives.  We could also use this to track modified and
 unmodified column values, which would be very useful (e.g.
 updating tables without primary keys). 

I'd throw primitives away completely. There is no advantage in keeping 
them. Especially with JDK 1.5.

You lose all the J2EE 1.4 people. J2EE will be (in the real world) on
JDK 1.4 for a long time.

There are tools like Retroweaver but throwing primitive support out is
IMHO too early. Hibernate did and people still complain about it.

Best regards
Henning



-- 
Henning P. Schmiedehausen  -- [EMAIL PROTECTED] | J2EE, Linux,
91054 Buckenhof, Germany   -- +49 9131 506540 | Apache person
Open Source Consulting, Development, Design | Velocity - Turbine guy

  Save the cheerleader. Save the world.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Torque 4.0 plan

2006-11-30 Thread Henning P. Schmiedehausen
Joe Carter [EMAIL PROTECTED] writes:

Personally I'd just have the singleton and ditch the static wrapper
completely,
however I recognise that having the wrapper would keep is closer to what
exists already, so I'm not overly concerned. A method to get the singleton
would make sense to match the set and would allow you to get an extended
version
of the back-end should that be available.

If you think about a singleton, please separate the singleton class
and the implementation class (don't have the static getInstance()
method and a possible private C'tor in the implementation). If you
separate these, it is possible for projects using e.g. Spring to
manage the classes through the framework.

Even better, google for 'evil singleton' and read the first few links...

Best regards
Henning

-- 
Henning P. Schmiedehausen  -- [EMAIL PROTECTED] | J2EE, Linux,
91054 Buckenhof, Germany   -- +49 9131 506540 | Apache person
Open Source Consulting, Development, Design | Velocity - Turbine guy

  Save the cheerleader. Save the world.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]