Browse Source

Always include default widget set files in OSGi manifest (#16993)

Change-Id: Ib1fc01ced602d3434a0ad63725601237a0def4d1
tags/7.5.0.alpha1
Artur Signell 9 years ago
parent
commit
6e6dd6ff0d

+ 11
- 4
buildhelpers/src/com/vaadin/buildhelpers/GeneratePackageExports.java View File

System.err System.err
.println("Invalid number of parameters\n" .println("Invalid number of parameters\n"
+ "Usage: java -cp .. GenerateManifest <package.jar> <accepted package prefixes>\n" + "Usage: java -cp .. GenerateManifest <package.jar> <accepted package prefixes>\n"
+ "Use -Dvaadin.version to specify the version to be used for the packages");
+ "Use -Dvaadin.version to specify the version to be used for the packages\n"
+ "Use -DincludeNumberPackages=1 to include package names which start with a number (not 100% OSGi compatible)");
System.exit(1); System.exit(1);
} }


acceptedPackagePrefixes.add(args[i]); acceptedPackagePrefixes.add(args[i]);
} }


boolean includeNumberPackages = false;
if ("1".equals(System.getProperty("includeNumberPackages"))) {
includeNumberPackages = true;
}

// List the included Java packages // List the included Java packages
HashSet<String> packages = getPackages(jar, acceptedPackagePrefixes);
HashSet<String> packages = getPackages(jar, acceptedPackagePrefixes,
includeNumberPackages);


// Avoid writing empty Export-Package attribute // Avoid writing empty Export-Package attribute
if (packages.isEmpty()) { if (packages.isEmpty()) {
} }


private static HashSet<String> getPackages(JarFile jar, private static HashSet<String> getPackages(JarFile jar,
List<String> acceptedPackagePrefixes) {
List<String> acceptedPackagePrefixes, boolean includeNumberPackages) {
HashSet<String> packages = new HashSet<String>(); HashSet<String> packages = new HashSet<String>();


Pattern startsWithNumber = Pattern.compile("\\.\\d"); Pattern startsWithNumber = Pattern.compile("\\.\\d");
String pkg = entry.getName().substring(0, lastSlash) String pkg = entry.getName().substring(0, lastSlash)
.replace('/', '.'); .replace('/', '.');


if (startsWithNumber.matcher(pkg).find()) {
if (!includeNumberPackages && startsWithNumber.matcher(pkg).find()) {
continue; continue;
} }



+ 1
- 0
client-compiled/build.xml View File

<target name="jar" depends="default-widgetset"> <target name="jar" depends="default-widgetset">
<antcall target="common.jar"> <antcall target="common.jar">
<param name="osgi.extra.package.prefixes" value="VAADIN/widgetsets/" /> <param name="osgi.extra.package.prefixes" value="VAADIN/widgetsets/" />
<param name="osgi.includeNumberPackages" value="1" />
<reference torefid="extra.jar.includes" refid="jar.includes" /> <reference torefid="extra.jar.includes" refid="jar.includes" />
</antcall> </antcall>
</target> </target>

+ 3
- 1
common.xml View File

<param name="bundle-name" value="${module.name}" /> <param name="bundle-name" value="${module.name}" />
<param name="bundle-symbolic" value="${module.symbolic}" /> <param name="bundle-symbolic" value="${module.symbolic}" />
<param name="bundle-vendor" value="${vaadin.vendor}" /> <param name="bundle-vendor" value="${vaadin.vendor}" />
<param name="includeNumberPackages" value="${osgi.includeNumberPackages}" />
</antcall> </antcall>


</target> </target>
<fail unless="bundle-symbolic" message="No bundle-symbolic parameter given" /> <fail unless="bundle-symbolic" message="No bundle-symbolic parameter given" />
<fail unless="bundle-version" message="No bundle-version parameter given" /> <fail unless="bundle-version" message="No bundle-version parameter given" />
<fail unless="bundle-vendor" message="No bundle-vendor parameter given" /> <fail unless="bundle-vendor" message="No bundle-vendor parameter given" />
<fail unless="includeNumberPackages" message="No includeNumberPackages parameter given" />
<property name="bundle-manifestversion" value="2" /> <property name="bundle-manifestversion" value="2" />


<jar file="${jar}" update="true"> <jar file="${jar}" update="true">
<arg line="com/vaadin com/google ${osgi.extra.package.prefixes}" /> <arg line="com/vaadin com/google ${osgi.extra.package.prefixes}" />
<classpath refid="buildhelpers.classpath" /> <classpath refid="buildhelpers.classpath" />
<jvmarg value="-Dvaadin.version=${vaadin.version}" /> <jvmarg value="-Dvaadin.version=${vaadin.version}" />
<jvmarg value="-DincludeNumberPackages=${includeNumberPackages}" />
</java> </java>
</target> </target>



Loading…
Cancel
Save