Skip to content

Commit

Permalink
Add support for higher DS versions
Browse files Browse the repository at this point in the history
Currently PDE only declares versions up to DS 1.3 in the model but there
are already 1.4/1.5 out.

Even though not all features are supported we should allow the user to
select a higher version (e.g. to use with Tycho) and to make them aware
other versions exits and might can need some improvements/contributions.
  • Loading branch information
laeubi committed Nov 20, 2023
1 parent 4e501d6 commit c8a2484
Show file tree
Hide file tree
Showing 13 changed files with 274 additions and 0 deletions.
7 changes: 7 additions & 0 deletions ds/org.eclipse.pde.ds.tck/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17" />
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="tck/OSGI-INF/impl-src"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
33 changes: 33 additions & 0 deletions ds/org.eclipse.pde.ds.tck/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.eclipse.pde.ds.tck</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ds.core.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
dsVersion=V1_5
eclipse.preferences.version=1
enabled=true
generateBundleActivationPolicyLazy=true
path=OSGI-INF
validationErrorLevel=error
validationErrorLevel.missingImplicitUnbindMethod=error
51 changes: 51 additions & 0 deletions ds/org.eclipse.pde.ds.tck/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Component XML TCK
Bundle-SymbolicName: org.eclipse.pde.ds.tck
Bundle-Version: 1.0.0.qualifier
Import-Package: org.osgi.framework,
org.osgi.service.component,
org.osgi.service.component.propertytypes,
org.osgi.service.log
Service-Component: OSGI-INF/org.osgi.impl.bundle.component.annotations.HelloWorld10.xml,
OSGI-INF/testActivationFields.xml,
OSGI-INF/testComponentPropertyTypes.xml,
OSGI-INF/testComponentReferences.xml,
OSGI-INF/testConfigPid.xml,
OSGI-INF/testConfigPidMultiple.xml,
OSGI-INF/testConfigPolicyIgnore.xml,
OSGI-INF/testConfigPolicyOptional.xml,
OSGI-INF/testConfigPolicyRequire.xml,
OSGI-INF/testConstructorInjection.xml,
OSGI-INF/testDelayed.xml,
OSGI-INF/testDisabled.xml,
OSGI-INF/testEnabled.xml,
OSGI-INF/testFactory.xml,
OSGI-INF/testFactoryProperties.xml,
OSGI-INF/testFieldReferences.xml,
OSGI-INF/testHelloWorld11.xml,
OSGI-INF/testHelloWorld12.xml,
OSGI-INF/testHelloWorld13.xml,
OSGI-INF/testHelloWorld14.xml,
OSGI-INF/testImmediate.xml,
OSGI-INF/testLoggerComponent.xml,
OSGI-INF/testNameMapping.xml,
OSGI-INF/testNoInheritService.xml,
OSGI-INF/testNoService.xml,
OSGI-INF/testNoServiceFactory.xml,
OSGI-INF/testProperties.xml,
OSGI-INF/testPropertyOrdering.xml,
OSGI-INF/testPropertyOrdering14.xml,
OSGI-INF/testReferenceNames.xml,
OSGI-INF/testReferenceScopes.xml,
OSGI-INF/testReferenceService.xml,
OSGI-INF/testReferences.xml,
OSGI-INF/testService.xml,
OSGI-INF/testServiceBundle.xml,
OSGI-INF/testServiceFactory.xml,
OSGI-INF/testServicePrototype.xml,
OSGI-INF/testServiceSingleton.xml
Bundle-Vendor: Eclipse.org
Automatic-Module-Name: org.eclipse.pde.ds.tck
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-17
1 change: 1 addition & 0 deletions ds/org.eclipse.pde.ds.tck/OSGI-INF/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/*.xml
1 change: 1 addition & 0 deletions ds/org.eclipse.pde.ds.tck/OSGI-INF/vendor.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
## FIXME this is just a dummy file to account for https://github.com/osgi/osgi/issues/635
5 changes: 5 additions & 0 deletions ds/org.eclipse.pde.ds.tck/build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source.. = tck/OSGI-INF/impl-src
output.. = target/classes
bin.includes = META-INF/,\
.,\
OSGI-INF/
144 changes: 144 additions & 0 deletions ds/org.eclipse.pde.ds.tck/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.eclipse.pde</groupId>
<artifactId>eclipse.pde</artifactId>
<version>4.30.0-SNAPSHOT</version>
<relativePath>../../</relativePath>
</parent>
<artifactId>org.eclipse.pde.ds.tck</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>

<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<dependency-resolution>
<extraRequirements>
<requirement>
<type>eclipse-plugin</type>
<id>org.osgi.service.component.annotations</id>
<versionRange>[1.5, 1.6)</versionRange>
</requirement>
<requirement>
<type>eclipse-plugin</type>
<id>org.eclipse.pde.ds.annotations</id>
<versionRange>0.0.0</versionRange>
</requirement>
</extraRequirements>
</dependency-resolution>
<filters>
<filter>
<!-- see-https://github.com/eclipse-equinox/equinox/discussions/402 -->
<type>p2-installable-unit</type>
<id>org.eclipse.osgi.services</id>
<removeAll />
</filter>
</filters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-tck-sourcec</id>
<phase>process-resources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeArtifactIds>org.osgi.test.cases.component.annotations</includeArtifactIds>
<outputDirectory>${basedir}/tck</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-eclipse-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>generate-xmls</id>
<goals>
<goal>eclipse-build</goal>
</goals>
<phase>compile</phase>
<configuration>
<local>true</local>
<bundles>
<bundle>org.eclipse.pde.core</bundle>
<bundle>org.eclipse.pde.ds.annotations</bundle>
</bundles>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<executions>
<!-- we don't want tycho to compile that thing -->
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-ds-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<!--we don't want the tycho ds as we want to test PDE DS generator! -->
<execution>
<id>default-declarative-services</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<executions>
<execution>
<id>execute-tck</id>
<goals>
<goal>bnd-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<bundles>
org.osgi.test.cases.component.annotations
</bundles>
<trace>false</trace>
<testerTrace>false</testerTrace>
<printBundles>true</printBundles>
<launchActivationEager>true</launchActivationEager>
<reportDirectory>${project.build.directory}/tck-results</reportDirectory>
<properties>
<org.osgi.test.cases.component.annotations.bundle.symbolic.name>org.eclipse.pde.ds.tck</org.osgi.test.cases.component.annotations.bundle.symbolic.name>
</properties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.test.cases.component.annotations</artifactId>
<version>8.1.0</version>
</dependency>
</dependencies>

</project>
1 change: 1 addition & 0 deletions ds/org.eclipse.pde.ds.tck/tck/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*
9 changes: 9 additions & 0 deletions ds/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,13 @@
<module>org.eclipse.pde.ds.ui</module>
<module>org.eclipse.pde.ds.annotations</module>
</modules>

<profiles>
<profile>
<id>tck</id>
<modules>
<module>org.eclipse.pde.ds.tck</module>
</modules>
</profile>
</profiles>
</project>

0 comments on commit c8a2484

Please sign in to comment.