OpenLiberty / liberty-arquillian

Arquillian Liberty Managed and Remote containers
Apache License 2.0
11 stars 29 forks source link

Unable to read micro profile property #128

Closed poojashree-mc closed 1 year ago

poojashree-mc commented 1 year ago
Issue Overview

Unable to run testcase case project contains finish\src\main\resources\META-INF/microprofile-config.properties

Expected Behaviour

Unable to run mvn failsafe:integration-test

Current Behaviour

Should be able to run mvn failsafe:integration-test

Additional Information

Hi Team, I am stuck with this issue. I am facing issue while writing integration testing I cloned git clone https://github.com/openliberty/guide-arquillian-managed.git (https://openliberty.io/guides/arquillian-managed.html)

code:

Added property file under finish\src\main\resources\META-INF\microprofile-config.properties AppConfig.java --->

@ApplicationScoped public class AppConfig { @Inject @ConfigProperty(name="serviceName") private String serviceName;

public String getServiceName() { return serviceName; } public void setServiceName(String serviceName) { this.serviceName = serviceName; } } server.xml

mpConfig-3.0

Exception : io.smallrye.config.inject.ConfigException: SRCFG02000: Failed to Inject @ConfigProperty for key serviceName into io.openliberty.guides.system.AppConfig.serviceName since the config property could not be found in any config source at io.smallrye.config.inject.ConfigExtension.validate(ConfigExtension.java:183) at io.openliberty.microprofile.config.internal.extension.OLSmallRyeConfigExtension.validate(OLSmallRyeConfigExtension.java:65) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:95) at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:85) at org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:168) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:330) at org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:123) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:308) at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:286) at jakarta.enterprise.inject.spi.ObserverMethod.notify(ObserverMethod.java:125) at org.jboss.weld.util.Observers.notify(Observers.java:166) at org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:285) at org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:273) at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:177) at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:171) at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:53) at org.jboss.weld.bootstrap.events.AbstractDeploymentContainerEvent.fire(AbstractDeploymentContainerEvent.java:35) at org.jboss.weld.bootstrap.events.AfterDeploymentValidationImpl.fire(AfterDeploymentValidationImpl.java:28) at org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:510) at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:93) at com.ibm.ws.cdi.impl.CDIContainerImpl.startInitialization(CDIContainerImpl.java:178) at com.ibm.ws.cdi.liberty.CDIRuntimeImpl.applicationStarting(CDIRuntimeImpl.java:492) at com.ibm.ws.container.service.state.internal.ApplicationStateManager.fireStarting(ApplicationStateManager.java:51) at com.ibm.ws.container.service.state.internal.StateChangeServiceImpl.fireApplicationStarting(StateChangeServiceImpl.java:50) at com.ibm.ws.app.manager.module.internal.SimpleDeployedAppInfoBase.preDeployApp(SimpleDeployedAppInfoBase.java:547) at com.ibm.ws.app.manager.module.internal.SimpleDeployedAppInfoBase.installApp(SimpleDeployedAppInfoBase.java:508) at com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deployApp(DeployedAppInfoBase.java:349) at com.ibm.ws.app.manager.war.internal.WARApplicationHandlerImpl.install(WARApplicationHandlerImpl.java:65) at com.ibm.ws.app.manager.internal.statemachine.StartAction.execute(StartAction.java:182) at com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.enterState(ApplicationStateMachineImpl.java:1367) at com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.performAction(ApplicationStateMachineImpl.java:1211) at com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.run(ApplicationStateMachineImpl.java:918) at com.ibm.ws.threading.internal.ExecutorServiceImpl$RunnableWrapper.run(ExecutorServiceImpl.java:245) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750)

$mvn --version Maven home: /usr/share/maven/latest Java version: 1.7.0_79, vendor: Oracle Corporation Java home: /usr/java/jdk1.7.0_79/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.7.7-200.fc24.x86_64", arch: "amd64", family: "unix"
scottkurz commented 1 year ago

Hi @poojashree-mc , can you please show the code you used to add the config properties file to the ShrinkWrap deployment archive?

scottkurz commented 1 year ago

I tried it out and it looks like adding this line works:

.addAsManifestResource(new File("src/main/resources/META-INF", "microprofile-config.properties"))

so, e.g.:

        WebArchive archive = ShrinkWrap.create(WebArchive.class, WARNAME)
            .addAsManifestResource(new File("src/main/resources/META-INF", "microprofile-config.properties"))
                .addPackages(true, "io.openliberty.guides.system");
scottkurz commented 1 year ago

@poojashree-mc could you please add a comment here if you have any updates on this issue? It looks like I might have gotten an email about it but it's better to work through the issue. Thank you.

poojashree-mc commented 1 year ago

Thank you @scottkurz it works

scottkurz commented 1 year ago

@poojashree-mc glad to help. I'm thinking I'm going to write this up on StackOverflow as a Q&A. I'll give it a couple days in case you want to do it first (if you do please just post a link here and I'll go take a look). Thanks.

poojashree-mc commented 1 year ago

@scottkurz,

It will be really helpful if I get link or guide for testing persistence(DB2) layer and RestAPI end point form open liberty.