|
From: <jue...@we...> - 2004-05-28 12:30:59
|
Thomas,
=20
A further naming issue: I've recently introduced a common base class for =
SqlOutParameter and SqlReturnResultSet, with the name =
"ResultSetAwareSqlParameter". However, I've just noticed that that name =
is not entirely appropriate: "ResultSetSupportingSqlParameter" would =
probably be better. What do you think?
=20
Juergen
=20
________________________________
Von: spr...@li... im Auftrag von =
j=FCrgen h=F6ller [werk3AT]
Gesendet: Fr 28.05.2004 14:11
An: spr...@li...; =
spr...@li...
Betreff: Re: [Springframework-user] JNDI dataSource with separate =
user/pas sword/schema strings
Hmm... you've got a point there. So votes please: =
"UserCredentialsDataSourceProxy" or "UserCredentialsDataSourceAdapter"? =
Or maybe a different, even better name?
Juergen
P.S.: Let's move this to the developer list.
________________________________
Von: spr...@li... im Auftrag von =
Thomas Risberg
Gesendet: Fr 28.05.2004 13:39
An: spr...@li...
Betreff: Re: [Springframework-user] JNDI dataSource with separate =
user/pas sword/schema strings
Don't want to nit pick about the naming, but I think it looks like an
Adapter as well as a Proxy.
JdbcTemplate
|
|
getConnection()
|
|
v
UserCredentialsDataSource
|
|
getConnection(username, password)
|
|
v
DataSource
Thomas
j=FCrgen h=F6ller [werk3AT] wrote:
>Regarding the naming: IMO, such a DataSource is a "proxy" rather than =
an "adapter", as it exposes the same interface as the target.
>
>Juergen
>
>
>________________________________
>
>Von: spr...@li... im Auftrag von =
j=FCrgen h=F6ller [werk3AT]
>Gesendet: Fr 28.05.2004 10:20
>An: spr...@li...
>Betreff: Re: [Springframework-user] JNDI dataSource with separate =
user/pas sword/schema strings
>
>
>
>I consider that a good idea! We've actually discussed it before, =
exactly for that purpose.
>
>So I've just added a "UserCredentialsDataSourceProxy" to our =
jdbc.datasource package, taking "targetDataSource", "username" and =
"password" as bean properties. On "getConnection()" calls, it simply =
delegates to the "getConnection(username, password)" method of the =
target DataSource with the given user credentials.
>
>Additionally, there's also the option of setting thread-bound =
credentials, via the "setCredentialsForCurrentThread(username, =
password)" method". The application needs to make sure that such =
thread-bound credentials are removed at the end of the operation, via =
the "removeCredentialsFromCurrentThread()" method.
>
>If noone objects, this will be part of 1.0.2, as it arguably is a =
simple and straightforward addition that does not affect any other code.
>
>Juergen
>
>
>________________________________
>
>Von: spr...@li... im Auftrag von =
Thomas Risberg
>Gesendet: Fr 28.05.2004 05:04
>An: spr...@li...
>Betreff: Re: [Springframework-user] JNDI dataSource with separate =
user/pas sword/schema strings
>
>
>
>This has come up before and we should figure out the best recommended
>solution. We could use a custom datasource adapter that has a =
reference
>to the real datasource and adds username/password to the get connection
>call. This username/password could be set via DI or stored in a thread
>local in the case of each invocation having their own username/password
>combo.
>
>Thomas
>
>
>Colin Sampaleanu wrote:
>
>
>
>>Robert,
>>
>>Your variant below will work actually, since Spring is not going to
>>get the DataSource and connection from it, but rather Hibernate itself
>>will get the DataSource from JNDI and do a getConnection(name, pass)
>>(via its own DatasourceConnectionProvider class).
>>
>>As per my previous email, Spring has no ability to call
>>getConnection(name, pass) on a dataSource, so you need to make sure
>>that all your operations can be done via Hibernate code... To be safe,
>>you probably should not use Spring's HibernateTransactionManager and
>>DataSourceTransactionManager classes, since they make the DataSource
>>(either set directly or in the case of the former also pulled out from
>>the SessionFactory) bound to the current thread/transaction, and
>>expose the ability to get a connection from it with DataSourceUtils,
>>which has no ability to do anything more than a simple getConnection()
>>call to get a connection. So you would probably want to run with
>>JTATransactionManager.
>>
>>Juergen, I don't know if you've been following this thread, but we
>>should think about enhaning Spring to allow specifying a name/pass and
>>make it user getConnection(name, pass) in that case...
>>
>>Colin
>>
>>
>>Loren, Robert wrote:
>>
>> =20
>>
>>>Greetings-
>>>
>>>Ok, now I've got this working.
>>>So it seems that I now need something like
>>>PropertyPlaceholderConfigurer,
>>>only using JNDI.
>>>
>>>----------------------------------------
>>>IN appcontext.xml:
>>>
>>> <!-- Hibernate SessionFactory -->
>>> <bean id=3D"sessionFactory"
>>>class=3D"org.springframework.orm.hibernate.LocalSessionFactoryBean">
>>> <!--<property name=3D"dataSource"><ref
>>>local=3D"dataSource"/></property>-->
>>> <property name=3D"mappingResources">
>>> <value>/WEB-INF/OurApp.hbm.xml</value>
>>> </property>
>>> <property name=3D"hibernateProperties">
>>> <props>
>>> <prop
>>>key=3D"hibernate.dialect">${hibernate.dialect}</prop>
>>> <prop
>>>key=3D"hibernate.show_sql">${hibernate.showsql}</prop>
>>> <prop
>>>key=3D"hibernate.connection.username">${hibernate.connection.username}=
</prop
>>>
>>>
>>>
>>> <prop
>>>key=3D"hibernate.connection.password">${hibernate.connection.password}=
</prop
>>>
>>>
>>>
>>> <prop
>>>key=3D"hibernate.connection.datasource">${hibernate.connection.datasou=
rce}</
>>>
>>>prop>
>>> </props>
>>> </property>
>>> </bean>
>>>--------------------------------------
>>>IN jdbc.properties:
>>>
>>>hibernate.dialect=3Dnet.sf.hibernate.dialect.DB2Dialect
>>>hibernate.showsql=3Dtrue
>>>hibernate.connection.username=3Dme
>>>hibernate.connection.password=3Dmypassword
>>>hibernate.connection.datasource=3Djdbc/mydatasource
>>>
>>>Let's see what I can find,
>>>Rob
>>>
>>>-----Original Message-----
>>>From: Loren, Robert [mailto:Rob...@ca...]
>>>Sent: Thursday, May 27, 2004 7:16 PM
>>>To: 'spr...@li...'
>>>Subject: RE: [Springframework-user] JNDI dataSource with separate
>>>user/pas sword/schema strings
>>>
>>>
>>>Thanks for your reply, Colin.
>>>
>>>Yes, we do want the datasource to be setup by the admin in the
>>>container,
>>>then accessed by the app. In DB2, you can pass the username and =
password
>>>to the getConnection() method of the datasource, and that is what
>>>most of
>>>our in-house code is doing. We then use the schema name in our =
queries
>>>when connecting up. I guess it's the runtime use of these parameters,
>>>through the session/template, that we're trying to emulate. If the
>>>datasource could be injected with the user and password somehow, that
>>>would be fine, but I don't see that as possible.
>>>
>>>Hibernate has properties such as "hibernate.connection.username" that
>>>seem
>>>available for the SessionFactory. I'm trying to get those to work =
with
>>>strings at the moment. But if successful there, I'd like to somehow =
swap
>>>them out with JNDI-located strings.
>>>
>>>Hope this gives you more,
>>>Rob
>>>
>>>-----Original Message-----
>>>From: Colin Sampaleanu [mailto:col...@ex...]
>>>Sent: Thursday, May 27, 2004 6:47 PM
>>>To: spr...@li...
>>>Subject: Re: [Springframework-user] JNDI dataSource with separate
>>>user/password/schema strings
>>>
>>>
>>>Loren, Robert wrote:
>>>
>>>
>>>
>>> =20
>>>
>>>>Hi,
>>>>
>>>>We're looking to deploy into a WAS 5/DB2 environment with a
>>>>Spring/Hibernate-based application.
>>>>
>>>>We're excited, but worried at this point, trying to figure out how
>>>>to get
>>>>a pooled data source wired up from WAS's JNDI store.
>>>>
>>>>It was very easy to wire the data source itself, using the
>>>>JndiObjectFactoryBean from looking at the examples. However, our
>>>>Architecture group wants us to store the name, password, and schema =
we
>>>>
>>>> =20
>>>>
>>>use
>>>
>>>
>>> =20
>>>
>>>>externally to the data source itself.
>>>>
>>>>I'm looking for something similar to how the strings are stored in =
the
>>>>jdbc.properties file for DriverManagerDataSource, only maybe using =
the
>>>>JndiObjectFactoryBeans wired into the SessionFactory properties.
>>>>
>>>>Does anyone have sample code on how this might be configured? Should =
I
>>>>maybe be posting this to the developer group?
>>>>
>>>>Thanks very much for any help in advance, and thanks for Spring,
>>>>
>>>>Rob
>>>>
>>>>
>>>>
>>>> =20
>>>>
>>>Rob,
>>>
>>>I'm a little confused about what you're trying to do, and about the
>>>DataSource lifecycle you want to achieve. I presume that as opposed
>>>to the normal scenario where a sysadmin or deployer sets up the one
>>>datasource (which gets bound to JNDI) in the appserver, you would
>>>like Spring to create the datasource, based on config params which
>>>are provided by/to Spring?
>>>
>>>There is nothing stopping you from creating something like an Apache
>>>DBCP Datasource, and using that. However, you are then going to give
>>>up the much more robust WAS DataSource impl. which is integrated into
>>>the container and the container's transaction manager.
>>>
>>>Can you provide more details?
>>>
>>>Regards,
>>>Colin
>>>
>>>
>>> =20
>>>
>>
>>-------------------------------------------------------
>>This SF.Net email is sponsored by: Oracle 10g
>>Get certified on the hottest thing ever to hit the market... Oracle
>>10g. Take an Oracle 10g class now, and we'll give you the exam FREE.
>>http://ads.osdn.com/?ad_id=3D3149&alloc_id=3D8166&op=3Dclick
>>_______________________________________________
>>Springframework-user mailing list
>>Spr...@li...
>>https://lists.sourceforge.net/lists/listinfo/springframework-user
>>
>>
>>
>> =20
>>
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: Oracle 10g
>Get certified on the hottest thing ever to hit the market... Oracle =
10g.
>Take an Oracle 10g class now, and we'll give you the exam FREE.
>http://ads.osdn.com/?ad_id=3D3149&alloc_id=3D8166&op=3Dclick
>_______________________________________________
>Springframework-user mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-user
>
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: Oracle 10g
>Get certified on the hottest thing ever to hit the market... Oracle =
10g.
>Take an Oracle 10g class now, and we'll give you the exam FREE.
>http://ads.osdn.com/?ad_id149&alloc_id=8166&op=3Dick
>_______________________________________________
>Springframework-user mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-user
>
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: Oracle 10g
>Get certified on the hottest thing ever to hit the market... Oracle =
10g.
>Take an Oracle 10g class now, and we'll give you the exam FREE.
>http://ads.osdn.com/?ad_id149&alloc_id=8166&op=3Dclick
>_______________________________________________
>Springframework-user mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-user
>
>
>
>
>
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3D3149&alloc_id=3D8166&op=3Dclick
_______________________________________________
Springframework-user mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-user
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149&alloc_id=8166&op=3Dick
_______________________________________________
Springframework-user mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-user
|