platform/org.ossmeter.platform/lib
File was removed.
platform/org.ossmeter.platform/lib/mapdb-0.9-20130314.081924-57.jar
File was removed.
platform/org.ossmeter.platform/src/org/ossmeter/platform/ExtensionMetricProviderManager.java
File was removed.
platform/org.ossmeter.platform/src/org/ossmeter/platform/delta/bugtrackingsystem/ExtensionPointBugTrackingSystemManager.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/delta/bugtrackingsystem/PlatformBugTrackingSystemManager.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/delta/communicationchannel/ExtensionPointCommunicationChannelManager.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/delta/communicationchannel/PlatformCommunicationChannelManager.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/delta/vcs/ExtensionPointVcsManager.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/delta/vcs/PlatformVcsManager.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/MetricHistoryManager.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/MetricProviderContext.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/Platform.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/src/org/ossmeter/platform/SimpleMetricProviderScheduler.java Diff Switch to side-by-side view

platform/org.ossmeter.platform/schema/org.ossmeter.platform.metricprovider.rascal.exsd to platform/org.ossmeter.platform/schema/org.ossmeter.platform.metricprovider.exsd
--- a/platform/org.ossmeter.platform/schema/org.ossmeter.platform.metricprovider.rascal.exsd +++ b/platform/org.ossmeter.platform/schema/org.ossmeter.platform.metricprovider.exsd @@ -3,7 +3,7 @@ <schema targetNamespace="org.ossmeter.platform" xmlns="http://www.w3.org/2001/XMLSchema"> <annotation> <appinfo> - <meta.schema plugin="org.ossmeter.platform" id="org.ossmeter.platform.metricprovider.rascal" name="Rascal Metric Provider"/> + <meta.schema plugin="org.ossmeter.platform" id="org.ossmeter.platform.metricprovider" name="metricProvider"/> </appinfo> <documentation> [Enter description of this extension point.] @@ -18,7 +18,7 @@ </annotation> <complexType> <sequence> - <element ref="rascalMetricProvider" minOccurs="1" maxOccurs="unbounded"/> + <element ref="metricProvider" minOccurs="1" maxOccurs="unbounded"/> </sequence> <attribute name="point" type="string" use="required"> <annotation> @@ -47,20 +47,16 @@ </complexType> </element> - <element name="rascalMetricProvider"> + <element name="metricProvider"> <complexType> - <attribute name="rascalUri" type="string" use="required"> + <attribute name="provider" type="string" use="required"> <annotation> <documentation> - The Rascal function. Format is "rascal://ModuleName/functionName". + The metrics provider. </documentation> - </annotation> - </attribute> - <attribute name="isHistoric" type="boolean" use="required"> - <annotation> - <documentation> - - </documentation> + <appinfo> + <meta.attribute kind="java" basedOn=":org.ossmeter.platform.IMetricProvider"/> + </appinfo> </annotation> </attribute> </complexType>
platform/org.ossmeter.platform/schema/org.ossmeter.repository.metricprovider.exsd to platform/org.ossmeter.platform/schema/org.ossmeter.platform.managers.vcs.exsd
--- a/platform/org.ossmeter.platform/schema/org.ossmeter.repository.metricprovider.exsd +++ b/platform/org.ossmeter.platform/schema/org.ossmeter.platform.managers.vcs.exsd @@ -1,9 +1,9 @@ <?xml version='1.0' encoding='UTF-8'?> <!-- Schema file written by PDE --> -<schema targetNamespace="org.ossmeter.repository" xmlns="http://www.w3.org/2001/XMLSchema"> +<schema targetNamespace="org.ossmeter.platform" xmlns="http://www.w3.org/2001/XMLSchema"> <annotation> <appinfo> - <meta.schema plugin="org.ossmeter.repository" id="org.ossmeter.repository.metricprovider" name="metricProvider"/> + <meta.schema plugin="org.ossmeter.platform" id="org.ossmeter.platform.managers.vcs" name="vcsmanager"/> </appinfo> <documentation> [Enter description of this extension point.] @@ -18,7 +18,7 @@ </annotation> <complexType> <sequence> - <element ref="metricProvider" minOccurs="1" maxOccurs="unbounded"/> + <element ref="vcsManager" minOccurs="1" maxOccurs="unbounded"/> </sequence> <attribute name="point" type="string" use="required"> <annotation> @@ -47,15 +47,15 @@ </complexType> </element> - <element name="metricProvider"> + <element name="vcsManager"> <complexType> - <attribute name="provider" type="string" use="required"> + <attribute name="manager" type="string" use="required"> <annotation> <documentation> The metrics provider. </documentation> <appinfo> - <meta.attribute kind="java" basedOn=":org.ossmeter.repository.MetricsProvider"/> + <meta.attribute kind="java" basedOn="org.ossmeter.repository.vcs.model.AbstractVcsManager:"/> </appinfo> </annotation> </attribute>
platform/org.ossmeter.platform/schema/org.ossmeter.repository.vcsmanager.exsd to platform/org.ossmeter.platform/src/org/ossmeter/platform/ExtensionPointMetricProviderManager.java
--- a/platform/org.ossmeter.platform/schema/org.ossmeter.repository.vcsmanager.exsd +++ b/platform/org.ossmeter.platform/src/org/ossmeter/platform/ExtensionPointMetricProviderManager.java @@ -1,102 +1,54 @@ -<?xml version='1.0' encoding='UTF-8'?> -<!-- Schema file written by PDE --> -<schema targetNamespace="org.ossmeter.repository" xmlns="http://www.w3.org/2001/XMLSchema"> -<annotation> - <appinfo> - <meta.schema plugin="org.ossmeter.repository" id="org.ossmeter.repository.metricprovider" name="metricProvider"/> - </appinfo> - <documentation> - [Enter description of this extension point.] - </documentation> - </annotation> +package org.ossmeter.platform; - <element name="extension"> - <annotation> - <appinfo> - <meta.element /> - </appinfo> - </annotation> - <complexType> - <sequence> - <element ref="vcsManager" minOccurs="1" maxOccurs="unbounded"/> - </sequence> - <attribute name="point" type="string" use="required"> - <annotation> - <documentation> - - </documentation> - </annotation> - </attribute> - <attribute name="id" type="string"> - <annotation> - <documentation> - - </documentation> - </annotation> - </attribute> - <attribute name="name" type="string"> - <annotation> - <documentation> - - </documentation> - <appinfo> - <meta.attribute translatable="true"/> - </appinfo> - </annotation> - </attribute> - </complexType> - </element> +import java.util.ArrayList; +import java.util.List; - <element name="vcsManager"> - <complexType> - <attribute name="manager" type="string" use="required"> - <annotation> - <documentation> - The metrics provider. - </documentation> - <appinfo> - <meta.attribute kind="java" basedOn="org.ossmeter.repository.vcs.model.AbstractVcsManager:"/> - </appinfo> - </annotation> - </attribute> - </complexType> - </element> +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.ossmeter.platform.util.ExtensionPointHelper; - <annotation> - <appinfo> - <meta.section type="since"/> - </appinfo> - <documentation> - [Enter the first release in which this extension point appears.] - </documentation> - </annotation> +import com.googlecode.pongo.runtime.PongoCollection; - <annotation> - <appinfo> - <meta.section type="examples"/> - </appinfo> - <documentation> - [Enter extension point usage example here.] - </documentation> - </annotation> +public class ExtensionPointMetricProviderManager implements IMetricProviderManager { + + protected List<IMetricProvider> metricProviders; + protected final String metricProviderExtensionPointId = "org.ossmeter.platform.metricprovider"; + protected final String metricProviderManagerExtensionPointId = "org.ossmeter.platform.managers.metricprovider"; - <annotation> - <appinfo> - <meta.section type="apiinfo"/> - </appinfo> - <documentation> - [Enter API information here.] - </documentation> - </annotation> - - <annotation> - <appinfo> - <meta.section type="implementation"/> - </appinfo> - <documentation> - [Enter information about supplied implementation of this extension point.] - </documentation> - </annotation> - - -</schema> + protected List<? extends PongoCollection> metricCollections = null; + + public List<IMetricProvider> getMetricProviders() { + if (metricProviders == null) { // TODO: This needs some better logic. This will not pick up any MPs added during runtime. + metricProviders = new ArrayList<IMetricProvider>(); + + // Load the standard MP extensions + for(IConfigurationElement configurationElement : ExtensionPointHelper.getConfigurationElementsForExtensionPoint(metricProviderExtensionPointId)){ + try { + metricProviders.add((IMetricProvider) configurationElement.createExecutableExtension("provider")); + } catch (CoreException e) { + e.printStackTrace(); + } + } + + // Load extension points via custom managers + System.err.println("Custom Extension Point managers: "); + for(IConfigurationElement configurationElement : ExtensionPointHelper.getConfigurationElementsForExtensionPoint(metricProviderManagerExtensionPointId)){ + try { + IMetricProviderManager impm = (IMetricProviderManager) configurationElement.createExecutableExtension("manager"); + System.err.println("\t" + impm.getClass().toString()); + + //metricProviders.addAll(impm.getMetricProviders()); // FIXME: Commented out whilst determining how to properly resolve rascal URIs + } catch (CoreException e) { + e.printStackTrace(); + } + } + } + + System.err.println("Registered metric providers: "); + for (IMetricProvider imp : metricProviders) { + System.err.println("\t"+ imp.getIdentifier()); + } + + return metricProviders; + } +}