Dear Maxim, As you suggested, here are the use cases and their results done in multiple environments. We did at least 30 use cases / tests (Environments used: CentOS 7.5.0 / 7.0 + MariaDB 10.3.9 / 10.0.16, JDK 1.8.181 / 1.8.162, Maven 3.5.4 / 3.5.2). Each time, a new ./m2 repository/openmeetings was downloaded and a new DB was created. * OM-4.0.1 Builds and installs successfully. * OM-4.0.4/4.0.5 Build success. Installation ERROR: All giving MissingResourceException or WicketRuntimeException
We understand the effort you put in 2015 to restructure SVN tree and then refactor older tree structure (that used Ant) to the current (that uses Maven). Here is a question / suggested solution to make OM scalable to multiple environments, particularly enterprise-grade. This will attract more users, thereby growing the community. Would it be better to place Application.properties.xml in a separate src/main/resources directory, and include this resources directory in runtime classpath? The intent is to help the product be more amenable to more rigorous environments with stringent governing rules. =========RESULTS: MissingResourceException and WicketRuntimeException=========================== USE CASE: VANILLA BINARY: 4.0.5-SNAPSHOT (from Jenkins) and 4.0.4 (openmeetings general release): Works fine. SOURCE CODE COMPILATION: 4.0.1: Builds and Installs successfully 4.0.4 / 4.0.5: Builds successfully. Installation error Log error summary Web install method org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor 'public org.apache.openmeetings.web.pages.install.InstallWizardPage()'. An exception has been thrown during construction! Caused by: java.lang.reflect.InvocationTargetException: null Caused by: java.util.MissingResourceException: Unable to find property: 'install.wizard.install.header' for component: [class=org.apache.openmeetings.web.pages.install.InstallWizardPage]. Locale: null, style: null CLI: ./admin.sh java.util.MissingResourceException: Unable to find property: '108' for component: signin [class=org.apache.openmeetings.web.pages.auth.SignInDialog]. Locale: null, style: null java.util.MissingResourceException: Unable to find property: '114' for component: signin:signin [class=org.apache.openmeetings.web.pages.auth.SignInDialog$SignInForm]. Locale: null, style: null DETAILED LOGS ================ Web Install ----------- [1;31mERROR[0;39m 08-16 19:41:32.461 [36mo.a.w.DefaultExceptionMapper:170 [<IP>-<port>-exec-2][0;39m - Unexpected error occurred org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor 'public org.apache.openmeetings.web.pages.install.InstallWizardPage()'. An exception has been thrown during construction! at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:194) at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67) at org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:90) at org.apache.wicket.core.request.handler.PageProvider$Provision.getPage(PageProvider.java:380) at org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:171) at org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:231) at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:912) at org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65) at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221) at org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:70) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:204) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:286) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:84) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:608) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:175) ... 37 common frames omitted Caused by: java.util.MissingResourceException: Unable to find property: 'install.wizard.install.header' for component: [class=org.apache.openmeetings.web.pages.install.InstallWizardPage]. Locale: null, style: null at org.apache.wicket.Localizer.getString(Localizer.java:269) at org.apache.wicket.Localizer.getString(Localizer.java:201) at org.apache.wicket.Localizer.getString(Localizer.java:131) at org.apache.wicket.Component.getString(Component.java:1829) at org.apache.wicket.Component.getString(Component.java:1816) at org.apache.openmeetings.web.pages.install.InstallWizardPage.<init>(InstallWizardPage.java:36) ... 42 common frames omitted CLI Install -------------- [1;31mERROR[0;39m 08-16 19:45:58.398 [36mo.a.w.DefaultExceptionMapper:170 [<IP>-<port>-exec-2][0;39m - Unexpected error occurred java.util.MissingResourceException: Unable to find property: '108' for component: signin [class=org.apache.openmeetings.web.pages.auth.SignInDialog]. Locale: null, style: null at org.apache.wicket.Localizer.getString(Localizer.java:269) at org.apache.wicket.Localizer.getString(Localizer.java:201) at org.apache.wicket.Localizer.getString(Localizer.java:131) at org.apache.wicket.Component.getString(Component.java:1829) at org.apache.wicket.Component.getString(Component.java:1816) at org.apache.openmeetings.web.pages.auth.SignInDialog.onInitialize(SignInDialog.java:102) at org.apache.wicket.Component.fireInitialize(Component.java:871) at org.apache.wicket.MarkupContainer$3.component(MarkupContainer.java:1043) at org.apache.wicket.MarkupContainer$3.component(MarkupContainer.java:1039) at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144) at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123) at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:192) at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:975) at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1038) at org.apache.wicket.Page.isPageStateless(Page.java:461) at org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.getPageInfo(AbstractBookmarkableMapper.java:473) at org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.mapHandler(AbstractBookmarkableMapper.java:420) at org.apache.wicket.core.request.mapper.MountedMapper.mapHandler(MountedMapper.java:155) at org.apache.openmeetings.web.app.Application$NoVersionMapper.mapHandler(Application.java:282) at org.apache.wicket.request.mapper.CompoundRequestMapper.mapHandler(CompoundRequestMapper.java:210) at org.apache.wicket.request.cycle.RequestCycle.mapUrlFor(RequestCycle.java:449) at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:233) at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:912) at org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65) at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221) at org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:70) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:204) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:286) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:84) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:608) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) [31mWARN [0;39m 08-16 19:45:58.549 [36mo.a.w.p.RequestAdapter:191 [<IP>-<port>-exec-2][0;39m - An error occurred while checking whether a page is stateless. Assuming it is stateful. java.util.MissingResourceException: Unable to find property: '114' for component: signin:signin [class=org.apache.openmeetings.web.pages.auth.SignInDialog$SignInForm]. Locale: null, style: null at org.apache.wicket.Localizer.getString(Localizer.java:269) at org.apache.wicket.Localizer.getString(Localizer.java:201) at org.apache.wicket.Localizer.getString(Localizer.java:131) at org.apache.wicket.Component.getString(Component.java:1829) at org.apache.wicket.Component.getString(Component.java:1816) at org.apache.openmeetings.web.pages.auth.SignInDialog$SignInForm.onInitialize(SignInDialog.java:302) at org.apache.wicket.Component.fireInitialize(Component.java:871) at org.apache.wicket.MarkupContainer$3.component(MarkupContainer.java:1043) at org.apache.wicket.MarkupContainer$3.component(MarkupContainer.java:1039) at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144) at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123) at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:192) at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:975) at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1038) at org.apache.wicket.Page.isPageStateless(Page.java:461) at org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:187) at org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:76) at org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:79) at org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest(PageAccessSynchronizer.java:287) at org.apache.wicket.Application$2.onDetach(Application.java:1597) at org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:105) at org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:101) at org.apache.wicket.util.listener.ListenerCollection$1.notify(ListenerCollection.java:120) at org.apache.wicket.util.listener.ListenerCollection.reversedNotify(ListenerCollection.java:144) at org.apache.wicket.util.listener.ListenerCollection.reversedNotifyIgnoringExceptions(ListenerCollection.java:113) at org.apache.wicket.request.cycle.RequestCycleListenerCollection.onDetach(RequestCycleListenerCollection.java:100) at org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:664) at org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:609) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:225) at org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:70) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:204) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:286) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:84) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:608) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Thank you. Sincerely, Hemant K. Sabat www.Coscend.com <http://www.coscend.com/> ------------------------------------------------------------------ Real-time, Interactive Video Collaboration, Tele-healthcare, Tele-education, Telepresence Services, on the fly… ------------------------------------------------------------------ CONFIDENTIALITY NOTICE: See 'Confidentiality Notice Regarding E-mail Messages from Coscend Communications Solutions' posted at: http://www.Coscend.com/Anchor/Common/Terms_and_Conditions.html -----Original Message----- From: Maxim Solodovnik [mailto:solomax...@gmail.com] Sent: Wednesday, August 15, 2018 2:38 AM To: dev <dev@openmeetings.apache.org>; om.insig...@coscend.com Subject: Re: 4.0.5 SNAPSHOT Build and Installation Errors Which archive are you using? apache-openmeetings-4.0.5-SNAPSHOT.tar.gz? it definitely contains all string resources in proper location Could you 1) download latest apache-openmeetings-4.0.5-SNAPSHOT.tar.gz 2) extract to new, empty folder 3) run ./red-debug.sh What would be the result? On Wed, Aug 15, 2018 at 12:29 PM Coscend@OM <om.insig...@coscend.com <mailto:om.insig...@coscend.com> > wrote: > > Dear Maxim, > > Below is another validation of Java Exceptions in InstallWizardPage.java and > SignInDialog.java of Application.properties.xml. > > CENTOS 7.0 > + > JDK 1.8.162 > vs > JDK 1.8.181 > > Use case 1: Use OM-405 snapshot “BINARY” from Jenkins > https://builds.apache.org/view/M-R/view/OpenMeetings/job/OpenMeetings% > 204.0.x/ > --------------- > Everything works. Does it use Ubuntu? > > > > Use case 2: Compiled OM-405 snapshot “SOURCE CODE” from Jenkins > --------------- > (A) JDK 1.8.162 + CentOS 7 + Maven 3.5.4 + MariadB 10.0.6 Throws two > Java exceptions: > org.apache.wicket.WicketRuntimeException: Can't instantiate > page using constructor 'public > org.apache.openmeetings.web.pages.install.InstallWizardPage()'. An exception > has been thrown during construction! > Caused by: java.lang.reflect.InvocationTargetException: null > Caused by: java.util.MissingResourceException: Unable > to find property: 'install.wizard.install.header' for component: > [class=org.apache.openmeetings.web.pages.install.InstallWizardPage]. > Locale: null, style: null > > > (B) JDK 1.8.181 + CentOS 7 + Maven 3.5.4 + MariadB 10.0.6 Throws two > Java exceptions: > java.util.MissingResourceException: Unable to find property: > '108' for component: signin > [class=org.apache.openmeetings.web.pages.auth.SignInDialog]. Locale: null, > style: null > java.util.MissingResourceException: Unable to find > property: '114' for component: signin:signin > [class=org.apache.openmeetings.web.pages.auth.SignInDialog$SignInForm] > . Locale: null, style: null > > Thank you. > > Sincerely, > --- This email has been checked for viruses by AVG. https://www.avg.com