In your unit tests you may simply create an instance of ServerRuntime with a 
set of custom modules. Or use DIBootstrap.createInjector for more isolated 
testing of DI.
 
Cayenne sure takes the full advantage of DI in its own tests:

http://svn.apache.org/repos/asf/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/DICase.java
http://svn.apache.org/repos/asf/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java

Not sure if that's directly applicable to your tests though, but still may give 
you some ideas.

Andrus

On Sep 17, 2012, at 10:20 AM, Juan José Gil <[email protected]> wrote:

> Ok, I'll try this option to... I need it for my unit tests.
> To do this I need to create an injector? Is ther a TestCase I could extend?
> 
> Regards,
> Juanjo
> 
> 2012/9/17 Andrus Adamchik <[email protected]>
> 
>> In 3.1 you can also do that with a custom module:
>> 
>>  binder.bindList(Constants.SERVER_USER_TYPES_LIST)
>>                .add(new XyzType())
>>                .add(new AbcType());
>> 
>> Still need to document that in the new cayenne-guide.pdf. BTW, check out
>> org.apache.cayenne.configuration.Constants - it declares all supported
>> extension points. Then you may take a look at ServerModule sources to see
>> what Cayenne currently uses for each of those things.
>> 
>> Andrus
>> 
>> On Sep 17, 2012, at 4:22 AM, Tore Halset <[email protected]> wrote:
>>> Hello.
>>> 
>>> I do it this way with 3.1.
>>> 
>>>           ServerRuntime runtime = .....
>>>           DataDomain domain = runtime.getDataDomain();
>>>           DataNode node = domain.getDataNode("mydatanode");
>>>           ExtendedTypeMap extendedTypes =
>> node.getAdapter().getExtendedTypes();
>>>           extendedTypes.registerType(new ColorType());
>>>           extendedTypes.registerType(new
>> WKTGeometryType(Geometry.class));
>>> 
>>> Btw, you should use 3.1B instead of 3.1M as B is newer.
>>> 
>>> Regards,
>>> Tore Halset.
>>> 
>>> On Sep 17, 2012, at 02:11 , Juan José Gil wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I'm trying to use 3.1M3 version and I've noted that my ExtendedType
>>>> registrations aren't working anymore.
>>>> I've looked at docs, but they don't seem to be update. So I had readed
>> the
>>>> unit tests at svn; but I did not understand them :(
>>>> 
>>>> Has anynoe already solved this problem?
>>>> 
>>>> The errors are:
>>>> 
>>>> import org.apache.cayenne.BaseContext;
>>>> import org.apache.cayenne.ObjectContext;
>>>> import org.apache.cayenne.access.DataContext;
>>>> import org.apache.cayenne.access.DataDomain;
>>>> import org.apache.cayenne.access.DataNode;
>>>> import org.apache.cayenne.conf.Configuration;
>>>> 
>>>> ...
>>>> 
>>>> @Before public void setupCayenne() {
>>>>  final DataDomain domain =
>>>> Configuration.getSharedConfiguration().getDomain(); // <-- it does not
>> know
>>>> "Configuration"
>>>>  for (final DataNode node : domain.getDataNodes()) {
>>>> 
>>>> 
>> node.getAdapter().getExtendedTypes().registerType(DateTimeType.INSTANCE);
>>>> 
>>>> 
>> node.getAdapter().getExtendedTypes().registerType(LocalDateType.INSTANCE);
>>>> 
>>>> 
>> node.getAdapter().getExtendedTypes().registerType(LocalDateTimeType.INSTANCE);
>>>> 
>>>> 
>> node.getAdapter().getExtendedTypes().registerType(LocalTimeType.INSTANCE);
>>>>  }
>>>> 
>>>>  final ObjectContext context = DataContext.createDataContext(); // <--
>>>> this method doesn't exists anymore
>>>>  BaseContext.bindThreadObjectContext(context);
>>>> }
>>>> 
>>>> is there a sample I could reach?
>>>> 
>>>> Best Regards
>>>> Juanjo
>>> 
>>> 
>> 
>> 

Reply via email to