cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Changing the size of the snapshot cache in code
Date Tue, 21 Feb 2017 19:10:24 GMT
Hmm.. Custom modules used to override builder modules in the past. Looks like this is no longer
the case since M4 (and I no longer remember what was the motivation for such reordering).

Anyways, since DataRowStore is initialized lazily, you can create DataRowStore on your own
after Cayenne startup and use DataDomain.setSharedSnapshotCache(..). Not ideal, but should
work.

Note to self:

* We need to port property-based init flow for DataDomain into DI.
* SyntheticNodeDataDomainProvider should be folded in the main DataDomainProvider (though
we need to distinguish a case of "disconnected" stack and a stack that has a known DataSource,
and simply needs an implicit DataNode).

Andrus

> On Feb 21, 2017, at 2:12 PM, Hugi Thordarson <hugi@godurkodi.is> wrote:
> 
> I created a custom DataDomainProvider, but it never gets used. The reason is that I’m
using serverRuntimeBuilder.dataSource( DataSource ) to set the DataSource. This causes ServerRuntimeBuilder
to set it’s dataSourceFactory, which then causes it to bind it’s own SyntheticNodeDataDomainProvider
when it invokes it’s builderModules() method at build time, overriding my own DataDomainProvider.
> 
> <PastedGraphic-1.png>
> 
> How best to get around this?
> 
> - hugi
> 
> 
> 
>> On 17. feb. 2017, at 06:59, Andrus Adamchik <andrus@objectstyle.org> wrote:
>> 
>> Only properties defined in org.apache.cayenne.configuration.Constants are recognized
by DI. DataRowStore.SNAPSHOT_CACHE_SIZE_PROPERTY is not one of them. 
>> 
>> We were actually going to bring the whole DataDomain configuration process into DI
form the Modeler (perhaps right after M5). For now your best bet is overriding DataDomainProvider.
>> 
>> Andrus
>> 
>> 
>> 
>>> On Feb 16, 2017, at 11:06 PM, Hugi Thordarson <hugi@karlmenn.is> wrote:
>>> 
>>> Can’t do that, the signature for put is ( String, <? extends String>
).
>>> I've also tried a different method:
>>> 
>>> builder.addModule( binder -> binder.bindMap( Constants.PROPERTIES_MAP ).put(
DataRowStore.SNAPSHOT_CACHE_SIZE_PROPERTY, 123456 ) );
>>> 
>>> …where I used an int, doesn’t work either.
>>> 
>>> - hugi
>>> 
>>> 
>>>> On 16. feb. 2017, at 20:03, John Huss <johnthuss@gmail.com> wrote:
>>>> 
>>>> Maybe try using an int instead of the string "123456"?
>>>> 
>>>> On Thu, Feb 16, 2017 at 2:00 PM Hugi Thordarson <hugi@karlmenn.is>
wrote:
>>>> 
>>>>> Hi all,
>>>>> I’m attempting to change the size of the snapshot cache in code (not
in
>>>>> the project xml-file). It seems this should be set through a property,
>>>>> right? Well, I’m just not managing to set properties in code. I’ve
set
>>>>> properties in code previously using something like the below, but they
just
>>>>> don’t seem to take?
>>>>> 
>>>>> builder.addModule( binder -> ServerModule.contributeProperties( binder
>>>>> ).put( DataRowStore.SNAPSHOT_CACHE_SIZE_PROPERTY, "123456" ) )
>>>>> 
>>>>> Any ideas?
>>>>> 
>>>>> - hugi
>>> 
>> 
> 


Mime
View raw message