Using QuickReload does not affect my plugin

I am trying to create my first plugin (containing a first Custom Field) using the Atlassian tutorials. I encountered several problems getting my eclipse project working with the maven of atlassian sdk, but now everything works fine so far. Now I started to change the tutorial code and tried to reload my plugin, but nothing happens in my jira instance.

I used atlas-run to start the instance and atlas-package to package the new jar of my plugin, but as I said, there is no effect in my jira instance. There is nothing mentioned in the logs. Any ideas?

Here is my pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>de.mycompany.jira.plugins</groupId>
	<artifactId>CustomFields</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<organization>
		<name>MyCompany</name>
		<url>http://www.mycompany.company/</url>
	</organization>
	<name>CustomFields</name>
	<description>This is the de.mycompany.jira.plugins:CustomFields plugin for Atlassian JIRA.</description>
	<packaging>atlassian-plugin</packaging>
	<dependencies>
		<dependency>
			<groupId>com.atlassian.jira</groupId>
			<artifactId>jira-api</artifactId>
			<version>${jira.version}</version>
			<scope>provided</scope>
		</dependency>
		<!-- Add dependency on jira-core if you want access to JIRA implementation 
			classes as well as the sanctioned API. -->
		<!-- This is not normally recommended, but may be required eg when migrating 
			a plugin originally developed against JIRA 4.x -->
		<!-- <dependency> <groupId>com.atlassian.jira</groupId> <artifactId>jira-core</artifactId> 
			<version>${jira.version}</version> <scope>provided</scope> </dependency> -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.atlassian.plugin</groupId>
			<artifactId>atlassian-spring-scanner-annotation</artifactId>
			<version>${atlassian.spring.scanner.version}</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>com.atlassian.plugin</groupId>
			<artifactId>atlassian-spring-scanner-runtime</artifactId>
			<version>${atlassian.spring.scanner.version}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>javax.inject</groupId>
			<artifactId>javax.inject</artifactId>
			<version>1</version>
			<scope>provided</scope>
		</dependency>
		<!-- WIRED TEST RUNNER DEPENDENCIES -->
		<dependency>
			<groupId>com.atlassian.plugins</groupId>
			<artifactId>atlassian-plugins-osgi-testrunner</artifactId>
			<version>${plugin.testrunner.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>jsr311-api</artifactId>
			<version>1.1.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.2.2-atlassian-1</version>
		</dependency>
		<!-- Uncomment to use TestKit in your project. Details at https://bitbucket.org/atlassian/jira-testkit -->
		<!-- You can read more about TestKit at https://developer.atlassian.com/display/JIRADEV/Plugin+Tutorial+-+Smarter+integration+testing+with+TestKit -->
		<!-- <dependency> <groupId>com.atlassian.jira.tests</groupId> <artifactId>jira-testkit-client</artifactId> 
			<version>${testkit.version}</version> <scope>test</scope> </dependency> -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.6.6</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<version>1.8.5</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>com.atlassian.maven.plugins</groupId>
				<artifactId>maven-amps-plugin</artifactId>
				<version>${amps.version}</version>
				<configuration>
					<allowGoogleTracking>false</allowGoogleTracking>
				</configuration>
			</plugin>
			<plugin>
				<groupId>com.atlassian.maven.plugins</groupId>
				<artifactId>maven-jira-plugin</artifactId>
				<version>${amps.version}</version>
				<extensions>true</extensions>
				<configuration>
					<allowGoogleTracking>false</allowGoogleTracking>
					<productVersion>${jira.version}</productVersion>
					<productDataVersion>${jira.version}</productDataVersion>
					<enableQuickReload>true</enableQuickReload>
					<pluginArtifacts>
                       <pluginArtifact>
                           <groupId>com.atlassian.labs.plugins</groupId>
                           <artifactId>quickreload</artifactId>
                           <version>${quick.reload.version}</version>
                       </pluginArtifact>
                   </pluginArtifacts>
					<enableFastdev>false</enableFastdev>
					<instructions>
						<Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>
						<Export-Package>de.mycompany.jira.plugins.api,</Export-Package>
						<Import-Package>org.springframework.osgi.*;resolution:="optional",
							org.eclipse.gemini.blueprint.*;resolution:="optional", *</Import-Package>
						<Spring-Context>*</Spring-Context>
					</instructions>
				</configuration>
			</plugin>
			<plugin>
				<groupId>com.atlassian.plugin</groupId>
				<artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
				<version>${atlassian.spring.scanner.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>atlassian-spring-scanner</goal>
						</goals>
						<phase>process-classes</phase>
					</execution>
				</executions>
				<configuration>
					<scannedDependencies>
						<dependency>
							<groupId>com.atlassian.plugin</groupId>
							<artifactId>atlassian-spring-scanner-external-jar</artifactId>
						</dependency>
					</scannedDependencies>
					<verbose>false</verbose>
				</configuration>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings 
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											com.atlassian.maven.plugins
										</groupId>
										<artifactId>
											maven-jira-plugin
										</artifactId>
										<versionRange>
											[${amps.version},)
										</versionRange>
										<goals>
											<goal>
												filter-test-plugin-descriptor
											</goal>
											<goal>
												compress-resources
											</goal>
											<goal>
												generate-rest-docs
											</goal>
											<goal>
												filter-plugin-descriptor
											</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											com.atlassian.plugin
										</groupId>
										<artifactId>
											atlassian-spring-scanner-maven-plugin
										</artifactId>
										<versionRange>
											[${atlassian.spring.scanner.version},)
										</versionRange>
										<goals>
											<goal>
												atlassian-spring-scanner
											</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-compiler-plugin
										</artifactId>
										<versionRange>
											[3.7.0,)
										</versionRange>
										<goals>
											<goal>compile</goal>
											<goal>testCompile</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<properties>
		<jira.version>7.10.0</jira.version>
		<amps.version>6.3.15</amps.version>
		<quick.reload.version>1.4.4</quick.reload.version>
   		<plugin.testrunner.version>1.2.3</plugin.testrunner.version>
		<atlassian.spring.scanner.version>1.2.13</atlassian.spring.scanner.version>
		<!-- This key is used to keep the consistency between the key in atlassian-plugin.xml 
			and the key to generate bundle. -->
		<atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key>
		<!-- TestKit version 6.x for JIRA 6.x -->
		<testkit.version>6.3.11</testkit.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>
	<repositories>
		<repository>
			<id>atlassian-public</id>
			<url>https://m2proxy.atlassian.com/repository/public</url>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>daily</updatePolicy>
				<checksumPolicy>warn</checksumPolicy>
			</snapshots>
			<releases>
				<enabled>true</enabled>
				<checksumPolicy>warn</checksumPolicy>
			</releases>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>atlassian-public</id>
			<url>https://m2proxy.atlassian.com/repository/public/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>
</project>

Hi @anon40058337,

I encountered several problems getting my eclipse project working with the maven of atlassian sdk

To solve this, prior to importing your project to Eclipse run atlas-mvn eclipse:eclipse. That command will generate files to make it play well with Eclipse.

Moving to QuickReload, prior to doing any changes, were you able to make QuickReload work? Running atlas-package on a separate terminal while atlas-run is running on the other still works for me (I just did another quick test prior to hitting the Reply button).

I’ve noticed some changes in your POM like

<pluginArtifacts>
   <pluginArtifact>
       <groupId>com.atlassian.labs.plugins</groupId>
       <artifactId>quickreload</artifactId>
       <version>${quick.reload.version}</version>
   </pluginArtifact>
</pluginArtifacts>

which broke my compilation since it cannot find that artifact in Atlassian SDK’s bundled Maven’s setting.xml, why were these changes made? QuickReload works right off the bat after creating a server app via atlas-create-jira-plugin.

Cheers,
Ian

Yes, I used atlas-mvn eclipse:eclipse but I was still confused as my eclipse could not find all required artifacts and repositories. But it is all good now.

But QuickReload did not work until now, also prior to my change in which I included the pluginArtifact. I found it in my web search in another community posting and gave it a try. I will delete it if it is not meant to be included this way.

I created my plugin using atlas-create-jira-plugin and started it later with atlas-run. But as I said, after a change in the code and packaging with atlas-package there is no reaction in the log of the jira instance.

I just recognized, that I did not start the instance with atlas-run, but with atlas-run --p jira -v 7.10.0. When I try to use atlas-run I get the following error:

[ERROR] Failed to execute goal com.atlassian.maven.plugins:maven-amps-dispatcher-plugin:6.3.15:run (default-cli) on project wlCustomFields: Unable to execute mojo: Execution null of goal com.atlassian.maven.plugins:maven-amps-plugin:6.3.15:run failed: java.net.SocketException: Connection reset -> [Help 1]

Interesting. In order to better assess this one, do you have a repo you can share? A reduced test case would be perfect.

Sorry for my late answer. The original issue was solved. I had some confusion about the correct atlas commands.

The last error occurs only once. When I start again using atlas-run the process starts without an error.