Error Details
XML does not match control XML
org.custommonkey.xmlunit.Diff
[different] Expected attribute value 'true' but was '${1==1}' - comparing <condition expression="true"...> at /applicationReference[1]/pages[1]/page[1]/structure[1]/section[1]/element[1]/action[1]/config[1]/meta-data[1]/field[1]/condition[1]/@expression to <condition expression="${1==1}"...> at /applicationReference[1]/pages[1]/page[1]/structure[1]/section[1]/element[1]/action[1]/config[1]/meta-data[1]/field[1]/condition[1]/@expression
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<applicationReference xmlns="http://www.appng.org/schema/platform" id="demo-application" version="1.5.2">
<config>
<title id="plugintitle">A Test-Plugin</title>
<permissions>
<permission ref="debug" mode="set"></permission>
</permissions>
<session>
<session-params>
<session-param name="sessionparam1"></session-param>
<session-param name="sessionparam2"></session-param>
</session-params>
</session>
</config>
<pages>
<page id="entity" type="index">
<config>
<title id="entity">Entity</title>
<description></description>
<permissions>
<permission ref="page.entity" mode="set"></permission>
</permissions>
<url-schema>
<url-params>
<url-param name="action">update</url-param>
<url-param name="entityId">1</url-param>
<url-param name="entityAction"/>
<url-param name="entityId">1</url-param>
</url-params>
<get-params>
<get-param name="form_action"></get-param>
</get-params>
<post-params>
<post-param name="form_action"></post-param>
</post-params>
</url-schema>
<linkpanel id="page-nav" location="top">
<link id="page-nav[1]" target="/page0" mode="intern">
<label id="page0">Page 0</label>
</link>
<link id="page-nav[2]" target="/page1" mode="intern">
<condition expression="${1==1}"/>
<label id="page1">Page 1</label>
</link>
<link id="page-nav[4]" target="/page3" mode="intern">
<permissions>
<permission ref="page3" mode="set"></permission>
</permissions>
<label id="page3">Page 3</label>
</link>
</linkpanel>
</config>
<structure>
<section id="42">
<element passive="true">
<title id="update.entity" params="#{name},${entityId}">Update entity entity1 (ID: 1)</title>
<action id="update" eventId="events">
<config>
<title id="update.entity" params="#{name},${entityId}">Update entity entity1 (ID: 1)</title>
<permissions>
<permission ref="update.entity" mode="set"></permission>
</permissions>
<params>
<param name="entityId">1</param>
<param name="form_action"></param>
<param name="action">update</param>
</params>
<meta-data bindClass="org.appng.testapplication.TestEntity">
<field name="id" type="int" format="#" readonly="true" hidden="true" binding="id">
<label id="id">ID</label>
<condition expression="${1==1}"/>
</field>
<field name="name" type="text" binding="name">
<label id="name">Name</label>
<validation>
<notNull>
<message ref="name" class="ERROR" code="{validation.notNull}">Field must not be empty</message>
</notNull>
</validation>
</field>
<field name="integerValue" type="list:checkbox" binding="integerValue">
<label id="integerValue">integer value</label>
</field>
<field name="doubleValue" type="decimal" format="#.##" binding="doubleValue">
<label id="doubleValue">double value</label>
</field>
<field name="booleanValue" type="checkbox" binding="booleanValue">
<label id="booleanValue">boolean value</label>
</field>
<field name="enumValue" type="list:radio" binding="enumValue">
<label id="enumValue">enumValue</label>
</field>
<field name="parent" type="object" binding="parent">
<field name="name" type="text" binding="parent.name">
<validation>
<notNull>
<message ref="parent.name" class="ERROR" code="{validation.notNull}">Field must not be empty</message>
</notNull>
</validation>
</field>
<field name="integerValue" type="int" format="#" binding="parent.integerValue"/>
</field>
<field name="children" type="list:object" binding="children">
<field name="children[]" type="object" binding="children.children[]">
<field name="name" type="text" binding="children.children[].name">
<validation>
<notNull>
<message ref="children.children[].name" class="ERROR" code="{validation.notNull}">Field must not be empty</message>
</notNull>
</validation>
</field>
<field name="integerValue" type="int" format="#" binding="children.children[].integerValue"/>
</field>
</field>
</meta-data>
</config>
<condition expression="${form_action eq 'update' and action eq 'update' and not empty entityId}"/>
<datasource id="entity">
<params>
<param name="entityId">1</param>
</params>
</datasource>
<data>
<selection id="integerValue" type="checkbox">
<title id="integerValue">integer value</title>
<option value="1" name="1" selected="false"/>
<option value="2" name="2" selected="false"/>
<option value="3" name="3" selected="false"/>
<option value="4" name="4" selected="false"/>
<option value="5" name="5" selected="true"/>
</selection>
<selection id="enumValue">
<option value="ACME" name="acme" selected="true"/>
<option value="WARNER" name="warner" selected="false"/>
</selection>
<result>
<field name="id" type="int">
<value>1</value>
</field>
<field name="name" type="text">
<value>entity1</value>
</field>
<field name="integerValue" type="list:checkbox">
<value>5</value>
</field>
<field name="doubleValue" type="decimal">
<value>5.5</value>
</field>
<field name="booleanValue" type="checkbox">
<value>false</value>
</field>
<field name="enumValue" type="list:radio">
<value>ACME</value>
</field>
<field name="parent" type="object">
<field name="name" type="text">
<value>entity1</value>
</field>
<field name="integerValue" type="int">
<value>5</value>
</field>
<value></value>
</field>
<field name="children" type="list:object">
<field name="children[0]" type="object">
<field name="name" type="text">
<value>entity2</value>
</field>
<field name="integerValue" type="int">
<value>7</value>
</field>
<value></value>
</field>
<field name="children[1]" type="object">
<field name="name" type="text">
<value>entity3</value>
</field>
<field name="integerValue" type="int">
<value>9</value>
</field>
<value></value>
</field>
</field>
</result>
</data>
<bean id="entities">
<option name="action" id="update"/>
<option name="entity" id="1"/>
</bean>
</action>
</element>
</section>
</structure>
</page>
</pages>
</applicationReference>
, org.custommonkey.xmlunit.Diff
[different] Expected attribute value 'true' but was '${1==1}' - comparing <condition expression="true"...> at /applicationReference[1]/pages[1]/page[1]/structure[1]/section[1]/element[1]/action[1]/config[1]/meta-data[1]/field[1]/condition[1]/@expression to <condition expression="${1==1}"...> at /applicationReference[1]/pages[1]/page[1]/structure[1]/section[1]/element[1]/action[1]/config[1]/meta-data[1]/field[1]/condition[1]/@expression
Stack Trace
junit.framework.AssertionFailedError:
XML does not match control XML
org.custommonkey.xmlunit.Diff
[different] Expected attribute value 'true' but was '${1==1}' - comparing <condition expression="true"...> at /applicationReference[1]/pages[1]/page[1]/structure[1]/section[1]/element[1]/action[1]/config[1]/meta-data[1]/field[1]/condition[1]/@expression to <condition expression="${1==1}"...> at /applicationReference[1]/pages[1]/page[1]/structure[1]/section[1]/element[1]/action[1]/config[1]/meta-data[1]/field[1]/condition[1]/@expression
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<applicationReference xmlns="http://www.appng.org/schema/platform" id="demo-application" version="1.5.2">
<config>
<title id="plugintitle">A Test-Plugin</title>
<permissions>
<permission ref="debug" mode="set"></permission>
</permissions>
<session>
<session-params>
<session-param name="sessionparam1"></session-param>
<session-param name="sessionparam2"></session-param>
</session-params>
</session>
</config>
<pages>
<page id="entity" type="index">
<config>
<title id="entity">Entity</title>
<description></description>
<permissions>
<permission ref="page.entity" mode="set"></permission>
</permissions>
<url-schema>
<url-params>
<url-param name="action">update</url-param>
<url-param name="entityId">1</url-param>
<url-param name="entityAction"/>
<url-param name="entityId">1</url-param>
</url-params>
<get-params>
<get-param name="form_action"></get-param>
</get-params>
<post-params>
<post-param name="form_action"></post-param>
</post-params>
</url-schema>
<linkpanel id="page-nav" location="top">
<link id="page-nav[1]" target="/page0" mode="intern">
<label id="page0">Page 0</label>
</link>
<link id="page-nav[2]" target="/page1" mode="intern">
<condition expression="${1==1}"/>
<label id="page1">Page 1</label>
</link>
<link id="page-nav[4]" target="/page3" mode="intern">
<permissions>
<permission ref="page3" mode="set"></permission>
</permissions>
<label id="page3">Page 3</label>
</link>
</linkpanel>
</config>
<structure>
<section id="42">
<element passive="true">
<title id="update.entity" params="#{name},${entityId}">Update entity entity1 (ID: 1)</title>
<action id="update" eventId="events">
<config>
<title id="update.entity" params="#{name},${entityId}">Update entity entity1 (ID: 1)</title>
<permissions>
<permission ref="update.entity" mode="set"></permission>
</permissions>
<params>
<param name="entityId">1</param>
<param name="form_action"></param>
<param name="action">update</param>
</params>
<meta-data bindClass="org.appng.testapplication.TestEntity">
<field name="id" type="int" format="#" readonly="true" hidden="true" binding="id">
<label id="id">ID</label>
<condition expression="${1==1}"/>
</field>
<field name="name" type="text" binding="name">
<label id="name">Name</label>
<validation>
<notNull>
<message ref="name" class="ERROR" code="{validation.notNull}">Field must not be empty</message>
</notNull>
</validation>
</field>
<field name="integerValue" type="list:checkbox" binding="integerValue">
<label id="integerValue">integer value</label>
</field>
<field name="doubleValue" type="decimal" format="#.##" binding="doubleValue">
<label id="doubleValue">double value</label>
</field>
<field name="booleanValue" type="checkbox" binding="booleanValue">
<label id="booleanValue">boolean value</label>
</field>
<field name="enumValue" type="list:radio" binding="enumValue">
<label id="enumValue">enumValue</label>
</field>
<field name="parent" type="object" binding="parent">
<field name="name" type="text" binding="parent.name">
<validation>
<notNull>
<message ref="parent.name" class="ERROR" code="{validation.notNull}">Field must not be empty</message>
</notNull>
</validation>
</field>
<field name="integerValue" type="int" format="#" binding="parent.integerValue"/>
</field>
<field name="children" type="list:object" binding="children">
<field name="children[]" type="object" binding="children.children[]">
<field name="name" type="text" binding="children.children[].name">
<validation>
<notNull>
<message ref="children.children[].name" class="ERROR" code="{validation.notNull}">Field must not be empty</message>
</notNull>
</validation>
</field>
<field name="integerValue" type="int" format="#" binding="children.children[].integerValue"/>
</field>
</field>
</meta-data>
</config>
<condition expression="${form_action eq 'update' and action eq 'update' and not empty entityId}"/>
<datasource id="entity">
<params>
<param name="entityId">1</param>
</params>
</datasource>
<data>
<selection id="integerValue" type="checkbox">
<title id="integerValue">integer value</title>
<option value="1" name="1" selected="false"/>
<option value="2" name="2" selected="false"/>
<option value="3" name="3" selected="false"/>
<option value="4" name="4" selected="false"/>
<option value="5" name="5" selected="true"/>
</selection>
<selection id="enumValue">
<option value="ACME" name="acme" selected="true"/>
<option value="WARNER" name="warner" selected="false"/>
</selection>
<result>
<field name="id" type="int">
<value>1</value>
</field>
<field name="name" type="text">
<value>entity1</value>
</field>
<field name="integerValue" type="list:checkbox">
<value>5</value>
</field>
<field name="doubleValue" type="decimal">
<value>5.5</value>
</field>
<field name="booleanValue" type="checkbox">
<value>false</value>
</field>
<field name="enumValue" type="list:radio">
<value>ACME</value>
</field>
<field name="parent" type="object">
<field name="name" type="text">
<value>entity1</value>
</field>
<field name="integerValue" type="int">
<value>5</value>
</field>
<value></value>
</field>
<field name="children" type="list:object">
<field name="children[0]" type="object">
<field name="name" type="text">
<value>entity2</value>
</field>
<field name="integerValue" type="int">
<value>7</value>
</field>
<value></value>
</field>
<field name="children[1]" type="object">
<field name="name" type="text">
<value>entity3</value>
</field>
<field name="integerValue" type="int">
<value>9</value>
</field>
<value></value>
</field>
</field>
</result>
</data>
<bean id="entities">
<option name="action" id="update"/>
<option name="entity" id="1"/>
</bean>
</action>
</element>
</section>
</structure>
</page>
</pages>
</applicationReference>
, org.custommonkey.xmlunit.Diff
[different] Expected attribute value 'true' but was '${1==1}' - comparing <condition expression="true"...> at /applicationReference[1]/pages[1]/page[1]/structure[1]/section[1]/element[1]/action[1]/config[1]/meta-data[1]/field[1]/condition[1]/@expression to <condition expression="${1==1}"...> at /applicationReference[1]/pages[1]/page[1]/structure[1]/section[1]/element[1]/action[1]/config[1]/meta-data[1]/field[1]/condition[1]/@expression
at org.appng.core.model.ApplicationProviderTest.runTest(ApplicationProviderTest.java:281)
at org.appng.core.model.ApplicationProviderTest.testUpdateInclude(ApplicationProviderTest.java:158)
Standard Output
2023-01-16 15:59:13,712 INFO [main] org.springframework.test.context.support.DefaultTestContextBootstrapper: Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
2023-01-16 15:59:13,723 INFO [main] org.springframework.test.context.support.DefaultTestContextBootstrapper: Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@36ab3814, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@2abbd0d9, org.springframework.test.context.support.DependencyInjectionTestExecutionListener@b61edb9, org.springframework.test.context.support.DirtiesContextTestExecutionListener@5d3ff859, org.springframework.test.context.transaction.TransactionalTestExecutionListener@32bb0072, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@467233e4]
2023-01-16 15:59:13,814 INFO [main] org.springframework.beans.factory.xml.XmlBeanDefinitionReader: Loading XML bean definitions from class path resource [applications/application1/beans.xml]
2023-01-16 15:59:13,973 INFO [main] org.springframework.beans.factory.xml.XmlBeanDefinitionReader: Loading XML bean definitions from class path resource [org/appng/testsupport/application-testcontext.xml]
2023-01-16 15:59:13,994 INFO [main] org.springframework.beans.factory.xml.XmlBeanDefinitionReader: Loading XML bean definitions from class path resource [org/appng/testsupport/application-testcontext-jpa.xml]
2023-01-16 15:59:14,027 INFO [main] org.springframework.context.support.GenericApplicationContext: Refreshing org.springframework.context.support.GenericApplicationContext@dab1f89: startup date [Mon Jan 16 15:59:14 CET 2023]; root of context hierarchy
2023-01-16 15:59:14,229 INFO [main] org.appng.api.config.RestConfig: [localhost:demo-application] Found 0 MappingJackson2HttpMessageConverters:
2023-01-16 15:59:14,229 INFO [main] org.appng.api.config.RestConfig: [localhost:demo-application] Found 0 ObjectMappers:
2023-01-16 15:59:14,230 INFO [main] org.appng.api.config.RestConfig: [localhost:demo-application] Found 0 Modules:
2023-01-16 15:59:14,232 INFO [main] org.appng.api.config.RestConfig: [localhost:demo-application] Found 0 @Primary Beans:
2023-01-16 15:59:14,232 INFO [main] org.appng.api.config.RestConfig: [localhost:demo-application] No ObjectMapper found in context, creating default.
2023-01-16 15:59:14,238 INFO [main] org.appng.api.config.RestConfig: [localhost:demo-application] No MappingJackson2HttpMessageConverter found in context, creating default.
2023-01-16 15:59:14,240 INFO [main] org.appng.api.config.RestConfig: [localhost:demo-application] Registering ObjectMapper 'defaultObjectMapper'
2023-01-16 15:59:14,240 INFO [main] org.appng.api.config.RestConfig: [localhost:demo-application] Registering MappingJackson2HttpMessageConverter 'defaultJacksonConverter'
2023-01-16 15:59:14,243 INFO [main] org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2023-01-16 15:59:14,742 INFO [HSQLDB Server @42297bdf] hsqldb.db.HSQLDB85BB1774A6.ENGINE: Checkpoint start
2023-01-16 15:59:14,742 INFO [HSQLDB Server @42297bdf] hsqldb.db.HSQLDB85BB1774A6.ENGINE: checkpointClose start
2023-01-16 15:59:14,787 INFO [HSQLDB Server @42297bdf] hsqldb.db.HSQLDB85BB1774A6.ENGINE: checkpointClose synched
2023-01-16 15:59:14,795 INFO [HSQLDB Server @42297bdf] hsqldb.db.HSQLDB85BB1774A6.ENGINE: checkpointClose script done
2023-01-16 15:59:14,810 INFO [HSQLDB Server @42297bdf] hsqldb.db.HSQLDB85BB1774A6.ENGINE: checkpointClose end
2023-01-16 15:59:14,810 INFO [HSQLDB Server @42297bdf] hsqldb.db.HSQLDB85BB1774A6.ENGINE: Checkpoint end - txts: 1
2023-01-16 15:59:14,972 INFO [main] org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean: Building JPA container EntityManagerFactory for persistence unit 'default'
2023-01-16 15:59:15,001 INFO [main] org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing PersistenceUnitInfo [name: default]
2023-01-16 15:59:15,105 INFO [main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.4.32.Final
2023-01-16 15:59:15,349 INFO [main] org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2023-01-16 15:59:15,867 INFO [main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.HSQLDialect
2023-01-16 15:59:15,966 INFO [main] org.hibernate.envers.boot.internal.EnversServiceImpl: Envers integration enabled? : true
2023-01-16 15:59:16,278 INFO [main] org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator 6.2.0.Final
2023-01-16 15:59:16,553 INFO [main] org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2023-01-16 15:59:16,565 INFO [main] org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean: Initialized JPA EntityManagerFactory for persistence unit 'default'
2023-01-16 15:59:17,232 WARN [main] org.appng.forms.impl.RequestBean: parameter action is alread present with value [update], tried to add [update]
2023-01-16 15:59:17,232 WARN [main] org.appng.forms.impl.RequestBean: parameter entityId is alread present with value [1], tried to add [1]
2023-01-16 15:59:17,371 WARN [main] org.springframework.context.support.ResourceBundleMessageSource: ResourceBundle [messages-demo] not found for MessageSource: Can't find bundle for base name messages-demo, locale en
2023-01-16 15:59:17,372 WARN [main] org.springframework.context.support.ResourceBundleMessageSource: ResourceBundle [testmessages] not found for MessageSource: Can't find bundle for base name testmessages, locale en
Standard Error
Jan 16, 2023 3:59:14 PM ch.sla.jdbcperflogger.Logger info
INFO: Using config file jdbcperflogger-fallback.xml