The final (?) property expression expander
by David M. Lloyd
The basic problem is that we have a variety of client libraries that
need property expansion, which are rolling their own or not doing it at
all at present. We have a couple implementations of property expansion
on the server. We have some potential future property expansion
requirements. Some or all of these things do (or need to do) property
expansion slightly differently. We've been balling up and depositing
the same properties code over and over again, evolving it slightly each
time, which in turn makes it harder to adapt to the next use case. So,
it's time to stop the madness.
In wildfly-common I'm introducing a new properties expander, implemented
as a pure recursive-descent parser instead of the previous NFA-ish
parser. It is divided into two parts: syntax and expansion.
Syntax is handled by the expression compiler, whose API consists of a
static factory method that accepts a pattern string and syntax flags,
and returns the resultant Expression.
The syntax flags currently allow for the following syntax behaviors:
• NO_TRIM: Do not trim leading and trailing whitespace off of the
expression string before parsing it.
• LENIENT_SYNTAX: Ignore syntax problems whenever possible instead of
throwing an exception.
• MINI_EXPRS: Support single-character expressions that can be
interpreted without wrapping in curly braces.
• NO_RECURSE_KEY: Do not support recursive expression expansion in the
key part of the expression.
• NO_RECURSE_DEFAULT: Do not support recursion in default values.
• NO_SMART_BRACES: Do not support smart braces (this is where you have
{something} inside of a key or default value).
• GENERAL_EXPANSION: Support Policy file style "general" expansion
alternate expression syntax. "Smart" braces will only work if the
opening brace is not the first character in the expression key.
• ESCAPES: Support standard Java escape sequences in plain text and
default value fields, which begin with a backslash character.
• DOUBLE_COLON: Treat expressions containing a double-colon initial
delimiter as special, encoding the entire content into the key.
More behaviors can be contributed (along with corresponding tests of
course).
Once an Expression is compiled, the resultant object can be used for
expansion by providing an expansion function. The function is given a
context which allows introspection into the key sub-expression, the
default value sub-expression, and the string builder target. In
addition, the function may throw at most one checked exception type of
the user's choice, allowing expansion problems to be reported in any way.
The API provides a few default expanders to support only simple system
properties and environment variables in the de-facto standard manner
that we have always done; this is useful for client libraries with basic
behavior.
Find the initial code here:
https://github.com/wildfly/wildfly-common/pull/10
I'll merge it pending a bit more testing & any feedback.
--
- DML
7 years, 9 months
Current Invocation / Elytron Integration Related Failures 2017-02-06 - 1
by Darran Lofthouse
As discussed last week the invocation integration work has been merged
into WildFly with the known failing tests being skipped. At the bottom
of this e-mail is a list of the failures from the latest test run.
The test run is here: -
https://ci.wildfly.org/viewLog.html?buildId=44194&buildTypeId=WF_MasterIP...
The tests are disabled be default so they don't impact PR runs but can
be re-enabled with -Dwildfly.tmp.enable.invocation.tests=true
Stuart has contributed some appclient fixes today so I will kick off
another run as they may could be fixed.
Probably best for any discussions to happen within the 'WildFly Elytron'
room within HipChat which can be found here
https://www.hipchat.com/gKoTFkUyg.
org.jboss.as.test.integration.ejb.mdb.containerstart.SendMessagesTestCase.testShutdown
org.jboss.as.test.integration.ejb.transaction.mdb.timeout.MessageDrivenTimeoutTestCase.transactionTimeoutActivationProperty
org.jboss.as.test.integration.batch.analyzer.transactiontimeout.AnalyzerTransactionTimeoutTestCase.testTransactionTimeoutDisabled
org.jboss.as.test.integration.batch.transaction.BatchTransactionTimeoutTestCase.testThreadIsAvailableForNextJob
org.jboss.as.test.integration.ee.appclient.basic.SimpleApplicationClientTestCase.testAppClientJBossDescriptor
org.jboss.as.test.integration.ee.appclient.basic.SimpleApplicationClientTestCase.simpleAppClientTest
org.jboss.as.test.integration.ee.appclient.basic.SimpleApplicationClientTestCase.descriptorBasedAppClientTest
org.jboss.as.test.integration.ejb.async.AsyncMethodTestCase.testCancelRemoteAsyncMethod
org.jboss.as.test.integration.ejb.client.descriptor.EJBClientDescriptorTestCase.testClientInvocationTimeout
org.jboss.as.test.integration.ejb.client.descriptor.EJBClientDescriptorTestCase.testClientPropertiesReplacementInConfig
org.jboss.as.test.integration.ejb.client.descriptor.EJBClientDescriptorTestCase.testEJBClientContextConfiguration
org.jboss.as.test.integration.ejb.container.interceptor.security.SwitchIdentityTestCase.testSecurityContextAssociation
org.jboss.as.test.integration.ejb.container.interceptor.security.SwitchIdentityTestCase.testClientLoginModule
org.jboss.as.test.integration.ejb.container.interceptor.security.api.SwitchIdentityTestCase.testSecurityContextAssociation
org.jboss.as.test.integration.ejb.container.interceptor.security.api.SwitchIdentityTestCase.testClientLoginModule
org.jboss.as.test.integration.ejb.ejb2.reference.global.GlobalReferenceTestCase.testSession21
org.jboss.as.test.integration.ejb.home.remotehome.annotation.AnnotationHomeTestCase.testGetEjbLocalObject
org.jboss.as.test.integration.ejb.home.remotehome.descriptor.SimpleHomeTestCase.testgetEjbLocalObject
org.jboss.as.test.integration.ejb.mapbased.MapBasedInitialContextEjbClientTestCase.testScopedEJBClientContexts
org.jboss.as.test.integration.ejb.remote.client.api.EJBClientAPIUsageTestCase.testNonExistentViewForEJB
org.jboss.as.test.integration.ejb.remote.client.api.EJBClientAPIUsageTestCase.testGetBusinessObjectRemote
org.jboss.as.test.integration.ejb.remote.client.api.tx.EJBClientUserTransactionTestCase.testBatchOperationsInTx
org.jboss.as.test.integration.ejb.remote.client.api.tx.EJBClientXidTransactionTestCase.testSLSBMandatoryTx
org.jboss.as.test.integration.ejb.remote.client.api.tx.EJBClientXidTransactionTestCase.testClientTransactionManagement
org.jboss.as.test.integration.ejb.remote.security.RemoteIdentityTestCase.testNotSwitched
org.jboss.as.test.integration.ejb.remote.security.RemoteIdentityTestCase.testUnsecured
org.jboss.as.test.integration.ejb.remote.security.RemoteIdentityTestCase.testSwitched
org.jboss.as.test.integration.ejb.remote.security.RemoteIdentityTestCase.testDirect
org.jboss.as.test.integration.ejb.remote.suspend.EjbRemoteSuspendTestCase.testSuspendedCallRejected
org.jboss.as.test.integration.ejb.remote.view.LocalViewRemoteInvocationTestCase.testServerInVMInvocationOnLocalViewOfSingleton
org.jboss.as.test.integration.ejb.remote.view.LocalViewRemoteInvocationTestCase.testServerInVMInvocationOnLocalViewOfSFSB
org.jboss.as.test.integration.ejb.remote.view.LocalViewRemoteInvocationTestCase.testServerInVMInvocationOnLocalViewOfSLSB
org.jboss.as.test.integration.ejb.timerservice.tx.timeout.TxTimeoutTimerServiceTestCase.testPrivateScheduleMethod
org.jboss.as.test.integration.ejb.timerservice.tx.timeout.TxTimeoutTimerServiceTestCase.testPublicTimeoutMethod
org.jboss.as.test.integration.ejb.timerservice.tx.timeout.TxTimeoutTimerServiceTestCase.testPrivateTimeoutMethod
org.jboss.as.test.integration.ejb.timerservice.tx.timeout.TxTimeoutTimerServiceTestCase.testPublicScheduleMethod
org.jboss.as.test.integration.ejb.transaction.bmt.lazyenlist.LazyTransactionEnlistmentUnitTestCase.testRawSQL
org.jboss.as.test.integration.ejb.transaction.bmt.timeout.StatelessTimeoutTestCase.timeoutMultiple
org.jboss.as.test.integration.ejb.transaction.bmt.timeout.StatelessTimeoutTestCase.timeout
org.jboss.as.test.integration.ejb.transaction.cmt.timeout.DefaultTransactionTimeoutTestCase.testDescriptor
org.jboss.as.test.integration.ejb.transaction.cmt.timeout.TransactionTimeoutTestCase.testDescriptor
org.jboss.as.test.integration.ejb.transaction.cmt.timeout.TransactionTimeoutTestCase.testBeanTimeouts
org.jboss.as.test.integration.ejb.transaction.cmt.timeout.TransactionTimeoutTestCase.testDescriptorWithNestedExpressions
org.jboss.as.test.integration.ejb.transaction.descriptor.EjbTransactionDescriptorTestCase.testRemoteMethodHasMandatory
org.jboss.as.test.integration.ejb.transaction.descriptor.EjbTransactionDescriptorTestCase.testRemoteMethodHasMandatoryNoMethodIntf
org.jboss.as.test.integration.jpa.datasourcedefinition.DataSourceDefinitionJPATestCase.testUserTxRollbackDiscardsChanges
org.jboss.as.test.integration.jpa.transaction.TransactionTestCase.testUserTxRollbackDiscardsChanges
org.jboss.as.test.integration.management.deploy.runtime.StatefulEJBRemoteHomeRuntimeNameTestCase.testStatefulLocalHome
org.jboss.as.test.integration.management.deploy.runtime.StatelessEJBRemoteHomeRuntimeNameTestCase.testStatelessLocalHome
org.jboss.as.test.integration.naming.connector.JMXConnectorTestCase.testMBeanCount
org.jboss.as.test.integration.naming.ldap.LdapUrlInSearchBaseTestCase.testDir
org.jboss.as.test.integration.naming.ldap.LdapUrlInSearchBaseTestCase.testLdap
org.jboss.as.test.integration.naming.rmi.RmiContextLookupTestCase.testTaskSubmit
org.jboss.as.test.iiop.client.IIOPTransactionPropagationTestCase.testIIOPInvocationWithRollbackOnly
org.jboss.as.test.iiop.client.IIOPTransactionPropagationTestCase.testIIOPNeverCallInvocation
org.jboss.as.test.iiop.client.IIOPTransactionPropagationTestCase.testIIOPInvocation
org.jboss.as.test.iiop.transaction.TransactionIIOPInvocationTestCase.testSameTransactionEachCall
org.jboss.as.test.iiop.transaction.TransactionIIOPInvocationTestCase.testRollbackOnlyBeforeCompletion
org.jboss.as.test.iiop.transaction.TransactionIIOPInvocationTestCase.testSynchronizationSucceeded
org.jboss.as.test.iiop.transaction.TransactionIIOPInvocationTestCase.testRollbackOnly
org.jboss.as.test.iiop.transaction.TransactionIIOPInvocationTestCase.testRemoteIIOPInvocation
org.jboss.as.test.iiop.transaction.TransactionIIOPInvocationTestCase.testSynchronizationFailed
org.jboss.as.test.iiop.transaction.timeout.IIOPTimeoutTestCase.noTimeoutStateless
org.jboss.as.test.iiop.transaction.timeout.IIOPTimeoutTestCase.timeoutStateful
org.jboss.as.test.iiop.transaction.timeout.IIOPTimeoutTestCase.noTimeoutStateful
org.jboss.as.test.iiop.transaction.timeout.IIOPTimeoutTestCase.timeoutStateless
org.jboss.as.test.clustering.cluster.dispatcher.CommandDispatcherTestCase(SYNC-tcp).test
org.jboss.as.test.clustering.cluster.provider.ServiceProviderRegistrationTestCase(SYNC-tcp).test
org.jboss.as.test.clustering.cluster.registry.RegistryTestCase(SYNC-tcp).test
org.jboss.as.test.clustering.cluster.ejb.remote.RemoteFailoverTestCase(SYNC-tcp).testGracefulShutdownConcurrentFailover
org.jboss.as.test.clustering.cluster.ejb.remote.RemoteFailoverTestCase(SYNC-tcp).testStatelessFailover
org.jboss.as.test.clustering.cluster.ejb.remote.RemoteFailoverTestCase(SYNC-tcp).testStatefulFailover
org.jboss.as.test.clustering.cluster.ejb.remote.RemoteFailoverTestCase(SYNC-tcp).testSecureStatelessFailover
org.jboss.as.test.clustering.cluster.ejb.remote.RemoteFailoverTestCase(SYNC-tcp).testClientException
org.jboss.as.test.clustering.single.provider.ServiceProviderRegistrationTestCase.test
org.jboss.as.test.clustering.single.dispatcher.CommandDispatcherTestCase.test
org.jboss.as.test.clustering.single.registry.RegistryTestCase.test
org.jboss.as.test.multinode.transaction.TransactionInvocationTestCase.testSameTransactionEachCall
org.jboss.as.test.multinode.transaction.TransactionInvocationTestCase.testRollbackOnlyBeforeCompletion
org.jboss.as.test.multinode.transaction.TransactionInvocationTestCase.testSynchronizationSucceeded
org.jboss.as.test.multinode.transaction.TransactionInvocationTestCase.testRollbackOnly
org.jboss.as.test.multinode.transaction.TransactionInvocationTestCase.testRemoteInvocation
org.jboss.as.test.multinode.transaction.TransactionInvocationTestCase.testSynchronizationFailed
org.jboss.as.test.multinode.ejb.timer.database.DatabaseTimerServiceMultiNodeTestCase.testEjbTimeoutOnOtherNode
org.jboss.as.test.multinode.remotecall.RemoteLocalCallTestCase.testStatefulRemoteHomeFromRemoteHome
org.jboss.as.test.multinode.remotecall.RemoteLocalCallTestCase.testStatelessRemoteHomeFromRemoteHome
org.jboss.as.test.multinode.remotecall.RemoteLocalCallTestCase.testStatefulRemoteFromRemote
org.jboss.as.test.multinode.remotecall.RemoteLocalCallTestCase.testStatelessRemoteFromRemote
org.jboss.as.test.multinode.remotecall.RemoteLocalCallProfileTestCase
org.jboss.as.test.multinode.remotecall.scoped.context.DynamicJNDIContextEJBInvocationTestCase
org.jboss.as.test.manualmode.ejb.client.outbound.connection.RemoteOutboundConnectionReconnectTestCase.testRemoteServerRestarts
org.jboss.as.test.manualmode.ejb.client.outbound.connection.RemoteOutboundConnectionReconnectTestCase.testRemoteServerStartsLate
7 years, 9 months
JDK 9 EA Build 155 is available on java.net
by Rory O'Donnell
Hi Jason/Tomaz,
*JDK 9 Early Access* b155 <https://jdk9.java.net/download/> is
available on java.net
Can you confirm fix for :
* b152 - JDK-8172158 : Annotation processor not run with -source <= 8
There have been a number of fixes to bugs reported by Open Source
projects since the last availability email :
* b155 - JDK-8167273 : Calendar.getDisplayNames inconsistent with
DateFormatSymbols
* b154 - JDK-8157611 : field visiblePackages is null for the unnamed
module producing NPE when accessed
* b153 - JDK-8163449 : Allow per protocol setting for URLConnection
defaultUseCaches
Dalibor and I are presenting at FOSDEM this weekend, we would love to
meet you there!
* JDK 9 Outreach - The Awesome Parts
<https://fosdem.org/2017/schedule/event/outreach/>
Rgds,Rory
--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
7 years, 9 months
New invocation merge
by Kabir Khan
Hi,
The new invocation library, which is the basis of for the ejb client etc. is currently developed in a branch. There are still about 130-140 test failures, but the team feels it is time to merge to wildfly master at some stage later this week. This will get more visibility of the failures and also lower the barrier of entry for whoever can jump in and help fix the failures.
Are there any objections to merging this?
>From my point of view we would need to @Ignore the failing tests since there are enough transient failures in our testsuite to make it hard to find usual suspects if the number of failed tests is large. We could set up another CI job against a branch which is master with the @Ignores reverted, and I could keep that up to date as I merge to master, so that we get a good picture of the current testsuite failures.
Thanks,
Kabir
7 years, 9 months