Skip to content

Commit 8d24468

Browse files
committed
integration tests success again, removed issue endpoints
1 parent 85ece67 commit 8d24468

File tree

7 files changed

+28
-110
lines changed

7 files changed

+28
-110
lines changed

pom.xml

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,15 @@
5454
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5555
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
5656

57-
<maven.compiler.source>1.8</maven.compiler.source>
58-
<maven.compiler.target>1.8</maven.compiler.target>
57+
<maven.compiler.source>11</maven.compiler.source>
58+
<maven.compiler.target>11</maven.compiler.target>
59+
<kotlin.compiler.jvmTarget>11</kotlin.compiler.jvmTarget>
5960

6061
<kotlin.version>1.9.25</kotlin.version>
61-
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
6262

6363
<junit-jupiter-engine.version>5.11.4</junit-jupiter-engine.version>
6464

65-
<!-- @formatter:off -->
66-
<developer.connection>scm:git:https://github.com/linked-planet/jira-insight-object-graph-plugin.git</developer.connection>
67-
<!-- @formatter:on -->
65+
<enforcer.skip>true</enforcer.skip>
6866

6967
<!-- Deployment properties intended to be set via command line -->
7068
<deploy.url>_</deploy.url>
@@ -131,8 +129,7 @@
131129
<dependency>
132130
<groupId>com.google.code.gson</groupId>
133131
<artifactId>gson</artifactId>
134-
<version>2.11.0</version>
135-
<scope>provided</scope>
132+
<version>2.10.1</version>
136133
</dependency>
137134

138135
<!-- KOTLIN -->
@@ -156,6 +153,11 @@
156153
<artifactId>kotlin-stdlib-jdk8</artifactId>
157154
<version>${kotlin.version}</version>
158155
</dependency>
156+
<dependency>
157+
<groupId>org.jetbrains.kotlin</groupId>
158+
<artifactId>kotlin-stdlib-jdk7</artifactId>
159+
<version>${kotlin.version}</version>
160+
</dependency>
159161

160162
<!-- TEST DEPENDENCIES -->
161163
<dependency>
@@ -167,7 +169,7 @@
167169
<dependency>
168170
<groupId>io.rest-assured</groupId>
169171
<artifactId>rest-assured</artifactId>
170-
<version>5.5.0</version>
172+
<version>4.2.1</version>
171173
<scope>test</scope>
172174
</dependency>
173175
</dependencies>
@@ -188,7 +190,7 @@
188190
<plugin>
189191
<groupId>org.codehaus.mojo</groupId>
190192
<artifactId>build-helper-maven-plugin</artifactId>
191-
<version>3.4.0</version>
193+
<version>3.5.0</version>
192194
<executions>
193195
<execution>
194196
<phase>generate-sources</phase>
@@ -251,7 +253,7 @@
251253
<plugin>
252254
<groupId>org.apache.maven.plugins</groupId>
253255
<artifactId>maven-compiler-plugin</artifactId>
254-
<version>3.11.0</version>
256+
<version>3.13.0</version>
255257
<executions>
256258
<!-- Replacing default-compile as it is treated specially by maven -->
257259
<execution>
@@ -348,7 +350,7 @@
348350
<plugin>
349351
<groupId>org.codehaus.mojo</groupId>
350352
<artifactId>license-maven-plugin</artifactId>
351-
<version>2.1.0</version>
353+
<version>2.4.0</version>
352354
<configuration>
353355
<licenseName>apache_v2</licenseName>
354356
<licenseFile>${project.basedir}/LICENSE</licenseFile>

runConfigurations/jira_debug.run.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<component name="ProjectRunConfigurationManager">
22
<configuration default="false" name="jira:debug" type="MavenRunConfiguration" factoryName="Maven">
3+
<log_file alias="jira" path="$PROJECT_DIR$/target/jira/home/log/atlassian-jira.log" />
34
<MavenSettings>
45
<option name="myGeneralSettings" />
56
<option name="myRunnerSettings" />

runConfigurations/jira_run.run.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<component name="ProjectRunConfigurationManager">
22
<configuration default="false" name="jira:run" type="MavenRunConfiguration" factoryName="Maven">
3+
<log_file alias="jira" path="$PROJECT_DIR$/target/jira/home/log/atlassian-jira.log" />
34
<MavenSettings>
45
<option name="myGeneralSettings" />
56
<option name="myRunnerSettings" />

src/main/kotlin/com/linkedplanet/plugin/jira/insightobjectgraph/api/objects/ListObjectsService.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,6 @@ package com.linkedplanet.plugin.jira.insightobjectgraph.api.objects
2222

