Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 332074
Collapse All | Expand All

(-)src/org/eclipse/mylyn/tasks/core/RepositoryTemplate.java (+30 lines)
Lines 74-77 Link Here
74
	public Map<String, String> getAttributes() {
74
	public Map<String, String> getAttributes() {
75
		return this.genericAttributes;
75
		return this.genericAttributes;
76
	}
76
	}
77
78
	@Override
79
	public String toString() {
80
		StringBuilder builder = new StringBuilder();
81
		builder.append("RepositoryTemplate [repositoryUrl="); //$NON-NLS-1$
82
		builder.append(repositoryUrl);
83
		builder.append(", label="); //$NON-NLS-1$
84
		builder.append(label);
85
		builder.append(", addAutomatically="); //$NON-NLS-1$
86
		builder.append(addAutomatically);
87
		builder.append(", anonymous="); //$NON-NLS-1$
88
		builder.append(anonymous);
89
		builder.append(", characterEncoding="); //$NON-NLS-1$
90
		builder.append(characterEncoding);
91
		builder.append(", genericAttributes="); //$NON-NLS-1$
92
		builder.append(genericAttributes);
93
		builder.append(", newAccountUrl="); //$NON-NLS-1$
94
		builder.append(newAccountUrl);
95
		builder.append(", newTaskUrl="); //$NON-NLS-1$
96
		builder.append(newTaskUrl);
97
		builder.append(", taskPrefixUrl="); //$NON-NLS-1$
98
		builder.append(taskPrefixUrl);
99
		builder.append(", taskQueryUrl="); //$NON-NLS-1$
100
		builder.append(taskQueryUrl);
101
		builder.append(", version="); //$NON-NLS-1$
102
		builder.append(version);
103
		builder.append("]"); //$NON-NLS-1$
104
		return builder.toString();
105
	}
106
77
}
107
}
(-)plugin.xml (-2 / +22 lines)
Lines 13-20 Link Here
13
<plugin>
13
<plugin>
14
14
15
   <extension
15
   <extension
16
         id="org.eclipse.mylyn.jira.repository"
17
         name="JIRA Repository"
18
         point="org.eclipse.mylyn.tasks.ui.repositories">
16
         point="org.eclipse.mylyn.tasks.ui.repositories">
19
      <connectorCore
17
      <connectorCore
20
            class="org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector"
18
            class="org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector"
Lines 26-31 Link Here
26
            name="Mock Repository Connector UI">
24
            name="Mock Repository Connector UI">
27
      </connectorUi>
25
      </connectorUi>
28
   </extension>
26
   </extension>
27
   <extension
28
         point="org.eclipse.mylyn.tasks.core.templates">
29
      <repository
30
            addAutomatically="false"
31
            anonymous="true"
32
            characterEncoding="encoding"
33
            label="Mock Repository Template"
34
            repositoryKind="mock"
35
            urlNewAccount="http://mock.test/template/newAccount"
36
            urlNewTask="http://mock.test/template/newTask"
37
            urlRepository="http://mock.test/template"
38
            urlTask="http://mock.test/template/task"
39
            urlTaskQuery="http://mock.test/template/query"
40
            version="1.0">
41
         <attribute
42
               name="genericAttribute"
43
               value="genericValue">
44
         </attribute>
45
      </repository>
46
   </extension>
47
   
48
   
29
   
49
   
30
   <extension
50
   <extension
31
         point="org.eclipse.core.runtime.contentTypes">
51
         point="org.eclipse.core.runtime.contentTypes">
(-)src/org/eclipse/mylyn/tasks/tests/RepositoryTemplateManagerTest.java (+13 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.mylyn.tasks.tests;
12
package org.eclipse.mylyn.tasks.tests;
13
13
14
import java.util.HashMap;
15
import java.util.Map;
16
import java.util.Set;
17
14
import junit.framework.TestCase;
18
import junit.framework.TestCase;
15
19
16
import org.eclipse.mylyn.internal.tasks.core.RepositoryTemplateManager;
20
import org.eclipse.mylyn.internal.tasks.core.RepositoryTemplateManager;
Lines 50-53 Link Here
50
		assertEquals(MockRepositoryConnector.REPOSITORY_URL, template.repositoryUrl);
54
		assertEquals(MockRepositoryConnector.REPOSITORY_URL, template.repositoryUrl);
51
	}
55
	}
52
56
57
	public void testGenericAttributes() {
58
		Set<RepositoryTemplate> templates = manager.getTemplates("mock");
59
		assertEquals("Expected 1 template, got: " + templates.toString(), 1, templates.size());
60
		RepositoryTemplate template = templates.iterator().next();
61
		Map<String, String> expected = new HashMap<String, String>();
62
		assertEquals("Mock Repository Template", template.label);
63
		expected.put("genericAttribute", "genericValue");
64
		assertEquals(expected, template.getAttributes());
65
	}
