How to use sonarcloud with travis? - unit-testing

Description
We are already using sonarqube locally and we want to use it for our open source projects.
This is an example OpenSource project we are trying to setup:
https://www.npmjs.com/package/#yeutech-lab/accept-dot-path
https://github.com/yeutech-lab/accept-dot-path
Using dev branch we have followed the documentation and the build is failing:
https://travis-ci.org/yeutech-lab/accept-dot-path/jobs/396729046
Reproduction
Failing job on travis
This is my sonar-project.properties:
sonar.testExecutionReportPaths=reports/test-report.xml
sonar.projectKey=com.github.yeutech-lab.accept-dot-path
sonar.projectName=com.github.yeutech-lab.accept-dot-path
sonar.sources=src
sonar.exclusions=/src/**/tests/*.test.js
sonar.test.exclusions=/src/**/tests/*.test.js
sonar.dynamicAnalysis=reuseReports
sonar.javascript.jstest.reportsPath=coverage
sonar.javascript.lcov.reportPaths=coverage/lcov.info
This is my stage failing .travis.yml:
- stage: test
if: branch IN (dev, master)
node_js:
- lts/*
- 10
- 8
addons:
sonarcloud:
organization: "yeutech-lab"
script:
- npm run test
- sonar-scanner -X -Dsonar.branch=${TRAVIS_BRANCH} -Dsonar.projectVersion=${SONAR_VERSION}
I have the following error:
26.52s$ sonar-scanner -X -Dsonar.branch=${TRAVIS_BRANCH} -Dsonar.projectVersion=${SONAR_VERSION}
06:30:58.836 INFO: Scanner configuration file: /home/travis/.sonarscanner/sonar-scanner-3.0.3.778/conf/sonar-scanner.properties
06:30:58.845 INFO: Project root configuration file: /home/travis/build/yeutech-lab/accept-dot-path/sonar-project.properties
06:30:58.931 INFO: SonarQube Scanner 3.0.3.778
06:30:58.931 INFO: Java 1.8.0_151 Oracle Corporation (64-bit)
06:30:58.931 INFO: Linux 4.4.0-101-generic amd64
06:30:59.317 DEBUG: keyStore is :
06:30:59.317 DEBUG: keyStore type is : jks
06:30:59.318 DEBUG: keyStore provider is :
06:30:59.319 DEBUG: init keystore
06:30:59.321 DEBUG: init keymanager of type SunX509
06:30:59.534 DEBUG: Create : /home/travis/.sonar/cache
06:30:59.537 INFO: User cache: /home/travis/.sonar/cache
06:30:59.539 DEBUG: Create : /home/travis/.sonar/cache/_tmp
06:30:59.539 DEBUG: Extract sonar-scanner-api-batch in temp...
06:30:59.565 DEBUG: Get bootstrap index...
06:30:59.565 DEBUG: Download: https://sonarcloud.io/batch/index
06:31:00.321 DEBUG: Get bootstrap completed
06:31:00.323 DEBUG: Download https://sonarcloud.io/batch/file?name=sonar-scanner-engine-shaded-developer-7.3.0.13459-all.jar to /home/travis/.sonar/cache/_tmp/fileCache1590224166395973229.tmp
06:31:05.257 DEBUG: Create isolated classloader...
06:31:05.277 DEBUG: Start temp cleaning...
06:31:05.304 DEBUG: Temp cleaning done
06:31:05.304 DEBUG: Execution getVersion
06:31:05.310 DEBUG: Execution start
06:31:05.598 INFO: Publish mode
06:31:05.771 INFO: Load global settings
06:31:06.441 DEBUG: GET 200 https://sonarcloud.io/api/settings/values.protobuf | time=659ms
06:31:06.467 INFO: Load global settings (done) | time=697ms
06:31:06.485 INFO: Server id: AWHW8ct9-T_TB3XqouNu
06:31:06.502 DEBUG: Create : /home/travis/.sonar/_tmp
06:31:06.503 INFO: User cache: /home/travis/.sonar/cache
06:31:06.686 INFO: Load/download plugins
06:31:06.686 INFO: Load plugins index
06:31:06.806 DEBUG: GET 200 https://sonarcloud.io/api/plugins/installed | time=120ms
06:31:06.850 INFO: Load plugins index (done) | time=164ms
06:31:06.853 DEBUG: Download plugin 'authbitbucket' to '/home/travis/.sonar/_tmp/fileCache8382949818402309739.tmp'
06:31:06.972 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=authbitbucket&acceptCompressions=pack200 | time=118ms
06:31:07.480 DEBUG: Unpacking plugin authbitbucket
06:31:07.564 DEBUG: Download plugin 'scmgit' to '/home/travis/.sonar/_tmp/fileCache3430018907165592069.tmp'
06:31:07.688 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=scmgit&acceptCompressions=pack200 | time=123ms
06:31:07.936 DEBUG: Unpacking plugin scmgit
06:31:08.353 DEBUG: Download plugin 'github' to '/home/travis/.sonar/_tmp/fileCache5247411604780626227.tmp'
06:31:08.471 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=github&acceptCompressions=pack200 | time=116ms
06:31:08.885 DEBUG: Unpacking plugin github
06:31:09.011 DEBUG: Download plugin 'authgithub' to '/home/travis/.sonar/_tmp/fileCache1172914636956968383.tmp'
06:31:09.128 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=authgithub&acceptCompressions=pack200 | time=116ms
06:31:09.143 DEBUG: Unpacking plugin authgithub
06:31:09.164 DEBUG: Download plugin 'license' to '/home/travis/.sonar/_tmp/fileCache2891083593711587642.tmp'
06:31:09.280 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=license&acceptCompressions=pack200 | time=115ms
06:31:09.282 DEBUG: Unpacking plugin license
06:31:09.288 DEBUG: Download plugin 'scmmercurial' to '/home/travis/.sonar/_tmp/fileCache480957901258776338.tmp'
06:31:09.405 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=scmmercurial&acceptCompressions=pack200 | time=117ms
06:31:09.407 DEBUG: Unpacking plugin scmmercurial
06:31:09.411 DEBUG: Download plugin 'authmicrosoft' to '/home/travis/.sonar/_tmp/fileCache7929759057179488686.tmp'
06:31:09.528 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=authmicrosoft&acceptCompressions=pack200 | time=115ms
06:31:10.238 DEBUG: Unpacking plugin authmicrosoft
06:31:10.479 DEBUG: Download plugin 'abap' to '/home/travis/.sonar/_tmp/fileCache6155881230164947210.tmp'
06:31:10.596 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=abap&acceptCompressions=pack200 | time=115ms
06:31:10.714 DEBUG: Unpacking plugin abap
06:31:10.918 DEBUG: Download plugin 'csharp' to '/home/travis/.sonar/_tmp/fileCache6706825159734964118.tmp'
06:31:11.034 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=csharp&acceptCompressions=pack200 | time=115ms
06:31:11.279 DEBUG: Unpacking plugin csharp
06:31:11.422 DEBUG: Download plugin 'cpp' to '/home/travis/.sonar/_tmp/fileCache5652771019902212699.tmp'
06:31:11.539 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=cpp&acceptCompressions=pack200 | time=116ms
06:31:12.227 DEBUG: Unpacking plugin cpp
06:31:12.863 DEBUG: Download plugin 'flex' to '/home/travis/.sonar/_tmp/fileCache8167974862316719743.tmp'
06:31:12.982 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=flex&acceptCompressions=pack200 | time=115ms
06:31:13.237 DEBUG: Unpacking plugin flex
06:31:13.426 DEBUG: Download plugin 'go' to '/home/travis/.sonar/_tmp/fileCache4775478942526974201.tmp'
06:31:13.542 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=go&acceptCompressions=pack200 | time=116ms
06:31:14.679 DEBUG: Unpacking plugin go
06:31:15.380 DEBUG: Download plugin 'javascript' to '/home/travis/.sonar/_tmp/fileCache6735152755692319121.tmp'
06:31:15.497 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=javascript&acceptCompressions=pack200 | time=116ms
06:31:15.839 DEBUG: Unpacking plugin javascript
06:31:16.231 DEBUG: Download plugin 'java' to '/home/travis/.sonar/_tmp/fileCache4775164839730523442.tmp'
06:31:16.348 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=java&acceptCompressions=pack200 | time=117ms
06:31:16.921 DEBUG: Unpacking plugin java
06:31:17.871 DEBUG: Download plugin 'php' to '/home/travis/.sonar/_tmp/fileCache4310559658352997108.tmp'
06:31:17.989 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=php&acceptCompressions=pack200 | time=117ms
06:31:18.335 DEBUG: Unpacking plugin php
06:31:18.630 DEBUG: Download plugin 'plsql' to '/home/travis/.sonar/_tmp/fileCache4483462510508490361.tmp'
06:31:18.746 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=plsql&acceptCompressions=pack200 | time=116ms
06:31:18.873 DEBUG: Unpacking plugin plsql
06:31:19.120 DEBUG: Download plugin 'python' to '/home/travis/.sonar/_tmp/fileCache7976201852420985200.tmp'
06:31:19.236 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=python&acceptCompressions=pack200 | time=116ms
06:31:19.361 DEBUG: Unpacking plugin python
06:31:19.548 DEBUG: Download plugin 'security' to '/home/travis/.sonar/_tmp/fileCache4952173467535429371.tmp'
06:31:19.664 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=security&acceptCompressions=pack200 | time=116ms
06:31:19.782 DEBUG: Unpacking plugin security
06:31:19.930 DEBUG: Download plugin 'swift' to '/home/travis/.sonar/_tmp/fileCache7219239880236505170.tmp'
06:31:20.046 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=swift&acceptCompressions=pack200 | time=115ms
06:31:20.175 DEBUG: Unpacking plugin swift
06:31:20.422 DEBUG: Download plugin 'typescript' to '/home/travis/.sonar/_tmp/fileCache8846622888447642464.tmp'
06:31:20.539 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=typescript&acceptCompressions=pack200 | time=116ms
06:31:21.109 DEBUG: Unpacking plugin typescript
06:31:21.247 DEBUG: Download plugin 'tsql' to '/home/travis/.sonar/_tmp/fileCache6294671329122059465.tmp'
06:31:21.363 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=tsql&acceptCompressions=pack200 | time=116ms
06:31:21.480 DEBUG: Unpacking plugin tsql
06:31:21.723 DEBUG: Download plugin 'vbnet' to '/home/travis/.sonar/_tmp/fileCache2366356249389465444.tmp'
06:31:21.841 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=vbnet&acceptCompressions=pack200 | time=118ms
06:31:22.076 DEBUG: Unpacking plugin vbnet
06:31:22.169 DEBUG: Download plugin 'web' to '/home/travis/.sonar/_tmp/fileCache1192878208453770217.tmp'
06:31:22.286 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=web&acceptCompressions=pack200 | time=117ms
06:31:22.401 DEBUG: Unpacking plugin web
06:31:22.611 DEBUG: Download plugin 'xml' to '/home/travis/.sonar/_tmp/fileCache6491864581862163918.tmp'
06:31:22.728 DEBUG: GET 200 https://sonarcloud.io/api/plugins/download?plugin=xml&acceptCompressions=pack200 | time=116ms
06:31:22.955 DEBUG: Unpacking plugin xml
06:31:23.186 INFO: Load/download plugins (done) | time=16500ms
06:31:23.250 DEBUG: API compatibility mode is enabled on plugin Mercurial [scmmercurial] (built with API lower than 5.2)
06:31:23.491 DEBUG: Plugins:
06:31:23.492 DEBUG: * Bitbucket Authentication for SonarQube 1.1.0.344 (authbitbucket)
06:31:23.493 DEBUG: * SonarPLSQL 3.2.0.1753 (plsql)
06:31:23.493 DEBUG: * SonarC# 7.2.0.5463 (csharp)
06:31:23.494 DEBUG: * SonarSecurity 7.2.0.944 (security)
06:31:23.495 DEBUG: * SonarJava 5.4.0.14284 (java)
06:31:23.495 DEBUG: * SonarWeb 2.6.0.1053 (web)
06:31:23.496 DEBUG: * SonarFlex 2.4.0.1222 (flex)
06:31:23.496 DEBUG: * SonarXML 1.5.1.1452 (xml)
06:31:23.497 DEBUG: * SonarTS 1.7.0.2828 (typescript)
06:31:23.498 DEBUG: * SonarVB 5.1.0.442 (vbnet)
06:31:23.498 DEBUG: * SonarSwift 3.3.0.2492 (swift)
06:31:23.499 DEBUG: * GitHub 1.4.2.1027 (github)
06:31:23.500 DEBUG: * SonarCFamily 5.1.0.10083 (cpp)
06:31:23.501 DEBUG: * SonarPython 1.10.0.2131 (python)
06:31:23.501 DEBUG: * GitHub Authentication for SonarQube 1.4.0.660 (authgithub)
06:31:23.501 DEBUG: * Mercurial 1.1.1 (scmmercurial)
06:31:23.501 DEBUG: * SonarGo 1.1.0.1612 (go)
06:31:23.501 DEBUG: * Microsoft Authentication for SonarCloud 1.0.0.157 (authmicrosoft)
06:31:23.501 DEBUG: * SonarTSQL 1.2.0.2539 (tsql)
06:31:23.501 DEBUG: * SonarJS 4.1.0.6085 (javascript)
06:31:23.501 DEBUG: * License for SonarLint 7.3.0.13459 (license)
06:31:23.504 DEBUG: * Git 1.5.0.1160 (scmgit)
06:31:23.504 DEBUG: * SonarPHP 2.13.0.3107 (php)
06:31:23.505 DEBUG: * SonarABAP 3.6.0.1269 (abap)
06:31:23.543 INFO: Loaded core extensions: branch-scanner
06:31:23.544 DEBUG: Execution getVersion
06:31:23.545 INFO: SonarQube server 7.3.0
06:31:23.546 INFO: Default locale: "en_US", source code encoding: "UTF-8" (analysis is platform dependent)
06:31:23.548 DEBUG: Work directory: /home/travis/build/yeutech-lab/accept-dot-path/.scannerwork
06:31:23.549 DEBUG: Execution getVersion
06:31:23.550 DEBUG: Execution execute
06:31:23.860 INFO: Installed core extension: branch-scanner
06:31:24.122 INFO: Installed core extension: branch-scanner
06:31:24.129 INFO: Process project properties
06:31:24.143 DEBUG: Process project properties (done) | time=14ms
06:31:24.158 INFO: Load project branches
06:31:24.278 DEBUG: GET 404 https://sonarcloud.io/api/project_branches/list?project=com.github.yeutech-lab.accept-dot-path%3Adev | time=116ms
06:31:24.282 DEBUG: Could not process project branches - continuing without it
06:31:24.285 INFO: Load project branches (done) | time=127ms
06:31:24.289 INFO: Load project pull requests
06:31:24.406 DEBUG: GET 404 https://sonarcloud.io/api/project_pull_requests/list?project=com.github.yeutech-lab.accept-dot-path%3Adev | time=115ms
06:31:24.407 DEBUG: Could not process project pull requests - continuing without it
06:31:24.410 INFO: Load project pull requests (done) | time=122ms
06:31:24.410 INFO: Load branch configuration
06:31:24.411 DEBUG: Not on a Bitbucket pipeline.
06:31:24.419 INFO: ------------------------------------------------------------------------
06:31:24.419 INFO: EXECUTION FAILURE
06:31:24.419 INFO: ------------------------------------------------------------------------
06:31:24.419 INFO: Total time: 25.644s
06:31:24.518 INFO: Final Memory: 54M/188M
06:31:24.518 INFO: ------------------------------------------------------------------------
06:31:24.518 ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.scan.ProjectLock
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:678)
at org.sonar.core.platform.ComponentContainer.getComponentByType(ComponentContainer.java:281)
at org.sonar.scanner.scan.ProjectScanContainer.doBeforeStart(ProjectScanContainer.java:123)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:134)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:81)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:132)
at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:111)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
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.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.scan.DefaultInputModuleHierarchy
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
... 24 more
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.scan.ProjectBuildersExecutor
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.SingleMemberInjector.getMemberArguments(SingleMemberInjector.java:61)
at org.picocontainer.injectors.MethodInjector.getMemberArguments(MethodInjector.java:100)
at org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:112)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120)
at org.picocontainer.injectors.CompositeInjector.decorateComponentInstance(CompositeInjector.java:58)
at org.picocontainer.injectors.Reinjector.reinject(Reinjector.java:142)
at org.picocontainer.injectors.ProviderAdapter.getComponentInstance(ProviderAdapter.java:96)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
... 38 more
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.plugins.github.PullRequestProjectBuilder
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:621)
at org.picocontainer.parameters.CollectionComponentParameter.getArrayInstance(CollectionComponentParameter.java:334)
at org.picocontainer.parameters.CollectionComponentParameter.access$100(CollectionComponentParameter.java:49)
at org.picocontainer.parameters.CollectionComponentParameter$1.resolveInstance(CollectionComponentParameter.java:139)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:141)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
... 53 more
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.plugins.github.GitHubPluginConfiguration
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
... 69 more
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.scan.MutableProjectSettings
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
... 83 more
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.repository.ProjectRepositories
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
... 97 more
Caused by: java.lang.IllegalStateException: Unable to load component interface org.sonar.scanner.scan.branch.BranchConfiguration
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.SingleMemberInjector.getMemberArguments(SingleMemberInjector.java:61)
at org.picocontainer.injectors.MethodInjector.getMemberArguments(MethodInjector.java:100)
at org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:112)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120)
at org.picocontainer.injectors.CompositeInjector.decorateComponentInstance(CompositeInjector.java:58)
at org.picocontainer.injectors.Reinjector.reinject(Reinjector.java:142)
at org.picocontainer.injectors.ProviderAdapter.getComponentInstance(ProviderAdapter.java:96)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
... 111 more
Caused by: Project was never analyzed. A regular analysis is required before a branch analysis
06:31:24.545 DEBUG: Execution getVersion
06:31:24.545 DEBUG: Execution stop
The command "sonar-scanner -X -Dsonar.branch=${TRAVIS_BRANCH} -Dsonar.projectVersion=${SONAR_VERSION}" exited with 1.
store build cache
I have no clue what this error message is about, the same configuration work for our local sonarqube.
Can I have information on how to resolve this error?

You are trying to directly analyze a branch whereas your project has not been created yet. This is why you get the following message:
Project was never analyzed. A regular analysis is required before a
branch analysis
Fixing the situation is simple:
Go to your organization "Administration > Projects Management" page
Click on "Create Project" and set the project name and key (com.github.yeutech-lab.accept-dot-path in your case)
This should fix your issue.

Related

apimcli list apis : 400 Bad request

I have wso2am-2.5.0 and apimcli-1.1.0
all downloaded from here: https://wso2.com/api-management/install/
i try to configure and use apimcli with wso2am running locally
so, i've added the environment named local:
apimcli add-env -n local
--apim https://localhost:9443
--registration https://localhost:9443/identity/connect/register
--import-export https://localhost:9443/api-import-export-2.2.0-v2
--api_list https://localhost:9443/api/am/publisher/v0.12/apis
--token https://localhost:9443/oauth2/token
note the parameter --api_list defined in documentation as --list
but apimcli add-env --help displays --api_list instead
and finally I try to get list of apis:
apimcli list apis -e local -u admin -p admin --insecure --verbose
but it gives me the following output:
Executed ImportExportCLI (apimcli) on Wed, 26 Sep 2018 15:59:48 EEST
[INFO]: Insecure: true
[INFO]: apis called
[INFO]: Environment: 'local'
[INFO]: Reg Endpoint read: https://localhost:9443/identity/connect/register
Getting ClientID, ClientSecret: Status - 403 Forbidden
Error: <nil>
Body:
<html>
<head>
<title>Error 403</title>
</head>
<body>
<h1>Error 403 - Forbidden</h1>
</body>
</html>
Error: Request didn't respond 200 OK: 403 Forbidden
[INFO]: EnvKeysAll: &{map[]}
[ERROR]: connecting to https://localhost:9443/oauth2/token
apimcli: Unable to connect. Reason: Status: 400 Bad Request
[ERROR]: Unable to connect.: Status: 400 Bad Request
Exit status 1
It seems the publisher API version is wrong.
--api_list https://localhost:9443/api/am/publisher/v0.12/apis
Make it v0.13 and try again.
Edit: It seems the DCR endpoint is also wrong. Change it like this.
--registration https://localhost:9443/client-registration/v0.13/register
It seems the readme file shipped with the cli is not correct. :-/
Please use the following doc instead.
https://docs.wso2.com/display/AM250/Migrating+the+APIs+and+Applications+to+a+Different+Environment

Ansible - looping over dynamically generated list items [duplicate]

I have an Ansible playbook like the one below, I want use nested variable like this:
msg={{{{Component}}.community_release_num}}, but when I run playbook:
ansible-playbook vartest.yml -e 'version=version_402', it not work
[es#vpn-server nested-var]$ tree
.
├── vars
│   ├── horizon.yml
│   └── version_402.yml
└── vartest.yml
1 directory, 3 files
[es#vpn-server nested-var]$ cat vartest.yml
---
- name: test
hosts: localhost
vars_files:
- vars/{{version}}.yml
tasks:
- debug: msg={{{{Component}}.community_release_num}}
- debug: msg={{{{Component}}.release_num}}
[es#vpn-server nested-var]$ cat vars/horizon.yml
Component: horizon
[es#vpn-server nested-var]$ cat vars/version_402.yml
- horizon:
community_release_num: '9.0.1'
release_num: '4.0.2'
[es#vpn-server nested-var]$
error messages
[es#vpn-server nested-var]$ ansible-playbook vartest.yml -e 'version=version_402'
/usr/lib64/python2.6/site-packages/cryptography/__init__.py:25: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python.
DeprecationWarning
PLAY [test] *******************************************************************************************************
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
TASK [debug] ******************************************************************************************************
fatal: [localhost]: FAILED! => {"failed": true, "msg": "template error while templating string: expected token 'colon', got '}'. String: {{{{Component}}.community_release_num}}"}
to retry, use: --limit #/data/wangqian/artemis-code-test/artemis/ansible/update/nested-var/vartest.retry
PLAY RECAP ********************************************************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1
Can Ansible use nested variable, if yes, how to use it?
Per Ansible FAQ:
Another rule is ‘moustaches don’t stack’. We often see this:
{{ somevar_{{other_var}} }}
The above DOES NOT WORK, if you need to use a dynamic variable use the
hostvars or vars dictionary as appropriate:
{{ hostvars[inventory_hostname]['somevar_' + other_var] }}
So in your case:
- debug: msg={{hostvars[inventory_hostname][Component].community_release_num}}
Or:
- debug: msg={{vars[Component].community_release_num}}
Or (since Ansible 2.5):
- debug: msg={{(lookup('vars', Component)).community_release_num}}
Run this command:
ansible-playbook 1_lambda-facts.yml -e "func_name=mylambdaFunctionName"
- name: get lamda Info
hosts: localhost
connection: local
become: yes
gather_facts: true
tasks:
- name: List all for a specific function
lambda_facts:
query: all
function_name: "{{func_name}}"
- name: debug info
debug:
msg: "{{lambda_facts}}"
msg: "variable name is: {{vars['func_name']}}"
msg: "{{lambda_facts['function'][vars['func_name']]['function_arn']}}"

How to use ansible nested variables in jinja2 with regular expressions and replace [duplicate]

I have an Ansible playbook like the one below, I want use nested variable like this:
msg={{{{Component}}.community_release_num}}, but when I run playbook:
ansible-playbook vartest.yml -e 'version=version_402', it not work
[es#vpn-server nested-var]$ tree
.
├── vars
│   ├── horizon.yml
│   └── version_402.yml
└── vartest.yml
1 directory, 3 files
[es#vpn-server nested-var]$ cat vartest.yml
---
- name: test
hosts: localhost
vars_files:
- vars/{{version}}.yml
tasks:
- debug: msg={{{{Component}}.community_release_num}}
- debug: msg={{{{Component}}.release_num}}
[es#vpn-server nested-var]$ cat vars/horizon.yml
Component: horizon
[es#vpn-server nested-var]$ cat vars/version_402.yml
- horizon:
community_release_num: '9.0.1'
release_num: '4.0.2'
[es#vpn-server nested-var]$
error messages
[es#vpn-server nested-var]$ ansible-playbook vartest.yml -e 'version=version_402'
/usr/lib64/python2.6/site-packages/cryptography/__init__.py:25: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python.
DeprecationWarning
PLAY [test] *******************************************************************************************************
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
TASK [debug] ******************************************************************************************************
fatal: [localhost]: FAILED! => {"failed": true, "msg": "template error while templating string: expected token 'colon', got '}'. String: {{{{Component}}.community_release_num}}"}
to retry, use: --limit #/data/wangqian/artemis-code-test/artemis/ansible/update/nested-var/vartest.retry
PLAY RECAP ********************************************************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1
Can Ansible use nested variable, if yes, how to use it?
Per Ansible FAQ:
Another rule is ‘moustaches don’t stack’. We often see this:
{{ somevar_{{other_var}} }}
The above DOES NOT WORK, if you need to use a dynamic variable use the
hostvars or vars dictionary as appropriate:
{{ hostvars[inventory_hostname]['somevar_' + other_var] }}
So in your case:
- debug: msg={{hostvars[inventory_hostname][Component].community_release_num}}
Or:
- debug: msg={{vars[Component].community_release_num}}
Or (since Ansible 2.5):
- debug: msg={{(lookup('vars', Component)).community_release_num}}
Run this command:
ansible-playbook 1_lambda-facts.yml -e "func_name=mylambdaFunctionName"
- name: get lamda Info
hosts: localhost
connection: local
become: yes
gather_facts: true
tasks:
- name: List all for a specific function
lambda_facts:
query: all
function_name: "{{func_name}}"
- name: debug info
debug:
msg: "{{lambda_facts}}"
msg: "variable name is: {{vars['func_name']}}"
msg: "{{lambda_facts['function'][vars['func_name']]['function_arn']}}"

Citrus rest client-server test fail with mvn clean verify

[enter image description here][1]I have created the following citrus test cases to test a basic connection between Rest client and server:
#Test
#CitrusTest
fun httpActionTest() {
variable("username", "user")
variable("password","password")
http().client("httpClient")
.send()
.post("/api/authenticate")
.messageType(MessageType.JSON)
.contentType("application/json")
.payload("{ \"username\": \"\${username}\", \"password\": \"\${password}\"}");
http().client("httpClient")
.receive()
.response(HttpStatus.OK)
.validate("$.token","asasasasas")
}
#CitrusTest
fun httpServerActionTest() {
http().server("httpServer")
.receive()
.post("/api/authenticate")
.payload("{ \"username\": \"\${username}\", \"password\": \"\${password}\"}")
.contentType("application/json")
.accept("application/json")
.extractFromPayload("username", "username")
.extractFromPayload("password", "password")
.validate("$.username", "user")
.validate("$.password","pass")
http().server("httpServer")
.send()
.response(HttpStatus.OK)
.payload("{\"token\": \"lsdkfjkh8sdfg98zsd\"}")
.version("HTTP/1.1")
.contentType("application/json")
}
I have defined the server and client endpoints in citrux-context.xml as follows:
<citrus-http:client id="httpClient"
request-url="http://localhost:8080"
request-method="GET"
content-type="application/json"
charset="UTF-8"
timeout="60000"/>
<citrus-http:server id="httpServer"
port="8080"
auto-start="true"
resource-base="src/test/resources"/>
While executing via IntelliJ, following logs are observed:
INFO: Loading XML bean definitions from URL [file:/home/jass/intersales/jk-magento/magento2-auth-service/target/test-classes/citrus-context.xml]
[main] INFO org.eclipse.jetty.util.log - Logging initialized #9851ms to org.eclipse.jetty.util.log.Slf4jLog
[main] INFO org.eclipse.jetty.server.Server - jetty-9.4.6.v20170531
[main] INFO org.eclipse.jetty.server.handler.ContextHandler.ROOT - Initializing Spring FrameworkServlet 'httpServer-servlet'
Oct 23, 2017 8:49:45 AM com.consol.citrus.http.servlet.CitrusDispatcherServlet initServletBean
INFO: FrameworkServlet 'httpServer-servlet': initialization started
Oct 23, 2017 8:49:45 AM org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh
INFO: Refreshing WebApplicationContext for namespace 'httpServer-servlet-servlet': startup date [Mon Oct 23 08:49:45 CEST 2017]; root of context hierarchy
Oct 23, 2017 8:49:45 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [com/consol/citrus/http/citrus-servlet-context.xml]
Oct 23, 2017 8:49:46 AM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register
...
INFO: Looking for #ControllerAdvice: WebApplicationContext for namespace 'httpServer-servlet-servlet': startup date [Mon Oct 23 08:49:45 CEST 2017]; root of context hierarchy
Oct 23, 2017 8:49:47 AM com.consol.citrus.http.servlet.CitrusDispatcherServlet initServletBean
INFO: FrameworkServlet 'httpServer-servlet': initialization completed in 1570 ms
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler#1bb1fde8{/,file:///home/jass/intersales/jk-magento/magento2-auth-service/src/test/resources/,AVAILABLE}
[main] INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector#1286528d{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
[main] INFO org.eclipse.jetty.server.Server - Started #12166ms
[main] INFO com.consol.citrus.http.server.HttpServer - Started server: httpServer
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.Citrus - .__ __
[main] INFO com.consol.citrus.Citrus - ____ |__|/ |________ __ __ ______
[main] INFO com.consol.citrus.Citrus - _/ ___\| \ __\_ __ \ | \/ ___/
[main] INFO com.consol.citrus.Citrus - \ \___| || | | | \/ | /\___ \
[main] INFO com.consol.citrus.Citrus - \___ >__||__| |__| |____//____ >
[main] INFO com.consol.citrus.Citrus - \/ \/
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - C I T R U S T E S T S 2.7.2
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - BEFORE TEST SUITE: SUCCESS
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.actions.EchoAction - Today is: 23.10.2017
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - TEST SUCCESS VerticleCitrusTest.echoToday (de.intersales.qbus2)
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.Citrus -
[qtp191568263-12] INFO com.consol.citrus.channel.ChannelSyncProducer - Message was sent to channel: 'httpServer.inbound'
[qtp191568263-12] WARN com.consol.citrus.channel.ChannelEndpointAdapter - Reply timed out after 1000ms. Did not receive reply message on reply channel
[main] INFO com.consol.citrus.http.client.HttpClient - HTTP message was sent to endpoint: 'http://localhost:8080/magento2/authenticate'
[main] INFO com.consol.citrus.validation.xml.DomXmlMessageValidator - XML message validation successful: All values OK
[main] INFO com.consol.citrus.validation.DefaultMessageHeaderValidator - Message header validation successful: All values OK
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - TEST SUCCESS VerticleCitrusTest.httpActionTest (de.intersales.qbus2)
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - AFTER TEST SUITE: SUCCESS
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - CITRUS TEST RESULTS
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - VerticleCitrusTest.echoToday ................................... SUCCESS
[main] INFO com.consol.citrus.Citrus - VerticleCitrusTest.httpActionTest .............................. SUCCESS
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - TOTAL: 2
[main] INFO com.consol.citrus.Citrus - FAILED: 0 (0.0%)
[main] INFO com.consol.citrus.Citrus - SUCCESS: 2 (100.0%)
[main] INFO com.consol.citrus.Citrus -
[main] INFO com.consol.citrus.Citrus - ------------------------------------------------------------------------
[main] INFO com.consol.citrus.report.HtmlReporter - Generated HTML test report
But getting an error when executing via mvn clean verify with the following error:
[main] ERROR com.consol.citrus.Citrus - TEST FAILED VerticleCitrusTest.httpActionTest <de.intersales.qbus2> Nested exception is:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'httpClient' available
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687)
...
`
Any suggestions or help is greatly appreciated.
EDITED The following is my project structure
[Placement of resources] [1]: https://i.stack.imgur.com/aVabX.png
I see multiple issues in your code and setup. First of all the httpServerActionTest() is missing the #Test annotation. If not put on class level this annotation needs to be repeated on each method in your test class.
Secondly the complete test structure does not make much sense to me. In httpActionTest() test you send a client request to the server while in httpServerActionTest() you receive that very same request as a server and validate its contents with Citrus. Your test is both client and server at the same time. Feels wrong to me! In particular this test setup will never work as Http is a synchronous protocol by nature and httpActionTest() is not able to succeed without httpServerActionTest() performing. You will get timeout exceptions on client side then. This will only work in case both methods are executed in parallel to each other.
Regarding the Maven failure: citrux-context.xml is misspelled (citrux vs. citrus). Also it seems to me that the file is not properly added to the Maven project as a resource. Did you keep the default Maven directory layout?
Once again the complete test setup does not clarify its purpose to me.

Configure DDS with scrapy-splash. ERROR: no base objects

LS,
I have installed Django-Dynamic-Scraper. And i would like to render Javascript via Splash. Therefor i have installed scrapy-splash and installed the docker splash image. The image below shows that the docker container can be reached.
Splash docker container
Nevertheless when i test it via DDS it returns the following error:
2016-10-25 17:06:00 [scrapy] INFO: Spider opened
2016-10-25 17:06:00 [scrapy] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-25 17:06:00 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023
2016-10-25 17:06:05 [scrapy] DEBUG: Crawled (200) <POST http://192.168.0.150:8050/render.html> (referer: None)
2016-10-25 17:06:06 [root] ERROR: No base objects found!
2016-10-25 17:06:06 [scrapy] INFO: Closing spider (finished)
2016-10-25 17:06:06 [scrapy] INFO: Dumping Scrapy stats:
when executing:
scrapy crawl my_spider -a id=1
I have configured the DDS admin page and checked the checkbox to render the javascript:
Admin configuration
I have followed the configuration from scrapy-splash:
# ----------------------------------------------------------------------
# SPLASH SETTINGS
# https://github.com/scrapy-plugins/scrapy-splash#configuration
# --------------------------------------------------------------------
SPLASH_URL = 'http://192.168.0.150:8050/'
DSCRAPER_SPLASH_ARGS = {'wait': 3}
DOWNLOADER_MIDDLEWARES = {
'scrapy_splash.SplashCookiesMiddleware': 723,
'scrapy_splash.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
# This middleware is needed to support cache_args feature;
# it allows to save disk space by not storing duplicate Splash arguments
# multiple times in a disk request queue.
SPIDER_MIDDLEWARES = {
'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
# If you use Scrapy HTTP cache then a custom cache storage backend is required.
# scrapy-splash provides a subclass
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'
I assume with a correct configuration of DDS/scrapy-splash, it will sends the required arguments to the splash docker container to render, Is this the case?
What am I missing? Do i need to adjust the spider with a splash script?