2323
interface ListObjectsService {
2424

25-
fun getIssues(type: String): IssueListRootNode?
26-
27-
data class IssueListRootNode(val issues: List<IssueNode>)
28-
29-
data class IssueNode(val id: Long, val fields: List<FieldNode>)
30-
31-
data class FieldNode(val name: String, val values: List<String>)
32-
3325
fun getObjects(objectTypeName: String,
3426
schemaId: Int?,
3527
attributes: Set<String>,

src/main/kotlin/com/linkedplanet/plugin/jira/insightobjectgraph/impl/objects/ListObjectsEndpoint.kt

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,29 +36,21 @@ constructor(private val listService: ListObjectsService) {
3636
@GET
3737
@Path("objects/{object-type-name}")
3838
@Produces(MediaType.APPLICATION_JSON)
39-
fun getSiteObjects(@PathParam("object-type-name") objectTypeName: String,
40-
@QueryParam("schemaId") schemaId: Int?,
41-
@QueryParam("attributes") attributes: Set<String>,
42-
@QueryParam("resolve_attributes") resolveAttributes: Set<String>,
43-
@QueryParam("resolve_relations") resolveRelations: Boolean,
44-
@QueryParam("iql_string") iqlString: String?): Response {
39+
fun getSiteObjects(
40+
@PathParam("object-type-name") objectTypeName: String,
41+
@QueryParam("schemaId") schemaId: Int?,
42+
@QueryParam("attributes") attributes: Set<String>,
43+
@QueryParam("resolve_attributes") resolveAttributes: Set<String>,
44+
@QueryParam("resolve_relations") resolveRelations: Boolean,
45+
@QueryParam("iql_string") iqlString: String?
46+
): Response {
4547

46-
val siteObjects = listService.getObjects(objectTypeName, schemaId, attributes, resolveAttributes, resolveRelations, iqlString)
48+
val siteObjects =
49+
listService.getObjects(objectTypeName, schemaId, attributes, resolveAttributes, resolveRelations, iqlString)
4750
return if (siteObjects == null)
4851
Response.status(HttpStatus.SC_NOT_FOUND).build()
4952
else
5053
Response.ok(toJson(siteObjects.objects)).build()
5154
}
5255

53-
@GET
54-
@Path("issues/{related-object-type}")
55-
@Produces(MediaType.APPLICATION_JSON)
56-
fun getSiteIssues(@PathParam("related-object-type") type: String): Response {
57-
val siteIssues = listService.getIssues(type)
58-
return if (siteIssues == null)
59-
Response.status(HttpStatus.SC_NOT_FOUND).build()
60-
else
61-
Response.ok(toJson(siteIssues.issues)).build()
62-
}
63-
6456
}

src/main/kotlin/com/linkedplanet/plugin/jira/insightobjectgraph/impl/objects/ListObjectsServiceImpl.kt

Lines changed: 2 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -20,74 +20,23 @@
2020

2121
package com.linkedplanet.plugin.jira.insightobjectgraph.impl.objects
2222

23-
import com.atlassian.jira.bc.issue.search.SearchService
2423
import com.atlassian.jira.config.properties.APKeys
2524
import com.atlassian.jira.config.properties.ApplicationProperties
26-
import com.atlassian.jira.issue.CustomFieldManager
27-
import com.atlassian.jira.issue.Issue
28-
import com.atlassian.jira.security.JiraAuthenticationContext
29-
import com.atlassian.jira.web.bean.PagerFilter
3025
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport
26+
import com.linkedplanet.plugin.jira.insightobjectgraph.api.objects.ListObjectsService
27+
import com.linkedplanet.plugin.jira.insightobjectgraph.impl.insight.InsightApiFacade
3128
import com.riadalabs.jira.plugins.insight.services.model.ObjectAttributeBean
3229
import com.riadalabs.jira.plugins.insight.services.model.ObjectBean
3330
import com.riadalabs.jira.plugins.insight.services.model.ObjectTypeAttributeBean
34-
import com.linkedplanet.plugin.jira.insightobjectgraph.api.objects.ListObjectsService
35-
import com.linkedplanet.plugin.jira.insightobjectgraph.impl.insight.InsightApiFacade
3631
import javax.inject.Inject
3732
import javax.inject.Named
3833

3934
@Named
4035
class ListObjectsServiceImpl
4136
@Inject
4237
constructor(private val insightApiFacade: InsightApiFacade,
43-
@ComponentImport private val searchService: SearchService,
44-
@ComponentImport private val authenticationContext: JiraAuthenticationContext,
45-
@ComponentImport private val fieldManager: CustomFieldManager,
4638
@ComponentImport private val applicationProperties: ApplicationProperties) : ListObjectsService {
4739

48-
override fun getIssues(type: String): ListObjectsService.IssueListRootNode? {
49-
val searchResult = searchService.search(
50-
authenticationContext.loggedInUser,
51-
searchService.parseQuery(authenticationContext.loggedInUser, "\"$type\" is not empty").query,
52-
PagerFilter.getUnlimitedFilter())
53-
val issueNodes = searchResult.results
54-
.map { ListObjectsService.IssueNode(it.id, getIssueFields(it, type)) }
55-
return ListObjectsService.IssueListRootNode(issueNodes)
56-
}
57-
58-
private fun getIssueFields(issue: Issue, type: String): List<ListObjectsService.FieldNode> =
59-
listOf(
60-
ListObjectsService.FieldNode("Key", listOf(issue.key)),
61-
ListObjectsService.FieldNode("Summary", listOf(issue.summary ?: "")),
62-
ListObjectsService.FieldNode("Assignee", listOf(issue.assignee?.username ?: "")),
63-
ListObjectsService.FieldNode("Reporter", listOf(issue.reporter?.username ?: "")),
64-
ListObjectsService.FieldNode("Created", listOf(issue.created?.toString() ?: "")),
65-
ListObjectsService.FieldNode("Updated", listOf(issue.updated?.toString() ?: "")),
66-
ListObjectsService.FieldNode("Status", listOf(issue.status?.name ?: "")),
67-
ListObjectsService.FieldNode("Description", listOf(issue.description ?: "")),
68-
ListObjectsService.FieldNode("Priority", listOf(issue.priority?.name ?: "")),
69-
ListObjectsService.FieldNode("Type", listOf(issue.issueType?.name ?: "")),
70-
ListObjectsService.FieldNode("Resolution", listOf(issue.resolution?.name ?: "")),
71-
ListObjectsService.FieldNode("Duedate", listOf(issue.dueDate?.toString() ?: "")),
72-
ListObjectsService.FieldNode("Project", listOf(issue.projectObject?.originalKey ?: "")),
73-
ListObjectsService.FieldNode("URL", listOf(issueURL(issue) ?: "")),
74-
ListObjectsService.FieldNode(type, customFieldContent(issue, type))
75-
)
76-
77-
private fun issueURL(issue: Issue): String? =
78-
applicationProperties.getString(APKeys.JIRA_BASEURL)
79-
?.plus("/browse/")
80-
?.plus(issue.key)
81-
82-
83-
private fun customFieldContent(issue: Issue, name: String): List<String> {
84-
val customFieldValue = issue.getCustomFieldValue(fieldManager.getCustomFieldObjectsByName(name).first())
85-
return if (customFieldValue is List<*>)
86-
customFieldValue.filterIsInstance<ObjectBean>().map { it.objectKey }
87-
else
88-
emptyList()
89-
}
90-
9140
override fun getObjects(objectTypeName: String,
9241
schemaId: Int?,
9342
attributes: Set<String>,

src/test/kotlin/it/ListObjectsIntegrationTest.kt

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -92,24 +92,6 @@ class ListObjectsIntegrationTest : AbstractIntegrationTest() {
9292
.body("find { it.id==$t2Id }.attributes.find { it.name=='T1-2' }.values", hasItem(t1Id2.toString()))
9393
}
9494

95-
@Test
96-
fun issuesOfObjectList_then_jsonResponse_findIssue() {
97-
val t1Id = createT1("T1")
98-
val issueId = createIssue("IT", "Task", testId, t1Id)
99-
given().`when`()
100-
.get("$ISSUE_LIST_PATH/$JIRA_INSIGHT_OBJECT_FIELD_NAME")
101-
.then().statusCode(200)
102-
.body("find { it.id==$issueId }.fields.find { it.name=='Summary' }.values", hasItem(testId))
103-
}
104-
105-
@Test
106-
fun issuesOfUnknownObjectList_then_jsonResponse_NoIssueFound() {
107-
given().`when`()
108-
.get("$ISSUE_LIST_PATH/NOTFOUND")
109-
.then().statusCode(200)
110-
.body("final_list.findAll.size()", equalTo(0))
111-
}
112-
11395
private fun createIssue(projectKey: String,
11496
issueType: String,
11597
summary: String,
@@ -136,7 +118,6 @@ class ListObjectsIntegrationTest : AbstractIntegrationTest() {
136118
private companion object {
137119
private const val INSIGHT_OBJECT_GRAPH_BASE_PATH = "/insight-object-graph/1.0"
138120
private const val OBJECT_LIST_PATH = "$INSIGHT_OBJECT_GRAPH_BASE_PATH/objects"
139-
private const val ISSUE_LIST_PATH = "$INSIGHT_OBJECT_GRAPH_BASE_PATH/issues"
140121
private const val JIRA_API_BASE_PATH = "/api/2"
141122
}
142123

0 commit comments

Comments
 (0)