@Guido, is the property "connectionProperties" sufficient which is a semi-colon 
separated string:
http://commons.apache.org/proper/commons-dbcp/configuration.html

@Francesco: I understand your concern. On the other hand you could argue that 
the jpa.properties file becomes completely BasicDataSource dependent. But maybe 
the connectionProperties  property is sufficient.

Thanks
Oli
________________________________________
From: Francesco Chicchiriccò [ilgro...@apache.org]
Sent: 09 December 2013 09:29
To: dev@syncope.apache.org
Subject: Re: BasicDataSource usage in persistence.xml

On 08/12/2013 14:54, Oliver Wulff wrote:
> Hi there
>
> JIRA raised and patch applied:
> https://issues.apache.org/jira/browse/SYNCOPE-460
>
> WRT the BasicDataSource properties... what do you think about adding only 
> connectionProperties which could be a file with the BasicDataSource 
> properties.

Patch looks fine, thanks!

I would avoid proliferating of properties file that would make harder
times with generation from archetype, so I'd keep with adding entries in
persistence.properties.

I will wait till we come to an agreement before applying your patch.

Regards.

> ________________________________________
> From: Francesco Chicchiriccò [ilgro...@apache.org]
> Sent: 06 December 2013 16:21
> To: dev@syncope.apache.org
> Subject: Re: BasicDataSource usage in persistence.xml
>
> On 06/12/2013 16:17, Guido Wimmel wrote:
>> Hi,
>>
>> I wouldn't keep Oliver from providing a patch wrt. his original request,
>> if he'd like to ;-)
>> Though if not, I can possibly also provide something - maybe next week.
>>
>> I'm only unsure about which of the connection pool settings exactly should
>> be externalized into properties,
> I'd say _any_ available property.
>
>> and about the isolation level setting (maybe one
>> could make this configurable as well, with default READ_COMMITTED?).
> +1
>
> For whoever will take care of this: please
>    (1) consider *all* persistence.properties found under core/
>    (2) include commons-dbcp 1.4 as direct dependency either in root
> pom.xml (<dependencyManagement/>) and core/pom.xml.
>
> Regards.
>
>> Gesendet: Freitag, 06. Dezember 2013 um 15:38 Uhr
>> Von: "Oliver Wulff" <owu...@talend.com>
>> An: "dev@syncope.apache.org" <dev@syncope.apache.org>
>> Betreff: RE: BasicDataSource usage in persistence.xml
>> Will do ;-)
>>
>> Cheers
>> Oli
>> ________________________________________
>> From: Francesco Chicchiriccò [ilgro...@apache.org]
>> Sent: 06 December 2013 13:22
>> To: dev@syncope.apache.org
>> Subject: Re: BasicDataSource usage in persistence.xml
>>
>> On 06/12/2013 12:49, Guido Wimmel wrote:
>>> Hi Oliver,
>>>
>>> FYI: we use such a setup (with dbcp.BasicDataSource) in our project, thus 
>>> avoiding the need to
>>> configure a data source in the container. This works fine; also with our 
>>> own unit/integration tests.
>>>
>>> We also used the standard MySQL isolation level (REPEATABLE_READ), as we 
>>> had problems with our standard
>>> MySQL configuration related to Binary Logs ("InnoDB is limited to 
>>> row-logging when transaction isolation level
>>> is READ_COMMITTED or READ_UNCOMMITTED"). This also works fine, but probably 
>>> the explicit setting of
>>> READ_COMMITTED as a transaction level was chosen on purpose.
>>>
>>> We externalized some more properties of BasicDataSource (testOnBorrow, 
>>> testOnReturn, removeAbandoned,
>>> initialSize, maxActive, minIdle, removeAbandoned, 
>>> timeBetweenEvictionRunsMillis, minEvictableIdleTimeMillis,
>>> validationQuery). IMO, at least the size parameters (initialSize, 
>>> maxActive, minIdle) and the validation query
>>> (which can be database specific) should be configurable via properties. 
>>> BasicDataSource should also probably be a direct
>>> Maven dependency then.
>>>
>>> I'd be +1 for this change, as it would spare us the need of overwriting 
>>> persistenceContext.xml ;-)
>> Well, what are you still waiting for providing a patch, then? ;-)
>>
>>>> Von: "Francesco Chicchiriccò" <ilgro...@apache.org>
>>>>> Hi there
>>>> Hi Oliver,
>>>>> Wouldn't it make sense to use a BasicDataSource instead of 
>>>>> DriverManagerDataSource as it is also recommended from Spring:
>>>>> http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jdbc.html#jdbc-connections
>>>> Short answer: Yes, why not?
>>>> Long answer follows.
>>>>
>>>> The localDataSource bean in persistenceContext.xml is there for
>>>> providing a DataSource for non-production usage: unit and integration
>>>> tests, various development profiles [1], embedded mode [2] and
>>>> standalone distribution [3].
>>>>
>>>> As you can see from syncopeContext.xml, things are arranged so that at
>>>> first a JNDI lookup for a proper DataSource is performed: this becomes
>>>> of fundamental importance in production environments, as we suggest [4].
>>>>
>>>> Moreover, usage of BasicDataSource implies commons-dbcp dependency,
>>>> which is currently indirectly pulled in by Activiti
>>>> (org.activiti:activiti-spring, exactly).
>>>>
>>>> Hence, I am +-0 for this change.
>>>>
>>>>> Instead of this:
>>>>>
>>>>> <bean id="localDataSource" 
>>>>> class="org.springframework.jdbc.datasource.IsolationLevelDataSourceAdapter">
>>>>> <property name="targetDataSource">
>>>>> <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>>>>> <property name="driverClassName" value="${jpa.driverClassName}"/>
>>>>> <property name="url" value="${jpa.url}"/>
>>>>> <property name="username" value="${jpa.username}"/>
>>>>> <property name="password" value="${jpa.password}"/>
>>>>> </bean>
>>>>> </property>
>>>>> <property name="isolationLevelName" value="ISOLATION_READ_COMMITTED"/>
>>>>> </bean>
>>>>>
>>>>>
>>>>> we can configure this bean:
>>>>>
>>>>> <bean id="localDataSource" 
>>>>> class="org.springframework.jdbc.datasource.IsolationLevelDataSourceAdapter">
>>>>> <property name="targetDataSource">
>>>>> <bean class="org.apache.commons.dbcp.BasicDataSource"
>>>>> destroy-method="close">
>>>>> <property name="driverClassName" value="${jpa.driverClassName}"/>
>>>>> <property name="url" value="${jpa.url}"/>
>>>>> <property name="username" value="${jpa.username}"/>
>>>>> <property name="password" value="${jpa.password}"/>
>>>>> </bean>
>>>>> </property>
>>>>> <property name="isolationLevelName" value="ISOLATION_READ_COMMITTED"/>
>>>>> </bean>
>>>> If you like such change, please file an issue and attach a patch there.
>>>>
>>>> Regards.
>>>>
>>>> [1] 
>>>> http://syncope.apache.org/building.html#More_build_profiles[http://syncope.apache.org/building.html#More_build_profiles]
>>>> [2] 
>>>> https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+in+embedded+mode[https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+in+embedded+mode]
>>>> [3] 
>>>> https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+standalone+distribution[https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+standalone+distribution]
>>>> [4] 
>>>> https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+in+real+environments#RunSyncopeinrealenvironments-Usedatasource[https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+in+real+environments#RunSyncopeinrealenvironments-Usedatasource]

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member
http://people.apache.org/~ilgrosso/

Reply via email to