Modified:
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/Select.java
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/ToManyViewer.java
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/ToOneEditor.java
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/internal/ObjectContextWrapper.java
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/internal/PersistentManagerImpl.java
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/CayenneCommitAfterWorker.java
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/ObjectContextInjectionProvider.java
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/TapestryCayenneCoreModule.java
/trunk/tapestry5-cayenne-core/src/test/java/com/googlecode/tapestry5cayenne/services/TestObjectContextInjectionProvider.java
/trunk/tapestry5-cayenne-server/src/main/java/com/googlecode/tapestry5cayenne/services/TapestryCayenneModule.java
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/TapestryCayenneIntegrationTests.java
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/TestBlockContributions.java
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/app0/pages/Index.java
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/internal/TestPersistentEntitySelectModel.java
Replaced:
/trunk/tapestry5-cayenne-core/src/main/resources/com/googlecode/tapestry5cayenne/components/Select.tml
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/Select.java
Tue Nov 18 07:40:33 2008
+++
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/Select.java
Sat Mar 12 12:33:24 2011
@@ -1,22 +1,22 @@
package com.googlecode.tapestry5cayenne.components;
+import com.googlecode.tapestry5cayenne.PersistentEntitySelectModel;
+import com.googlecode.tapestry5cayenne.services.PersistentManager;
import org.apache.cayenne.Persistent;
import org.apache.tapestry5.ComponentResources;
+import org.apache.tapestry5.Field;
import org.apache.tapestry5.SelectModel;
+import org.apache.tapestry5.annotations.Component;
import org.apache.tapestry5.annotations.Parameter;
-import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.ioc.annotations.Inject;
-import com.googlecode.tapestry5cayenne.PersistentEntitySelectModel;
-import com.googlecode.tapestry5cayenne.services.PersistentManager;
-
/**
* Displays a selection list for Cayenne persistent objects. Designed to
* be used inside of custom forms.
*
* @author Kevin Menard
*/
-public class Select
+public class Select implements Field
{
@Inject
private ComponentResources resources;
@@ -24,18 +24,43 @@
@Inject
private PersistentManager manager;
- @Property
- @Parameter(required = true)
- @SuppressWarnings("unused")
+ @Parameter
private Persistent value;
- @Property
- @Parameter
- @SuppressWarnings("unused")
- private String label;
-
+ @Component(
+ inheritInformalParameters = true,
+ parameters = {
+ "value=inherit:value",
+ "model=model"
+ },
+ publishParameters
= "blankLabel,blankOption,clientId,disabled,encoder,label,validate,zone"
+ )
+ private org.apache.tapestry5.corelib.components.Select select;
+
+ @SuppressWarnings("unchecked")
public SelectModel getModel()
{
return new
PersistentEntitySelectModel(resources.getBoundType("value"), manager);
}
-}
+
+
+ public String getControlName() {
+ return select.getControlName();
+ }
+
+ public String getLabel() {
+ return select.getLabel();
+ }
+
+ public boolean isDisabled() {
+ return select.isDisabled();
+ }
+
+ public boolean isRequired() {
+ return select.isRequired();
+ }
+
+ public String getClientId() {
+ return select.getClientId();
+ }
+}
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/ToManyViewer.java
Thu Mar 5 05:27:39 2009
+++
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/ToManyViewer.java
Sat Mar 12 12:33:24 2011
@@ -2,7 +2,7 @@
import java.util.Collection;
-import org.apache.tapestry5.annotations.IncludeStylesheet;
+import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.ioc.Messages;
@@ -23,7 +23,7 @@
* annotation. If no method is annotated, the text displayed will be the
result of invoking "toString" on the object.
* @author robertz
*/
-@IncludeStylesheet("ToManyViewer.css")
+@Import(stylesheet="ToManyViewer.css")
public class ToManyViewer {
/**
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/ToOneEditor.java
Thu Mar 5 05:27:39 2009
+++
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/components/ToOneEditor.java
Sat Mar 12 12:33:24 2011
@@ -46,7 +46,8 @@
public void setValue(Persistent value) {
_context.setPropertyValue(value);
}
-
+
+ @SuppressWarnings("unchecked")
public SelectModel getModel() {
Class<?> type = _context.getPropertyType();
return new PersistentEntitySelectModel(type,_manager);
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/internal/ObjectContextWrapper.java
Sat Mar 14 13:59:58 2009
+++
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/internal/ObjectContextWrapper.java
Sat Mar 12 12:33:24 2011
@@ -1,6 +1,7 @@
package com.googlecode.tapestry5cayenne.internal;
import org.apache.cayenne.ObjectContext;
+import org.apache.tapestry5.ioc.services.PerThreadValue;
import org.apache.tapestry5.ioc.services.PerthreadManager;
import com.googlecode.tapestry5cayenne.services.ObjectContextProvider;
@@ -32,19 +33,13 @@
*/
private static final String
REQUEST_BOUND_CONTEXT="tapestry5cayenne.thread.context";
- /**
- * Use the request to store the new or child context for the duration
of the request.
- */
- private final PerthreadManager threadManager;
-
private final ObjectContextProvider provider;
- private final String threadContextKey;
+ private final PerThreadValue<ObjectContext> threadContext;
public ObjectContextWrapper(PerthreadManager
threadManager,ObjectContextProvider provider) {
- this.threadManager = threadManager;
this.provider = provider;
- threadContextKey = REQUEST_BOUND_CONTEXT + this.hashCode();
+ threadContext = threadManager.createValue();
}
/**
@@ -55,10 +50,10 @@
* 3) The context will only live for the duration of the thread.
*/
public ObjectContext getNewContext() {
- ObjectContext context = (ObjectContext)
threadManager.get(threadContextKey);
+ ObjectContext context = (ObjectContext) threadContext.get();
if (context == null) {
context = provider.newContext();
- threadManager.put(threadContextKey,context);
+ threadContext.set(context);
}
return context;
}
@@ -76,10 +71,10 @@
* As for getNewContext, only one child context is created per thread,
and it only lasts the duration of the thread.
*/
public ObjectContext getChildContext() {
- ObjectContext context = (ObjectContext)
threadManager.get(threadContextKey);
+ ObjectContext context = (ObjectContext) threadContext.get();
if (context == null) {
context = provider.currentContext().createChildContext();
- threadManager.put(threadContextKey,context);
+ threadContext.set(context);
}
return context;
}
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/internal/PersistentManagerImpl.java
Fri Mar 11 16:38:29 2011
+++
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/internal/PersistentManagerImpl.java
Sat Mar 12 12:33:24 2011
@@ -158,11 +158,13 @@
public <T> T find(Class<T> type, Map<String, Object> idMap) {
return DataObjectUtils.objectForPK(_provider.currentContext(), type,
mapIds(null, type, idMap));
}
-
+
+ @SuppressWarnings("unchecked")
public <T> T find(String entity, Map<String, Object> idMap) {
return (T) DataObjectUtils.objectForPK(_provider.currentContext(),
entity, mapIds(entity, null, idMap));
}
-
+
+ @SuppressWarnings("unchecked")
public <T> T find(String entity, Object[] pkVals) {
ObjEntity ent =
_provider.currentContext().getEntityResolver().getObjEntity(entity);
ArrayList<ObjAttribute> pks = new
ArrayList<ObjAttribute>(ent.getPrimaryKeys());
@@ -219,7 +221,7 @@
}
private Class<?> pkTypeForEntity(String entName, String name) {
- return
pkTypeForEntity(_provider.currentContext().getEntityResolver().lookupObjEntity(entName),
name);
+ return
pkTypeForEntity(_provider.currentContext().getEntityResolver().getObjEntity(entName),
name);
}
private Class<?> pkTypeForEntity(Class<?> type, String name) {
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/CayenneCommitAfterWorker.java
Wed Mar 11 23:27:38 2009
+++
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/CayenneCommitAfterWorker.java
Sat Mar 12 12:33:24 2011
@@ -1,11 +1,7 @@
package com.googlecode.tapestry5cayenne.services;
import org.apache.tapestry5.model.MutableComponentModel;
-import org.apache.tapestry5.services.ClassTransformation;
-import org.apache.tapestry5.services.ComponentClassTransformWorker;
-import org.apache.tapestry5.services.ComponentMethodAdvice;
-import org.apache.tapestry5.services.ComponentMethodInvocation;
-import org.apache.tapestry5.services.TransformMethodSignature;
+import org.apache.tapestry5.services.*;
import com.googlecode.tapestry5cayenne.annotations.CommitAfter;
@@ -41,8 +37,8 @@
public void transform(ClassTransformation transformation,
MutableComponentModel model) {
- for(TransformMethodSignature sig:
transformation.findMethodsWithAnnotation(CommitAfter.class)) {
- transformation.advise(sig, advice);
+ for(TransformMethod method:
transformation.matchMethodsWithAnnotation(CommitAfter.class)) {
+ method.addAdvice(advice);
}
}
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/ObjectContextInjectionProvider.java
Sat Mar 14 14:01:24 2009
+++
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/ObjectContextInjectionProvider.java
Sat Mar 12 12:33:24 2011
@@ -12,6 +12,7 @@
import com.googlecode.tapestry5cayenne.annotations.Cayenne;
import com.googlecode.tapestry5cayenne.annotations.OCType;
import com.googlecode.tapestry5cayenne.internal.ObjectContextWrapper;
+import org.apache.tapestry5.services.TransformField;
/**
* Provides an InjectionProvider so pages and components can @Inject an
ObjectContext directly.
@@ -47,7 +48,8 @@
if (!(ObjectContext.class.isAssignableFrom(fieldType))) {
return false;
}
- OCType t = transformation.getFieldAnnotation(fieldName,
OCType.class);
+ TransformField field = transformation.getField(fieldName);
+ OCType t = field.getAnnotation(OCType.class);
ContextType ctype = t==null?ContextType.CURRENT:t.value();
ObjectContext toInject;
switch(ctype) {
@@ -69,7 +71,7 @@
"currentContext",
ObjectContext.class);
}
- transformation.injectField(fieldName, toInject);
+ field.inject(toInject);
return true;
}
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/TapestryCayenneCoreModule.java
Wed May 5 12:56:11 2010
+++
/trunk/tapestry5-cayenne-core/src/main/java/com/googlecode/tapestry5cayenne/services/TapestryCayenneCoreModule.java
Sat Mar 12 12:33:24 2011
@@ -17,24 +17,15 @@
import org.apache.tapestry5.ioc.ObjectLocator;
import org.apache.tapestry5.ioc.OrderedConfiguration;
import org.apache.tapestry5.ioc.ServiceBinder;
+import org.apache.tapestry5.ioc.annotations.Contribute;
import org.apache.tapestry5.ioc.annotations.InjectService;
import org.apache.tapestry5.ioc.annotations.Local;
import org.apache.tapestry5.ioc.annotations.Symbol;
import org.apache.tapestry5.ioc.services.Coercion;
import org.apache.tapestry5.ioc.services.CoercionTuple;
+import org.apache.tapestry5.ioc.services.ServiceOverride;
import org.apache.tapestry5.ioc.services.TypeCoercer;
-import org.apache.tapestry5.services.AliasContribution;
-import org.apache.tapestry5.services.BeanBlockContribution;
-import org.apache.tapestry5.services.BeanModelSource;
-import org.apache.tapestry5.services.BindingFactory;
-import org.apache.tapestry5.services.ComponentClassTransformWorker;
-import org.apache.tapestry5.services.DataTypeAnalyzer;
-import org.apache.tapestry5.services.InjectionProvider;
-import org.apache.tapestry5.services.LibraryMapping;
-import org.apache.tapestry5.services.PersistentFieldStrategy;
-import org.apache.tapestry5.services.RequestFilter;
-import org.apache.tapestry5.services.ValidationConstraintGenerator;
-import org.apache.tapestry5.services.ValueEncoderFactory;
+import org.apache.tapestry5.services.*;
import com.googlecode.tapestry5cayenne.annotations.Cayenne;
import com.googlecode.tapestry5cayenne.internal.PersistentManagerImpl;
@@ -111,6 +102,7 @@
binder.bind(NonPersistedObjectStorer.class,DefaultNonPersistedObjectStorer.class)
.withId("DefaultNonPersistedObjectStorer").withMarker(Cayenne.class);
binder.bind(PersistentManager.class,PersistentManagerImpl.class);
+ //remove when PrimaryKeyEncoder is gone.
binder.bind(PrimaryKeyEncoder.class,CayennePrimaryKeyEncoder.class).withId("CayennePrimaryKeyEncoder");
binder.bind(EncodedValueEncrypter.class,PlainTextEncodedValueEncrypter.class)
.withId("PlainTextEncrypter");
@@ -163,28 +155,16 @@
});
}
- /**
- * Override tapestry's default BeanModelSource with the
cayenne-specific version.
- * @param conf
- * @param source
- */
- @SuppressWarnings("unchecked")
- public static void
contributeAliasOverrides(Configuration<AliasContribution> conf,
- @Cayenne BeanModelSource source) {
- conf.add(AliasContribution.create(BeanModelSource.class, source));
- }
-
- /**
- * Create the requisite alias for EncodedValueEncrypter.
- * @param conf
- * @param enc
- */
- @SuppressWarnings("unchecked")
- public static void contributeAlias(Configuration<AliasContribution>
conf,
+ @Contribute(ServiceOverride.class)
+ public static void contributeServiceOverride(
+ MappedConfiguration<Class, Object> conf,
+ @Cayenne BeanModelSource source,
@InjectService("PlainTextEncrypter") EncodedValueEncrypter enc,
@Local NonPersistedObjectStorer storer) {
- conf.add(AliasContribution.create(EncodedValueEncrypter.class,
enc));
-
conf.add(AliasContribution.create(NonPersistedObjectStorer.class,storer));
+ conf.add(BeanModelSource.class, source);
+ conf.add(EncodedValueEncrypter.class, enc);
+ conf.add(NonPersistedObjectStorer.class, storer);
+
}
/**
@@ -206,10 +186,10 @@
* @param conf
*/
public static void
contributeBeanBlockSource(Configuration<BeanBlockContribution> conf) {
- conf.add(new
BeanBlockContribution("to_one", "cay/CayenneEditBlockContributions", "to_one_editor",
true));
- conf.add(new
BeanBlockContribution("to_one","cay/CayenneViewBlockContributions","to_one_viewer",false));
- conf.add(new
BeanBlockContribution("to_many_map","cay/CayenneViewBlockContributions","to_many_map_viewer",false));
- conf.add(new
BeanBlockContribution("to_many_collection","cay/CayenneViewBlockContributions","to_many_collection_viewer",false));
+ conf.add(new
EditBlockContribution("to_one", "cay/CayenneEditBlockContributions", "to_one_editor"));
+ conf.add(new
DisplayBlockContribution("to_one","cay/CayenneViewBlockContributions","to_one_viewer"));
+ conf.add(new
DisplayBlockContribution("to_many_map","cay/CayenneViewBlockContributions","to_many_map_viewer"));
+ conf.add(new
DisplayBlockContribution("to_many_collection","cay/CayenneViewBlockContributions","to_many_collection_viewer"));
}
/**
=======================================
---
/trunk/tapestry5-cayenne-core/src/test/java/com/googlecode/tapestry5cayenne/services/TestObjectContextInjectionProvider.java
Tue Aug 24 10:51:09 2010
+++
/trunk/tapestry5-cayenne-core/src/test/java/com/googlecode/tapestry5cayenne/services/TestObjectContextInjectionProvider.java
Sat Mar 12 12:33:24 2011
@@ -4,10 +4,12 @@
import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.access.DataContext;
+import org.apache.tapestry5.ioc.services.PerThreadValue;
import org.apache.tapestry5.ioc.services.PerthreadManager;
import org.apache.tapestry5.ioc.services.PropertyShadowBuilder;
import org.apache.tapestry5.services.ClassTransformation;
import org.apache.tapestry5.services.DataTypeAnalyzer;
+import org.apache.tapestry5.services.TransformField;
import org.easymock.EasyMock;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
@@ -31,6 +33,12 @@
public void setup() {
provider = EasyMock.createMock(ObjectContextProvider.class);
threadManager = EasyMock.createMock(PerthreadManager.class);
+ EasyMock.expect(threadManager.createValue()).andReturn(new
PerThreadValue<Object>() {
+ public boolean exists() { return false; }
+ public Object get() { return null; }
+ public Object get(Object o) { return null; }
+ public Object set(Object o) { return null; }
+ }).times(0,1);
builder = EasyMock.createMock(PropertyShadowBuilder.class);
p = new
ObjectContextInjectionProvider(provider,threadManager,builder);
transformation = EasyMock.createMock(ClassTransformation.class);
@@ -52,100 +60,92 @@
public void testProvide_OCClass_NoAnnotation_ReturnsCurrentContext() {
ObjectContext mock = EasyMock.createMock(ObjectContext.class);
+ TransformField tf = trainContextField(null, mock);
+
EasyMock.replay(mock);
-
-
EasyMock.expect(transformation.getFieldAnnotation("context",OCType.class)).andReturn(null);
-
+
EasyMock.expect(builder.build(
EasyMock.isA(ObjectContextWrapper.class),
EasyMock.eq("currentContext"),
EasyMock.eq(ObjectContext.class)))
.andReturn(mock);
-
- transformation.injectField("context", mock);
-
+
replay();
assertTrue(p.provideInjection("context",ObjectContext.class,
null,transformation, null));
+ EasyMock.verify(tf);
}
public void testProvide_AnnotationCurrent_ReturnsCurrent() {
ObjectContext mock = EasyMock.createMock(ObjectContext.class);
+ TransformField tf = trainContextField(ContextType.CURRENT, mock);
+
EasyMock.replay(mock);
-
EasyMock.expect(transformation.getFieldAnnotation("context",OCType.class)).andReturn(
- new OCType() {
- public ContextType value() {
- return ContextType.CURRENT;
- }
- public Class<? extends Annotation> annotationType() {
- return OCType.class;
- }
-
- } );
-
EasyMock.expect(builder.build(
EasyMock.isA(ObjectContextWrapper.class),
EasyMock.eq("currentContext"),
EasyMock.eq(ObjectContext.class)))
.andReturn(mock);
- transformation.injectField("context", mock);
-
replay();
-
+
assertTrue(p.provideInjection("context",ObjectContext.class,null,transformation,null));
+ EasyMock.verify(tf);
}
public void testProvide_AnnotationNew_ReturnsNew() {
ObjectContext mock = EasyMock.createMock(ObjectContext.class);
EasyMock.replay(mock);
-
-
EasyMock.expect(transformation.getFieldAnnotation("context",OCType.class)).andReturn(
- new OCType() {
- public ContextType value() {
- return ContextType.NEW;
- }
-
- public Class<? extends Annotation> annotationType() {
- return OCType.class;
- }
- } );
-
+
+ TransformField tf = trainContextField(ContextType.NEW, mock);
+
EasyMock.expect(builder.build(
EasyMock.isA(ObjectContextWrapper.class),
EasyMock.eq("newContext"),
EasyMock.eq(ObjectContext.class)))
.andReturn(mock);
- transformation.injectField("context", mock);
-
replay();
assertTrue(p.provideInjection("context",ObjectContext.class,null,transformation,null));
+ EasyMock.verify(tf);
}
public void testProvide_AnnotationChild_childsupported_returnschild() {
MockDataContext mdc = new MockDataContext();
-
-
EasyMock.expect(transformation.getFieldAnnotation("context",OCType.class)).andReturn(
- new OCType() {
- public ContextType value() {
- return ContextType.CHILD;
- }
- public Class<? extends Annotation> annotationType() {
- return OCType.class;
- }
- });
-
+ TransformField tf = trainContextField(ContextType.CHILD, mdc);
+
EasyMock.expect(builder.build(
EasyMock.isA(ObjectContextWrapper.class),
EasyMock.eq("childContext"),
EasyMock.eq(ObjectContext.class)))
.andReturn(mdc);
- transformation.injectField("context", mdc);
-
+
replay();
assertTrue(p.provideInjection("context",ObjectContext.class,null,transformation,null));
+ EasyMock.verify(tf);
+ }
+
+ private TransformField trainContextField(final ContextType type,
ObjectContext context) {
+ TransformField tf = EasyMock.createMock(TransformField.class);
+ if (type == null) {
+
EasyMock.expect(tf.getAnnotation(OCType.class)).andReturn(null);
+ } else {
+ EasyMock.expect(tf.getAnnotation(OCType.class)).andReturn(
+ new OCType() {
+ public ContextType value() {
+ return type;
+ }
+ public Class<? extends Annotation>
annotationType() {
+ return OCType.class;
+ }
+ }
+ );
+ }
+ tf.inject(context);
+ EasyMock.replay(tf);
+ EasyMock.expect(transformation.getField("context")).andReturn(tf);
+ return tf;
}
}
=======================================
---
/trunk/tapestry5-cayenne-server/src/main/java/com/googlecode/tapestry5cayenne/services/TapestryCayenneModule.java
Sat Mar 14 13:59:58 2009
+++
/trunk/tapestry5-cayenne-server/src/main/java/com/googlecode/tapestry5cayenne/services/TapestryCayenneModule.java
Sat Mar 12 12:33:24 2011
@@ -6,11 +6,13 @@
package com.googlecode.tapestry5cayenne.services;
import org.apache.tapestry5.ioc.Configuration;
+import org.apache.tapestry5.ioc.MappedConfiguration;
import org.apache.tapestry5.ioc.ServiceBinder;
+import org.apache.tapestry5.ioc.annotations.Contribute;
import org.apache.tapestry5.ioc.annotations.SubModule;
-import org.apache.tapestry5.services.AliasContribution;
import com.googlecode.tapestry5cayenne.annotations.Cayenne;
+import org.apache.tapestry5.ioc.services.ServiceOverride;
@SubModule(TapestryCayenneCoreModule.class)
public class TapestryCayenneModule {
@@ -25,13 +27,12 @@
/**
* Alias the DataContext-based object context provider to
ObjectContextProvider.
* @param conf
- * @param storer
* @param provider
*/
@SuppressWarnings("unchecked")
- public static void contributeAlias(Configuration<AliasContribution>
conf,
- @Cayenne NonPersistedObjectStorer storer,
+ @Contribute(ServiceOverride.class)
+ public static void
contributeServiceOverride(MappedConfiguration<Class, Object> conf,
@Cayenne ObjectContextProvider provider) {
- conf.add(AliasContribution.create(ObjectContextProvider.class,
provider));
+ conf.add(ObjectContextProvider.class, provider);
}
}
=======================================
---
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/TapestryCayenneIntegrationTests.java
Fri Mar 13 22:25:34 2009
+++
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/TapestryCayenneIntegrationTests.java
Sat Mar 12 12:33:24 2011
@@ -1,6 +1,7 @@
package com.googlecode.tapestry5cayenne.integration;
import org.apache.tapestry5.test.AbstractIntegrationTestSuite;
+import org.apache.tapestry5.test.SeleniumTestCase;
import org.testng.annotations.Test;
@Test(sequential=true,groups="integration")
=======================================
---
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/TestBlockContributions.java
Fri Mar 11 16:38:29 2011
+++
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/TestBlockContributions.java
Sat Mar 12 12:33:24 2011
@@ -177,6 +177,7 @@
*/
public void testCayenneSelect() {
Document doc = _tester.renderPage("TestSelect");
+ System.out.println(doc);
//Verify the label
//Element el = doc.getElementById("toOneList:label");
//assertEquals(el.getChildMarkup(),"Artist");
=======================================
---
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/app0/pages/Index.java
Mon Jun 2 23:28:34 2008
+++
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/integration/app0/pages/Index.java
Sat Mar 12 12:33:24 2011
@@ -7,7 +7,7 @@
import org.apache.cayenne.access.DataContext;
import org.apache.cayenne.map.ObjEntity;
-import org.apache.tapestry5.annotations.ApplicationState;
+import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.ioc.annotations.Inject;
import com.googlecode.tapestry5cayenne.annotations.Cayenne;
@@ -19,7 +19,7 @@
public class Index {
- @ApplicationState
+ @SessionState
private DataContext _context;
@Inject
=======================================
---
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/internal/TestPersistentEntitySelectModel.java
Tue Aug 24 10:51:09 2010
+++
/trunk/tapestry5-cayenne-server/src/test/java/com/googlecode/tapestry5cayenne/internal/TestPersistentEntitySelectModel.java
Sat Mar 12 12:33:24 2011
@@ -44,6 +44,7 @@
EasyMock.verify(_manager);
}
+ @SuppressWarnings("unchecked")
public void construction() {
PersistentEntitySelectModel model = new
PersistentEntitySelectModel(Artist.class,_manager);
assertNull(model.getOptionGroups());
=======================================
---
/trunk/tapestry5-cayenne-core/src/main/resources/com/googlecode/tapestry5cayenne/components/Select.tml
Tue Jul 1 17:41:34 2008
+++
/trunk/tapestry5-cayenne-core/src/main/resources/com/googlecode/tapestry5cayenne/components/Select.tml
Sat Mar 12 12:33:24 2011
@@ -1,5 +1,3 @@
-<t:container
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
-
- <t:select model="model" value="value"/>
-
+<t:container
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
+ <select t:id="select"/>
</t:container>