summaryrefslogtreecommitdiffstats
path: root/compatibility-themes
diff options
context:
space:
mode:
authorMirjan Merruko <mirjan@vaadin.com>2017-03-24 13:33:37 +0200
committerHenri Sara <henri.sara@gmail.com>2017-04-25 15:01:06 +0300
commit9a6ebeb5a80bdb1d97d47422c62a973b3f2d2cf9 (patch)
tree20b1c09d6c2e6319cba036f9ecf409893c4b6c56 /compatibility-themes
parentd0a8608c7e074d4baeef0282146b2da5c47603a5 (diff)
downloadvaadin-framework-9a6ebeb5a80bdb1d97d47422c62a973b3f2d2cf9.tar.gz
vaadin-framework-9a6ebeb5a80bdb1d97d47422c62a973b3f2d2cf9.zip
Add OSGi support #8830 #8827 #8828 #8829
Use bnd-maven-plugin instead of maven-bundle-plugin and helper class, and add support for publishing static resources such as themes and widgetsets.
Diffstat (limited to 'compatibility-themes')
-rw-r--r--compatibility-themes/bnd.bnd6
-rw-r--r--compatibility-themes/pom.xml56
-rw-r--r--compatibility-themes/src/main/java/com/vaadin/osgi/compatibility/themes/LegacyThemeContributions.java49
3 files changed, 66 insertions, 45 deletions
diff --git a/compatibility-themes/bnd.bnd b/compatibility-themes/bnd.bnd
new file mode 100644
index 0000000000..ee3e21796b
--- /dev/null
+++ b/compatibility-themes/bnd.bnd
@@ -0,0 +1,6 @@
+Bundle-SymbolicName: ${project.groupId}.compatibility.themes
+Bundle-Name: Vaadin Compatibility Themes
+Bundle-Version: ${osgi.bundle.version}
+Import-Package: com.vaadin*;version='[${osgi.bundle.version},${osgi.bundle.version}]',\
+ *
+Export-Package: com.vaadin.osgi.compatibility.themes;-noimport:=true
diff --git a/compatibility-themes/pom.xml b/compatibility-themes/pom.xml
index d510c9c262..e2bebf42fc 100644
--- a/compatibility-themes/pom.xml
+++ b/compatibility-themes/pom.xml
@@ -51,6 +51,15 @@
<artifactId>commons-io</artifactId>
<scope>provided</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.cmpn</artifactId>
+ </dependency>
</dependencies>
<build>
@@ -223,29 +232,6 @@
</arguments>
</configuration>
</execution>
- <execution>
- <id>generate-export-package</id>
- <phase>package</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <classpathScope>compile</classpathScope>
- <executable>${java.home}/bin/java</executable>
- <arguments>
- <argument>-Dvaadin.version=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</argument>
- <argument>-DincludeNumberPackages=0</argument>
-
- <argument>-classpath</argument>
- <classpath />
-
- <argument>com.vaadin.buildhelpers.GeneratePackageExports</argument>
-
- <argument>${project.build.directory}/${project.build.finalName}.${project.packaging}</argument>
- <argument>VAADIN/themes</argument>
- </arguments>
- </configuration>
- </execution>
</executions>
</plugin>
@@ -281,29 +267,9 @@
</plugin>
<plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Bundle-Version>${osgi.bundle.version}</Bundle-Version>
- <Bundle-RequiredExecutionEnvironment>${osgi.execution.environment}</Bundle-RequiredExecutionEnvironment>
- <!-- Export package is handled in exec plugin -->
- <Export-Package></Export-Package>
- <Import-Package></Import-Package>
- </instructions>
- </configuration>
- <executions>
- <execution>
- <id>bundle-manifest</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>manifest</goal>
- </goals>
- </execution>
- </executions>
+ <groupId>biz.aQute.bnd</groupId>
+ <artifactId>bnd-maven-plugin</artifactId>
</plugin>
-
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
diff --git a/compatibility-themes/src/main/java/com/vaadin/osgi/compatibility/themes/LegacyThemeContributions.java b/compatibility-themes/src/main/java/com/vaadin/osgi/compatibility/themes/LegacyThemeContributions.java
new file mode 100644
index 0000000000..dd1b933bb9
--- /dev/null
+++ b/compatibility-themes/src/main/java/com/vaadin/osgi/compatibility/themes/LegacyThemeContributions.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.osgi.compatibility.themes;
+
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.http.HttpService;
+
+import com.vaadin.osgi.resources.OSGiVaadinResources;
+import com.vaadin.osgi.resources.VaadinResourceService;
+
+@Component(immediate = true)
+public class LegacyThemeContributions {
+ private static final String[] LEGACY_THEMES = { "base", "chameleon",
+ "reindeer", "runo" };
+
+ private HttpService httpService;
+
+ @Activate
+ void startup() throws Exception {
+ VaadinResourceService service = OSGiVaadinResources.getService();
+ for (String themeName : LEGACY_THEMES) {
+ service.publishTheme(themeName, httpService);
+ }
+ }
+
+ @Reference
+ void setHttpService(HttpService httpService) {
+ this.httpService = httpService;
+ }
+
+ void unsetHttpService(HttpService httpService) {
+ this.httpService = null;
+ }
+}
span>.add(fabric.util.groupSVGElements(objects, options)); canvas.renderAll(); let png = Buffer.from([]); for await (const chunk of canvas.createPNGStream()) { png = Buffer.concat([png, chunk]); } png = await imageminZopfli({more: true})(png); await writeFile(outputFile, png); } async function main() { const gitea = process.argv.slice(2).includes('gitea'); const logoSvg = await readFile(new URL('../assets/logo.svg', import.meta.url), 'utf8'); const faviconSvg = await readFile(new URL('../assets/favicon.svg', import.meta.url), 'utf8'); await Promise.all([ generate(logoSvg, '../public/img/logo.svg', {size: 32}), generate(logoSvg, '../public/img/logo.png', {size: 512}), generate(faviconSvg, '../public/img/favicon.svg', {size: 32}), generate(faviconSvg, '../public/img/favicon.png', {size: 180}), generate(logoSvg, '../public/img/avatar_default.png', {size: 200}), generate(logoSvg, '../public/img/apple-touch-icon.png', {size: 180, bg: true}), gitea && generate(logoSvg, '../public/img/gitea.svg', {size: 32}), ]); } main().then(exit).catch(exit);