fabric8-launcher / launchpad-backend Goto Github PK
View Code? Open in Web Editor NEWThe back-end for the Launchpad project generator
License: Apache License 2.0
The back-end for the Launchpad project generator
License: Apache License 2.0
when trying to work on launchpad-frontend on local UI targetting remote server:
export LAUNCHPAD_BACKEND_URL=https://launch.prod-preview.openshift.io
npm start
We get the error:
Failed to load https://launch.prod-preview.openshift.io/launchpad/commands/launchpad-new-project: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:8088, http://localhost:8088', but only one is allowed. Origin 'http://localhost:8088' is therefore not allowed access.
@gastaldi @bartoszmajsak Root cause seems to be server side configuration: duplicate Access-Control-Allow-Origin
. Is there any proxy server side that could add the duplicate info?
When doing this curl, server returns:
curl -X OPTIONS -v -k -H "Origin: http://localhost" https://launch.prod-preview.openshift.io/launchpad/commands/launchpad-new-project
* Trying 54.210.186.127...
* TCP_NODELAY set
* Connected to launch.prod-preview.openshift.io (54.210.186.127) port 443 (#0)
* WARNING: disabling hostname validation also disables SNI.
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: *.b6ff.rh-idev.openshiftapps.com
* Server certificate: DigiCert SHA2 High Assurance Server CA
* Server certificate: DigiCert High Assurance EV Root CA
> OPTIONS /launchpad/commands/launchpad-new-project HTTP/1.1
> Host: launch.prod-preview.openshift.io
> User-Agent: curl/7.54.0
> Accept: */*
> Origin: http://localhost
>
< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Date: Tue, 07 Nov 2017 08:11:58 GMT
< Content-Length: 0
< Access-Control-Allow-Origin: http://localhost
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Origin: http://localhost
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
< Set-Cookie: 7328ad8b743e54c6d85aefb3b9f101f6=6eff141d18c4937904ec4eed48107795; path=/; HttpOnly; Secure
< Cache-control: private
<
* Connection #0 to host launch.prod-preview.openshift.io left intact
We have a health check for seeing if the backend service is live but we don't know if it can actually connect to Catapult. It would be very useful to have that so we can at least check if the service was configured correctly.
Currently the booster meta data resides with each booster, but from my point of view it belongs into the catalog:
name: HTTP CRUD - Wildfly Swarm
description: A simple CRUD application using Wildfly Swarm
versions:
- id: community
name: 2017.9.5 (Community)
- id: redhat
name: 7.0.0.redhat-6 (RHOAR)
All of the above has to kept redundantly in the each booster branch (community/prod) while it's really an overarching concern. I suggest we move this data into the catalog, rather then keeping it with each booster.
oc start-build generator-backend
One has to install the obsidian-addon into the addon folder, but it needs dependencies and xml editing
NPE is reported when we try to create a project using the button "Begin by selecting a runtime project framework (Eclipse Vert.x, WildFly Swarm, or Spring Boot)"
-->
https://gist.github.com/cmoulliard/3cab4b2d06fe274ceff8fbb98cb84a96#file-gistfile1-txt-L142
I'm thinking mainly of the .openshiftio
directory, but maybe there's more.
https://issues.jboss.org/browse/SWARM-847 prevents the upgrade
Indexing of repositories is considered in health check. If indexing takes too long (e.g. on slow Internet connection), it can result in health checks killing pod and failed deployment.
When using a multi page forge wizard which does things (e.g. loaded the github token from keycloak/secretes, loaded the users github organisations, validate that the current project name doesn't exist already in github, load the openshift namespaces and so forth such as in fabric8-generator) it can take a little time on the very first request to validate all the possible pages that could be invoked if the user hits Finish
immediately.
i.e. the very first request takes 1-10 seconds due to the cache being cold which isn't a good first experience of the wizard for new users.
However as soon as any key is pressed or selection is made (its rare for users to just it Finish
immediately), all pages are validated etc.
So it might be nice for the UI to pass a flag to the REST API on the very first request aimed at loading page 0 first - and only page 0 - which would return false for being able to go to Next
or Finish
etc. Then the UI can make a second regular request after the data for the first page is loaded.
i.e. load the first page as quickly as possible; then once thats loaded, then load & validate all the possible pages in the wizard. Then the page loads quickly; the user then has time to look at the options, press some keys, then hit Finish
. By the time they are ready to hit Finish
then hopefully we'll have validated & warmed the caches ;)
So maybe we need a 'this step only' or loading first page
form attribute the UI can pass in on the very first request on startup to avoid loading/defaulting/validating all the steps in a wizard so it can just load the first one quickly?
after building master and trying to run it I now get an error starting up. Any ideas?
$ mvn clean package -s configuration/settings.xml
...
$ java -jar target/generator-swarm.jar
2017-03-14 09:37:34,336 INFO [org.wildfly.swarm] (main) WFSWARM0018: Installed fraction: Bean Validation - STABLE org.wildfly.swarm:bean-validation:2017.3.3
2017-03-14 09:37:34,343 INFO [org.wildfly.swarm] (main) WFSWARM0018: Installed fraction: Logging - STABLE org.wildfly.swarm:logging:2017.3.3
2017-03-14 09:37:34,344 INFO [org.wildfly.swarm] (main) WFSWARM0018: Installed fraction: CDI Configuration - STABLE org.wildfly.swarm:cdi-config:2017.3.3
2017-03-14 09:37:34,344 INFO [org.wildfly.swarm] (main) WFSWARM0018: Installed fraction: Transactions - STABLE org.wildfly.swarm:transactions:2017.3.3
2017-03-14 09:37:34,344 INFO [org.wildfly.swarm] (main) WFSWARM0018: Installed fraction: CDI - STABLE org.wildfly.swarm:cdi:2017.3.3
2017-03-14 09:37:34,344 INFO [org.wildfly.swarm] (main) WFSWARM0018: Installed fraction: Undertow - STABLE org.wildfly.swarm:undertow:2017.3.3
2017-03-14 09:37:34,345 INFO [org.wildfly.swarm] (main) WFSWARM0018: Installed fraction: JAX-RS - STABLE org.wildfly.swarm:jaxrs:2017.3.3
2017-03-14 09:37:38,054 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final
2017-03-14 09:37:38,114 INFO [org.jboss.as] (MSC service thread 1-6) WFLYSRV0049: WildFly Swarm 2017.3.3 (WildFly Core 2.2.1.CR1) starting
2017-03-14 09:37:38,170 INFO [org.wildfly.swarm] (MSC service thread 1-6) WFSWARM0029: Install MSC service for command line args: []
2017-03-14 09:37:40,497 WARN [org.jboss.as.txn] (ServerService Thread Pool -- 18) WFLYTX0013: Node identifier property is set to the default value. Please make sure it is unique.
2017-03-14 09:37:40,507 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 19) WFLYNAM0001: Activating Naming Subsystem
2017-03-14 09:37:40,510 INFO [org.jboss.as.security] (ServerService Thread Pool -- 22) WFLYSEC0002: Activating Security Subsystem
2017-03-14 09:37:40,515 INFO [org.jboss.as.security] (MSC service thread 1-5) WFLYSEC0001: Current PicketBox version=4.9.6.Final
2017-03-14 09:37:40,529 INFO [org.wildfly.extension.io] (ServerService Thread Pool -- 17) WFLYIO001: Worker 'default' has auto-configured to 16 core threads with 128 task threads based on your 8 available processors
2017-03-14 09:37:40,550 INFO [org.jboss.as.naming] (MSC service thread 1-2) WFLYNAM0003: Starting Naming Service
2017-03-14 09:37:40,865 INFO [org.wildfly.extension.undertow] (MSC service thread 1-3) WFLYUT0003: Undertow 1.4.0.Final starting
2017-03-14 09:37:40,880 INFO [org.xnio] (MSC service thread 1-7) XNIO version 3.4.0.Final
2017-03-14 09:37:40,890 INFO [org.xnio.nio] (MSC service thread 1-7) XNIO NIO Implementation Version 3.4.0.Final
2017-03-14 09:37:40,921 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0012: Started server default-server.
2017-03-14 09:37:40,972 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0006: Undertow HTTP listener default listening on [0:0:0:0:0:0:0:0]:8080
2017-03-14 09:37:40,977 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: (("system-property" => "PS1")) - failure description: "WFLYCTL0211: Cannot resolve expression '\\u$__vcs_ref:\\[${_bold}\\]${__vcs_base_dir}\\[${_normal}\\]${__vcs_refix}\\[${_bold}\\]${__vcs_sub_dir}\\[${_normal}\\]\\$ '"
right now commands are totally hard coded due to the regex + messages. Then the use of @Pattern
only allows real constants it seems .
So here's a PR that validates commands are in the allowed commandMap and generates a dynamic error message based on the loaded commands (so that we can more easily configure/extend which commands are supported).
e.g. some commands may wish to reuse the HTTP Authorization header for the bearer token etc
We believe that many people would accept the defaults when generating projects, so it would be nice to cache requests so that would avoid CPU/Memory/Disk usage and support a higher number of concurrent users
Currently the CMD in the Dockerfile is set to java -jar launchpad-backend-swarm.jar
. Since wildfly swarm default will bind to all interfaces (including ipv6) I would recommend that we add -Djava.net.preferIPv4Stack=true
as an argument.
Additionally, it's preferable if we set Xms and Xms values because how default memory allocation works for the JVM inside a container (see https://developers.redhat.com/blog/2017/03/14/java-inside-docker/). I've tested and verified the following settings which I recommend:
CMD ["java", "-server", "-Xms64m", "-Xmx512m", "-Djava.net.preferIPv4Stack=true", "-jar", "launchpad-backend-swarm.jar"]
Leads to
2017-04-20 07:57:40,992 ERROR [io.undertow.request] (default task-12) UT005023: Exception handling request to /launchpad/commands/launchpad-new-starter-project: org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException
at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:77)
at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:220)
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:175)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:418)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.swarm.generated.FaviconErrorHandler.handleRequest(FaviconErrorHandler.java:62)
at io.undertow.server.handlers.PathHandler.handleRequest(PathHandler.java:94)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:211)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:809)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at org.jboss.forge.addon.ui.impl.controller.SingleCommandControllerImpl.initialize(SingleCommandControllerImpl.java:61)
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.forge.furnace.proxy.ClassLoaderAdapterCallback$2.call(ClassLoaderAdapterCallback.java:124)
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.invoke(ClassLoaderAdapterCallback.java:97)
at org.jboss.forge.addon.ui.controller.CommandController_$$_javassist_9301e633-b5ff-437c-a298-f8a278c2a454.initialize(CommandController_$$_javassist_9301e633-b5ff-437c-a298-f8a278c2a454.java)
at io.openshift.launchpad.backend.rest.LaunchpadResource.getCommand(LaunchpadResource.java:417)
at io.openshift.launchpad.backend.rest.LaunchpadResource.getCommandInfo(LaunchpadResource.java:176)
at io.openshift.launchpad.backend.rest.LaunchpadResource$Proxy$_$$_WeldClientProxy.getCommandInfo(Unknown Source)
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.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402)
... 43 more
2017-04-20 07:58:04,771 WARNING [org.jboss.forge.addon.ui.impl.controller.CommandControllerFactoryImpl] (default task-18) org.jboss.forge.addon.ui.command.UICommandTransformer implementation org.jboss.forge.addon.ui.impl.command.PrerequisiteCommandTransformer_$$_javassist_9dcd33b9-e247-4e4a-9795-62493cd73eb9 should not have returned null. Ignoring.
2017-04-20 07:58:04,775 ERROR [io.undertow.request] (default task-18) UT005023: Exception handling request to /launchpad/commands/launchpad-new-starter-project: org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException
at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:77)
at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:220)
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:175)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:418)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.swarm.generated.FaviconErrorHandler.handleRequest(FaviconErrorHandler.java:62)
at io.undertow.server.handlers.PathHandler.handleRequest(PathHandler.java:94)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:211)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:809)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at org.jboss.forge.addon.ui.impl.controller.SingleCommandControllerImpl.initialize(SingleCommandControllerImpl.java:61)
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.forge.furnace.proxy.ClassLoaderAdapterCallback$2.call(ClassLoaderAdapterCallback.java:124)
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.invoke(ClassLoaderAdapterCallback.java:97)
at org.jboss.forge.addon.ui.controller.CommandController_$$_javassist_9301e633-b5ff-437c-a298-f8a278c2a454.initialize(CommandController_$$_javassist_9301e633-b5ff-437c-a298-f8a278c2a454.java)
at io.openshift.launchpad.backend.rest.LaunchpadResource.getCommand(LaunchpadResource.java:417)
at io.openshift.launchpad.backend.rest.LaunchpadResource.getCommandInfo(LaunchpadResource.java:176)
at io.openshift.launchpad.backend.rest.LaunchpadResource$Proxy$_$$_WeldClientProxy.getCommandInfo(Unknown Source)
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.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402)
... 43 more
We need IMAGE_TAG param here:
you can follow example here:
https://github.com/almighty/almighty-core/blob/master/openshift/core.app.yaml#L31
https://github.com/almighty/almighty-core/blob/master/openshift/core.app.yaml#L171
launchpad addon in version 7-SNAPSHOT is not in latest docker image 89ed63, which results in deployment failures
Failed to get instance of [class io.openshift.launchpad.ui.booster.ProjectInfoStep]
with proxy for ClassLoader [ModuleClassLoader for Module
"io.openshift.launchpad.launchpad-addon:7-SNAPSHOT_077371c2-728d-4dbf-a41d-9585b632a879"
from AddonModuleLoader]
Full error message:
2017-06-16 12:42:09,441 SEVERE [org.jboss.forge.addon.ui.impl.command.CommandFactoryImpl] (ServerService Thread Pool -- 10) Error while retrieving command instance: org.jboss.forge.furnace.exception.ContainerException: Failed to get instance of [class io.openshift.launchpad.ui.booster.ProjectInfoStep] with proxy for ClassLoader [ModuleClassLoader for Module "io.openshift.launchpad.launchpad-addon:7-SNAPSHOT_077371c2-728d-4dbf-a41d-9585b632a879" from AddonModuleLoader]
at org.jboss.forge.furnace.container.cdi.services.ExportedInstanceImpl.get(ExportedInstanceImpl.java:77)
at org.jboss.forge.furnace.impl.addons.ImportedImpl$ImportedIteratorImpl.next(ImportedImpl.java:182)
at org.jboss.forge.addon.ui.impl.command.CommandFactoryImpl.getCommands(CommandFactoryImpl.java:189)
at org.jboss.forge.addon.ui.impl.command.CommandFactoryImpl.getCommandsFromSource(CommandFactoryImpl.java:174)
at org.jboss.forge.addon.ui.impl.command.CommandFactoryImpl.getNewCommandByName(CommandFactoryImpl.java:125)
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.forge.furnace.proxy.ClassLoaderInterceptor$1.call(ClassLoaderInterceptor.java:87)
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at org.jboss.forge.furnace.proxy.ClassLoaderInterceptor.invoke(ClassLoaderInterceptor.java:103)
at org.jboss.forge.addon.ui.impl.command.CommandFactoryImpl_$$_javassist_a56e944c-a27d-48eb-bc7c-65da2a46a767.getNewCommandByName(CommandFactoryImpl_$$_javassist_a56e944c-a27d-48eb-bc7c-65da2a46a767.java)
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.forge.furnace.proxy.ClassLoaderAdapterCallback$2.call(ClassLoaderAdapterCallback.java:124)
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at org.jboss.forge.furnace.proxy.ClassLoaderAdapterCallback.invoke(ClassLoaderAdapterCallback.java:97)
at org.jboss.forge.addon.ui.command.CommandFactory_$$_javassist_c4515dbb-eafa-4ee6-b3a8-12ca25077e59.getNewCommandByName(CommandFactory_$$_javassist_c4515dbb-eafa-4ee6-b3a8-12ca25077e59.java)
at io.openshift.launchpad.backend.rest.LaunchResource.getCommand(LaunchResource.java:440)
at io.openshift.launchpad.backend.rest.LaunchResource.init(LaunchResource.java:129)
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:88)
at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:78)
at org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:129)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:313)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:291)
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:269)
at org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:302)
at org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:291)
at org.jboss.weld.event.EventImpl.fire(EventImpl.java:89)
at io.openshift.launchpad.backend.ForgeInitializer.contextInitialized(ForgeInitializer.java:83)
at io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187)
at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:200)
at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:171)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:234)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:100)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: org.jboss.weld.exceptions.IllegalArgumentException: WELD-001456: Argument resolvedBean must not be null
at org.jboss.weld.util.Preconditions.checkArgumentNotNull(Preconditions.java:40)
at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:810)
at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)
at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:358)
at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:369)
at org.jboss.weld.injection.producer.ResourceInjector$1.proceed(ResourceInjector.java:70)
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
at org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:72)
at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:117)
at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:159)
at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:70)
at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:100)
at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:758)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:781)
at org.jboss.weld.util.ForwardingBeanManager.getReference(ForwardingBeanManager.java:61)
at org.jboss.weld.bean.builtin.BeanManagerProxy.getReference(BeanManagerProxy.java:85)
at org.jboss.forge.furnace.container.cdi.services.ExportedInstanceImpl$1.call(ExportedInstanceImpl.java:64)
at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:42)
at org.jboss.forge.furnace.container.cdi.services.ExportedInstanceImpl.get(ExportedInstanceImpl.java:72)
... 54 more
EDIT:
It happens right after Finished content indexing
Build fails using this commit version "971680b"
[ERROR] Failed to execute goal org.jboss.forge.furnace:furnace-maven-plugin:2.24.2.Final:addon-install (deploy-addons) on project generator: Execution deploy-addons of goal org.jboss.forge.furnace:furnace-maven-plugin:2.24.2.Final:addon-install failed:
org.eclipse.aether.resolution.DependencyResolutionException: Could not find artifact org.jboss.forge.addon:obsidian-generator:jar:forge-addon:1.0.0-SNAPSHOT in jboss-releases (http://repository.jboss.org/nexus/content/repositories/fs-releases/) -> [Help 1]
When mvn install
is called in the Obsidian addon, it should automatically reload from the existing repository. Should be enabled if a system property (eg. devMode
) is set
Right now we use "Project Name" for github and openshift, would be nice if we add these field to the backend and validate them. (e.g. is the github repo name valid)
From the mailing list thread "Support Product and Community Runtimes"
We need to be able to "apply" the selected runtime version to the code base.
This is basically when using @gastaldi 's idea of using .openshiftio
subfolders in the boosters. We'd need to copy files to their proper location.
See also fabric8-launcher/launcher-ui-components#146 and fabric8-launcher/launchpad-addon#34
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.