53
}
66
}
(-)src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java (-14 / +22 lines)
Lines 30-35 Link Here
30
import org.eclipse.jface.resource.ImageDescriptor;
30
import org.eclipse.jface.resource.ImageDescriptor;
31
import org.eclipse.mylyn.commons.core.StatusHandler;
31
import org.eclipse.mylyn.commons.core.StatusHandler;
32
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
32
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
33
import org.eclipse.mylyn.internal.tasks.core.RepositoryTemplateManager;
33
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
34
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
34
import org.eclipse.mylyn.internal.tasks.core.externalization.TaskListExternalizer;
35
import org.eclipse.mylyn.internal.tasks.core.externalization.TaskListExternalizer;
35
import org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor;
36
import org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor;
Lines 239-256 Link Here
239
			// NOTE: has to be read first, consider improving
240
			// NOTE: has to be read first, consider improving
240
			initConnectorCores(taskListExternalizer, repositoryManager, registry);
241
			initConnectorCores(taskListExternalizer, repositoryManager, registry);
241
242
242
			IExtensionPoint templatesExtensionPoint = registry.getExtensionPoint(EXTENSION_TEMPLATES);
243
			readRepositoryTemplates(registry, TasksUiPlugin.getRepositoryTemplateManager());
243
			IExtension[] templateExtensions = templatesExtensionPoint.getExtensions();
244
			for (IExtension templateExtension : templateExtensions) {
245
				IConfigurationElement[] elements = templateExtension.getConfigurationElements();
246
				for (IConfigurationElement element : elements) {
247
					if (!isDisabled(element)) {
248
						if (element.getName().equals(EXTENSION_TMPL_REPOSITORY)) {
249
							readRepositoryTemplate(element);
250
						}
251
					}
252
				}
253
			}
254
244
255
			IExtensionPoint presentationsExtensionPoint = registry.getExtensionPoint(EXTENSION_PRESENTATIONS);
245
			IExtensionPoint presentationsExtensionPoint = registry.getExtensionPoint(EXTENSION_PRESENTATIONS);
256
			IExtension[] presentations = presentationsExtensionPoint.getExtensions();
246
			IExtension[] presentations = presentationsExtensionPoint.getExtensions();
Lines 281-286 Link Here
281
		}
271
		}
282
	}
272
	}
283
273
274
	/*
275
	 * Public for testing.
276
	 */
277
	public static void readRepositoryTemplates(IExtensionRegistry registry, RepositoryTemplateManager manager) {
278
		IExtensionPoint templatesExtensionPoint = registry.getExtensionPoint(EXTENSION_TEMPLATES);
279
		IExtension[] templateExtensions = templatesExtensionPoint.getExtensions();
280
		for (IExtension templateExtension : templateExtensions) {
281
			IConfigurationElement[] elements = templateExtension.getConfigurationElements();
282
			for (IConfigurationElement element : elements) {
283
				if (!isDisabled(element)) {
284
					if (element.getName().equals(EXTENSION_TMPL_REPOSITORY)) {
285
						readRepositoryTemplate(element, manager);
286
					}
287
				}
288
			}
289
		}
290
	}
291
284
	private static void initConnectorCores(TaskListExternalizer taskListExternalizer,
292
	private static void initConnectorCores(TaskListExternalizer taskListExternalizer,
285
			TaskRepositoryManager repositoryManager, IExtensionRegistry registry) {
293
			TaskRepositoryManager repositoryManager, IExtensionRegistry registry) {
286
		List<ConnectorDescriptor> descriptors = new ArrayList<ConnectorDescriptor>();
294
		List<ConnectorDescriptor> descriptors = new ArrayList<ConnectorDescriptor>();
Lines 576-582 Link Here
576
		}
584
		}
577
	}
585
	}
578
586
579
	private static void readRepositoryTemplate(IConfigurationElement element) {
587
	private static void readRepositoryTemplate(IConfigurationElement element, RepositoryTemplateManager manager) {
580
		boolean anonymous = false;
588
		boolean anonymous = false;
581
		boolean addAuto = false;
589
		boolean addAuto = false;
582
590
Lines 596-602 Link Here
596
				&& TasksUi.getRepositoryManager().getRepositoryConnector(repKind) != null) {
604
				&& TasksUi.getRepositoryManager().getRepositoryConnector(repKind) != null) {
597
			RepositoryTemplate template = new RepositoryTemplate(label, serverUrl, encoding, version, newTaskUrl,
605
			RepositoryTemplate template = new RepositoryTemplate(label, serverUrl, encoding, version, newTaskUrl,
598
					taskPrefix, taskQueryUrl, newAccountUrl, anonymous, addAuto);
606
					taskPrefix, taskQueryUrl, newAccountUrl, anonymous, addAuto);
599
			TasksUiPlugin.getRepositoryTemplateManager().addTemplate(repKind, template);
607
			manager.addTemplate(repKind, template);
600
608
601
			for (IConfigurationElement configElement : element.getChildren()) {
609
			for (IConfigurationElement configElement : element.getChildren()) {
602
				String name = configElement.getAttribute("name"); //$NON-NLS-1$
610
				String name = configElement.getAttribute("name"); //$NON-NLS-1$

Return to bug 332074