[ https://issues.apache.org/jira/browse/CXF-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13126513#comment-13126513 ]
Lars Weber commented on CXF-3854: --------------------------------- Ok, I ran the maven build in debug mode today. I think you wanted to see these lines, am I correct? {noformat} [DEBUG] Configuring mojo 'org.apache.cxf:cxf-wadl2java-plugin:2.5.0-SNAPSHOT:wadl2java' --> [DEBUG] (f) classesDirectory = /home/weberl/Development/workspace/MyClient/target/classes [DEBUG] (f) disableDependencyScan = false [DEBUG] (f) disableDirectoryScan = false [DEBUG] (f) fork = false [DEBUG] (f) javaExecutable = /usr/lib/jvm/java-6-sun-1.6.0.26/jre/bin/java [DEBUG] (f) localRepository = Repository[local|file:///home/weberl/.m2/repository] [DEBUG] (f) markerDirectory = /home/weberl/Development/workspace/MyClient/target/cxf-codegen-plugin-markers [DEBUG] (f) mavenSession = org.apache.maven.execution.MavenSession@396c75ed [DEBUG] (f) pluginArtifacts = [org.apache.maven.shared:maven-artifact-resolver:jar:1.0:runtime, org.codehaus.plexus:plexus-utils:jar:2.0.5:runtime, org.codehaus.plexus:plexus-archiver:jar:1.2:runtime, org.codehaus.plexus:plexus-io:jar:1.0.1:runtime, org.apache.cxf:cxf-tools-common:jar:2.5.0-SNAPSHOT:runtime, org.apache.velocity:velocity:jar:1.7:runtime, commons-collections:commons-collections:jar:3.2.1:runtime, commons-lang:commons-lang:jar:2.6:runtime, wsdl4j:wsdl4j:jar:1.6.2:runtime, com.sun.xml.bind:jaxb-xjc:jar:2.1.13:runtime, com.sun.xml.bind:jaxb-impl:jar:2.1.13:runtime, org.apache.cxf:cxf-api:jar:2.5.0-SNAPSHOT:runtime, org.apache.cxf:cxf-common-utilities:jar:2.5.0-SNAPSHOT:runtime, org.apache.ws.xmlschema:xmlschema-core:jar:2.0.1:runtime, org.codehaus.woodstox:woodstox-core-asl:jar:4.1.1:runtime, org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime, org.apache.neethi:neethi:jar:3.0.1:runtime, org.apache.cxf:cxf-rt-core:jar:2.5.0-SNAPSHOT:runtime, org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.1:runtime, org.apache.cxf:cxf-tools-wadlto-jaxrs:jar:2.5.0-SNAPSHOT:runtime, org.apache.cxf:cxf-rt-frontend-jaxrs:jar:2.5.0-SNAPSHOT:runtime, org.springframework:spring-core:jar:3.0.6.RELEASE:runtime, org.springframework:spring-asm:jar:3.0.6.RELEASE:runtime, commons-logging:commons-logging:jar:1.1.1:runtime, javax.ws.rs:jsr311-api:jar:1.1.1:runtime, org.apache.cxf:cxf-rt-bindings-xml:jar:2.5.0-SNAPSHOT:runtime, org.apache.cxf:cxf-rt-transports-http:jar:2.5.0-SNAPSHOT:runtime, org.apache.cxf:cxf-rt-transports-common:jar:2.5.0-SNAPSHOT:runtime, org.springframework:spring-web:jar:3.0.6.RELEASE:runtime, aopalliance:aopalliance:jar:1.0:runtime, org.springframework:spring-beans:jar:3.0.6.RELEASE:runtime, org.springframework:spring-context:jar:3.0.6.RELEASE:runtime, org.springframework:spring-aop:jar:3.0.6.RELEASE:runtime, org.springframework:spring-expression:jar:3.0.6.RELEASE:runtime, org.codehaus.jettison:jettison:jar:1.3:runtime, xml-resolver:xml-resolver:jar:1.2:runtime, org.apache.geronimo.specs:geronimo-jaxws_2.2_spec:jar:1.1:runtime, org.apache.ant:ant:jar:1.8.2:runtime, org.apache.ant:ant-launcher:jar:1.8.2:runtime, org.apache.ant:ant-nodeps:jar:1.8.1:runtime] [DEBUG] (f) project = MavenProject: com.project:MyClient:0.0.1-SNAPSHOT @ /home/weberl/Development/workspace/MyClient/pom.xml [DEBUG] (f) repositories = [org.apache.maven.model.Repository@7fb2380e, org.apache.maven.model.Repository@d7e60a1, org.apache.maven.model.Repository@63f9f0f2, org.apache.maven.model.Repository@2e39d325, org.apache.maven.model.Repository@565539d8, org.apache.maven.model.Repository@7548c02f] [DEBUG] (f) sourceRoot = /home/weberl/Development/workspace/MyClient/target/generated/src/main/java [DEBUG] (f) testWadlRoot = /home/weberl/Development/workspace/MyClient/src/test/resources/wadl [DEBUG] (f) useCompileClasspath = false [DEBUG] (s) wadl = /home/weberl/Development/workspace/MyClient/src/main/resources/wadl/REST.wadl [DEBUG] (s) packagename = org.apache.cxf.systest.jaxrs.codegen.service [DEBUG] (s) schemaPackagenames = [http://MYPACKNAME=org.apache.cxf.systest.jaxrs.codegen.schema] [DEBUG] (s) extraargs = [-impl, -interface, -verbose] [DEBUG] (f) wadlOptions = [WADL: /home/weberl/Development/workspace/MyClient/src/main/resources/wadl/REST.wadl OutputDir: null ] [DEBUG] (f) wadlRoot = /home/weberl/Development/workspace/MyClient/src/main/resources/wadl [DEBUG] -- end configuration -- [INFO] [cxf-wadl2java:wadl2java {execution: generate-sources}] [DEBUG] Classpath: [file:/home/weberl/Development/workspace/MyClient/target/classes/, file:/home/weberl/Development/workspace/MyClient/target/classes/, file:/home/weberl/.m2/repository/org/jvnet/ws/wadl/wadl-core/1.1-SNAPSHOT/wadl-core-1.1-SNAPSHOT.jar, file:/home/weberl/.m2/repository/com/sun/localizer/localizer/1.0/localizer-1.0.jar, file:/home/weberl/.m2/repository/com/sun/localizer/comresrcgen/1.0/comresrcgen-1.0.jar, file:/home/weberl/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar, file:/home/weberl/.m2/repository/com/sun/xml/bind/jaxb-xjc/2.2/jaxb-xjc-2.2.jar, file:/home/weberl/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2/jaxb-impl-2.2.jar, file:/home/weberl/.m2/repository/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar, file:/home/weberl/.m2/repository/javax/xml/bind/jsr173_api/1.0/jsr173_api-1.0.jar, file:/home/weberl/.m2/repository/com/sun/jersey/jersey-client/1.8/jersey-client-1.8.jar, file:/home/weberl/.m2/repository/com/sun/jersey/jersey-core/1.8/jersey-core-1.8.jar] [DEBUG] Calling wadl2java with args: [-d, /home/weberl/Development/workspace/MyClient/target/generated/src/main/java, -p, org.apache.cxf.systest.jaxrs.codegen.service, -sp, http://MYPACKNAME=org.apache.cxf.systest.jaxrs.codegen.schema, -impl, -interface, -verbose, file:/home/weberl/Development/workspace/MyClient/src/main/resources/wadl/REST.wadl] wadl2java -d /home/weberl/Development/workspace/MyClient/target/generated/src/main/java -p org.apache.cxf.systest.jaxrs.codegen.service -sp http://MYPACKNAME=org.apache.cxf.systest.jaxrs.codegen.schema -impl -interface -verbose file:/home/weberl/Development/workspace/MyClient/src/main/resources/wadl/REST.wadl wadl2java - Apache CXF 2.5.0-SNAPSHOT [DEBUG] org.apache.cxf.tools.common.ToolException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:84) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) at org.apache.cxf.tools.wadlto.WADLToJava.run(WADLToJava.java:65) at org.apache.cxf.tools.wadlto.WADLToJava.run(WADLToJava.java:57) at org.apache.cxf.maven_plugin.wadlto.AbstractCodeGeneratorMojo.callCodeGenerator(AbstractCodeGeneratorMojo.java:455) at org.apache.cxf.maven_plugin.wadlto.WADL2JavaMojo.execute(WADL2JavaMojo.java:101) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(String.java:686) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.getClassName(SourceGenerator.java:432) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeResourceMethod(SourceGenerator.java:595) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeMethods(SourceGenerator.java:474) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeResourceClass(SourceGenerator.java:381) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.generateResourceClasses(SourceGenerator.java:234) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.generateSource(SourceGenerator.java:201) at org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.processWadl(JAXRSContainer.java:144) at org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:67) at org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:76) ... 24 more [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] java.lang.StringIndexOutOfBoundsException: String index out of range: 0 [INFO] ------------------------------------------------------------------------ [DEBUG] Trace org.apache.maven.lifecycle.LifecycleExecutionException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.plugin.MojoExecutionException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at org.apache.cxf.maven_plugin.wadlto.AbstractCodeGeneratorMojo.callCodeGenerator(AbstractCodeGeneratorMojo.java:458) at org.apache.cxf.maven_plugin.wadlto.WADL2JavaMojo.execute(WADL2JavaMojo.java:101) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) ... 17 more Caused by: org.apache.cxf.tools.common.ToolException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:84) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) at org.apache.cxf.tools.wadlto.WADLToJava.run(WADLToJava.java:65) at org.apache.cxf.tools.wadlto.WADLToJava.run(WADLToJava.java:57) at org.apache.cxf.maven_plugin.wadlto.AbstractCodeGeneratorMojo.callCodeGenerator(AbstractCodeGeneratorMojo.java:455) ... 20 more Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(String.java:686) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.getClassName(SourceGenerator.java:432) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeResourceMethod(SourceGenerator.java:595) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeMethods(SourceGenerator.java:474) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeResourceClass(SourceGenerator.java:381) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.generateResourceClasses(SourceGenerator.java:234) at org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.generateSource(SourceGenerator.java:201) at org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.processWadl(JAXRSContainer.java:144) at org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:67) at org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:76) ... 24 more [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7 seconds [INFO] Finished at: Thu Oct 13 13:52:22 CEST 2011 [INFO] Final Memory: 17M/168M [INFO] ------------------------------------------------------------------------ {noformat} > java.lang.StringIndexOutOfBoundsException is thrown when generating sources > for a WADL with WADL2Java Maven plugin > ------------------------------------------------------------------------------------------------------------------ > > Key: CXF-3854 > URL: https://issues.apache.org/jira/browse/CXF-3854 > Project: CXF > Issue Type: Bug > Components: Build system, JAX-RS, JAXB Databinding > Affects Versions: 2.5 > Environment: Apache Maven 2.2.1 (rdebian-4) > Java version: 1.6.0_26 > Java home: /usr/lib/jvm/java-6-sun-1.6.0.26/jre > Default locale: en_US, platform encoding: UTF-8 > OS name: "linux" version: "2.6.38-11-generic" arch: "amd64" Family: "unix" > Reporter: Lars Weber > Labels: cxf-wadl2java-plugin, jaxrs, wadl, wadl2java > > I want to create the client stubs with a .wadl file. > *Before you ask, it's not possible for me to attach the file due to an NDA.* > (on) *Important:* > It works fine, if I don't use the {{<extraarg>-impl</extraarg>}} extraarg. > This is the maven plugin definition in the {{pom.xml}} file: > {code:xml} > <plugin> > <groupId>org.apache.cxf</groupId> > <artifactId>cxf-wadl2java-plugin</artifactId> > <!-- version>2.4.1</version --> > <version>2.5.0-SNAPSHOT</version> > <executions> > <execution> > <id>generate-sources</id> > <phase>generate-sources</phase> > <configuration> > > <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot> > <wadlOptions> > <wadlOption> > > <wadl>${basedir}/src/main/resources/wadl/myWadlFile.wadl</wadl> > <!-- impl>true</impl --> > > <packagename>org.apache.cxf.systest.jaxrs.codegen.service</packagename> > <schemaPackagenames> > > <schemaPackagename>http://MYPACKNAME=org.apache.cxf.systest.jaxrs.codegen.schema</schemaPackagename> > </schemaPackagenames> > <extraargs> > <extraarg>-impl</extraarg> > > <extraarg>-interface</extraarg> > > <extraarg>-verbose</extraarg> > </extraargs> > </wadlOption> > </wadlOptions> > </configuration> > <goals> > <goal>wadl2java</goal> > </goals> > </execution> > </executions> > </plugin> > {code} > Then, after calling {{mvn clean generate-sources}}, I get this exception: > {noformat} > [INFO] > ------------------------------------------------------------------------ > [ERROR] BUILD ERROR > [INFO] > ------------------------------------------------------------------------ > [INFO] java.lang.StringIndexOutOfBoundsException: String index out of range: 0 > [INFO] > ------------------------------------------------------------------------ > [INFO] Trace > org.apache.maven.lifecycle.LifecycleExecutionException: > java.lang.StringIndexOutOfBoundsException: String index out of range: 0 > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) > at > org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) > at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) > at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) > at org.codehaus.classworlds.Launcher.main(Launcher.java:375) > Caused by: org.apache.maven.plugin.MojoExecutionException: > java.lang.StringIndexOutOfBoundsException: String index out of range: 0 > at > org.apache.cxf.maven_plugin.wadlto.AbstractCodeGeneratorMojo.callCodeGenerator(AbstractCodeGeneratorMojo.java:458) > at > org.apache.cxf.maven_plugin.wadlto.WADL2JavaMojo.execute(WADL2JavaMojo.java:101) > at > org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) > ... 17 more > Caused by: org.apache.cxf.tools.common.ToolException: > java.lang.StringIndexOutOfBoundsException: String index out of range: 0 > at > org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:84) > at > org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) > at org.apache.cxf.tools.wadlto.WADLToJava.run(WADLToJava.java:65) > at org.apache.cxf.tools.wadlto.WADLToJava.run(WADLToJava.java:57) > at > org.apache.cxf.maven_plugin.wadlto.AbstractCodeGeneratorMojo.callCodeGenerator(AbstractCodeGeneratorMojo.java:455) > ... 20 more > Caused by: java.lang.StringIndexOutOfBoundsException: String index out of > range: 0 > at java.lang.String.charAt(String.java:686) > at > org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.getClassName(SourceGenerator.java:432) > at > org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeResourceMethod(SourceGenerator.java:595) > at > org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeMethods(SourceGenerator.java:474) > at > org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeResourceClass(SourceGenerator.java:381) > at > org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.generateResourceClasses(SourceGenerator.java:234) > at > org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.generateSource(SourceGenerator.java:201) > at > org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.processWadl(JAXRSContainer.java:144) > at > org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:67) > at > org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:76) > ... 24 more > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira