You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/01/11 10:16:49 UTC
[isis] 01/03: Merge branch 'master' into v2
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 8d31dc7983b4b7238edb5fe9c64761e8df6accfa
Merge: 14ac71b 26c2e61
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 11 09:49:32 2019 +0000
Merge branch 'master' into v2
.../rgant/_rgant-ActionLayout_promptStyle.adoc | 9 +++++++-
.../ugvw/_ugvw_configuration-properties.adoc | 11 ++++++++--
.../mixins/layout/Object_rebuildMetamodel.java | 2 +-
.../PromptStyleFacetForActionLayoutAnnotation.java | 2 ++
...romptStyleFacetForPropertyLayoutAnnotation.java | 2 ++
.../propertylayout/PropertyLayoutFacetFactory.java | 8 +++++++
.../viewer/wicket/model/models/ActionModel.java | 8 +++++++
.../wicket/model/models/ActionPromptProvider.java | 5 ++++-
.../components/scalars/ScalarPanelAbstract2.java | 10 ++++++++-
.../linkandlabel/ActionLinkFactoryAbstract.java | 9 +++++++-
.../isis/viewer/wicket/ui/pages/PageAbstract.java | 25 ++++++++++++++++------
.../application/manifest/menubars.layout.xml | 6 +++---
.../modules/simple/dom/impl/SimpleObjects.java | 7 +++---
...IntegTest.java => SimpleObjects_IntegTest.java} | 11 +++++-----
...eObjectMenuGlue.java => SimpleObjectsGlue.java} | 2 +-
15 files changed, 91 insertions(+), 26 deletions(-)
diff --cc core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
index c3375a9,0000000..e442bee
mode 100644,000000..100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
@@@ -1,64 -1,0 +1,64 @@@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.isis.applib.mixins.layout;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.CommandPersistence;
+import org.apache.isis.applib.annotation.Contributed;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Mixin;
+import org.apache.isis.applib.annotation.RestrictTo;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.services.metamodel.MetaModelService;
+
+@Mixin(method="act")
+public class Object_rebuildMetamodel {
+
+ private final Object object;
+
+ public Object_rebuildMetamodel(final Object object) {
+ this.object = object;
+ }
+
+ public static class ActionDomainEvent
+ extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Object_rebuildMetamodel> {
+ private static final long serialVersionUID = 1L;
+ }
+
+ @Action(
+ domainEvent = ActionDomainEvent.class,
+ semantics = SemanticsOf.IDEMPOTENT,
+ commandPersistence = CommandPersistence.NOT_PERSISTED,
+ restrictTo = RestrictTo.PROTOTYPING
+ )
+ @ActionLayout(
+ contributed = Contributed.AS_ACTION,
+ cssClassFa = "fa-refresh",
- position = ActionLayout.Position.PANEL_DROPDOWN
++ position = ActionLayout.Position.PANEL
+ )
+ @MemberOrder(name = "datanucleusIdLong", sequence = "800.1")
+ public Object act() {
+ metaModelService.rebuild(object.getClass());
+ return object;
+ }
+
+ @javax.inject.Inject
+ MetaModelService metaModelService;
+
+
+}
diff --cc core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
index 875a1bd,478351c..0549373
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
@@@ -45,33 -45,37 +45,35 @@@ public class PromptStyleFacetForActionL
final IsisConfiguration configuration,
final FacetHolder holder) {
- PromptStyle promptStyle = actionLayout != null? actionLayout.promptStyle() : null;
+ return actionLayouts.stream()
+ .map(ActionLayout::promptStyle)
+ .filter(promptStyle -> promptStyle != PromptStyle.NOT_SPECIFIED)
+ .findFirst()
+ .map(promptStyle -> {
- if(promptStyle == null) {
- if (holder.containsDoOpNotDerivedFacet(PromptStyleFacet.class)) {
- // do not replace
- return null;
- }
+ switch (promptStyle) {
+ case DIALOG:
++ case DIALOG_MODAL:
++ case DIALOG_SIDEBAR:
+ case INLINE:
+ case INLINE_AS_IF_EDIT:
+ return new PromptStyleFacetForActionLayoutAnnotation(promptStyle, holder);
- return new PromptStyleFacetFallBackToInline(holder);
- } else {
+ case AS_CONFIGURED:
- switch (promptStyle) {
- case DIALOG:
- case DIALOG_MODAL:
- case DIALOG_SIDEBAR:
- case INLINE:
- case INLINE_AS_IF_EDIT:
- return new PromptStyleFacetForActionLayoutAnnotation(promptStyle, holder);
+ // do not replace
+ if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
+ return null;
+ }
- case AS_CONFIGURED:
+ promptStyle = PromptStyleConfiguration.parse(configuration);
+ return new PromptStyleFacetAsConfigured(promptStyle, holder);
- // do not replace
- if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
- return null;
- }
-
- promptStyle = PromptStyleConfiguration.parse(configuration);
- return new PromptStyleFacetAsConfigured(promptStyle, holder);
-
- default:
+ }
+ throw new IllegalStateException("promptStyle '" + promptStyle + "' not recognised");
+ })
+ .orElseGet(() -> {
// do not replace
if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
return null;
diff --cc core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PromptStyleFacetForPropertyLayoutAnnotation.java
index c4f2708,0171ef5..d661065
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PromptStyleFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PromptStyleFacetForPropertyLayoutAnnotation.java
@@@ -45,33 -45,37 +45,35 @@@ public class PromptStyleFacetForPropert
final IsisConfiguration configuration,
final FacetHolder holder) {
- PromptStyle promptStyle = propertyLayout != null? propertyLayout.promptStyle() : null;
-
- if(promptStyle == null) {
- if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
- // do not replace
- return null;
- }
-
- return new PromptStyleFacetFallBackToInline(holder);
- } else {
-
- switch (promptStyle) {
- case DIALOG:
- case DIALOG_MODAL:
- case DIALOG_SIDEBAR:
- case INLINE:
- return new PromptStyleFacetForPropertyLayoutAnnotation(promptStyle, holder);
- case INLINE_AS_IF_EDIT:
- return new PromptStyleFacetForPropertyLayoutAnnotation(PromptStyle.INLINE, holder);
-
- case AS_CONFIGURED:
-
- // do not replace
- if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
- return null;
+ return propertyLayouts.stream()
+ .map(PropertyLayout::promptStyle)
+ .filter(promptStyle -> promptStyle != PromptStyle.NOT_SPECIFIED)
+ .findFirst()
+ .map(promptStyle -> {
+
+ switch (promptStyle) {
+ case DIALOG:
++ case DIALOG_MODAL:
++ case DIALOG_SIDEBAR:
+ case INLINE:
+ return new PromptStyleFacetForPropertyLayoutAnnotation(promptStyle, holder);
+ case INLINE_AS_IF_EDIT:
+ return new PromptStyleFacetForPropertyLayoutAnnotation(PromptStyle.INLINE, holder);
+
+ case AS_CONFIGURED:
+
+ // do not replace
+ if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
+ return null;
+ }
+
+ promptStyle = PromptStyleConfiguration.parse(configuration);
+ return new PromptStyleFacetAsConfigured(promptStyle, holder);
+ default:
}
-
- promptStyle = PromptStyleConfiguration.parse(configuration);
- return new PromptStyleFacetAsConfigured(promptStyle, holder);
-
- default:
+ throw new IllegalStateException("promptStyle '" + promptStyle + "' not recognised");
+ })
+ .orElseGet(() -> {
// do not replace
if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
diff --cc core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
index 4cfb2d2,ce07843..2f41c62
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
@@@ -86,9 -94,21 +86,17 @@@ public class PropertyLayoutFacetFactor
FacetUtil.addFacet(describedAsFacet);
}
- void processPromptStyle(final FacetHolder holder, final Properties properties, final PropertyLayout propertyLayout) {
+ void processPromptStyle(final FacetHolder holder, final List<PropertyLayout> propertyLayout) {
+
+ if(holder instanceof FacetedMethod) {
+ final FacetedMethod facetedMethod = (FacetedMethod) holder;
+ if(facetedMethod.getFeatureType() != FeatureType.PROPERTY) {
+ return;
+ }
+ }
+
- PromptStyleFacet promptStyleFacet = PromptStyleFacetOnPropertyFromLayoutProperties
- .create(properties, holder);
- if(promptStyleFacet == null) {
- promptStyleFacet = PromptStyleFacetForPropertyLayoutAnnotation
- .create(propertyLayout, getConfiguration(), holder);
- }
+ PromptStyleFacet promptStyleFacet = PromptStyleFacetForPropertyLayoutAnnotation
+ .create(propertyLayout, getConfiguration(), holder);
FacetUtil.addFacet(promptStyleFacet);
}
diff --cc core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
index c35c675,0d6c119..5fc6fcf
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
@@@ -21,6 -21,7 +21,7 @@@ import org.apache.wicket.Page
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.services.metamodel.MetaModelService2;
++import org.apache.isis.applib.services.metamodel.MetaModelService;
public interface ActionPromptProvider {
@@@ -44,6 -45,8 +45,8 @@@
}
}
- public ActionPrompt getActionPrompt(final PromptStyle promptStyle);
+ public ActionPrompt getActionPrompt(
+ final PromptStyle promptStyle,
- final MetaModelService2.Sort sort);
++ final MetaModelService.Sort sort);
void closePrompt(final AjaxRequestTarget target);
}
diff --cc core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 1a41513,47aefc1..10b81cf
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@@ -40,10 -43,9 +40,11 @@@ import org.apache.wicket.model.Model
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.services.metamodel.MetaModelService2;
++import org.apache.isis.applib.services.metamodel.MetaModelService;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
@@@ -73,6 -76,6 +75,7 @@@ import org.apache.isis.viewer.wicket.ui
import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
++
public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> implements ScalarModelSubscriber2 {
private static final long serialVersionUID = 1L;
@@@ -714,16 -701,15 +717,21 @@@
scalarIfRegularFormGroup.addOrReplace(editProperty);
editProperty.add(new AjaxEventBehavior("click") {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3561635292986591682L;
+
+ @Override
protected void onEvent(AjaxRequestTarget target) {
+ final ObjectSpecification specification = scalarModel.getObject().getSpecification();
- final MetaModelService2 metaModelService2 = getIsisSessionFactory().getServicesInjector()
- .lookupService(MetaModelService2.class);
- final MetaModelService2.Sort sort = metaModelService2.sortOf(specification.getCorrespondingClass());
++ final MetaModelService metaModelService = getIsisSessionFactory().getServicesInjector()
++ .lookupServiceElseFail(MetaModelService.class);
++ final MetaModelService.Sort sort = metaModelService.sortOf(specification.getCorrespondingClass(), MetaModelService.Mode.RELAXED);
+
final ActionPrompt prompt = ActionPromptProvider.Util
- .getFrom(ScalarPanelAbstract2.this).getActionPrompt(promptStyle);
+ .getFrom(ScalarPanelAbstract2.this).getActionPrompt(promptStyle, sort);
PropertyEditPromptHeaderPanel titlePanel = new PropertyEditPromptHeaderPanel(prompt.getTitleId(),
ScalarPanelAbstract2.this.scalarModel);
diff --cc core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index e04bd6a,4cd00b6..8de064c
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@@ -32,11 -37,11 +32,13 @@@ import org.apache.wicket.model.Abstract
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.services.metamodel.MetaModelService2;
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Lists;
++import org.apache.isis.applib.services.metamodel.MetaModelService;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
import org.apache.isis.core.metamodel.postprocessors.param.ActionParameterDefaultsFacetFromAssociatedCollection;
+ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@@ -164,7 -170,12 +166,12 @@@ public abstract class ActionLinkFactory
if(inlinePromptContext == null || promptStyle.isDialog()) {
final ActionPromptProvider promptProvider = ActionPromptProvider.Util.getFrom(actionLink.getPage());
- final ActionPrompt prompt = promptProvider.getActionPrompt(promptStyle);
+ final ObjectSpecification specification = actionModel.getTargetAdapter().getSpecification();
+
- final MetaModelService2 metaModelService2 = getIsisSessionFactory().getServicesInjector()
- .lookupService(MetaModelService2.class);
- final MetaModelService2.Sort sort = metaModelService2.sortOf(specification.getCorrespondingClass());
++ final MetaModelService metaModelService = getIsisSessionFactory().getServicesInjector()
++ .lookupServiceElseFail(MetaModelService.class);
++ final MetaModelService.Sort sort = metaModelService.sortOf(specification.getCorrespondingClass(), MetaModelService.Mode.RELAXED);
+ final ActionPrompt prompt = promptProvider.getActionPrompt(promptStyle, sort);
//
diff --cc core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 479991c,90a1b4e..c23abeb
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@@ -65,8 -64,10 +65,9 @@@ import org.slf4j.LoggerFactory
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
-import org.apache.isis.applib.services.metamodel.MetaModelService2;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
-import org.apache.isis.core.commons.config.ConfigPropertyEnum;
-import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.config.IsisConfiguration;
+import org.apache.isis.config.property.ConfigPropertyEnum;
++import org.apache.isis.applib.services.metamodel.MetaModelService;
import org.apache.isis.core.metamodel.services.ServicesInjector;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@@ -466,20 -468,27 +469,27 @@@ public abstract class PageAbstract exte
private ActionPromptModalWindow actionPromptModalWindow;
private ActionPromptSidebar actionPromptSidebar;
- public ActionPrompt getActionPrompt(final PromptStyle promptStyle) {
+ public ActionPrompt getActionPrompt(
+ final PromptStyle promptStyle,
- final MetaModelService2.Sort sort) {
++ final MetaModelService.Sort sort) {
+
switch (promptStyle) {
case AS_CONFIGURED:
case DIALOG:
case INLINE:
case INLINE_AS_IF_EDIT:
default:
- final DialogMode dialogMode = CONFIG_DIALOG_MODE.from(getConfiguration());
+ final ConfigPropertyEnum<DialogMode> configProp =
- sort == MetaModelService2.Sort.DOMAIN_SERVICE
++ sort == MetaModelService.Sort.DOMAIN_SERVICE
+ ? CONFIG_DIALOG_MODE_FOR_MENUS
+ : CONFIG_DIALOG_MODE;
+ final DialogMode dialogMode = configProp.from(getConfiguration());
switch (dialogMode) {
- case SIDEBAR:
- return actionPromptSidebar;
- case MODAL:
- default:
- return actionPromptModalWindow;
+ case SIDEBAR:
+ return actionPromptSidebar;
+ case MODAL:
+ default:
+ return actionPromptModalWindow;
}
case DIALOG_SIDEBAR:
return actionPromptSidebar;
diff --cc example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
index b05be1b,3695151..aca31d4
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
@@@ -29,17 -29,17 +29,18 @@@ import org.apache.isis.applib.annotatio
import org.apache.isis.applib.annotation.DomainServiceLayout;
import org.apache.isis.applib.annotation.MemberOrder;
import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.Programmatic;
+ import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
-import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
+import org.apache.isis.applib.events.domain.ActionDomainEvent;
+import org.apache.isis.applib.services.jdosupport.IsisJdoSupport_v3_2;
import org.apache.isis.applib.services.repository.RepositoryService;
+import domainapp.modules.simple.dom.types.Name;
+
@DomainService(
nature = NatureOfService.VIEW_MENU_ONLY,
- objectType = "simple.SimpleObjectMenu",
+ objectType = "simple.SimpleObjects",
repositoryFor = SimpleObject.class
)
@DomainServiceLayout(
@@@ -57,12 -56,13 +57,12 @@@ public class SimpleObjects
@Action(semantics = SemanticsOf.SAFE)
- @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
+ @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT, promptStyle = PromptStyle.DIALOG_SIDEBAR)
@MemberOrder(sequence = "2")
public List<SimpleObject> findByName(
- @ParameterLayout(named="Name")
- final String name
+ @Name final String name
) {
- TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
+ JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
final QSimpleObject cand = QSimpleObject.candidate();
q = q.filter(
cand.name.indexOf(q.stringParameter("name")).ne(-1)
@@@ -71,19 -71,9 +71,20 @@@
.executeList();
}
+ public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjects> {}
+ @Action(domainEvent = CreateDomainEvent.class)
++ @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
+ @MemberOrder(sequence = "3")
+ public SimpleObject create(
+ @Name final String name
+ ) {
+ return repositoryService.persist(new SimpleObject(name));
+ }
+
+
@Programmatic
public SimpleObject findByNameExact(final String name) {
- TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
+ JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
final QSimpleObject cand = QSimpleObject.candidate();
q = q.filter(
cand.name.eq(q.stringParameter("name"))
diff --cc example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
index 158ae05,4300580..d1c6e0a
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
@@@ -38,10 -34,14 +38,13 @@@ import domainapp.modules.simple.dom.imp
import domainapp.modules.simple.dom.impl.SimpleObjects;
import domainapp.modules.simple.fixture.SimpleObject_persona;
import domainapp.modules.simple.integtests.SimpleModuleIntegTestAbstract;
-import static org.assertj.core.api.Assertions.assertThat;
- public class SimpleObjectMenu_IntegTest extends SimpleModuleIntegTestAbstract {
+ public class SimpleObjects_IntegTest extends SimpleModuleIntegTestAbstract {
- public static class ListAll extends SimpleObjectMenu_IntegTest {
+ @Inject
+ SimpleObjects menu;
+
+ public static class ListAll extends SimpleObjects_IntegTest {
@Test
public void happyCase() {