diff options
author | Frank Becker | 2015-02-19 19:26:57 +0000 |
---|---|---|
committer | Frank Becker | 2015-06-11 01:46:09 +0000 |
commit | 8440f0cb25a6b5a1072d692aa29c790e08b53041 (patch) | |
tree | a1b172828ad8f0663f6d6af4f44ef6345bfc74f3 | |
parent | 7d62d00eab65b37124ad0736054996d0ceecb3fe (diff) | |
download | org.eclipse.mylyn.tasks-8440f0cb25a6b5a1072d692aa29c790e08b53041.tar.gz org.eclipse.mylyn.tasks-8440f0cb25a6b5a1072d692aa29c790e08b53041.tar.xz org.eclipse.mylyn.tasks-8440f0cb25a6b5a1072d692aa29c790e08b53041.zip |
426644: add TaskDataSchema for Task Creation (with UI Part)
Change-Id: I94a3879289d0ac86ab5515facdedbf4aa305d701
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=414360
32 files changed, 990 insertions, 166 deletions
diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/config/local-Default-BugzillaRestCoreTests.launch b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/config/local-Default-BugzillaRestCoreTests.launch index 00697ba4c..25344def2 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/config/local-Default-BugzillaRestCoreTests.launch +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/config/local-Default-BugzillaRestCoreTests.launch @@ -29,7 +29,7 @@ <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -consolelog"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.mylyn.bugzilla.rest.core.tests"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m -XX:MaxPermSize=128m -Dorg.eclipse.mylyn.tests.all=false"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m -XX:MaxPermSize=128m -Dorg.eclipse.mylyn.tests.all=false -Dmylyn.tests.configuration.url=http://localhost:2080/bugzilla-rest-master"/> <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.platform.ide"/> <booleanAttribute key="run_in_ui_thread" value="true"/> diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/config/local-Single-BugzillaRestCoreTests.launch b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/config/local-Single-BugzillaRestCoreTests.launch index 2fed30ba8..43ec6cd11 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/config/local-Single-BugzillaRestCoreTests.launch +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/config/local-Single-BugzillaRestCoreTests.launch @@ -21,7 +21,7 @@ </listAttribute> <stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> -<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value="testValidate"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7 [1.7.0_71]"/> @@ -29,7 +29,7 @@ <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -consolelog"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.mylyn.bugzilla.rest.core.tests"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m -XX:MaxPermSize=128m -Dorg.eclipse.mylyn.tests.all=true"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m -XX:MaxPermSize=128m -Dorg.eclipse.mylyn.tests.all=false -Dmylyn.tests.configuration.url=http://localhost:2080/bugzilla-rest-master"/> <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.platform.ide"/> <booleanAttribute key="run_in_ui_thread" value="true"/> diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/src/org/eclipse/mylyn/internal/bugzilla/rest/core/tests/BugzillaRestClientTest.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/src/org/eclipse/mylyn/internal/bugzilla/rest/core/tests/BugzillaRestClientTest.java index 6e2beee04..051423f66 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/src/org/eclipse/mylyn/internal/bugzilla/rest/core/tests/BugzillaRestClientTest.java +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/src/org/eclipse/mylyn/internal/bugzilla/rest/core/tests/BugzillaRestClientTest.java @@ -42,7 +42,11 @@ import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.Product; import org.eclipse.mylyn.internal.bugzilla.rest.test.support.BugzillaRestTestFixture; import org.eclipse.mylyn.internal.commons.core.operations.NullOperationMonitor; import org.eclipse.mylyn.internal.commons.repositories.core.InMemoryCredentialsStore; +import org.eclipse.mylyn.tasks.core.TaskMapping; import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler; +import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper; +import org.eclipse.mylyn.tasks.core.data.TaskData; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -177,4 +181,46 @@ public class BugzillaRestClientTest { new Gson().toJson(fieldNameList)); } + @Test + public void testinitializeTaskData() throws Exception { + final TaskMapping taskMappingInit = new TaskMapping() { + @Override + public String getSummary() { + return "The Summary"; + } + + @Override + public String getDescription() { + return "The Description"; + } + }; + final TaskMapping taskMappingSelect = new TaskMapping() { + @Override + public String getProduct() { + return "TestProduct"; + } + }; + + AbstractTaskDataHandler taskDataHandler = connector.getTaskDataHandler(); + TaskRepository repository = actualFixture.repository(); + TaskAttributeMapper mapper = taskDataHandler.getAttributeMapper(repository); + TaskData taskData = new TaskData(mapper, repository.getConnectorKind(), repository.getRepositoryUrl(), ""); + assertTrue(taskDataHandler.initializeTaskData(repository, taskData, null, null)); + assertEquals( + IOUtils.toString(CommonTestUtil.getResource(this, actualFixture.getTestDataFolder() + "/taskData.txt")), + taskData.getRoot().toString()); + taskData = new TaskData(mapper, repository.getConnectorKind(), repository.getRepositoryUrl(), ""); + assertTrue(taskDataHandler.initializeTaskData(repository, taskData, taskMappingInit, null)); + assertEquals( + IOUtils.toString( + CommonTestUtil.getResource(this, actualFixture.getTestDataFolder() + "/taskData1.txt")), + taskData.getRoot().toString()); + taskData = new TaskData(mapper, repository.getConnectorKind(), repository.getRepositoryUrl(), ""); + assertTrue(taskDataHandler.initializeTaskData(repository, taskData, taskMappingSelect, null)); + assertEquals( + IOUtils.toString( + CommonTestUtil.getResource(this, actualFixture.getTestDataFolder() + "/taskData2.txt")), + taskData.getRoot().toString()); + } + } diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/configuration.json b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/configuration.json index a5f798842..0f0b7f19e 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/configuration.json +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/configuration.json @@ -1 +1 @@ -{"repositoryId":"http://dummy.url","fields":{"alias":{"id":38,"type":0,"is_custom":false,"name":"alias","display_name":"Alias","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"assigned_to":{"id":16,"type":0,"is_custom":false,"name":"assigned_to","display_name":"AssignedTo","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"assigned_to_realname":{"id":19,"type":0,"is_custom":false,"name":"assigned_to_realname","display_name":"AssignedToName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attach_data.thedata":{"id":53,"type":0,"is_custom":false,"name":"attach_data.thedata","display_name":"Attachment data","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.description":{"id":25,"type":0,"is_custom":false,"name":"attachments.description","display_name":"Attachment description","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.filename":{"id":26,"type":0,"is_custom":false,"name":"attachments.filename","display_name":"Attachment filename","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.isobsolete":{"id":29,"type":0,"is_custom":false,"name":"attachments.isobsolete","display_name":"Attachment is obsolete","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.ispatch":{"id":28,"type":0,"is_custom":false,"name":"attachments.ispatch","display_name":"Attachment is patch","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.isprivate":{"id":30,"type":0,"is_custom":false,"name":"attachments.isprivate","display_name":"Attachment is private","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.mimetype":{"id":27,"type":0,"is_custom":false,"name":"attachments.mimetype","display_name":"Attachment mime type","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.submitter":{"id":31,"type":0,"is_custom":false,"name":"attachments.submitter","display_name":"Attachment creator","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"blocked":{"id":24,"type":0,"is_custom":false,"name":"blocked","display_name":"Blocks","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_file_loc":{"id":7,"type":0,"is_custom":false,"name":"bug_file_loc","display_name":"URL","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_group":{"id":42,"type":0,"is_custom":false,"name":"bug_group","display_name":"Group","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_id":{"id":1,"type":0,"is_custom":false,"name":"bug_id","display_name":"Bug #","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_severity":{"id":13,"type":2,"is_custom":false,"name":"bug_severity","display_name":"Severity","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"blocker","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"critical","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"major","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"normal","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"minor","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"trivial","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false},{"name":"enhancement","sort_key":700,"visibility_values":[],"is_active":false,"is_open":false}]},"bug_status":{"id":9,"type":2,"is_custom":false,"name":"bug_status","display_name":"Status","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"sort_key":0,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false},{"name":"IN_PROGRESS","comment_required":false}]},{"name":"UNCONFIRMED","sort_key":100,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"CONFIRMED","comment_required":false},{"name":"IN_PROGRESS","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"CONFIRMED","sort_key":200,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"IN_PROGRESS","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"IN_PROGRESS","sort_key":300,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"CONFIRMED","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"RESOLVED","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false},{"name":"VERIFIED","comment_required":false}]},{"name":"VERIFIED","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false}]}]},"cc":{"id":22,"type":0,"is_custom":false,"name":"cc","display_name":"CC","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"cclist_accessible":{"id":41,"type":0,"is_custom":false,"name":"cclist_accessible","display_name":"CC Accessible","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"cf_bugid":{"id":65,"type":6,"is_custom":true,"name":"cf_bugid","display_name":"bug id custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_datetime":{"id":64,"type":5,"is_custom":true,"name":"cf_datetime","display_name":"date time custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_dropdown":{"id":61,"type":2,"is_custom":true,"name":"cf_dropdown","display_name":"drop down custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[],"values":[{"name":"---","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"one","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"three","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"two","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"cf_freetext":{"id":60,"type":1,"is_custom":true,"name":"cf_freetext","display_name":"free text custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_largetextbox":{"id":62,"type":4,"is_custom":true,"name":"cf_largetextbox","display_name":"large text box custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_multiselect":{"id":63,"type":3,"is_custom":true,"name":"cf_multiselect","display_name":"multi selection box custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[],"values":[{"name":"Blue","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Green","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Red","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Yellow","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"classification":{"id":3,"type":2,"is_custom":false,"name":"classification","display_name":"Classification","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Unclassified","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"comment_tag":{"id":58,"type":0,"is_custom":false,"name":"comment_tag","display_name":"Comment Tag","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"commenter":{"id":46,"type":0,"is_custom":false,"name":"commenter","display_name":"Commenter","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"component":{"id":15,"type":2,"is_custom":false,"name":"component","display_name":"Component","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"TestComponent","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"Component 1","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"Component 2","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"ManualC1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"ManualC2","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false}]},"content":{"id":52,"type":0,"is_custom":false,"name":"content","display_name":"Content","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"creation_ts":{"id":33,"type":0,"is_custom":false,"name":"creation_ts","display_name":"Creation date","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"days_elapsed":{"id":59,"type":0,"is_custom":false,"name":"days_elapsed","display_name":"Days since bug changed","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"deadline":{"id":45,"type":5,"is_custom":false,"name":"deadline","display_name":"Deadline","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"delta_ts":{"id":34,"type":0,"is_custom":false,"name":"delta_ts","display_name":"Last changed date","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"dependson":{"id":23,"type":0,"is_custom":false,"name":"dependson","display_name":"Depends on","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"estimated_time":{"id":43,"type":0,"is_custom":false,"name":"estimated_time","display_name":"Estimated Hours","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"everconfirmed":{"id":39,"type":0,"is_custom":false,"name":"everconfirmed","display_name":"Ever Confirmed","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"flagtypes.name":{"id":47,"type":0,"is_custom":false,"name":"flagtypes.name","display_name":"Flags","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"keywords":{"id":11,"type":8,"is_custom":false,"name":"keywords","display_name":"Keywords","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Keyword1","sort_key":0,"is_active":false,"description":"1","is_open":false},{"name":"Keyword2","sort_key":0,"is_active":false,"description":"2","is_open":false}]},"last_visit_ts":{"id":57,"type":5,"is_custom":false,"name":"last_visit_ts","display_name":"Last Visit","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdesc":{"id":35,"type":0,"is_custom":false,"name":"longdesc","display_name":"Comment","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdescs.count":{"id":37,"type":0,"is_custom":false,"name":"longdescs.count","display_name":"Number of Comments","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdescs.isprivate":{"id":36,"type":0,"is_custom":false,"name":"longdescs.isprivate","display_name":"Comment is private","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"op_sys":{"id":8,"type":2,"is_custom":false,"name":"op_sys","display_name":"OS/Version","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"All","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Windows","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Mac OS","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Linux","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Other","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false}]},"owner_idle_time":{"id":54,"type":0,"is_custom":false,"name":"owner_idle_time","display_name":"Time Since Assignee Touched","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"percentage_complete":{"id":51,"type":0,"is_custom":false,"name":"percentage_complete","display_name":"Percentage Complete","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"priority":{"id":14,"type":2,"is_custom":false,"name":"priority","display_name":"Priority","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Highest","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"High","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Normal","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Low","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Lowest","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"---","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false}]},"product":{"id":4,"type":2,"is_custom":false,"name":"product","display_name":"Product","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[]},"qa_contact":{"id":18,"type":0,"is_custom":false,"name":"qa_contact","display_name":"QAContact","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"qa_contact_realname":{"id":21,"type":0,"is_custom":false,"name":"qa_contact_realname","display_name":"QAContactName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"remaining_time":{"id":44,"type":0,"is_custom":false,"name":"remaining_time","display_name":"Remaining Hours","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"rep_platform":{"id":6,"type":2,"is_custom":false,"name":"rep_platform","display_name":"Platform","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"All","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"PC","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Macintosh","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Other","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false}]},"reporter":{"id":17,"type":0,"is_custom":false,"name":"reporter","display_name":"ReportedBy","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"reporter_accessible":{"id":40,"type":0,"is_custom":false,"name":"reporter_accessible","display_name":"Reporter Accessible","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"reporter_realname":{"id":20,"type":0,"is_custom":false,"name":"reporter_realname","display_name":"ReportedByName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"requestees.login_name":{"id":48,"type":0,"is_custom":false,"name":"requestees.login_name","display_name":"Flag Requestee","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"resolution":{"id":12,"type":2,"is_custom":false,"name":"resolution","display_name":"Resolution","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"FIXED","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"INVALID","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"WONTFIX","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"DUPLICATE","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"WORKSFORME","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false}]},"see_also":{"id":55,"type":7,"is_custom":false,"name":"see_also","display_name":"See Also","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"setters.login_name":{"id":49,"type":0,"is_custom":false,"name":"setters.login_name","display_name":"Flag Setter","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"short_desc":{"id":2,"type":0,"is_custom":false,"name":"short_desc","display_name":"Summary","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[]},"status_whiteboard":{"id":10,"type":0,"is_custom":false,"name":"status_whiteboard","display_name":"Status Whiteboard","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"tag":{"id":56,"type":8,"is_custom":false,"name":"tag","display_name":"Personal Tags","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"target_milestone":{"id":32,"type":0,"is_custom":false,"name":"target_milestone","display_name":"Target Milestone","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"---","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"---","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"---","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M1.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"M2","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M2.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"M3","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M3.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false}]},"version":{"id":5,"type":0,"is_custom":false,"name":"version","display_name":"Version","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"unspecified","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"unspecified","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"a","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"b","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"c","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"unspecified","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R1.1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R2.0","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false}]},"work_time":{"id":50,"type":0,"is_custom":false,"name":"work_time","display_name":"Hours Worked","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]}},"products":{"ManualTest":{"id":3,"name":"ManualTest","is_active":true,"description":"Product for manual testing","default_milestone":"---","has_unconfirmed":false,"classification":"Unclassified","components":[{"id":4,"name":"ManualC1","description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}},{"id":5,"name":"ManualC2","description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"R1","sort_key":0,"is_active":true},{"name":"R1.1","sort_key":0,"is_active":true},{"name":"R2.0","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1","sort_key":0,"is_active":true},{"name":"M2","sort_key":0,"is_active":true},{"name":"M3","sort_key":0,"is_active":true}]},"Product with Spaces":{"id":2,"name":"Product with Spaces","is_active":true,"description":"Product with Spaces is the renamed Scratch Product.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":2,"name":"Component 1","description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}},{"id":3,"name":"Component 2","description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"a","sort_key":0,"is_active":true},{"name":"b","sort_key":0,"is_active":true},{"name":"c","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1.0","sort_key":0,"is_active":true},{"name":"M2.0","sort_key":0,"is_active":true},{"name":"M3.0","sort_key":0,"is_active":true}]},"TestProduct":{"id":1,"name":"TestProduct","is_active":true,"description":"This is a test product. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":1,"name":"TestComponent","description":"This is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of Bugzilla.","default_assigned_to":"admin@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true}]}},"parameters":{"allowemailchange":"1","attachment_base":"","commentonchange_resolution":"0","commentonduplicate":"0","cookiepath":"/","defaultopsys":"","defaultplatform":"","defaultpriority":"---","defaultseverity":"enhancement","duplicate_or_move_bug_status":"RESOLVED","emailregexpdesc":"A legal address must contain exactly one \u0027@\u0027, and at least one \u0027.\u0027 after the @.","emailsuffix":"","letsubmitterchoosemilestone":"1","letsubmitterchoosepriority":"1","mailfrom":"bugzilla-daemon","maintainer":"admin@mylyn.eclipse.org","maxattachmentsize":"1000","maxlocalattachment":"0","musthavemilestoneonaccept":"0","noresolveonopenblockers":"0","password_complexity":"no_constraints","rememberlogin":"on","requirelogin":"0","search_allow_no_criteria":"1","urlbase":"","use_see_also":"1","useclassification":"0","usemenuforusers":"0","useqacontact":"1","usestatuswhiteboard":"1","usetargetmilestone":"1"}}
\ No newline at end of file +{"repositoryId":"http://dummy.url","fields":{"alias":{"id":38,"type":0,"is_custom":false,"name":"alias","display_name":"Alias","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"assigned_to":{"id":16,"type":0,"is_custom":false,"name":"assigned_to","display_name":"AssignedTo","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"assigned_to_realname":{"id":19,"type":0,"is_custom":false,"name":"assigned_to_realname","display_name":"AssignedToName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attach_data.thedata":{"id":53,"type":0,"is_custom":false,"name":"attach_data.thedata","display_name":"Attachment data","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.description":{"id":25,"type":0,"is_custom":false,"name":"attachments.description","display_name":"Attachment description","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.filename":{"id":26,"type":0,"is_custom":false,"name":"attachments.filename","display_name":"Attachment filename","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.isobsolete":{"id":29,"type":0,"is_custom":false,"name":"attachments.isobsolete","display_name":"Attachment is obsolete","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.ispatch":{"id":28,"type":0,"is_custom":false,"name":"attachments.ispatch","display_name":"Attachment is patch","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.isprivate":{"id":30,"type":0,"is_custom":false,"name":"attachments.isprivate","display_name":"Attachment is private","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.mimetype":{"id":27,"type":0,"is_custom":false,"name":"attachments.mimetype","display_name":"Attachment mime type","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.submitter":{"id":31,"type":0,"is_custom":false,"name":"attachments.submitter","display_name":"Attachment creator","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"blocked":{"id":24,"type":0,"is_custom":false,"name":"blocked","display_name":"Blocks","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_file_loc":{"id":7,"type":0,"is_custom":false,"name":"bug_file_loc","display_name":"URL","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_group":{"id":42,"type":0,"is_custom":false,"name":"bug_group","display_name":"Group","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_id":{"id":1,"type":0,"is_custom":false,"name":"bug_id","display_name":"Bug #","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_severity":{"id":13,"type":2,"is_custom":false,"name":"bug_severity","display_name":"Severity","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"blocker","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"critical","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"major","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"normal","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"minor","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"trivial","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false},{"name":"enhancement","sort_key":700,"visibility_values":[],"is_active":false,"is_open":false}]},"bug_status":{"id":9,"type":2,"is_custom":false,"name":"bug_status","display_name":"Status","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"sort_key":0,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false},{"name":"IN_PROGRESS","comment_required":false}]},{"name":"UNCONFIRMED","sort_key":100,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"CONFIRMED","comment_required":false},{"name":"IN_PROGRESS","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"CONFIRMED","sort_key":200,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"IN_PROGRESS","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"IN_PROGRESS","sort_key":300,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"CONFIRMED","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"RESOLVED","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false},{"name":"VERIFIED","comment_required":false}]},{"name":"VERIFIED","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false}]}]},"cc":{"id":22,"type":0,"is_custom":false,"name":"cc","display_name":"CC","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"cclist_accessible":{"id":41,"type":0,"is_custom":false,"name":"cclist_accessible","display_name":"CC Accessible","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"cf_bugid":{"id":65,"type":6,"is_custom":true,"name":"cf_bugid","display_name":"bug id custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_datetime":{"id":64,"type":5,"is_custom":true,"name":"cf_datetime","display_name":"date time custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_dropdown":{"id":61,"type":2,"is_custom":true,"name":"cf_dropdown","display_name":"drop down custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[],"values":[{"name":"---","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"one","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"three","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"two","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"cf_freetext":{"id":60,"type":1,"is_custom":true,"name":"cf_freetext","display_name":"free text custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_largetextbox":{"id":62,"type":4,"is_custom":true,"name":"cf_largetextbox","display_name":"large text box custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_multiselect":{"id":63,"type":3,"is_custom":true,"name":"cf_multiselect","display_name":"multi selection box custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[],"values":[{"name":"Blue","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Green","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Red","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Yellow","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"classification":{"id":3,"type":2,"is_custom":false,"name":"classification","display_name":"Classification","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Unclassified","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"comment_tag":{"id":58,"type":0,"is_custom":false,"name":"comment_tag","display_name":"Comment Tag","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"commenter":{"id":46,"type":0,"is_custom":false,"name":"commenter","display_name":"Commenter","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"component":{"id":15,"type":2,"is_custom":false,"name":"component","display_name":"Component","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"TestComponent","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"Component 1","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"Component 2","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"ManualC1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"ManualC2","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false}]},"content":{"id":52,"type":0,"is_custom":false,"name":"content","display_name":"Content","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"creation_ts":{"id":33,"type":0,"is_custom":false,"name":"creation_ts","display_name":"Creation date","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"days_elapsed":{"id":59,"type":0,"is_custom":false,"name":"days_elapsed","display_name":"Days since bug changed","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"deadline":{"id":45,"type":5,"is_custom":false,"name":"deadline","display_name":"Deadline","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"delta_ts":{"id":34,"type":0,"is_custom":false,"name":"delta_ts","display_name":"Last changed date","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"dependson":{"id":23,"type":0,"is_custom":false,"name":"dependson","display_name":"Depends on","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"estimated_time":{"id":43,"type":0,"is_custom":false,"name":"estimated_time","display_name":"Estimated Hours","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"everconfirmed":{"id":39,"type":0,"is_custom":false,"name":"everconfirmed","display_name":"Ever Confirmed","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"flagtypes.name":{"id":47,"type":0,"is_custom":false,"name":"flagtypes.name","display_name":"Flags","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"keywords":{"id":11,"type":8,"is_custom":false,"name":"keywords","display_name":"Keywords","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Keyword1","sort_key":0,"is_active":false,"description":"1","is_open":false},{"name":"Keyword2","sort_key":0,"is_active":false,"description":"2","is_open":false}]},"last_visit_ts":{"id":57,"type":5,"is_custom":false,"name":"last_visit_ts","display_name":"Last Visit","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdesc":{"id":35,"type":0,"is_custom":false,"name":"longdesc","display_name":"Comment","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdescs.count":{"id":37,"type":0,"is_custom":false,"name":"longdescs.count","display_name":"Number of Comments","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdescs.isprivate":{"id":36,"type":0,"is_custom":false,"name":"longdescs.isprivate","display_name":"Comment is private","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"op_sys":{"id":8,"type":2,"is_custom":false,"name":"op_sys","display_name":"OS/Version","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"All","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Windows","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Mac OS","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Linux","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Other","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false}]},"owner_idle_time":{"id":54,"type":0,"is_custom":false,"name":"owner_idle_time","display_name":"Time Since Assignee Touched","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"percentage_complete":{"id":51,"type":0,"is_custom":false,"name":"percentage_complete","display_name":"Percentage Complete","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"priority":{"id":14,"type":2,"is_custom":false,"name":"priority","display_name":"Priority","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Highest","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"High","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Normal","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Low","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Lowest","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"---","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false}]},"product":{"id":4,"type":2,"is_custom":false,"name":"product","display_name":"Product","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[]},"qa_contact":{"id":18,"type":0,"is_custom":false,"name":"qa_contact","display_name":"QAContact","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"qa_contact_realname":{"id":21,"type":0,"is_custom":false,"name":"qa_contact_realname","display_name":"QAContactName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"remaining_time":{"id":44,"type":0,"is_custom":false,"name":"remaining_time","display_name":"Remaining Hours","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"rep_platform":{"id":6,"type":2,"is_custom":false,"name":"rep_platform","display_name":"Platform","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"All","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"PC","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Macintosh","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Other","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false}]},"reporter":{"id":17,"type":0,"is_custom":false,"name":"reporter","display_name":"ReportedBy","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"reporter_accessible":{"id":40,"type":0,"is_custom":false,"name":"reporter_accessible","display_name":"Reporter Accessible","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"reporter_realname":{"id":20,"type":0,"is_custom":false,"name":"reporter_realname","display_name":"ReportedByName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"requestees.login_name":{"id":48,"type":0,"is_custom":false,"name":"requestees.login_name","display_name":"Flag Requestee","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"resolution":{"id":12,"type":2,"is_custom":false,"name":"resolution","display_name":"Resolution","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"FIXED","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"INVALID","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"WONTFIX","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"DUPLICATE","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"WORKSFORME","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false}]},"see_also":{"id":55,"type":7,"is_custom":false,"name":"see_also","display_name":"See Also","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"setters.login_name":{"id":49,"type":0,"is_custom":false,"name":"setters.login_name","display_name":"Flag Setter","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"short_desc":{"id":2,"type":0,"is_custom":false,"name":"short_desc","display_name":"Summary","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[]},"status_whiteboard":{"id":10,"type":0,"is_custom":false,"name":"status_whiteboard","display_name":"Status Whiteboard","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"tag":{"id":56,"type":8,"is_custom":false,"name":"tag","display_name":"Personal Tags","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"target_milestone":{"id":32,"type":0,"is_custom":false,"name":"target_milestone","display_name":"Target Milestone","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"---","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"---","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"---","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M1.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"M2","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M2.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"M3","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M3.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false}]},"version":{"id":5,"type":0,"is_custom":false,"name":"version","display_name":"Version","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"unspecified","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"unspecified","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"a","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"b","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"c","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"unspecified","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R1.1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R2.0","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false}]},"work_time":{"id":50,"type":0,"is_custom":false,"name":"work_time","display_name":"Hours Worked","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]}},"products":{"ManualTest":{"id":3,"name":"ManualTest","is_active":true,"description":"Product for manual testing","default_milestone":"---","has_unconfirmed":false,"classification":"Unclassified","components":[{"id":4,"description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"ManualC1","sort_key":0,"is_active":true},{"id":5,"description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"ManualC2","sort_key":0,"is_active":true}],"versions":[{"name":"R1","sort_key":0,"is_active":true},{"name":"R1.1","sort_key":0,"is_active":true},{"name":"R2.0","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1","sort_key":0,"is_active":true},{"name":"M2","sort_key":0,"is_active":true},{"name":"M3","sort_key":0,"is_active":true}]},"Product with Spaces":{"id":2,"name":"Product with Spaces","is_active":true,"description":"Product with Spaces is the renamed Scratch Product.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":2,"description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"Component 1","sort_key":0,"is_active":true},{"id":3,"description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"Component 2","sort_key":0,"is_active":true}],"versions":[{"name":"a","sort_key":0,"is_active":true},{"name":"b","sort_key":0,"is_active":true},{"name":"c","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1.0","sort_key":0,"is_active":true},{"name":"M2.0","sort_key":0,"is_active":true},{"name":"M3.0","sort_key":0,"is_active":true}]},"TestProduct":{"id":1,"name":"TestProduct","is_active":true,"description":"This is a test product. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":1,"description":"This is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of Bugzilla.","default_assigned_to":"admin@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"TestComponent","sort_key":0,"is_active":true}],"versions":[{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true}]}},"parameters":{"allowemailchange":"1","attachment_base":"","commentonchange_resolution":"0","commentonduplicate":"0","cookiepath":"/","defaultopsys":"","defaultplatform":"","defaultpriority":"---","defaultseverity":"enhancement","duplicate_or_move_bug_status":"RESOLVED","emailregexpdesc":"A legal address must contain exactly one \u0027@\u0027, and at least one \u0027.\u0027 after the @.","emailsuffix":"","letsubmitterchoosemilestone":"1","letsubmitterchoosepriority":"1","mailfrom":"bugzilla-daemon","maintainer":"admin@mylyn.eclipse.org","maxattachmentsize":"1000","maxlocalattachment":"0","musthavemilestoneonaccept":"0","noresolveonopenblockers":"0","password_complexity":"no_constraints","rememberlogin":"on","requirelogin":"0","search_allow_no_criteria":"1","urlbase":"","use_see_also":"1","useclassification":"0","usemenuforusers":"0","useqacontact":"1","usestatuswhiteboard":"1","usetargetmilestone":"1"}}
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/products.json b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/products.json index 5d60ffe08..d72e6559b 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/products.json +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/products.json @@ -1 +1 @@ -{"ManualTest":{"id":3,"name":"ManualTest","is_active":true,"description":"Product for manual testing","default_milestone":"---","has_unconfirmed":false,"classification":"Unclassified","components":[{"id":4,"name":"ManualC1","description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}},{"id":5,"name":"ManualC2","description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"R1","sort_key":0,"is_active":true},{"name":"R1.1","sort_key":0,"is_active":true},{"name":"R2.0","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1","sort_key":0,"is_active":true},{"name":"M2","sort_key":0,"is_active":true},{"name":"M3","sort_key":0,"is_active":true}]},"Product with Spaces":{"id":2,"name":"Product with Spaces","is_active":true,"description":"Product with Spaces is the renamed Scratch Product.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":2,"name":"Component 1","description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}},{"id":3,"name":"Component 2","description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"a","sort_key":0,"is_active":true},{"name":"b","sort_key":0,"is_active":true},{"name":"c","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1.0","sort_key":0,"is_active":true},{"name":"M2.0","sort_key":0,"is_active":true},{"name":"M3.0","sort_key":0,"is_active":true}]},"TestProduct":{"id":1,"name":"TestProduct","is_active":true,"description":"This is a test product. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":1,"name":"TestComponent","description":"This is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of Bugzilla.","default_assigned_to":"admin@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true}]}}
\ No newline at end of file +{"ManualTest":{"id":3,"name":"ManualTest","is_active":true,"description":"Product for manual testing","default_milestone":"---","has_unconfirmed":false,"classification":"Unclassified","components":[{"id":4,"description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"ManualC1","sort_key":0,"is_active":true},{"id":5,"description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"ManualC2","sort_key":0,"is_active":true}],"versions":[{"name":"R1","sort_key":0,"is_active":true},{"name":"R1.1","sort_key":0,"is_active":true},{"name":"R2.0","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1","sort_key":0,"is_active":true},{"name":"M2","sort_key":0,"is_active":true},{"name":"M3","sort_key":0,"is_active":true}]},"Product with Spaces":{"id":2,"name":"Product with Spaces","is_active":true,"description":"Product with Spaces is the renamed Scratch Product.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":2,"description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"Component 1","sort_key":0,"is_active":true},{"id":3,"description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"Component 2","sort_key":0,"is_active":true}],"versions":[{"name":"a","sort_key":0,"is_active":true},{"name":"b","sort_key":0,"is_active":true},{"name":"c","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1.0","sort_key":0,"is_active":true},{"name":"M2.0","sort_key":0,"is_active":true},{"name":"M3.0","sort_key":0,"is_active":true}]},"TestProduct":{"id":1,"name":"TestProduct","is_active":true,"description":"This is a test product. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":1,"description":"This is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of Bugzilla.","default_assigned_to":"admin@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"TestComponent","sort_key":0,"is_active":true}],"versions":[{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true}]}}
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData.txt b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData.txt new file mode 100644 index 000000000..024c77784 --- /dev/null +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData.txt @@ -0,0 +1,26 @@ +TaskAttribute[id=root,values=[],options=null,metaData=null] + TaskAttribute[id=task.common.product,values=[],options={TestProduct=TestProduct, Product with Spaces=Product with Spaces, ManualTest=ManualTest},metaData={task.meta.label=Product, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true}] + TaskAttribute[id=task.common.component,values=[],options={TestComponent=TestComponent, Component 1=Component 1, Component 2=Component 2, ManualC1=ManualC1, ManualC2=ManualC2},metaData={task.meta.label=Component, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.summary,values=[],options=null,metaData={task.meta.label=Summary, task.meta.type=shortRichText, task.meta.readOnly=false, task.meta.required=true}] + TaskAttribute[id=task.common.version,values=[],options={unspecified=unspecified, a=a, b=b, c=c, R1=R1, R1.1=R1.1, R2.0=R2.0},metaData={task.meta.label=Version, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.description,values=[],options=null,metaData={task.meta.label=Description, task.meta.type=longRichText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.description, task.meta.required=true}] + TaskAttribute[id=os,values=[All],options={All=All, Windows=Windows, Mac OS=Mac OS, Linux=Linux, Other=Other},metaData={task.meta.label=OS, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=platform,values=[All],options={All=All, PC=PC, Macintosh=Macintosh, Other=Other},metaData={task.meta.label=Platform, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.priority,values=[---],options={Highest=Highest, High=High, Normal=Normal, Low=Low, Lowest=Lowest, ---=---},metaData={task.meta.label=Priority, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.severity,values=[enhancement],options={blocker=blocker, critical=critical, major=major, normal=normal, minor=minor, trivial=trivial, enhancement=enhancement},metaData={task.meta.label=Severity, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=alias,values=[],options=null,metaData={task.meta.label=Alias, task.meta.type=shortText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.user.assigned,values=[],options=null,metaData={task.meta.label=Assigned to, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=task.common.user.cc,values=[],options=null,metaData={task.meta.label=CC, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=task.common.addselfcc,values=[],options=null,metaData={task.meta.label=Add Self to CC, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=comment_is_private,values=[],options=null,metaData={task.meta.label=Description is private, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=qa_contact,values=[],options=null,metaData={task.meta.label=QA Contact, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=target_milestone,values=[],options={---=---, M1=M1, M1.0=M1.0, M2=M2, M2.0=M2.0, M3=M3, M3.0=M3.0},metaData={task.meta.label=Target milestone, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.resolution,values=[],options={=, FIXED=FIXED, INVALID=INVALID, WONTFIX=WONTFIX, DUPLICATE=DUPLICATE, WORKSFORME=WORKSFORME},metaData={task.meta.label=Resolution, task.meta.type=singleSelect, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=task.common.operation,values=[],options=null,metaData={task.meta.label=Operation, task.meta.type=operation, task.meta.readOnly=false, task.meta.required=false}] + TaskAttribute[id=task.common.status,values=[],options={UNCONFIRMED=UNCONFIRMED, CONFIRMED=CONFIRMED, IN_PROGRESS=IN_PROGRESS},metaData={task.meta.label=Status, task.meta.type=shortText, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=cf_bugid,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=integer, task.meta.required=false, task.meta.label=bug id custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_datetime,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=dateTime, task.meta.required=false, task.meta.label=date time custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_dropdown,values=[],options={---=---, one=one, three=three, two=two},metaData={task.meta.readOnly=false, task.meta.type=singleSelect, task.meta.required=true, task.meta.label=drop down custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_freetext,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=shortText, task.meta.required=false, task.meta.label=free text custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_largetextbox,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=longText, task.meta.required=false, task.meta.label=large text box custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_multiselect,values=[],options={Blue=Blue, Green=Green, Red=Red, Yellow=Yellow},metaData={task.meta.readOnly=false, task.meta.type=multiSelect, task.meta.required=false, task.meta.label=multi selection box custom field, task.meta.attributeKind=task.common.kind.default}]
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData1.txt b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData1.txt new file mode 100644 index 000000000..93fb7ef4f --- /dev/null +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData1.txt @@ -0,0 +1,26 @@ +TaskAttribute[id=root,values=[],options=null,metaData=null] + TaskAttribute[id=task.common.product,values=[],options={TestProduct=TestProduct, Product with Spaces=Product with Spaces, ManualTest=ManualTest},metaData={task.meta.label=Product, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true}] + TaskAttribute[id=task.common.component,values=[],options={TestComponent=TestComponent, Component 1=Component 1, Component 2=Component 2, ManualC1=ManualC1, ManualC2=ManualC2},metaData={task.meta.label=Component, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.summary,values=[The Summary],options=null,metaData={task.meta.label=Summary, task.meta.type=shortRichText, task.meta.readOnly=false, task.meta.required=true}] + TaskAttribute[id=task.common.version,values=[],options={unspecified=unspecified, a=a, b=b, c=c, R1=R1, R1.1=R1.1, R2.0=R2.0},metaData={task.meta.label=Version, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.description,values=[The Description],options=null,metaData={task.meta.label=Description, task.meta.type=longRichText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.description, task.meta.required=true}] + TaskAttribute[id=os,values=[All],options={All=All, Windows=Windows, Mac OS=Mac OS, Linux=Linux, Other=Other},metaData={task.meta.label=OS, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=platform,values=[All],options={All=All, PC=PC, Macintosh=Macintosh, Other=Other},metaData={task.meta.label=Platform, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.priority,values=[---],options={Highest=Highest, High=High, Normal=Normal, Low=Low, Lowest=Lowest, ---=---},metaData={task.meta.label=Priority, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.severity,values=[enhancement],options={blocker=blocker, critical=critical, major=major, normal=normal, minor=minor, trivial=trivial, enhancement=enhancement},metaData={task.meta.label=Severity, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=alias,values=[],options=null,metaData={task.meta.label=Alias, task.meta.type=shortText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.user.assigned,values=[],options=null,metaData={task.meta.label=Assigned to, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=task.common.user.cc,values=[],options=null,metaData={task.meta.label=CC, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=task.common.addselfcc,values=[],options=null,metaData={task.meta.label=Add Self to CC, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=comment_is_private,values=[],options=null,metaData={task.meta.label=Description is private, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=qa_contact,values=[],options=null,metaData={task.meta.label=QA Contact, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=target_milestone,values=[],options={---=---, M1=M1, M1.0=M1.0, M2=M2, M2.0=M2.0, M3=M3, M3.0=M3.0},metaData={task.meta.label=Target milestone, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.resolution,values=[],options={=, FIXED=FIXED, INVALID=INVALID, WONTFIX=WONTFIX, DUPLICATE=DUPLICATE, WORKSFORME=WORKSFORME},metaData={task.meta.label=Resolution, task.meta.type=singleSelect, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=task.common.operation,values=[],options=null,metaData={task.meta.label=Operation, task.meta.type=operation, task.meta.readOnly=false, task.meta.required=false}] + TaskAttribute[id=task.common.status,values=[],options={UNCONFIRMED=UNCONFIRMED, CONFIRMED=CONFIRMED, IN_PROGRESS=IN_PROGRESS},metaData={task.meta.label=Status, task.meta.type=shortText, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=cf_bugid,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=integer, task.meta.required=false, task.meta.label=bug id custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_datetime,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=dateTime, task.meta.required=false, task.meta.label=date time custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_dropdown,values=[],options={---=---, one=one, three=three, two=two},metaData={task.meta.readOnly=false, task.meta.type=singleSelect, task.meta.required=true, task.meta.label=drop down custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_freetext,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=shortText, task.meta.required=false, task.meta.label=free text custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_largetextbox,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=longText, task.meta.required=false, task.meta.label=large text box custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_multiselect,values=[],options={Blue=Blue, Green=Green, Red=Red, Yellow=Yellow},metaData={task.meta.readOnly=false, task.meta.type=multiSelect, task.meta.required=false, task.meta.label=multi selection box custom field, task.meta.attributeKind=task.common.kind.default}]
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData2.txt b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData2.txt new file mode 100644 index 000000000..196328e57 --- /dev/null +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version1/taskData2.txt @@ -0,0 +1,26 @@ +TaskAttribute[id=root,values=[],options=null,metaData=null] + TaskAttribute[id=task.common.product,values=[TestProduct],options={TestProduct=TestProduct, Product with Spaces=Product with Spaces, ManualTest=ManualTest},metaData={task.meta.label=Product, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true}] + TaskAttribute[id=task.common.component,values=[TestComponent],options={TestComponent=TestComponent},metaData={task.meta.label=Component, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.summary,values=[],options=null,metaData={task.meta.label=Summary, task.meta.type=shortRichText, task.meta.readOnly=false, task.meta.required=true}] + TaskAttribute[id=task.common.version,values=[unspecified],options={unspecified=unspecified},metaData={task.meta.label=Version, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.description,values=[],options=null,metaData={task.meta.label=Description, task.meta.type=longRichText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.description, task.meta.required=true}] + TaskAttribute[id=os,values=[All],options={All=All, Windows=Windows, Mac OS=Mac OS, Linux=Linux, Other=Other},metaData={task.meta.label=OS, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=platform,values=[All],options={All=All, PC=PC, Macintosh=Macintosh, Other=Other},metaData={task.meta.label=Platform, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.priority,values=[---],options={Highest=Highest, High=High, Normal=Normal, Low=Low, Lowest=Lowest, ---=---},metaData={task.meta.label=Priority, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.severity,values=[enhancement],options={blocker=blocker, critical=critical, major=major, normal=normal, minor=minor, trivial=trivial, enhancement=enhancement},metaData={task.meta.label=Severity, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=alias,values=[],options=null,metaData={task.meta.label=Alias, task.meta.type=shortText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.user.assigned,values=[],options=null,metaData={task.meta.label=Assigned to, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=task.common.user.cc,values=[],options=null,metaData={task.meta.label=CC, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=task.common.addselfcc,values=[],options=null,metaData={task.meta.label=Add Self to CC, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=comment_is_private,values=[],options=null,metaData={task.meta.label=Description is private, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=qa_contact,values=[],options=null,metaData={task.meta.label=QA Contact, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=target_milestone,values=[---],options={---=---},metaData={task.meta.label=Target milestone, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.resolution,values=[],options={=, FIXED=FIXED, INVALID=INVALID, WONTFIX=WONTFIX, DUPLICATE=DUPLICATE, WORKSFORME=WORKSFORME},metaData={task.meta.label=Resolution, task.meta.type=singleSelect, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=task.common.operation,values=[],options=null,metaData={task.meta.label=Operation, task.meta.type=operation, task.meta.readOnly=false, task.meta.required=false}] + TaskAttribute[id=task.common.status,values=[],options={UNCONFIRMED=UNCONFIRMED, CONFIRMED=CONFIRMED, IN_PROGRESS=IN_PROGRESS},metaData={task.meta.label=Status, task.meta.type=shortText, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=cf_bugid,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=integer, task.meta.required=false, task.meta.label=bug id custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_datetime,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=dateTime, task.meta.required=false, task.meta.label=date time custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_dropdown,values=[],options={---=---, one=one, three=three, two=two},metaData={task.meta.readOnly=false, task.meta.type=singleSelect, task.meta.required=true, task.meta.label=drop down custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_freetext,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=shortText, task.meta.required=false, task.meta.label=free text custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_largetextbox,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=longText, task.meta.required=false, task.meta.label=large text box custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_multiselect,values=[],options={Blue=Blue, Green=Green, Red=Red, Yellow=Yellow},metaData={task.meta.readOnly=false, task.meta.type=multiSelect, task.meta.required=false, task.meta.label=multi selection box custom field, task.meta.attributeKind=task.common.kind.default}]
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/configuration.json b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/configuration.json index 2f1449ae2..af4b5cc6e 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/configuration.json +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/configuration.json @@ -1 +1 @@ -{"repositoryId":"http://dummy.url","fields":{"alias":{"id":38,"type":0,"is_custom":false,"name":"alias","display_name":"Alias","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"assigned_to":{"id":16,"type":0,"is_custom":false,"name":"assigned_to","display_name":"AssignedTo","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"assigned_to_realname":{"id":19,"type":0,"is_custom":false,"name":"assigned_to_realname","display_name":"AssignedToName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attach_data.thedata":{"id":53,"type":0,"is_custom":false,"name":"attach_data.thedata","display_name":"Attachment data","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.description":{"id":25,"type":0,"is_custom":false,"name":"attachments.description","display_name":"Attachment description","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.filename":{"id":26,"type":0,"is_custom":false,"name":"attachments.filename","display_name":"Attachment filename","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.isobsolete":{"id":29,"type":0,"is_custom":false,"name":"attachments.isobsolete","display_name":"Attachment is obsolete","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.ispatch":{"id":28,"type":0,"is_custom":false,"name":"attachments.ispatch","display_name":"Attachment is patch","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.isprivate":{"id":30,"type":0,"is_custom":false,"name":"attachments.isprivate","display_name":"Attachment is private","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.mimetype":{"id":27,"type":0,"is_custom":false,"name":"attachments.mimetype","display_name":"Attachment mime type","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.submitter":{"id":31,"type":0,"is_custom":false,"name":"attachments.submitter","display_name":"Attachment creator","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"blocked":{"id":24,"type":0,"is_custom":false,"name":"blocked","display_name":"Blocks","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_file_loc":{"id":7,"type":0,"is_custom":false,"name":"bug_file_loc","display_name":"URL","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_group":{"id":42,"type":0,"is_custom":false,"name":"bug_group","display_name":"Group","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_id":{"id":1,"type":0,"is_custom":false,"name":"bug_id","display_name":"Bug #","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_severity":{"id":13,"type":2,"is_custom":false,"name":"bug_severity","display_name":"Severity","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"blocker","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"critical","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"major","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"normal","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"minor","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"trivial","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false},{"name":"enhancement","sort_key":700,"visibility_values":[],"is_active":false,"is_open":false}]},"bug_status":{"id":9,"type":2,"is_custom":false,"name":"bug_status","display_name":"Status","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"sort_key":0,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false},{"name":"IN_PROGRESS","comment_required":false}]},{"name":"UNCONFIRMED","sort_key":100,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"CONFIRMED","comment_required":false},{"name":"IN_PROGRESS","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"CONFIRMED","sort_key":200,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"IN_PROGRESS","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"IN_PROGRESS","sort_key":300,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"CONFIRMED","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"RESOLVED","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false},{"name":"VERIFIED","comment_required":false}]},{"name":"VERIFIED","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false}]}]},"cc":{"id":22,"type":0,"is_custom":false,"name":"cc","display_name":"CC","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"cclist_accessible":{"id":41,"type":0,"is_custom":false,"name":"cclist_accessible","display_name":"CC Accessible","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"cf_bugid":{"id":65,"type":6,"is_custom":true,"name":"cf_bugid","display_name":"bug id custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_datetime":{"id":64,"type":5,"is_custom":true,"name":"cf_datetime","display_name":"date time custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_dropdown":{"id":61,"type":2,"is_custom":true,"name":"cf_dropdown","display_name":"drop down custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[],"values":[{"name":"---","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"one","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"three","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"two","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"cf_freetext":{"id":60,"type":1,"is_custom":true,"name":"cf_freetext","display_name":"free text custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_largetextbox":{"id":62,"type":4,"is_custom":true,"name":"cf_largetextbox","display_name":"large text box custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_multiselect":{"id":63,"type":3,"is_custom":true,"name":"cf_multiselect","display_name":"multi selection box custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[],"values":[{"name":"Blue","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Green","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Red","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Yellow","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"classification":{"id":3,"type":2,"is_custom":false,"name":"classification","display_name":"Classification","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Unclassified","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"comment_tag":{"id":58,"type":0,"is_custom":false,"name":"comment_tag","display_name":"Comment Tag","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"commenter":{"id":46,"type":0,"is_custom":false,"name":"commenter","display_name":"Commenter","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"component":{"id":15,"type":2,"is_custom":false,"name":"component","display_name":"Component","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"TestComponent","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"Component 1","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"Component 2","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"ManualC1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"ManualC2","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false}]},"content":{"id":52,"type":0,"is_custom":false,"name":"content","display_name":"Content","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"creation_ts":{"id":33,"type":0,"is_custom":false,"name":"creation_ts","display_name":"Creation date","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"days_elapsed":{"id":59,"type":0,"is_custom":false,"name":"days_elapsed","display_name":"Days since bug changed","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"deadline":{"id":45,"type":5,"is_custom":false,"name":"deadline","display_name":"Deadline","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"delta_ts":{"id":34,"type":0,"is_custom":false,"name":"delta_ts","display_name":"Last changed date","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"dependson":{"id":23,"type":0,"is_custom":false,"name":"dependson","display_name":"Depends on","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"estimated_time":{"id":43,"type":0,"is_custom":false,"name":"estimated_time","display_name":"Estimated Hours","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"everconfirmed":{"id":39,"type":0,"is_custom":false,"name":"everconfirmed","display_name":"Ever Confirmed","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"flagtypes.name":{"id":47,"type":0,"is_custom":false,"name":"flagtypes.name","display_name":"Flags","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"keywords":{"id":11,"type":8,"is_custom":false,"name":"keywords","display_name":"Keywords","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Keyword1","sort_key":0,"is_active":false,"description":"1","is_open":false},{"name":"Keyword2","sort_key":0,"is_active":false,"description":"2","is_open":false}]},"last_visit_ts":{"id":57,"type":5,"is_custom":false,"name":"last_visit_ts","display_name":"Last Visit","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdesc":{"id":35,"type":0,"is_custom":false,"name":"longdesc","display_name":"Comment","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdescs.count":{"id":37,"type":0,"is_custom":false,"name":"longdescs.count","display_name":"Number of Comments","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdescs.isprivate":{"id":36,"type":0,"is_custom":false,"name":"longdescs.isprivate","display_name":"Comment is private","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"op_sys":{"id":8,"type":2,"is_custom":false,"name":"op_sys","display_name":"OS/Version","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"All","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Windows","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Mac OS","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Linux","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Other","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false}]},"owner_idle_time":{"id":54,"type":0,"is_custom":false,"name":"owner_idle_time","display_name":"Time Since Assignee Touched","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"percentage_complete":{"id":51,"type":0,"is_custom":false,"name":"percentage_complete","display_name":"Percentage Complete","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"priority":{"id":14,"type":2,"is_custom":false,"name":"priority","display_name":"Priority","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Highest","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"High","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Normal","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Low","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Lowest","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"---","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false}]},"product":{"id":4,"type":2,"is_custom":false,"name":"product","display_name":"Product","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[]},"qa_contact":{"id":18,"type":0,"is_custom":false,"name":"qa_contact","display_name":"QAContact","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"qa_contact_realname":{"id":21,"type":0,"is_custom":false,"name":"qa_contact_realname","display_name":"QAContactName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"remaining_time":{"id":44,"type":0,"is_custom":false,"name":"remaining_time","display_name":"Remaining Hours","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"rep_platform":{"id":6,"type":2,"is_custom":false,"name":"rep_platform","display_name":"Platform","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"All","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"PC","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Macintosh","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Other","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false}]},"reporter":{"id":17,"type":0,"is_custom":false,"name":"reporter","display_name":"ReportedBy","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"reporter_accessible":{"id":40,"type":0,"is_custom":false,"name":"reporter_accessible","display_name":"Reporter Accessible","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"reporter_realname":{"id":20,"type":0,"is_custom":false,"name":"reporter_realname","display_name":"ReportedByName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"requestees.login_name":{"id":48,"type":0,"is_custom":false,"name":"requestees.login_name","display_name":"Flag Requestee","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"resolution":{"id":12,"type":2,"is_custom":false,"name":"resolution","display_name":"Resolution","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"FIXED","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"INVALID","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"WONTFIX","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"DUPLICATE","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"WORKSFORME","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false}]},"see_also":{"id":55,"type":7,"is_custom":false,"name":"see_also","display_name":"See Also","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"setters.login_name":{"id":49,"type":0,"is_custom":false,"name":"setters.login_name","display_name":"Flag Setter","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"short_desc":{"id":2,"type":0,"is_custom":false,"name":"short_desc","display_name":"Summary","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[]},"status_whiteboard":{"id":10,"type":0,"is_custom":false,"name":"status_whiteboard","display_name":"Status Whiteboard","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"tag":{"id":56,"type":8,"is_custom":false,"name":"tag","display_name":"Personal Tags","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"target_milestone":{"id":32,"type":0,"is_custom":false,"name":"target_milestone","display_name":"Target Milestone","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"---","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"---","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"---","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M1.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"M2","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M2.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"M3","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M3.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false}]},"version":{"id":5,"type":0,"is_custom":false,"name":"version","display_name":"Version","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"unspecified","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"unspecified","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"a","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"b","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"c","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"unspecified","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R1.1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R2.0","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false}]},"work_time":{"id":50,"type":0,"is_custom":false,"name":"work_time","display_name":"Hours Worked","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]}},"products":{"ManualTest":{"id":3,"name":"ManualTest","is_active":true,"description":"Product for manual testing","default_milestone":"---","has_unconfirmed":false,"classification":"Unclassified","components":[{"id":4,"name":"ManualC1","description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}},{"id":5,"name":"ManualC2","description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"R1","sort_key":0,"is_active":true},{"name":"R1.1","sort_key":0,"is_active":true},{"name":"R2.0","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1","sort_key":0,"is_active":true},{"name":"M2","sort_key":0,"is_active":true},{"name":"M3","sort_key":0,"is_active":true}]},"Product with Spaces":{"id":2,"name":"Product with Spaces","is_active":true,"description":"Product with Spaces is the renamed Scratch Product.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":2,"name":"Component 1","description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}},{"id":3,"name":"Component 2","description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"a","sort_key":0,"is_active":true},{"name":"b","sort_key":0,"is_active":true},{"name":"c","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1.0","sort_key":0,"is_active":true},{"name":"M2.0","sort_key":0,"is_active":true},{"name":"M3.0","sort_key":0,"is_active":true}]},"TestProduct":{"id":1,"name":"TestProduct","is_active":true,"description":"This is a test product. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":1,"name":"TestComponent","description":"This is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of Bugzilla.","default_assigned_to":"admin@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true}]}},"parameters":{"allowemailchange":"1","attachment_base":"","commentonchange_resolution":"0","commentonduplicate":"0","cookiepath":"/","defaultopsys":"","defaultplatform":"","defaultpriority":"---","defaultseverity":"enhancement","duplicate_or_move_bug_status":"RESOLVED","emailregexpdesc":"A legal address must contain exactly one \u0027@\u0027, and at least one \u0027.\u0027 after the @.","emailsuffix":"","letsubmitterchoosemilestone":"1","letsubmitterchoosepriority":"1","mailfrom":"bugzilla-daemon","maintainer":"admin@mylyn.eclipse.org","maxattachmentsize":"1000","maxlocalattachment":"0","musthavemilestoneonaccept":"0","password_complexity":"no_constraints","rememberlogin":"on","requirelogin":"0","search_allow_no_criteria":"1","urlbase":"","use_see_also":"1","useclassification":"0","usemenuforusers":"0","useqacontact":"1","usestatuswhiteboard":"1","usetargetmilestone":"1"}}
\ No newline at end of file +{"repositoryId":"http://dummy.url","fields":{"alias":{"id":38,"type":0,"is_custom":false,"name":"alias","display_name":"Alias","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"assigned_to":{"id":16,"type":0,"is_custom":false,"name":"assigned_to","display_name":"AssignedTo","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"assigned_to_realname":{"id":19,"type":0,"is_custom":false,"name":"assigned_to_realname","display_name":"AssignedToName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attach_data.thedata":{"id":53,"type":0,"is_custom":false,"name":"attach_data.thedata","display_name":"Attachment data","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.description":{"id":25,"type":0,"is_custom":false,"name":"attachments.description","display_name":"Attachment description","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.filename":{"id":26,"type":0,"is_custom":false,"name":"attachments.filename","display_name":"Attachment filename","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.isobsolete":{"id":29,"type":0,"is_custom":false,"name":"attachments.isobsolete","display_name":"Attachment is obsolete","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.ispatch":{"id":28,"type":0,"is_custom":false,"name":"attachments.ispatch","display_name":"Attachment is patch","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.isprivate":{"id":30,"type":0,"is_custom":false,"name":"attachments.isprivate","display_name":"Attachment is private","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.mimetype":{"id":27,"type":0,"is_custom":false,"name":"attachments.mimetype","display_name":"Attachment mime type","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"attachments.submitter":{"id":31,"type":0,"is_custom":false,"name":"attachments.submitter","display_name":"Attachment creator","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"blocked":{"id":24,"type":0,"is_custom":false,"name":"blocked","display_name":"Blocks","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_file_loc":{"id":7,"type":0,"is_custom":false,"name":"bug_file_loc","display_name":"URL","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_group":{"id":42,"type":0,"is_custom":false,"name":"bug_group","display_name":"Group","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_id":{"id":1,"type":0,"is_custom":false,"name":"bug_id","display_name":"Bug #","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"bug_severity":{"id":13,"type":2,"is_custom":false,"name":"bug_severity","display_name":"Severity","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"blocker","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"critical","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"major","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"normal","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"minor","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"trivial","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false},{"name":"enhancement","sort_key":700,"visibility_values":[],"is_active":false,"is_open":false}]},"bug_status":{"id":9,"type":2,"is_custom":false,"name":"bug_status","display_name":"Status","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"sort_key":0,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false},{"name":"IN_PROGRESS","comment_required":false}]},{"name":"UNCONFIRMED","sort_key":100,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"CONFIRMED","comment_required":false},{"name":"IN_PROGRESS","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"CONFIRMED","sort_key":200,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"IN_PROGRESS","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"IN_PROGRESS","sort_key":300,"visibility_values":[],"is_active":false,"is_open":true,"can_change_to":[{"name":"CONFIRMED","comment_required":false},{"name":"RESOLVED","comment_required":false}]},{"name":"RESOLVED","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false},{"name":"VERIFIED","comment_required":false}]},{"name":"VERIFIED","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false,"can_change_to":[{"name":"UNCONFIRMED","comment_required":false},{"name":"CONFIRMED","comment_required":false}]}]},"cc":{"id":22,"type":0,"is_custom":false,"name":"cc","display_name":"CC","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"cclist_accessible":{"id":41,"type":0,"is_custom":false,"name":"cclist_accessible","display_name":"CC Accessible","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"cf_bugid":{"id":65,"type":6,"is_custom":true,"name":"cf_bugid","display_name":"bug id custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_datetime":{"id":64,"type":5,"is_custom":true,"name":"cf_datetime","display_name":"date time custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_dropdown":{"id":61,"type":2,"is_custom":true,"name":"cf_dropdown","display_name":"drop down custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[],"values":[{"name":"---","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"one","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"three","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"two","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"cf_freetext":{"id":60,"type":1,"is_custom":true,"name":"cf_freetext","display_name":"free text custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_largetextbox":{"id":62,"type":4,"is_custom":true,"name":"cf_largetextbox","display_name":"large text box custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[]},"cf_multiselect":{"id":63,"type":3,"is_custom":true,"name":"cf_multiselect","display_name":"multi selection box custom field","is_mandatory":false,"is_on_bug_entry":true,"visibility_values":[],"values":[{"name":"Blue","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Green","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Red","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Yellow","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"classification":{"id":3,"type":2,"is_custom":false,"name":"classification","display_name":"Classification","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Unclassified","sort_key":0,"visibility_values":[],"is_active":false,"is_open":false}]},"comment_tag":{"id":58,"type":0,"is_custom":false,"name":"comment_tag","display_name":"Comment Tag","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"commenter":{"id":46,"type":0,"is_custom":false,"name":"commenter","display_name":"Commenter","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"component":{"id":15,"type":2,"is_custom":false,"name":"component","display_name":"Component","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"TestComponent","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"Component 1","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"Component 2","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"ManualC1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"ManualC2","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false}]},"content":{"id":52,"type":0,"is_custom":false,"name":"content","display_name":"Content","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"creation_ts":{"id":33,"type":0,"is_custom":false,"name":"creation_ts","display_name":"Creation date","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"days_elapsed":{"id":59,"type":0,"is_custom":false,"name":"days_elapsed","display_name":"Days since bug changed","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"deadline":{"id":45,"type":5,"is_custom":false,"name":"deadline","display_name":"Deadline","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"delta_ts":{"id":34,"type":0,"is_custom":false,"name":"delta_ts","display_name":"Last changed date","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"dependson":{"id":23,"type":0,"is_custom":false,"name":"dependson","display_name":"Depends on","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"estimated_time":{"id":43,"type":0,"is_custom":false,"name":"estimated_time","display_name":"Estimated Hours","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"everconfirmed":{"id":39,"type":0,"is_custom":false,"name":"everconfirmed","display_name":"Ever Confirmed","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"flagtypes.name":{"id":47,"type":0,"is_custom":false,"name":"flagtypes.name","display_name":"Flags","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"keywords":{"id":11,"type":8,"is_custom":false,"name":"keywords","display_name":"Keywords","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Keyword1","sort_key":0,"is_active":false,"description":"1","is_open":false},{"name":"Keyword2","sort_key":0,"is_active":false,"description":"2","is_open":false}]},"last_visit_ts":{"id":57,"type":5,"is_custom":false,"name":"last_visit_ts","display_name":"Last Visit","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdesc":{"id":35,"type":0,"is_custom":false,"name":"longdesc","display_name":"Comment","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdescs.count":{"id":37,"type":0,"is_custom":false,"name":"longdescs.count","display_name":"Number of Comments","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"longdescs.isprivate":{"id":36,"type":0,"is_custom":false,"name":"longdescs.isprivate","display_name":"Comment is private","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"op_sys":{"id":8,"type":2,"is_custom":false,"name":"op_sys","display_name":"OS/Version","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"All","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Windows","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Mac OS","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Linux","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Other","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false}]},"owner_idle_time":{"id":54,"type":0,"is_custom":false,"name":"owner_idle_time","display_name":"Time Since Assignee Touched","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"percentage_complete":{"id":51,"type":0,"is_custom":false,"name":"percentage_complete","display_name":"Percentage Complete","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"priority":{"id":14,"type":2,"is_custom":false,"name":"priority","display_name":"Priority","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"Highest","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"High","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Normal","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Low","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Lowest","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"---","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false}]},"product":{"id":4,"type":2,"is_custom":false,"name":"product","display_name":"Product","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[]},"qa_contact":{"id":18,"type":0,"is_custom":false,"name":"qa_contact","display_name":"QAContact","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"qa_contact_realname":{"id":21,"type":0,"is_custom":false,"name":"qa_contact_realname","display_name":"QAContactName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"remaining_time":{"id":44,"type":0,"is_custom":false,"name":"remaining_time","display_name":"Remaining Hours","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"rep_platform":{"id":6,"type":2,"is_custom":false,"name":"rep_platform","display_name":"Platform","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"All","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"PC","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Macintosh","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"Other","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false}]},"reporter":{"id":17,"type":0,"is_custom":false,"name":"reporter","display_name":"ReportedBy","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"reporter_accessible":{"id":40,"type":0,"is_custom":false,"name":"reporter_accessible","display_name":"Reporter Accessible","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"reporter_realname":{"id":20,"type":0,"is_custom":false,"name":"reporter_realname","display_name":"ReportedByName","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"requestees.login_name":{"id":48,"type":0,"is_custom":false,"name":"requestees.login_name","display_name":"Flag Requestee","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"resolution":{"id":12,"type":2,"is_custom":false,"name":"resolution","display_name":"Resolution","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"values":[{"name":"","sort_key":100,"visibility_values":[],"is_active":false,"is_open":false},{"name":"FIXED","sort_key":200,"visibility_values":[],"is_active":false,"is_open":false},{"name":"INVALID","sort_key":300,"visibility_values":[],"is_active":false,"is_open":false},{"name":"WONTFIX","sort_key":400,"visibility_values":[],"is_active":false,"is_open":false},{"name":"DUPLICATE","sort_key":500,"visibility_values":[],"is_active":false,"is_open":false},{"name":"WORKSFORME","sort_key":600,"visibility_values":[],"is_active":false,"is_open":false}]},"see_also":{"id":55,"type":7,"is_custom":false,"name":"see_also","display_name":"See Also","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"setters.login_name":{"id":49,"type":0,"is_custom":false,"name":"setters.login_name","display_name":"Flag Setter","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"short_desc":{"id":2,"type":0,"is_custom":false,"name":"short_desc","display_name":"Summary","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[]},"status_whiteboard":{"id":10,"type":0,"is_custom":false,"name":"status_whiteboard","display_name":"Status Whiteboard","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"tag":{"id":56,"type":8,"is_custom":false,"name":"tag","display_name":"Personal Tags","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]},"target_milestone":{"id":32,"type":0,"is_custom":false,"name":"target_milestone","display_name":"Target Milestone","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"---","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"---","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"---","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M1.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"M2","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M2.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"M3","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"M3.0","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false}]},"version":{"id":5,"type":0,"is_custom":false,"name":"version","display_name":"Version","is_mandatory":true,"is_on_bug_entry":false,"visibility_values":[],"value_field":"product","values":[{"name":"unspecified","sort_key":0,"visibility_values":["TestProduct"],"is_active":true,"is_open":false},{"name":"unspecified","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"a","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"b","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"c","sort_key":0,"visibility_values":["Product with Spaces"],"is_active":true,"is_open":false},{"name":"unspecified","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R1.1","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false},{"name":"R2.0","sort_key":0,"visibility_values":["ManualTest"],"is_active":true,"is_open":false}]},"work_time":{"id":50,"type":0,"is_custom":false,"name":"work_time","display_name":"Hours Worked","is_mandatory":false,"is_on_bug_entry":false,"visibility_values":[]}},"products":{"ManualTest":{"id":3,"name":"ManualTest","is_active":true,"description":"Product for manual testing","default_milestone":"---","has_unconfirmed":false,"classification":"Unclassified","components":[{"id":4,"description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"ManualC1","sort_key":0,"is_active":true},{"id":5,"description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"ManualC2","sort_key":0,"is_active":true}],"versions":[{"name":"R1","sort_key":0,"is_active":true},{"name":"R1.1","sort_key":0,"is_active":true},{"name":"R2.0","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1","sort_key":0,"is_active":true},{"name":"M2","sort_key":0,"is_active":true},{"name":"M3","sort_key":0,"is_active":true}]},"Product with Spaces":{"id":2,"name":"Product with Spaces","is_active":true,"description":"Product with Spaces is the renamed Scratch Product.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":2,"description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"Component 1","sort_key":0,"is_active":true},{"id":3,"description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"Component 2","sort_key":0,"is_active":true}],"versions":[{"name":"a","sort_key":0,"is_active":true},{"name":"b","sort_key":0,"is_active":true},{"name":"c","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1.0","sort_key":0,"is_active":true},{"name":"M2.0","sort_key":0,"is_active":true},{"name":"M3.0","sort_key":0,"is_active":true}]},"TestProduct":{"id":1,"name":"TestProduct","is_active":true,"description":"This is a test product. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":1,"description":"This is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of Bugzilla.","default_assigned_to":"admin@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"TestComponent","sort_key":0,"is_active":true}],"versions":[{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true}]}},"parameters":{"allowemailchange":"1","attachment_base":"","commentonchange_resolution":"0","commentonduplicate":"0","cookiepath":"/","defaultopsys":"","defaultplatform":"","defaultpriority":"---","defaultseverity":"enhancement","duplicate_or_move_bug_status":"RESOLVED","emailregexpdesc":"A legal address must contain exactly one \u0027@\u0027, and at least one \u0027.\u0027 after the @.","emailsuffix":"","letsubmitterchoosemilestone":"1","letsubmitterchoosepriority":"1","mailfrom":"bugzilla-daemon","maintainer":"admin@mylyn.eclipse.org","maxattachmentsize":"1000","maxlocalattachment":"0","musthavemilestoneonaccept":"0","password_complexity":"no_constraints","rememberlogin":"on","requirelogin":"0","search_allow_no_criteria":"1","urlbase":"","use_see_also":"1","useclassification":"0","usemenuforusers":"0","useqacontact":"1","usestatuswhiteboard":"1","usetargetmilestone":"1"}}
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/products.json b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/products.json index 5d60ffe08..d72e6559b 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/products.json +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/products.json @@ -1 +1 @@ -{"ManualTest":{"id":3,"name":"ManualTest","is_active":true,"description":"Product for manual testing","default_milestone":"---","has_unconfirmed":false,"classification":"Unclassified","components":[{"id":4,"name":"ManualC1","description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}},{"id":5,"name":"ManualC2","description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"R1","sort_key":0,"is_active":true},{"name":"R1.1","sort_key":0,"is_active":true},{"name":"R2.0","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1","sort_key":0,"is_active":true},{"name":"M2","sort_key":0,"is_active":true},{"name":"M3","sort_key":0,"is_active":true}]},"Product with Spaces":{"id":2,"name":"Product with Spaces","is_active":true,"description":"Product with Spaces is the renamed Scratch Product.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":2,"name":"Component 1","description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}},{"id":3,"name":"Component 2","description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"a","sort_key":0,"is_active":true},{"name":"b","sort_key":0,"is_active":true},{"name":"c","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1.0","sort_key":0,"is_active":true},{"name":"M2.0","sort_key":0,"is_active":true},{"name":"M3.0","sort_key":0,"is_active":true}]},"TestProduct":{"id":1,"name":"TestProduct","is_active":true,"description":"This is a test product. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":1,"name":"TestComponent","description":"This is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of Bugzilla.","default_assigned_to":"admin@mylyn.eclipse.org","default_qa_contact":"","sort_key":0,"is_active":true,"flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]}}],"versions":[{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true}]}}
\ No newline at end of file +{"ManualTest":{"id":3,"name":"ManualTest","is_active":true,"description":"Product for manual testing","default_milestone":"---","has_unconfirmed":false,"classification":"Unclassified","components":[{"id":4,"description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"ManualC1","sort_key":0,"is_active":true},{"id":5,"description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"ManualC2","sort_key":0,"is_active":true}],"versions":[{"name":"R1","sort_key":0,"is_active":true},{"name":"R1.1","sort_key":0,"is_active":true},{"name":"R2.0","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1","sort_key":0,"is_active":true},{"name":"M2","sort_key":0,"is_active":true},{"name":"M3","sort_key":0,"is_active":true}]},"Product with Spaces":{"id":2,"name":"Product with Spaces","is_active":true,"description":"Product with Spaces is the renamed Scratch Product.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":2,"description":"1","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"Component 1","sort_key":0,"is_active":true},{"id":3,"description":"2","default_assigned_to":"tests@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"Component 2","sort_key":0,"is_active":true}],"versions":[{"name":"a","sort_key":0,"is_active":true},{"name":"b","sort_key":0,"is_active":true},{"name":"c","sort_key":0,"is_active":true},{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true},{"name":"M1.0","sort_key":0,"is_active":true},{"name":"M2.0","sort_key":0,"is_active":true},{"name":"M3.0","sort_key":0,"is_active":true}]},"TestProduct":{"id":1,"name":"TestProduct","is_active":true,"description":"This is a test product. This ought to be blown away and replaced with real stuff in a finished installation of bugzilla.","default_milestone":"---","has_unconfirmed":true,"classification":"Unclassified","components":[{"id":1,"description":"This is a test component in the test product database. This ought to be blown away and replaced with real stuff in a finished installation of Bugzilla.","default_assigned_to":"admin@mylyn.eclipse.org","default_qa_contact":"","flag_types":{"bug":[{"id":1,"name":"BugFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":false,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":2,"name":"BugFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":false,"grant_group":0,"request_group":0},{"id":5,"name":"BugFlag3","description":"3","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":false,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":6,"name":"BugFlag4","description":"4","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}],"attachment":[{"id":3,"name":"AttachmentFlag1","description":"1","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0},{"id":4,"name":"AttachmentFlag2","description":"2","cc_list":"","sort_key":1,"is_active":true,"is_requestable":true,"is_requesteeble":true,"is_multiplicable":true,"grant_group":0,"request_group":0}]},"name":"TestComponent","sort_key":0,"is_active":true}],"versions":[{"name":"unspecified","sort_key":0,"is_active":true}],"milestones":[{"name":"---","sort_key":0,"is_active":true}]}}
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData.txt b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData.txt new file mode 100644 index 000000000..024c77784 --- /dev/null +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData.txt @@ -0,0 +1,26 @@ +TaskAttribute[id=root,values=[],options=null,metaData=null] + TaskAttribute[id=task.common.product,values=[],options={TestProduct=TestProduct, Product with Spaces=Product with Spaces, ManualTest=ManualTest},metaData={task.meta.label=Product, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true}] + TaskAttribute[id=task.common.component,values=[],options={TestComponent=TestComponent, Component 1=Component 1, Component 2=Component 2, ManualC1=ManualC1, ManualC2=ManualC2},metaData={task.meta.label=Component, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.summary,values=[],options=null,metaData={task.meta.label=Summary, task.meta.type=shortRichText, task.meta.readOnly=false, task.meta.required=true}] + TaskAttribute[id=task.common.version,values=[],options={unspecified=unspecified, a=a, b=b, c=c, R1=R1, R1.1=R1.1, R2.0=R2.0},metaData={task.meta.label=Version, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.description,values=[],options=null,metaData={task.meta.label=Description, task.meta.type=longRichText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.description, task.meta.required=true}] + TaskAttribute[id=os,values=[All],options={All=All, Windows=Windows, Mac OS=Mac OS, Linux=Linux, Other=Other},metaData={task.meta.label=OS, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=platform,values=[All],options={All=All, PC=PC, Macintosh=Macintosh, Other=Other},metaData={task.meta.label=Platform, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.priority,values=[---],options={Highest=Highest, High=High, Normal=Normal, Low=Low, Lowest=Lowest, ---=---},metaData={task.meta.label=Priority, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.severity,values=[enhancement],options={blocker=blocker, critical=critical, major=major, normal=normal, minor=minor, trivial=trivial, enhancement=enhancement},metaData={task.meta.label=Severity, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=alias,values=[],options=null,metaData={task.meta.label=Alias, task.meta.type=shortText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.user.assigned,values=[],options=null,metaData={task.meta.label=Assigned to, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=task.common.user.cc,values=[],options=null,metaData={task.meta.label=CC, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=task.common.addselfcc,values=[],options=null,metaData={task.meta.label=Add Self to CC, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=comment_is_private,values=[],options=null,metaData={task.meta.label=Description is private, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=qa_contact,values=[],options=null,metaData={task.meta.label=QA Contact, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=target_milestone,values=[],options={---=---, M1=M1, M1.0=M1.0, M2=M2, M2.0=M2.0, M3=M3, M3.0=M3.0},metaData={task.meta.label=Target milestone, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.resolution,values=[],options={=, FIXED=FIXED, INVALID=INVALID, WONTFIX=WONTFIX, DUPLICATE=DUPLICATE, WORKSFORME=WORKSFORME},metaData={task.meta.label=Resolution, task.meta.type=singleSelect, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=task.common.operation,values=[],options=null,metaData={task.meta.label=Operation, task.meta.type=operation, task.meta.readOnly=false, task.meta.required=false}] + TaskAttribute[id=task.common.status,values=[],options={UNCONFIRMED=UNCONFIRMED, CONFIRMED=CONFIRMED, IN_PROGRESS=IN_PROGRESS},metaData={task.meta.label=Status, task.meta.type=shortText, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=cf_bugid,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=integer, task.meta.required=false, task.meta.label=bug id custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_datetime,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=dateTime, task.meta.required=false, task.meta.label=date time custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_dropdown,values=[],options={---=---, one=one, three=three, two=two},metaData={task.meta.readOnly=false, task.meta.type=singleSelect, task.meta.required=true, task.meta.label=drop down custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_freetext,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=shortText, task.meta.required=false, task.meta.label=free text custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_largetextbox,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=longText, task.meta.required=false, task.meta.label=large text box custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_multiselect,values=[],options={Blue=Blue, Green=Green, Red=Red, Yellow=Yellow},metaData={task.meta.readOnly=false, task.meta.type=multiSelect, task.meta.required=false, task.meta.label=multi selection box custom field, task.meta.attributeKind=task.common.kind.default}]
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData1.txt b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData1.txt new file mode 100644 index 000000000..93fb7ef4f --- /dev/null +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData1.txt @@ -0,0 +1,26 @@ +TaskAttribute[id=root,values=[],options=null,metaData=null] + TaskAttribute[id=task.common.product,values=[],options={TestProduct=TestProduct, Product with Spaces=Product with Spaces, ManualTest=ManualTest},metaData={task.meta.label=Product, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true}] + TaskAttribute[id=task.common.component,values=[],options={TestComponent=TestComponent, Component 1=Component 1, Component 2=Component 2, ManualC1=ManualC1, ManualC2=ManualC2},metaData={task.meta.label=Component, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.summary,values=[The Summary],options=null,metaData={task.meta.label=Summary, task.meta.type=shortRichText, task.meta.readOnly=false, task.meta.required=true}] + TaskAttribute[id=task.common.version,values=[],options={unspecified=unspecified, a=a, b=b, c=c, R1=R1, R1.1=R1.1, R2.0=R2.0},metaData={task.meta.label=Version, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.description,values=[The Description],options=null,metaData={task.meta.label=Description, task.meta.type=longRichText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.description, task.meta.required=true}] + TaskAttribute[id=os,values=[All],options={All=All, Windows=Windows, Mac OS=Mac OS, Linux=Linux, Other=Other},metaData={task.meta.label=OS, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=platform,values=[All],options={All=All, PC=PC, Macintosh=Macintosh, Other=Other},metaData={task.meta.label=Platform, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.priority,values=[---],options={Highest=Highest, High=High, Normal=Normal, Low=Low, Lowest=Lowest, ---=---},metaData={task.meta.label=Priority, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.severity,values=[enhancement],options={blocker=blocker, critical=critical, major=major, normal=normal, minor=minor, trivial=trivial, enhancement=enhancement},metaData={task.meta.label=Severity, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=alias,values=[],options=null,metaData={task.meta.label=Alias, task.meta.type=shortText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.user.assigned,values=[],options=null,metaData={task.meta.label=Assigned to, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=task.common.user.cc,values=[],options=null,metaData={task.meta.label=CC, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=task.common.addselfcc,values=[],options=null,metaData={task.meta.label=Add Self to CC, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=comment_is_private,values=[],options=null,metaData={task.meta.label=Description is private, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=qa_contact,values=[],options=null,metaData={task.meta.label=QA Contact, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=target_milestone,values=[],options={---=---, M1=M1, M1.0=M1.0, M2=M2, M2.0=M2.0, M3=M3, M3.0=M3.0},metaData={task.meta.label=Target milestone, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.resolution,values=[],options={=, FIXED=FIXED, INVALID=INVALID, WONTFIX=WONTFIX, DUPLICATE=DUPLICATE, WORKSFORME=WORKSFORME},metaData={task.meta.label=Resolution, task.meta.type=singleSelect, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=task.common.operation,values=[],options=null,metaData={task.meta.label=Operation, task.meta.type=operation, task.meta.readOnly=false, task.meta.required=false}] + TaskAttribute[id=task.common.status,values=[],options={UNCONFIRMED=UNCONFIRMED, CONFIRMED=CONFIRMED, IN_PROGRESS=IN_PROGRESS},metaData={task.meta.label=Status, task.meta.type=shortText, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=cf_bugid,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=integer, task.meta.required=false, task.meta.label=bug id custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_datetime,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=dateTime, task.meta.required=false, task.meta.label=date time custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_dropdown,values=[],options={---=---, one=one, three=three, two=two},metaData={task.meta.readOnly=false, task.meta.type=singleSelect, task.meta.required=true, task.meta.label=drop down custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_freetext,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=shortText, task.meta.required=false, task.meta.label=free text custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_largetextbox,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=longText, task.meta.required=false, task.meta.label=large text box custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_multiselect,values=[],options={Blue=Blue, Green=Green, Red=Red, Yellow=Yellow},metaData={task.meta.readOnly=false, task.meta.type=multiSelect, task.meta.required=false, task.meta.label=multi selection box custom field, task.meta.attributeKind=task.common.kind.default}]
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData2.txt b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData2.txt new file mode 100644 index 000000000..196328e57 --- /dev/null +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core.tests/testdata/Version2/taskData2.txt @@ -0,0 +1,26 @@ +TaskAttribute[id=root,values=[],options=null,metaData=null] + TaskAttribute[id=task.common.product,values=[TestProduct],options={TestProduct=TestProduct, Product with Spaces=Product with Spaces, ManualTest=ManualTest},metaData={task.meta.label=Product, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true}] + TaskAttribute[id=task.common.component,values=[TestComponent],options={TestComponent=TestComponent},metaData={task.meta.label=Component, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.summary,values=[],options=null,metaData={task.meta.label=Summary, task.meta.type=shortRichText, task.meta.readOnly=false, task.meta.required=true}] + TaskAttribute[id=task.common.version,values=[unspecified],options={unspecified=unspecified},metaData={task.meta.label=Version, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=true, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.description,values=[],options=null,metaData={task.meta.label=Description, task.meta.type=longRichText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.description, task.meta.required=true}] + TaskAttribute[id=os,values=[All],options={All=All, Windows=Windows, Mac OS=Mac OS, Linux=Linux, Other=Other},metaData={task.meta.label=OS, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=platform,values=[All],options={All=All, PC=PC, Macintosh=Macintosh, Other=Other},metaData={task.meta.label=Platform, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.priority,values=[---],options={Highest=Highest, High=High, Normal=Normal, Low=Low, Lowest=Lowest, ---=---},metaData={task.meta.label=Priority, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.severity,values=[enhancement],options={blocker=blocker, critical=critical, major=major, normal=normal, minor=minor, trivial=trivial, enhancement=enhancement},metaData={task.meta.label=Severity, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=alias,values=[],options=null,metaData={task.meta.label=Alias, task.meta.type=shortText, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=task.common.user.assigned,values=[],options=null,metaData={task.meta.label=Assigned to, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=task.common.user.cc,values=[],options=null,metaData={task.meta.label=CC, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=task.common.addselfcc,values=[],options=null,metaData={task.meta.label=Add Self to CC, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false}] + TaskAttribute[id=comment_is_private,values=[],options=null,metaData={task.meta.label=Description is private, task.meta.type=boolean, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false}] + TaskAttribute[id=qa_contact,values=[],options=null,metaData={task.meta.label=QA Contact, task.meta.type=person, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.people, task.meta.required=false, task.meta.dependson.attribute=task.common.component}] + TaskAttribute[id=target_milestone,values=[---],options={---=---},metaData={task.meta.label=Target milestone, task.meta.type=singleSelect, task.meta.readOnly=false, task.meta.attributeKind=task.common.kind.default, task.meta.required=false, task.meta.dependson.attribute=task.common.product}] + TaskAttribute[id=task.common.resolution,values=[],options={=, FIXED=FIXED, INVALID=INVALID, WONTFIX=WONTFIX, DUPLICATE=DUPLICATE, WORKSFORME=WORKSFORME},metaData={task.meta.label=Resolution, task.meta.type=singleSelect, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=task.common.operation,values=[],options=null,metaData={task.meta.label=Operation, task.meta.type=operation, task.meta.readOnly=false, task.meta.required=false}] + TaskAttribute[id=task.common.status,values=[],options={UNCONFIRMED=UNCONFIRMED, CONFIRMED=CONFIRMED, IN_PROGRESS=IN_PROGRESS},metaData={task.meta.label=Status, task.meta.type=shortText, task.meta.readOnly=true, task.meta.required=false}] + TaskAttribute[id=cf_bugid,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=integer, task.meta.required=false, task.meta.label=bug id custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_datetime,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=dateTime, task.meta.required=false, task.meta.label=date time custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_dropdown,values=[],options={---=---, one=one, three=three, two=two},metaData={task.meta.readOnly=false, task.meta.type=singleSelect, task.meta.required=true, task.meta.label=drop down custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_freetext,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=shortText, task.meta.required=false, task.meta.label=free text custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_largetextbox,values=[],options=null,metaData={task.meta.readOnly=false, task.meta.type=longText, task.meta.required=false, task.meta.label=large text box custom field, task.meta.attributeKind=task.common.kind.default}] + TaskAttribute[id=cf_multiselect,values=[],options={Blue=Blue, Green=Green, Red=Red, Yellow=Yellow},metaData={task.meta.readOnly=false, task.meta.type=multiSelect, task.meta.required=false, task.meta.label=multi selection box custom field, task.meta.attributeKind=task.common.kind.default}]
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestConfiguration.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestConfiguration.java index 87fb1571f..19d4b8225 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestConfiguration.java +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestConfiguration.java @@ -12,11 +12,24 @@ package org.eclipse.mylyn.internal.bugzilla.rest.core; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; import java.util.Map; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.mylyn.commons.core.StatusHandler; +import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.Component; import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.Field; +import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.FieldValues; import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.Parameters; import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.Product; +import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.SortableActiveEntry; +import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.StatusTransition; +import org.eclipse.mylyn.tasks.core.data.TaskAttribute; +import org.eclipse.mylyn.tasks.core.data.TaskData; +import org.eclipse.mylyn.tasks.core.data.TaskOperation; import com.google.common.base.Function; import com.google.common.base.Functions; @@ -25,7 +38,7 @@ import com.google.common.collect.Ordering; public class BugzillaRestConfiguration implements Serializable { - private static final long serialVersionUID = 4078343382335204804L; + private static final long serialVersionUID = 4173223872076958202L; private final String repositoryId; @@ -89,4 +102,309 @@ public class BugzillaRestConfiguration implements Serializable { return parameters; } -} + private Component getProductComponentWithName(Product product, String name) { + for (Component componentEntry : product.getComponents()) { + if (componentEntry.getName().equals(name)) { + return componentEntry; + } + } + return null; + } + + public void updateInitialTaskData(TaskData data) throws CoreException { + for (String key : data.getRoot().getAttributes().keySet()) { + if (key.equals(BugzillaRestTaskSchema.getDefault().ADD_SELF_CC.getKey()) + || key.equals(BugzillaRestTaskSchema.getDefault().NEW_COMMENT.getKey()) + || key.equals(TaskAttribute.OPERATION)) { + continue; + } + TaskAttribute attribute = data.getRoot().getAttribute(key); + if (key.equals(BugzillaRestCreateTaskSchema.getDefault().PRODUCT.getKey())) { + List<String> products = new ArrayList<String>(); + Field configFieldComponent = getFieldWithName("component"); + FieldValues[] val = configFieldComponent.getValues(); + if (val != null && val.length > 0) { + for (FieldValues fieldValues : val) { + fieldValues.getVisibilityValues(); + for (String visibilityValue : fieldValues.getVisibilityValues()) { + if (!products.contains(visibilityValue)) { + products.add(visibilityValue); + } + } + } + attribute.clearOptions(); + for (String productName : products) { + attribute.putOption(productName, productName); + } + } + } else { + String configName = mapTaskAttributeKey2ConfigurationFields(key); + Field configField = getFieldWithName(configName); + if (configField == null) { + continue; + } + FieldValues[] val = configField.getValues(); + if (val != null && val.length > 0) { + for (FieldValues fieldValues : val) { + if (configName.equals("bug_status")) { + if (fieldValues.getName() == null) { + for (StatusTransition bugzillaRestBugStatusTransition : fieldValues.getCanChangeTo()) { + attribute.putOption(bugzillaRestBugStatusTransition.getName(), + bugzillaRestBugStatusTransition.getName()); + } + } + } else if (configName.equals("component") || configName.equals("version") + || configName.equals("target_milestone")) { + TaskAttribute productAttribute = data.getRoot() + .getAttribute(BugzillaRestCreateTaskSchema.getDefault().PRODUCT.getKey()); + String productValue = productAttribute.getValue(); + for (String visibilityValue : fieldValues.getVisibilityValues()) { + if (visibilityValue.equals(productValue) || productValue.equals("")) { + attribute.putOption(fieldValues.getName(), fieldValues.getName()); + } + } + } else { + attribute.putOption(fieldValues.getName(), fieldValues.getName()); + } + + } + if ((configName.equals("component") || configName.equals("version") + || configName.equals("target_milestone")) && attribute.getOptions().size() == 1 + && attribute.getValue().equals("")) { + attribute.setValue((String) attribute.getOptions().values().toArray()[0]); + } + if ("".equals(attribute.getValue())) { + attribute.setValue(getValueFromParameter(key)); + } + } + } + } + for (Field Field : fields.values()) { + if (Field.isCustom() && Field.isOnBugEntry()) { + TaskAttribute attribute = data.getRoot().createAttribute(Field.getName()); + if (attribute != null) { + attribute.getMetaData().defaults().setLabel(Field.getDisplayName()); + attribute.getMetaData().setKind(TaskAttribute.KIND_DEFAULT); + String type = getAttributeTypFromFieldTyp(Field.getType()); + attribute.getMetaData().setType(type); + if (type.equals(TaskAttribute.TYPE_SINGLE_SELECT)) { + attribute.getMetaData().setRequired(true); + } + + FieldValues[] values1 = Field.getValues(); + if (values1 != null) { + for (FieldValues FieldValues : values1) { + attribute.putOption(FieldValues.getName(), FieldValues.getName()); + } + } + attribute.getMetaData().setReadOnly(false); + } + } + } + } + + private String getValueFromParameter(String attributeId) { + if (attributeId.equals(TaskAttribute.PRIORITY)) { + return getParameters().getDefaultpriority(); + } else if (attributeId.equals(TaskAttribute.SEVERITY)) { + return getParameters().getDefaultseverity(); + } else if (attributeId.equals("platform")) { + if (getParameters().getDefaultplatform() == null || getParameters().getDefaultplatform().equals("")) { + return "All"; + } else { + return getParameters().getDefaultplatform(); + } + } else if (attributeId.equals("os")) { + if (getParameters().getDefaultopsys() == null || getParameters().getDefaultopsys().equals("")) { + return "All"; + } else { + return getParameters().getDefaultopsys(); + } + } + return ""; + } + + private String getAttributeTypFromFieldTyp(int fieldTyp) throws CoreException { + switch (fieldTyp) { + case 1://Free Text + return TaskAttribute.TYPE_SHORT_TEXT; + case 2: //DropDown + return TaskAttribute.TYPE_SINGLE_SELECT; + case 3: //Multiple-Selection Box + return TaskAttribute.TYPE_MULTI_SELECT; + case 4: //Large Text Box + return TaskAttribute.TYPE_LONG_TEXT; + case 5: //Date/Time + return TaskAttribute.TYPE_DATETIME; + case 6: //Bug Id + return TaskAttribute.TYPE_INTEGER; + case 7: //Bug URLs + return TaskAttribute.TYPE_URL; + default: + Status status = new Status(IStatus.INFO, BugzillaRestCore.ID_PLUGIN, + "unknown custom field type " + fieldTyp); + StatusHandler.log(status); + throw new CoreException(status); + } + } + + private String mapTaskAttributeKey2ConfigurationFields(String taskAttributeKey) { + String resultString; + if (taskAttributeKey.equals("task.common.summary")) { + resultString = "short_desc"; + } else if (taskAttributeKey.equals(TaskAttribute.PRODUCT) // + || taskAttributeKey.equals(TaskAttribute.RESOLUTION) // + || taskAttributeKey.equals(TaskAttribute.PRIORITY) // + || taskAttributeKey.equals(TaskAttribute.COMPONENT) // + || taskAttributeKey.equals(TaskAttribute.VERSION)) { + resultString = taskAttributeKey.substring(12); + } else if (taskAttributeKey.equals(TaskAttribute.STATUS)) { + resultString = "bug_status"; + } else if (taskAttributeKey.equals(TaskAttribute.USER_ASSIGNED)) { + resultString = "assigned_to"; + } else if (taskAttributeKey.equals(TaskAttribute.USER_CC)) { + resultString = "cc"; + } else if (taskAttributeKey.equals(TaskAttribute.DESCRIPTION)) { + resultString = "longdesc"; + } else if (taskAttributeKey.equals("comment_is_private")) { + resultString = "longdescs.isprivate"; + } else if (taskAttributeKey.equals("os")) { + resultString = "op_sys"; + } else if (taskAttributeKey.equals("platform")) { + resultString = "rep_platform"; + } else if (taskAttributeKey.equals(TaskAttribute.SEVERITY)) { + resultString = "bug_severity"; + } else if (taskAttributeKey.equals("comment")) { + resultString = "longdesc"; + } else { + resultString = taskAttributeKey; + } + return resultString; + } + + private void setAttributeOptionsForProduct(TaskAttribute taskAttribute, Product actualProduct) { + taskAttribute.clearOptions(); + if (taskAttribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().TARGET_MILESTONE.getKey())) { + internalSetAttributeOptions(taskAttribute, actualProduct.getMilestones()); + } else if (taskAttribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().VERSION.getKey())) { + internalSetAttributeOptions(taskAttribute, actualProduct.getVersions()); + } else if (taskAttribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().COMPONENT.getKey())) { + internalSetAttributeOptions(taskAttribute, actualProduct.getComponents()); + } + } + + private void internalSetAttributeOptions(TaskAttribute taskAttribute, SortableActiveEntry[] actualProductEntry) { + boolean found = false; + String actualValue = taskAttribute.getValue(); + for (SortableActiveEntry SortableActiveEntry : actualProductEntry) { + if (SortableActiveEntry.isActive()) { + taskAttribute.putOption(SortableActiveEntry.getName(), SortableActiveEntry.getName()); + if (!found) { + found = actualValue.equals(SortableActiveEntry.getName()); + } + } + } + if (!found) { + taskAttribute.setValue(""); //$NON-NLS-1$ + } + } + + public boolean updateAfterComponentChange(TaskAttribute taskAttribute) { + if (taskAttribute != null) { + if (taskAttribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().COMPONENT.getKey())) { + TaskAttribute rootAttribute = taskAttribute.getTaskData().getRoot(); + TaskAttribute productAttribute = taskAttribute.getTaskData() + .getRoot() + .getMappedAttribute(BugzillaRestCreateTaskSchema.getDefault().PRODUCT.getKey()); + Product actualProduct = getProductWithName(productAttribute.getValue()); + Component actualComponent = getProductComponentWithName(actualProduct, taskAttribute.getValue()); + if (actualComponent != null) { + taskAttribute.getMetaData().putValue(TaskAttribute.META_DESCRIPTION, + actualComponent.getDescription()); + TaskAttribute attributeQaContact = rootAttribute + .getMappedAttribute(BugzillaRestCreateTaskSchema.getDefault().QA_CONTACT.getKey()); + if (attributeQaContact != null) { + attributeQaContact.setValue(actualComponent.getDefaultQaContact()); + } + TaskAttribute attributeAssignedTo = rootAttribute + .getMappedAttribute(BugzillaRestCreateTaskSchema.getDefault().ASSIGNED_TO.getKey()); + if (attributeAssignedTo != null) { + attributeAssignedTo.setValue(actualComponent.getDefaultAssignedTo()); + } + } + } + return true; + } + return false; + } + + public boolean updateProductOptions(TaskAttribute taskAttribute) { + if (taskAttribute != null) { + if (taskAttribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().PRODUCT.getKey())) { + TaskAttribute rootAttribute = taskAttribute.getTaskData().getRoot(); + Product actualProduct = getProductWithName(taskAttribute.getValue()); + + TaskAttribute attributeComponent = rootAttribute + .getMappedAttribute(BugzillaRestCreateTaskSchema.getDefault().COMPONENT.getKey()); + if (attributeComponent != null) { + setAttributeOptionsForProduct(attributeComponent, actualProduct); + } + TaskAttribute attributeVersion = rootAttribute + .getMappedAttribute(BugzillaRestCreateTaskSchema.getDefault().VERSION.getKey()); + if (attributeVersion != null) { + setAttributeOptionsForProduct(attributeVersion, actualProduct); + } + TaskAttribute attributeTargetMilestone = rootAttribute + .getMappedAttribute(BugzillaRestCreateTaskSchema.getDefault().TARGET_MILESTONE.getKey()); + if (attributeTargetMilestone != null) { + setAttributeOptionsForProduct(attributeTargetMilestone, actualProduct); + } + } + return true; + } + return false; + } + + public void addValidOperations(TaskData bugReport) { + TaskAttribute attributeStatus = bugReport.getRoot().getMappedAttribute(TaskAttribute.STATUS); + String attributeStatusValue = attributeStatus.getValue(); + TaskAttribute operationAttribute = bugReport.getRoot().getAttribute(TaskAttribute.OPERATION); + if (operationAttribute == null) { + operationAttribute = bugReport.getRoot().createAttribute(TaskAttribute.OPERATION); + } + TaskAttribute attribute = bugReport.getRoot() + .createAttribute(TaskAttribute.PREFIX_OPERATION + attributeStatusValue); + TaskOperation.applyTo(attribute, attributeStatusValue, attributeStatusValue); + // set as default + TaskOperation.applyTo(operationAttribute, attributeStatusValue, attributeStatusValue); + Field status = getFieldWithName("bug_status"); + for (FieldValues fieldValues : status.getValues()) { + if (((attributeStatusValue == null || attributeStatusValue.equals("")) && fieldValues.getName() == null) + || (attributeStatusValue != null && attributeStatusValue.equals(fieldValues.getName()))) { + for (StatusTransition statusTransition : fieldValues.getCanChangeTo()) { + attribute = bugReport.getRoot() + .createAttribute(TaskAttribute.PREFIX_OPERATION + statusTransition.name); + TaskOperation.applyTo(attribute, statusTransition.name, statusTransition.name); + if (statusTransition.name != null && statusTransition.name.equals("RESOLVED")) { + TaskAttribute attrResolvedInput = attribute.getTaskData() + .getRoot() + .createAttribute("resolutionInput"); + attrResolvedInput.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT); + attribute.getMetaData().putValue(TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID, "resolutionInput"); + Field resolution = getFieldWithName("resolution"); + for (FieldValues resolutionValues : resolution.getValues()) { + if (resolutionValues.getName().compareTo("DUPLICATE") != 0) { + attrResolvedInput.putOption(resolutionValues.getName(), resolutionValues.getName()); + } + } + } + } + } + } + attribute = bugReport.getRoot().createAttribute(TaskAttribute.PREFIX_OPERATION + "duplicate"); + TaskOperation.applyTo(attribute, "duplicate", "Mark as Duplicate"); + TaskAttribute attrResolvedInput = attribute.getTaskData().getRoot().createAttribute("dup_id"); + attrResolvedInput.getMetaData().setType(TaskAttribute.TYPE_TASK_DEPENDENCY); + attribute.getMetaData().putValue(TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID, "dup_id"); + } +}
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestConnector.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestConnector.java index 2de0da3a3..7fb1e1e2b 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestConnector.java +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestConnector.java @@ -14,8 +14,6 @@ package org.eclipse.mylyn.internal.bugzilla.rest.core; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import org.eclipse.core.runtime.CoreException; @@ -56,8 +54,6 @@ public class BugzillaRestConnector extends AbstractRepositoryConnector { public static final Duration CONFIGURATION_CACHE_REFRESH_AFTER_WRITE_DURATION = new Duration(1, TimeUnit.DAYS); - private final ExecutorService executor = Executors.newFixedThreadPool(3); - private static final ThreadLocal<IOperationMonitor> context = new ThreadLocal<IOperationMonitor>(); private boolean ignoredProperty(String propertyName) { @@ -135,7 +131,8 @@ public class BugzillaRestConnector extends AbstractRepositoryConnector { public ListenableFuture<Optional<BugzillaRestConfiguration>> reload(final RepositoryKey key, Optional<BugzillaRestConfiguration> oldValue) throws Exception { // asynchronous! - ListenableFutureJob<Optional<BugzillaRestConfiguration>> job = new ListenableFutureJob("") { + ListenableFutureJob<Optional<BugzillaRestConfiguration>> job = new ListenableFutureJob<Optional<BugzillaRestConfiguration>>( + "") { @Override protected IStatus run(IProgressMonitor monitor) { diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestCreateTaskSchema.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestCreateTaskSchema.java new file mode 100644 index 000000000..2e83dda91 --- /dev/null +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestCreateTaskSchema.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * Copyright (c) 2015 Frank Becker and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Frank Becker - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylyn.internal.bugzilla.rest.core; + +import org.eclipse.mylyn.tasks.core.data.AbstractTaskSchema; +import org.eclipse.mylyn.tasks.core.data.DefaultTaskSchema; +import org.eclipse.mylyn.tasks.core.data.TaskAttribute; + +public class BugzillaRestCreateTaskSchema extends AbstractTaskSchema { + + private static final BugzillaRestCreateTaskSchema instance = new BugzillaRestCreateTaskSchema(); + + public static BugzillaRestCreateTaskSchema getDefault() { + return instance; + } + + private final DefaultTaskSchema parent = DefaultTaskSchema.getInstance(); + + public final Field PRODUCT = inheritFrom(parent.PRODUCT).addFlags(Flag.REQUIRED).create(); + + public final Field COMPONENT = inheritFrom(parent.COMPONENT).addFlags(Flag.REQUIRED) + .dependsOn(PRODUCT.getKey()) + .create(); + + public final Field SUMMARY = inheritFrom(parent.SUMMARY).addFlags(Flag.REQUIRED).create(); + + public final Field VERSION = createField(TaskAttribute.VERSION, "Version", TaskAttribute.TYPE_SINGLE_SELECT, null, + PRODUCT.getKey(), Flag.ATTRIBUTE, Flag.REQUIRED); + + public final Field DESCRIPTION = inheritFrom(parent.DESCRIPTION).addFlags(Flag.REQUIRED).create(); + + public final Field OS = createField("os", "OS", TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE); + + public final Field PLATFORM = createField("platform", "Platform", TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE); + + public final Field PRIORITY = inheritFrom(parent.PRIORITY).create(); + + public final Field SEVERITY = inheritFrom(parent.SEVERITY).create(); + + public final Field ALIAS = createField("alias", "Alias", TaskAttribute.TYPE_SHORT_TEXT, Flag.ATTRIBUTE); + + public final Field ASSIGNED_TO = inheritFrom(parent.USER_ASSIGNED).label("Assigned to") + .dependsOn(COMPONENT.getKey()) + .create(); + + public final Field CC = createField(TaskAttribute.USER_CC, "CC", TaskAttribute.TYPE_PERSON, Flag.PEOPLE); + + public final Field ADD_SELF_CC = inheritFrom(parent.ADD_SELF_CC).addFlags(Flag.PEOPLE).create(); + + public final Field COMMENT_IS_PRIVATE = createField("comment_is_private", "Description is private", + TaskAttribute.TYPE_BOOLEAN, Flag.ATTRIBUTE); + + public final Field QA_CONTACT = createField("qa_contact", "QA Contact", TaskAttribute.TYPE_PERSON, null, + COMPONENT.getKey(), Flag.PEOPLE); + + public final Field TARGET_MILESTONE = createField("target_milestone", "Target milestone", + TaskAttribute.TYPE_SINGLE_SELECT, null, PRODUCT.getKey(), Flag.ATTRIBUTE); + + public final Field RESOLUTION = inheritFrom(parent.RESOLUTION).create(); + + public final Field OPERATION = createField(TaskAttribute.OPERATION, "Operation", TaskAttribute.TYPE_OPERATION); + + public final Field STATUS = inheritFrom(parent.STATUS).create(); +} diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskAttributeMapper.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskAttributeMapper.java new file mode 100644 index 000000000..8c4535ab8 --- /dev/null +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskAttributeMapper.java @@ -0,0 +1,87 @@ +/******************************************************************************* + * Copyright (c) 2015 Frank Becker and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Frank Becker - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylyn.internal.bugzilla.rest.core; + +import java.util.Map; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.mylyn.commons.core.StatusHandler; +import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.Product; +import org.eclipse.mylyn.internal.bugzilla.rest.core.response.data.SortableActiveEntry; +import org.eclipse.mylyn.tasks.core.RepositoryStatus; +import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.core.data.TaskAttribute; +import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper; + +public class BugzillaRestTaskAttributeMapper extends TaskAttributeMapper { + + private final BugzillaRestConnector connector; + + public BugzillaRestTaskAttributeMapper(TaskRepository taskRepository, BugzillaRestConnector connector) { + super(taskRepository); + this.connector = connector; + } + + @Override + public Map<String, String> getOptions(@NonNull TaskAttribute attribute) { + if (attribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().TARGET_MILESTONE.getKey()) + || attribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().VERSION.getKey()) + || attribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().COMPONENT.getKey())) { + TaskAttribute productAttribute = attribute.getParentAttribute() + .getAttribute(BugzillaRestCreateTaskSchema.getDefault().PRODUCT.getKey()); + BugzillaRestConfiguration repositoryConfiguration; + try { + repositoryConfiguration = connector.getRepositoryConfiguration(this.getTaskRepository()); + if (repositoryConfiguration != null) { + if (!productAttribute.getValue().equals("")) { //$NON-NLS-1$ + Product actualProduct = repositoryConfiguration.getProductWithName(productAttribute.getValue()); + if (attribute.getId() + .equals(BugzillaRestCreateTaskSchema.getDefault().TARGET_MILESTONE.getKey())) { + internalSetAttributeOptions(attribute, actualProduct.getMilestones()); + } else + if (attribute.getId().equals(BugzillaRestCreateTaskSchema.getDefault().VERSION.getKey())) { + internalSetAttributeOptions(attribute, actualProduct.getVersions()); + } else if (attribute.getId() + .equals(BugzillaRestCreateTaskSchema.getDefault().COMPONENT.getKey())) { + internalSetAttributeOptions(attribute, actualProduct.getComponents()); + } + } + } + } catch (CoreException e) { + StatusHandler.log(new RepositoryStatus(getTaskRepository(), IStatus.ERROR, BugzillaRestCore.ID_PLUGIN, + 0, "Failed to obtain repository configuration", e)); //$NON-NLS-1$ + } + } + return super.getOptions(attribute); + } + + private void internalSetAttributeOptions(TaskAttribute taskAttribute, SortableActiveEntry[] actualProductEntry) { + boolean found = false; + String actualValue = taskAttribute.getValue(); + taskAttribute.clearOptions(); + for (SortableActiveEntry SortableActiveEntry : actualProductEntry) { + if (SortableActiveEntry.isActive()) { + // TODO: remove when we have offline cache for the repository configuration + taskAttribute.putOption(SortableActiveEntry.getName(), SortableActiveEntry.getName()); + if (!found) { + found = actualValue.equals(SortableActiveEntry.getName()); + } + } + } + if (!found) { + taskAttribute.setValue(""); //$NON-NLS-1$ + } + } + +} diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskDataHandler.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskDataHandler.java index d99ec950e..99769e47d 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskDataHandler.java +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskDataHandler.java @@ -45,16 +45,24 @@ public class BugzillaRestTaskDataHandler extends AbstractTaskDataHandler { // fresh from the repository (not locally stored data that may not have // been migrated). data.setVersion("0"); //$NON-NLS-1$ - BugzillaRestTaskSchema.getDefault().initialize(data); + if (data.isNew()) { + BugzillaRestCreateTaskSchema.getDefault().initialize(data); + } else { + BugzillaRestTaskSchema.getDefault().initialize(data); + } if (initializationData != null) { connector.getTaskMapping(data).merge(initializationData); } + BugzillaRestConfiguration config = connector.getRepositoryConfiguration(repository); + if (config != null) { + config.updateInitialTaskData(data); + } return true; } @Override public TaskAttributeMapper getAttributeMapper(TaskRepository repository) { - return new TaskAttributeMapper(repository); + return new BugzillaRestTaskAttributeMapper(repository, connector); } } diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskSchema.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskSchema.java index b620c141d..aac11f875 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskSchema.java +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/BugzillaRestTaskSchema.java @@ -14,6 +14,7 @@ package org.eclipse.mylyn.internal.bugzilla.rest.core; import org.eclipse.mylyn.tasks.core.data.AbstractTaskSchema; import org.eclipse.mylyn.tasks.core.data.DefaultTaskSchema; import org.eclipse.mylyn.tasks.core.data.TaskAttribute; +import org.eclipse.mylyn.tasks.core.data.TaskData; public class BugzillaRestTaskSchema extends AbstractTaskSchema { @@ -25,15 +26,69 @@ public class BugzillaRestTaskSchema extends AbstractTaskSchema { private final DefaultTaskSchema parent = DefaultTaskSchema.getInstance(); - public final Field DESCRIPTION = inheritFrom(parent.DESCRIPTION).create(); + public final Field BUG_ID = createField("bug_id", "ID:", TaskAttribute.TYPE_SHORT_TEXT, Flag.REQUIRED); - public final Field SUMMARY = inheritFrom(parent.SUMMARY).create(); + public final Field PRODUCT = inheritFrom(parent.PRODUCT).addFlags(Flag.REQUIRED).create(); + + public final Field COMPONENT = inheritFrom(parent.COMPONENT).addFlags(Flag.REQUIRED) + .dependsOn(PRODUCT.getKey()) + .create(); + + public final Field SUMMARY = inheritFrom(parent.SUMMARY).addFlags(Flag.REQUIRED).create(); + + public final Field VERSION = createField("version", "Version", TaskAttribute.TYPE_SINGLE_SELECT, null, + PRODUCT.getKey(), Flag.ATTRIBUTE, Flag.REQUIRED); + + public final Field DESCRIPTION = inheritFrom(parent.DESCRIPTION).addFlags(Flag.REQUIRED, Flag.READ_ONLY).create(); + + public final Field OS = createField("os", "OS", TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE); + + public final Field PLATFORM = createField("platform", "Platform", TaskAttribute.TYPE_SINGLE_SELECT, Flag.ATTRIBUTE); + + public final Field PRIORITY = inheritFrom(parent.PRIORITY).create(); + + public final Field SEVERITY = inheritFrom(parent.SEVERITY).create(); + + public final Field STATUS = inheritFrom(parent.STATUS).create(); + + public final Field ALIAS = createField("alias", "Alias", TaskAttribute.TYPE_SHORT_TEXT, Flag.ATTRIBUTE); + + public final Field ASSIGNED_TO = inheritFrom(parent.USER_ASSIGNED).label("Assigned to") + .dependsOn(COMPONENT.getKey()) + .create(); + + public final Field CC = createField(TaskAttribute.USER_CC, "CC", TaskAttribute.TYPE_PERSON, Flag.PEOPLE); + + public final Field ADD_SELF_CC = inheritFrom(parent.ADD_SELF_CC).addFlags(Flag.PEOPLE).create(); + + public final Field COMMENT_ISPRIVATE = inheritFrom(parent.COMMENT_ISPRIVATE).addFlags(Flag.ATTRIBUTE).create(); + + public final Field COMMENT_NUMBER = inheritFrom(parent.COMMENT_NUMBER).addFlags(Flag.ATTRIBUTE).create(); + + public final Field QA_CONTACT = createField("qa_contact", "QA Contact", TaskAttribute.TYPE_PERSON, null, + COMPONENT.getKey(), Flag.PEOPLE); public final Field NEW_COMMENT = inheritFrom(parent.NEW_COMMENT).create(); - public final Field COMPONENT = inheritFrom(parent.COMPONENT).create(); + public final Field RESOLUTION = inheritFrom(parent.RESOLUTION).create(); + + public final Field TARGET_MILESTONE = createField("target_milestone", "Target milestone", + TaskAttribute.TYPE_SINGLE_SELECT, null, PRODUCT.getKey(), Flag.ATTRIBUTE); - public final Field DUMMYATTRIBUTE = createField("task.bugzilla.dummy.attribute", "Dummy Attribute", //$NON-NLS-1$ //$NON-NLS-2$ - TaskAttribute.TYPE_SHORT_TEXT, Flag.ATTRIBUTE); + public final Field OPERATION = createField(TaskAttribute.OPERATION, "Operation", TaskAttribute.TYPE_OPERATION); + + @Override + public void initialize(TaskData taskData) { + for (Field field : getFields()) { + if (field.equals(COMMENT_ISPRIVATE) || field.equals(COMMENT_NUMBER)) { + continue; + } + TaskAttribute newField = field.createAttribute(taskData.getRoot()); + if (field.equals(DESCRIPTION)) { + COMMENT_ISPRIVATE.createAttribute(newField); + COMMENT_NUMBER.createAttribute(newField); + } + } + } -} +}
\ No newline at end of file diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/response/data/Component.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/response/data/Component.java index ca52da95c..cf0500cbc 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/response/data/Component.java +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.core/src/org/eclipse/mylyn/internal/bugzilla/rest/core/response/data/Component.java @@ -11,35 +11,24 @@ package org.eclipse.mylyn.internal.bugzilla.rest.core.response.data; -import java.io.Serializable; +public class Component extends SortableActiveEntry { -public class Component implements Serializable { - private static final long serialVersionUID = -3420463254677859338L; + private static final long serialVersionUID = -285913855003802343L; private int id; - private String name; - private String description; private String default_assigned_to; private String default_qa_contact; - private int sort_key; - - private boolean is_active; - private FlagTypes flag_types; public int getId() { return id; } - public String getName() { - return name; - } - public String getDescription() { return description; } @@ -52,14 +41,6 @@ public class Component implements Serializable { return default_qa_contact; } - public int getSortKey() { - return sort_key; - } - - public boolean isActive() { - return is_active; - } - public FlagTypes getFlagTypes() { return flag_types; } diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.tests/config/local-All-TckTests.launch b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.tests/config/local-All-TckTests.launch index 2bdd899e3..a118eb253 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.tests/config/local-All-TckTests.launch +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.tests/config/local-All-TckTests.launch @@ -24,7 +24,7 @@ <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> -<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> +<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 7 [1.7.0_71]"/> <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/> <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -consolelog"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.mylyn.bugzilla.rest.tests"/> diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.ui/META-INF/MANIFEST.MF b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.ui/META-INF/MANIFEST.MF index a5a3e0266..df91d31de 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.ui/META-INF/MANIFEST.MF +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.ui/META-INF/MANIFEST.MF @@ -6,6 +6,7 @@ Bundle-Version: 1.0.0.qualifier Require-Bundle: org.eclipse.core.runtime, org.eclipse.ui, org.eclipse.ui.forms, + org.eclipse.mylyn.commons.core;bundle-version="3.11.0", org.eclipse.mylyn.commons.ui;bundle-version="3.11.0", org.eclipse.mylyn.tasks.ui;bundle-version="3.11.0", org.eclipse.mylyn.tasks.core;bundle-version="3.11.0", diff --git a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.ui/src/org/eclipse/mylyn/internal/bugzilla/rest/ui/BugzillaRestTaskEditorPage.java b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.ui/src/org/eclipse/mylyn/internal/bugzilla/rest/ui/BugzillaRestTaskEditorPage.java index 3d2a9d670..f8e11c321 100644 --- a/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.ui/src/org/eclipse/mylyn/internal/bugzilla/rest/ui/BugzillaRestTaskEditorPage.java +++ b/connector-bugzilla-rest/org.eclipse.mylyn.bugzilla.rest.ui/src/org/eclipse/mylyn/internal/bugzilla/rest/ui/BugzillaRestTaskEditorPage.java @@ -16,14 +16,15 @@ import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage; import org.eclipse.mylyn.tasks.ui.editors.TaskEditor; public class BugzillaRestTaskEditorPage extends AbstractTaskEditorPage { + public BugzillaRestTaskEditorPage(TaskEditor editor) { this(editor, BugzillaRestCore.CONNECTOR_KIND); } public BugzillaRestTaskEditorPage(TaskEditor editor, String connectorKind) { super(editor, connectorKind); - setNeedsPrivateSection(false); - setNeedsSubmitButton(false); + setNeedsPrivateSection(true); + setNeedsSubmitButton(true); } } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java index 13660f564..7603904a6 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java @@ -105,7 +105,7 @@ import org.eclipse.mylyn.tasks.core.sync.ISynchronizationSession; * <li>{@link #canSynchronizeTask(TaskRepository, ITask)} returns <code>false</code> so full task data is never * retrieved * </ul> - * + * * @author Mik Kersten * @author Rob Elves * @author Shawn Minto @@ -118,7 +118,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns true, if the connector provides a wizard for creating new tasks. - * + * * @since 2.0 */ // TODO move this to ConnectorUi.hasNewTaskWizard() @@ -126,14 +126,14 @@ public abstract class AbstractRepositoryConnector { /** * Returns true, if the connector supports retrieval of tasks based on String keys. - * + * * @since 2.0 */ public abstract boolean canCreateTaskFromKey(@NonNull TaskRepository repository); /** * Returns true, if the connector supports retrieval of task history for <code>task</code>. - * + * * @see #getHistory(TaskRepository, ITask, IProgressMonitor) * @since 3.6 */ @@ -143,7 +143,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns true, if the connector supports querying the repository. - * + * * @since 3.0 * @see #performQuery(TaskRepository, IRepositoryQuery, TaskDataCollector, ISynchronizationSession, * IProgressMonitor) @@ -154,7 +154,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns true, if the connectors support retrieving full task data for <code>task</code>. - * + * * @since 3.0 * @see #getTaskData(TaskRepository, String, IProgressMonitor) */ @@ -164,7 +164,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns true, if the connector supports deletion of <code>task</code> which is part of <code>repository</code>. - * + * * @since 3.3 */ public boolean canDeleteTask(@NonNull TaskRepository repository, @NonNull ITask task) { @@ -174,7 +174,7 @@ public abstract class AbstractRepositoryConnector { /** * Return true, if the connector supports creation of task repositories. The default default implementation returns * true. - * + * * @since 3.4 */ public boolean canCreateRepository() { @@ -183,7 +183,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns the unique kind of the repository, e.g. "bugzilla". - * + * * @since 2.0 */ @NonNull @@ -191,7 +191,7 @@ public abstract class AbstractRepositoryConnector { /** * The connector's summary i.e. "JIRA (supports 3.3.1 and later)" - * + * * @since 2.0 */ @NonNull @@ -203,7 +203,7 @@ public abstract class AbstractRepositoryConnector { * Implementations typically match the task identifier based on repository specific patterns. For a Bugzilla task * URL for example the implementation would match on <code>bugs.cgi</code> and return the repository specific * portion of the URL: "<i>http://bugs/</i><b>bugs.cgi?bugid=</b>123". - * + * * @return a task identifier or <code>null</code>, if <code>taskUrl</code> is not recognized * @see #getTaskData(TaskRepository, String, IProgressMonitor) */ @@ -215,7 +215,7 @@ public abstract class AbstractRepositoryConnector { * <p> * The default implementations returns the substring of the text returned by {@link #getLabel()} up to the first * occurrence of <em>(</em> or a space. - * + * * @since 2.3 */ @Nullable @@ -242,7 +242,7 @@ public abstract class AbstractRepositoryConnector { * Returns the attachment handler. The method is expected to always return the same instance. * <p> * The default implementation returns <code>null</code>. - * + * * @return the attachment handler, or null, if attachments are not supported * @since 3.0 */ @@ -253,7 +253,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns the full task data. The method is expected to always return the same instance. - * + * * @param repository * the task repository matching this connector * @param taskIdOrKey @@ -273,7 +273,7 @@ public abstract class AbstractRepositoryConnector { * Returns the task data handler. The method is expected to always return the same instance. * <p> * The default implementation returns <code>null</code>. - * + * * @return the task data handler, or null, task data submission is not supported * @since 3.0 */ @@ -289,7 +289,7 @@ public abstract class AbstractRepositoryConnector { * <p> * Implementations typically match the task identifier based on repository specific patterns such as * "http://bugs/<b>bugs.cgibugid=123</b>". - * + * * @return a task identifier or <code>null</code>, if <code>taskUrl</code> is not recognized * @see #getTaskData(TaskRepository, String, IProgressMonitor) * @since 2.0 @@ -310,7 +310,7 @@ public abstract class AbstractRepositoryConnector { * tasks. * <p> * Implementations typically scan <code>comment</code> for repository specific patterns such as KEY-123 for JIRA. - * + * * @return null, if the method is not supported; an array of task identifiers otherwise * @since 2.0 */ @@ -322,7 +322,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns a mapping for {@link TaskData}. The mapping maps the connector specific representation to the standard * schema defined in {@link ITaskMapping}. - * + * * @since 3.0 */ @NonNull @@ -336,7 +336,7 @@ public abstract class AbstractRepositoryConnector { * For subtasks implementations are expected to return relations creates by {@link TaskRelation#subtask(String)}. * <p> * The default implementation returns <code>null</code>. - * + * * @return a list of relations or null if <code>taskData</code> does not have relations or if task relations are not * supported * @since 3.0 @@ -349,7 +349,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns a task URL for the task referenced by <code>taskIdOrKey</code> in the repository referenced by * <code>repositoryUrl</code>. - * + * * @return a task URL or null if the connector does not support task URLs * @see #getTaskIdFromTaskUrl(String) * @see #getRepositoryUrlFromTaskUrl(String) @@ -362,7 +362,7 @@ public abstract class AbstractRepositoryConnector { * Returns a URL for <code>element</code> that contains authentication information such as a session ID. * <p> * Returns <code>null</code> by default. Clients may override. - * + * * @param repository * the repository for <code>element</code> * @param element @@ -380,7 +380,7 @@ public abstract class AbstractRepositoryConnector { * Returns a browsable URL for <code>element</code>. * <p> * Returns <code>null</code> by default. Clients may override. - * + * * @param repository * the repository for <code>element</code> * @param element @@ -398,7 +398,7 @@ public abstract class AbstractRepositoryConnector { * <code>task</code>. * <p> * See {@link AbstractRepositoryConnector} for more details how this method interacts with other methods. - * + * * @since 3.0 * @see #updateTaskFromTaskData(TaskRepository, ITask, TaskData) */ @@ -410,7 +410,7 @@ public abstract class AbstractRepositoryConnector { * repository which is the common case and default. * <p> * The default implementation returns <code>false</code>. - * + * * @since 3.0 */ public boolean hasLocalCompletionState(@NonNull TaskRepository repository, @NonNull ITask task) { @@ -421,7 +421,7 @@ public abstract class AbstractRepositoryConnector { * Returns <code>true</code>, if <code>task</code> has a due date that is managed on the repository. * <p> * The default implementation returns <code>false</code>. - * + * * @since 3.0 */ public boolean hasRepositoryDueDate(@NonNull TaskRepository repository, @NonNull ITask task, @@ -433,7 +433,7 @@ public abstract class AbstractRepositoryConnector { * Returns <code>true</code> to indication that the repository configuration is stale and requires update * <p> * The default implementation returns <code>true</code> every 24 hours. - * + * * @return true to indicate that the repository configuration is stale and requires update * @since 3.0 */ @@ -450,7 +450,7 @@ public abstract class AbstractRepositoryConnector { * Returns true, if users can manage create repositories for this connector. * <p> * The default implementation returns true. - * + * * @since 2.0 */ public boolean isUserManaged() { @@ -464,7 +464,7 @@ public abstract class AbstractRepositoryConnector { * Implementors must complete executing <code>query</code> before returning from this method. * <p> * See {@link AbstractRepositoryConnector} for more details how this method interacts with other methods. - * + * * @param repository * task repository to run query against * @param query @@ -487,20 +487,20 @@ public abstract class AbstractRepositoryConnector { /** * Delete the task from the server - * + * * @throws UnsupportedOperationException * if this is not implemented by the connector * @since 3.3 */ @NonNull - public IStatus deleteTask(@NonNull TaskRepository repository, @NonNull ITask task, @NonNull IProgressMonitor monitor) - throws CoreException { + public IStatus deleteTask(@NonNull TaskRepository repository, @NonNull ITask task, + @NonNull IProgressMonitor monitor) throws CoreException { throw new UnsupportedOperationException(); } /** * Hook into the synchronization process. - * + * * @since 3.0 */ public void postSynchronization(@NonNull ISynchronizationSession event, @NonNull IProgressMonitor monitor) @@ -516,7 +516,7 @@ public abstract class AbstractRepositoryConnector { * Hook into the synchronization process. * <p> * See {@link AbstractRepositoryConnector} for more details how this method interacts with other methods. - * + * * @since 3.0 */ public void preSynchronization(@NonNull ISynchronizationSession event, @NonNull IProgressMonitor monitor) @@ -532,7 +532,7 @@ public abstract class AbstractRepositoryConnector { * Updates the local repository configuration cache (e.g. products and components). Connectors are encouraged to * implement {@link #updateRepositoryConfiguration(TaskRepository, ITask, IProgressMonitor)} in addition this * method. - * + * * @param repository * the repository to update configuration for * @since 3.0 @@ -544,7 +544,7 @@ public abstract class AbstractRepositoryConnector { /** * Updates the local repository configuration cache (e.g. products and components). The default implementation * invokes {@link #updateRepositoryConfiguration(TaskRepository, IProgressMonitor)}. - * + * * @param repository * the repository to update configuration for * @param task @@ -562,7 +562,7 @@ public abstract class AbstractRepositoryConnector { * used to map common attributes. * <p> * See {@link AbstractRepositoryConnector} for more details how this method interacts with other methods. - * + * * @see #hasTaskChanged(TaskRepository, ITask, TaskData) * @see TaskMapper#applyTo(ITask) * @since 3.0 @@ -574,7 +574,7 @@ public abstract class AbstractRepositoryConnector { * Called when a new task is created, before it is opened in a task editor. Connectors should override this method * if they need information from the {@link TaskData} to determine kind labels or other information that should be * displayed in a new task editor. - * + * * @since 3.5 */ public void updateNewTaskFromTaskData(@NonNull TaskRepository taskRepository, @NonNull ITask task, @@ -586,7 +586,7 @@ public abstract class AbstractRepositoryConnector { * is submitted to the repository. Implementers may override to implement custom migration rules. * <p> * Does nothing by default. - * + * * @param event * provides additional details * @since 3.4 @@ -596,7 +596,7 @@ public abstract class AbstractRepositoryConnector { /** * Returns if the user using the repository is the owner of the task. Subclasses may override. - * + * * @param repository * repository task is associated with * @param task @@ -611,7 +611,7 @@ public abstract class AbstractRepositoryConnector { /** * Retrieves the history for <code>task</code>. Throws {@link UnsupportedOperationException} by default. - * + * * @param repository * the repository * @param task @@ -635,7 +635,7 @@ public abstract class AbstractRepositoryConnector { * requires connecting to the repository. * <p> * Throws {@link UnsupportedOperationException} if not implemented by clients. - * + * * @param repository * the repository * @param monitor @@ -654,7 +654,7 @@ public abstract class AbstractRepositoryConnector { * Set the category of the {@code repository} to the default TaskRepository.CATEGORY_BUGS. * <p> * Subclasses may override. - * + * * @param repository * the repository * @since 3.11 @@ -662,4 +662,5 @@ public abstract class AbstractRepositoryConnector { public void applyDefaultCategory(@NonNull TaskRepository repository) { repository.setCategory(TaskRepository.CATEGORY_BUGS); } + } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/AbstractTaskSchema.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/AbstractTaskSchema.java index 2b70dfc66..db258e8c7 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/AbstractTaskSchema.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/AbstractTaskSchema.java @@ -44,12 +44,14 @@ public abstract class AbstractTaskSchema { private final String indexKey; + private final String dependsOn; + protected Field(String key, String label, String type) { - this(key, label, type, null, (Flag[]) null); + this(key, label, type, null, null, (Flag[]) null); } protected Field(String key, String label, String type, Flag... flags) { - this(key, label, type, null, flags); + this(key, label, type, null, null, flags); } /** @@ -68,6 +70,27 @@ public abstract class AbstractTaskSchema { * @since 3.7 */ public Field(String key, String label, String type, String indexKey, Flag... flags) { + this(key, label, type, indexKey, null, flags); + } + + /** + * @param key + * the task attribute key, which may be a common task attribute key defined in defined in + * {@link TaskAttribute} + * @param label + * the user-visible label that is used by the user to identify this field + * @param type + * the type of the field, should be one of the constants defined in TaskAttribute ( + * <code>TaskAttribute.TYPE_*</code>) + * @param indexKey + * the index key, or null if this should not be indexed + * @param dependsOn + * the key of the TaskAttribute which is the parent of the dependency + * @param flags + * the flags, or null + * @since 3.17 + */ + public Field(String key, String label, String type, String indexKey, String dependsOn, Flag... flags) { Assert.isNotNull(key); Assert.isNotNull(label); Assert.isNotNull(type); @@ -75,6 +98,7 @@ public abstract class AbstractTaskSchema { this.label = label; this.type = type; this.indexKey = indexKey; + this.dependsOn = dependsOn; if (flags == null || flags.length == 0) { this.flags = EnumSet.noneOf(Flag.class); } else { @@ -91,6 +115,9 @@ public abstract class AbstractTaskSchema { metaData.setReadOnly(isReadOnly()); metaData.setKind(getKind()); metaData.setRequired(isRequired()); + if (getDependsOn() != null) { + metaData.setDependsOn(getDependsOn()); + } // options Map<String, String> options = getDefaultOptions(); if (options != null) { @@ -200,23 +227,29 @@ public abstract class AbstractTaskSchema { return flags.contains(Flag.REQUIRED); } + /** + * @since 3.17 + */ + public String getDependsOn() { + return dependsOn; + } + } public enum Flag { - ATTRIBUTE, OPERATION, PEOPLE, READ_ONLY, - /** - * A flag used to indicate that the field is related to a description. - * - * @since 3.11 - * @see TaskAttribute#KIND_DESCRIPTION - */ - DESCRIPTION, - /** - * A flag used to indicate that the field is required. - * - * @since 3.11 - * @see TaskAttribute#META_REQUIRED - */ + ATTRIBUTE, OPERATION, PEOPLE, READ_ONLY, /** + * A flag used to indicate that the field is related to a + * description. + * + * @since 3.11 + * @see TaskAttribute#KIND_DESCRIPTION + */ + DESCRIPTION, /** + * A flag used to indicate that the field is required. + * + * @since 3.11 + * @see TaskAttribute#META_REQUIRED + */ REQUIRED }; @@ -231,11 +264,14 @@ public abstract class AbstractTaskSchema { private String type; + private String dependsOn; + public FieldFactory(Field source) { this.flags = EnumSet.copyOf(source.flags); this.key = source.key; this.label = source.label; this.type = source.type; + this.dependsOn = source.dependsOn; } public FieldFactory addFlags(Flag... flags) { @@ -244,7 +280,8 @@ public abstract class AbstractTaskSchema { } public Field create() { - return createField(key, label, type, (!flags.isEmpty()) ? flags.toArray(new Flag[0]) : null); + return createField(key, label, type, null, dependsOn, + (!flags.isEmpty()) ? flags.toArray(new Flag[0]) : null); } public FieldFactory flags(Flag... flags) { @@ -272,6 +309,14 @@ public abstract class AbstractTaskSchema { return this; } + /** + * @since 3.17 + */ + public FieldFactory dependsOn(String dependsOn) { + this.dependsOn = dependsOn; + return this; + } + } private final Map<String, Field> fieldByKey = new LinkedHashMap<String, Field>(); @@ -316,7 +361,15 @@ public abstract class AbstractTaskSchema { * @see Field#Field(String, String, String, String, Flag...) */ protected Field createField(String key, String label, String type, String indexKey, Flag... flags) { - Field field = new Field(key, label, type, indexKey, flags); + return createField(key, label, type, indexKey, null, flags); + } + + /** + * @since 3.17 + */ + protected Field createField(String key, String label, String type, String indexKey, String dependsOn, + Flag... flags) { + Field field = new Field(key, label, type, indexKey, dependsOn, flags); fieldByKey.put(key, field); return field; } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttribute.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttribute.java index 269488723..7ea11c65e 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttribute.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttribute.java @@ -21,7 +21,7 @@ import org.eclipse.core.runtime.Assert; /** * Encapsulates attributes for task data. - * + * * @author Rob Elves * @author Steffen Pingel * @author Miles Parker @@ -111,7 +111,7 @@ public final class TaskAttribute { /** * A {@link TaskAttributeMetaData#getKind() kind} used to indicate that the field is related to a description. - * + * * @since 3.11 */ public static final String KIND_DESCRIPTION = "task.common.kind.description"; //$NON-NLS-1$ @@ -127,12 +127,26 @@ public final class TaskAttribute { public static final String META_ATTRIBUTE_TYPE = "task.meta.type"; //$NON-NLS-1$ /** - * A key for {@link TaskAttributeMetaData} that is used for specifying the media type of a - * {@link #TYPE_LONG_RICH_TEXT} or {@link #TYPE_SHORT_RICH_TEXT}. The media type if specified must be a valid <a - * href="http://en.wikipedia.org/wiki/Internet_media_type">Internet Media Type</a> (also known as Content-Type, - * mime-type) according to <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a> and <a - * href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>. + * A key for {@link TaskAttributeMetaData} that is used for specifying the ID of the parent {@link TaskAttribute} + * for attributes that have a dependency. When the parent is changed we look for all attributes with have a + * {@link TaskAttributeMetaData} of this key and an value of the ID from the changed {@link TaskAttribute} and also + * trigger a change. With this we can refresh the options of each {@link TaskAttribute}.<br> + * <br> + * Example: In Bugzilla we have COMPONENT, VERSION, TARGET_MILESTONE as depends on the PRODUCT. We can so update the + * options of the attributes to match the definition of the PRODUCT. * + * @see #BugzillaRestCreateTaskSchema + * @since 3.16 + */ + public static final String META_DEPENDS_ON_ATTRIBUTE_ID = "task.meta.dependson.attribute"; //$NON-NLS-1$ + + /** + * A key for {@link TaskAttributeMetaData} that is used for specifying the media type of a + * {@link #TYPE_LONG_RICH_TEXT} or {@link #TYPE_SHORT_RICH_TEXT}. The media type if specified must be a valid + * <a href="http://en.wikipedia.org/wiki/Internet_media_type">Internet Media Type</a> (also known as Content-Type, + * mime-type) according to <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a> and + * <a href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046</a>. + * * @see #TYPE_LONG_RICH_TEXT * @see #TYPE_SHORT_RICH_TEXT * @see #META_ATTRIBUTE_TYPE @@ -152,7 +166,7 @@ public final class TaskAttribute { * Key for {@link TaskAttributeMetaData} used to specify that a field requires a value before it can be submitted to * the server. This meta-data is used by the framework as a UI hint and does not guarantee that a connector will * enforce compliance before attempting to post task data. - * + * * @since 3.11 */ public static final String META_REQUIRED = "task.meta.required"; //$NON-NLS-1$ @@ -165,7 +179,7 @@ public final class TaskAttribute { /** * Key for the meta datum that determines if an attribute is disabled. This is used to indicate that an attribute * should not be modified, e.g. due to work-flow state but it may still be generally writeable. - * + * * @since 3.5 * @see TaskAttributeMetaData#isDisabled() */ @@ -173,7 +187,7 @@ public final class TaskAttribute { /** * Key for the meta datum that provides a description of an attribute, e.g. for display in a tooltip. - * + * * @since 3.5 * @see TaskAttributeMetaData */ @@ -184,7 +198,7 @@ public final class TaskAttribute { * content. Provides a way for connectors to specify non-standard attributes as plain-text indexable. By default, * {@link #SUMMARY summary} and {@link #DESCRIPTION description} are indexed. Note that setting this meta-data is * advisory only and will not guarantee that content is indexed. - * + * * @since 3.7 */ public static final String META_INDEXED_AS_CONTENT = "task.meta.index.content"; //$NON-NLS-1$ @@ -471,8 +485,9 @@ public final class TaskAttribute { public TaskAttribute getMappedAttribute(String attributeId) { Assert.isNotNull(attributeId); - return (attributeById != null) ? attributeById.get(getTaskData().getAttributeMapper().mapToRepositoryKey(this, - attributeId)) : null; + return (attributeById != null) + ? attributeById.get(getTaskData().getAttributeMapper().mapToRepositoryKey(this, attributeId)) + : null; } public TaskAttribute getMappedAttribute(String[] path) { @@ -555,7 +570,7 @@ public final class TaskAttribute { * testing whether or not {@link #getValue()} returns an empty string, as it is possible that an empty string value * has been explicitly set for the attribute. Call {@link #clearValues()} to return the attribute to the unset * state. - * + * * @return true if any value is set (may be an empty string), false if no value is set. * @since 3.9 */ @@ -582,7 +597,7 @@ public final class TaskAttribute { /** * Adds an attribute option value - * + * * @param key * The option value used when sending the form to the server * @param value diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttributeMapper.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttributeMapper.java index c73fec783..fae2b654a 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttributeMapper.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttributeMapper.java @@ -39,8 +39,8 @@ public class TaskAttributeMapper { @NonNull public TaskAttribute createTaskAttachment(@NonNull TaskData taskData) { - TaskAttribute taskAttribute = taskData.getRoot().createAttribute( - mapToRepositoryKey(taskData.getRoot(), TaskAttribute.NEW_ATTACHMENT)); + TaskAttribute taskAttribute = taskData.getRoot() + .createAttribute(mapToRepositoryKey(taskData.getRoot(), TaskAttribute.NEW_ATTACHMENT)); // TaskAttachmentMapper mapper = TaskAttachmentMapper.createFrom(taskAttribute); // mapper.setContentType(""); // mapper.setFileName(""); @@ -54,11 +54,11 @@ public class TaskAttributeMapper { if (newAttribute.getValues().equals(oldAttribute.getValues())) { return true; } - // the comment mapping accidentally changed throughout the Mylyn 3.7 cycle therefore some + // the comment mapping accidentally changed throughout the Mylyn 3.7 cycle therefore some // cases need to be considered equal even though attribute values differ if (oldAttribute != null) { TaskAttribute commentIdAttribute = oldAttribute.getAttribute("task.common.comment.id"); //$NON-NLS-1$ - // ID not present + // ID not present if ((commentIdAttribute == null || commentIdAttribute.getValue().equals("")) //$NON-NLS-1$ && newAttribute.getValue().equals("")) { //$NON-NLS-1$ return true; diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttributeMetaData.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttributeMetaData.java index 5a52aa36e..e574b9bd2 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttributeMetaData.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskAttributeMetaData.java @@ -115,6 +115,14 @@ public class TaskAttributeMetaData { return taskAttribute.getMetaDatum(TaskAttribute.META_ATTRIBUTE_MEDIA_TYPE); } + /** + * @since 3.17 + * @see TaskAttribute#META_DEPENDS_ON_ATTRIBUTE_ID + */ + public String getDependsOn() { + return taskAttribute.getMetaDatum(TaskAttribute.META_DEPENDS_ON_ATTRIBUTE_ID); + } + public TaskAttributeMetaData putValue(String key, String value) { taskAttribute.putMetaDatum(key, value); return this; @@ -124,7 +132,7 @@ public class TaskAttributeMetaData { * The default option property is not used. Connectors are expected to set default values in * {@link AbstractTaskDataHandler#initializeTaskData(org.eclipse.mylyn.tasks.core.TaskRepository, TaskData, org.eclipse.mylyn.tasks.core.ITaskMapping, org.eclipse.core.runtime.IProgressMonitor)} * . - * + * * @deprecated Not used, set default value in * {@link AbstractTaskDataHandler#initializeTaskData(org.eclipse.mylyn.tasks.core.TaskRepository, TaskData, org.eclipse.mylyn.tasks.core.ITaskMapping, org.eclipse.core.runtime.IProgressMonitor)} * instead. @@ -146,7 +154,7 @@ public class TaskAttributeMetaData { // taskAttribute.removeMetaDatum(TaskAttribute.META_DETAIL_LEVEL); // } // return this; -// } +// } public TaskAttributeMetaData setKind(String value) { if (value != null) { @@ -214,4 +222,14 @@ public class TaskAttributeMetaData { return this; } + /** + * @since 3.17 + * @see TaskAttribute#META_DEPENDS_ON_ATTRIBUTE_ID + * @return this + */ + public TaskAttributeMetaData setDependsOn(String value) { + taskAttribute.putMetaDatum(TaskAttribute.META_DEPENDS_ON_ATTRIBUTE_ID, value); + return this; + } + } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskDataModel.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskDataModel.java index 5202887b8..69ced64ed 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskDataModel.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskDataModel.java @@ -66,7 +66,7 @@ public class TaskDataModel { /** * Invoke upon change to attribute value. - * + * * @param attribute * changed attribute */ @@ -77,14 +77,15 @@ public class TaskDataModel { } unsavedChangedAttributes.add(attribute); - if (this.listeners != null) { final TaskDataModelEvent event = new TaskDataModelEvent(this, EventKind.CHANGED, attribute); TaskDataModelListener[] listeners = this.listeners.toArray(new TaskDataModelListener[0]); + for (final TaskDataModelListener listener : listeners) { SafeRunner.run(new ISafeRunnable() { public void handleException(Throwable e) { - StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, "Listener failed", e)); //$NON-NLS-1$ + StatusHandler + .log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, "Listener failed", e)); //$NON-NLS-1$ } public void run() throws Exception { @@ -97,7 +98,7 @@ public class TaskDataModel { /** * Returns the instance of <code>taskAttribute</code> that the user last read. - * + * * @param taskAttribute * the attribute * @return the last read state; null, if <code>taskAttribute</code> has never been read @@ -181,7 +182,8 @@ public class TaskDataModel { for (final TaskDataModelListener listener : listeners) { SafeRunner.run(new ISafeRunnable() { public void handleException(Throwable e) { - StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, "Listener failed", e)); //$NON-NLS-1$ + StatusHandler + .log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, "Listener failed", e)); //$NON-NLS-1$ } public void run() throws Exception { diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskDataModelListener.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskDataModelListener.java index 95f6c955f..74a6f2402 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskDataModelListener.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskDataModelListener.java @@ -28,5 +28,4 @@ public abstract class TaskDataModelListener { */ public void modelRefreshed() { } - } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java index 9c1a50bd5..6d353e633 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java @@ -45,7 +45,7 @@ public abstract class AbstractAttributeEditor { /** * The key used to associate the editor control with the corresponding task attribute. This enables lookup of the * model element from the widget hierarchy. - * + * * @since 3.5 * @see Control#getData(String) * @see #getControl() @@ -85,6 +85,16 @@ public abstract class AbstractAttributeEditor { } finally { refreshInProgress = false; } + String changedAttribute = event.getTaskAttribute().getId(); + for (TaskAttribute taskAttribute : event.getTaskAttribute() + .getTaskData() + .getRoot() + .getAttributes() + .values()) { + if (changedAttribute.equals(taskAttribute.getMetaData().getDependsOn())) { + event.getModel().attributeChanged(taskAttribute); + } + } } } }; @@ -342,7 +352,7 @@ public abstract class AbstractAttributeEditor { * <code>UnsupportedOperationException</code>. * <p> * Subclasses should overwrite this method. - * + * * @since 3.1 * @throws UnsupportedOperationException * if this method is not supported by the editor @@ -354,7 +364,7 @@ public abstract class AbstractAttributeEditor { /** * Subclasses that implement refresh should override this method to return true, so that they will be automatically * refreshed when the model changes. - * + * * @return whether the editor should be automatically refreshed when the model changes * @since 3.6 */ diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java index 917677e4d..f1e2558b2 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java @@ -150,14 +150,14 @@ import org.eclipse.ui.views.contentoutline.IContentOutlinePage; /** * Extend to provide a task editor page. - * + * * @author Mik Kersten * @author Rob Elves * @author Steffen Pingel * @since 3.0 */ -public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISelectionProvider, - ISelectionChangedListener { +public abstract class AbstractTaskEditorPage extends TaskFormPage + implements ISelectionProvider, ISelectionChangedListener { /** * Causes the form page to reflow on resize. @@ -225,8 +225,8 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe TaskMigrator migrator = new TaskMigrator(oldTask); migrator.setDelete(true); migrator.setEditor(getTaskEditor()); - migrator.setMigrateDueDate(!connector.hasRepositoryDueDate(getTaskRepository(), - newTask, taskData)); + migrator.setMigrateDueDate( + !connector.hasRepositoryDueDate(getTaskRepository(), newTask, taskData)); migrator.execute(newTask); } if (expandLastComment) { @@ -319,11 +319,11 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe } else { getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Task_has_incoming_changes, IMessageProvider.WARNING, new HyperlinkAdapter() { - @Override - public void linkActivated(HyperlinkEvent e) { - AbstractTaskEditorPage.this.refresh(); - } - }); + @Override + public void linkActivated(HyperlinkEvent e) { + AbstractTaskEditorPage.this.refresh(); + } + }); setSubmitEnabled(false); } } @@ -664,11 +664,11 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe getTaskEditor().setMessage( Messages.AbstractTaskEditorPage_Synchronize_to_update_editor_contents, IMessageProvider.INFORMATION, new HyperlinkAdapter() { - @Override - public void linkActivated(HyperlinkEvent e) { - AbstractTaskEditorPage.this.refresh(); - } - }); + @Override + public void linkActivated(HyperlinkEvent e) { + AbstractTaskEditorPage.this.refresh(); + } + }); } }); } @@ -719,7 +719,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe attributeEditorToolkit.dispose(); } - // start life-cycle of previous editor controls + // start life-cycle of previous editor controls if (attributeEditorFactory == null) { attributeEditorFactory = createAttributeEditorFactory(); Assert.isNotNull(attributeEditorFactory); @@ -749,6 +749,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe } TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(taskDataState.getConnectorKind(), taskDataState.getRepositoryUrl()); + return new TaskDataModel(taskRepository, input.getTask(), taskDataState); } @@ -853,7 +854,8 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe } - private void createParts(String path, final Composite parent, final Collection<TaskEditorPartDescriptor> descriptors) { + private void createParts(String path, final Composite parent, + final Collection<TaskEditorPartDescriptor> descriptors) { for (Iterator<TaskEditorPartDescriptor> it = descriptors.iterator(); it.hasNext();) { final TaskEditorPartDescriptor descriptor = it.next(); if (path == null || path.equals(descriptor.getPath())) { @@ -1217,7 +1219,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe * Invoked after task submission has completed. This method is invoked on the UI thread in all cases whether * submission was successful, canceled or failed. The value returned by <code>event.getJob().getStatus()</code> * indicates the result of the submit job. Sub-classes may override but are encouraged to invoke the super method. - * + * * @since 3.2 * @see SubmitJob */ @@ -1358,7 +1360,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Subclasses may override to disable the task editor find functionality. - * + * * @since 3.11 */ protected void createFindSupport() { @@ -1406,7 +1408,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Updates the editor contents in place. - * + * * @deprecated Use {@link #refresh()} instead */ @Deprecated @@ -1507,7 +1509,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe * <p> * Clients may override. * </p> - * + * * @param control * the control to register the listener for */ @@ -1540,7 +1542,8 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe ISelection selection = event.getSelection(); if (selection instanceof TextSelection) { // only update global actions - ((TaskEditorActionContributor) getEditorSite().getActionBarContributor()).updateSelectableActions(event.getSelection()); + ((TaskEditorActionContributor) getEditorSite().getActionBarContributor()) + .updateSelectableActions(event.getSelection()); return; } if (selection.isEmpty()) { @@ -1648,7 +1651,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Returns true, if the page has an always visible footer. - * + * * @see #setNeedsFooter(boolean) */ private boolean needsFooter() { @@ -1657,7 +1660,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Specifies that the page should provide an always visible footer. This flag is not set by default. - * + * * @see #createFooterContent(Composite) * @see #needsFooter() */ @@ -1684,7 +1687,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Returns true, if the page supports a submit operation. - * + * * @since 3.2 * @see #setNeedsSubmit(boolean) */ @@ -1694,7 +1697,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Specifies that the page supports the submit operation. This flag is set to true by default. - * + * * @since 3.2 * @see #needsSubmit() * @see #doSubmit() @@ -1705,7 +1708,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Returns true, if the page provides a submit button. - * + * * @since 3.2 * @see #setNeedsSubmitButton(boolean) */ @@ -1715,7 +1718,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Specifies that the page supports submitting. This flag is set to false by default. - * + * * @since 3.2 * @see #needsSubmitButton() */ @@ -1725,7 +1728,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Returns true, if the page provides a submit button. - * + * * @since 3.2 * @see #setNeedsPrivateSection(boolean) */ @@ -1735,7 +1738,7 @@ public abstract class AbstractTaskEditorPage extends TaskFormPage implements ISe /** * Specifies that the page should provide the private section. This flag is not set by default. - * + * * @since 3.2 * @see #needsPrivateSection() */ |