FELIX-1262: add local Bnd source to apply temporary patches
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@793527 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/src/main/java/aQute/bnd/service/AnalyzerPlugin.java b/bundleplugin/src/main/java/aQute/bnd/service/AnalyzerPlugin.java
new file mode 100644
index 0000000..3efe8ee
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/bnd/service/AnalyzerPlugin.java
@@ -0,0 +1,20 @@
+package aQute.bnd.service;
+
+import aQute.lib.osgi.*;
+
+public interface AnalyzerPlugin {
+
+ /**
+ * This plugin is called after analysis. The plugin is free to modify the
+ * jar and/or change the classpath information (see referred, contained).
+ * This plugin is called after analysis of the JAR but before manifest
+ * generation.
+ *
+ * @param analyzer
+ * @return true if the classpace has been modified so that the bundle
+ * classpath must be reanalyzed
+ * @throws Exception
+ */
+
+ boolean analyzeJar(Analyzer analyzer) throws Exception;
+}
diff --git a/bundleplugin/src/main/java/aQute/bnd/service/MakePlugin.java b/bundleplugin/src/main/java/aQute/bnd/service/MakePlugin.java
new file mode 100644
index 0000000..20a1849
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/bnd/service/MakePlugin.java
@@ -0,0 +1,21 @@
+package aQute.bnd.service;
+
+import java.util.*;
+
+import aQute.lib.osgi.*;
+
+public interface MakePlugin {
+
+ /**
+ * This plugin is called when Include-Resource detects a reference to a resource
+ * that it can not find in the file system.
+ *
+ * @param builder The current builder
+ * @param source The source string (i.e. the place where bnd looked)
+ * @param arguments Any arguments on the clause in Include-Resource
+ * @return A resource or null if no resource could be made
+ * @throws Exception
+ */
+ Resource make(Builder builder, String source, Map<String,String> arguments) throws Exception;
+
+}
diff --git a/bundleplugin/src/main/java/aQute/bnd/service/Plugin.java b/bundleplugin/src/main/java/aQute/bnd/service/Plugin.java
new file mode 100644
index 0000000..065fac8
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/bnd/service/Plugin.java
@@ -0,0 +1,31 @@
+package aQute.bnd.service;
+
+import java.util.*;
+
+import aQute.libg.reporter.*;
+
+/**
+ * An optional interface for plugins. If a plugin implements this interface then
+ * it can receive the reminaing attributes and directives given in its clause as
+ * well as the reporter to use.
+ *
+ */
+public interface Plugin {
+ /**
+ * Give the plugin the remaining properties.
+ *
+ * When a plugin is declared, the clause can contain extra properties.
+ * All the properties and directives are given to the plugin to use.
+ *
+ * @param map attributes and directives for this plugin's clause
+ */
+ void setProperties(Map<String,String> map);
+
+ /**
+ * Set the current reporter. This is called at init time. This plugin
+ * should report all errors and warnings to this reporter.
+ *
+ * @param processor
+ */
+ void setReporter(Reporter processor);
+}
diff --git a/bundleplugin/src/main/java/aQute/bnd/service/Refreshable.java b/bundleplugin/src/main/java/aQute/bnd/service/Refreshable.java
new file mode 100644
index 0000000..e5e62e9
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/bnd/service/Refreshable.java
@@ -0,0 +1,8 @@
+package aQute.bnd.service;
+
+import java.io.*;
+
+public interface Refreshable {
+ boolean refresh();
+ File getRoot();
+}
diff --git a/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java b/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java
new file mode 100644
index 0000000..14282ec
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java
@@ -0,0 +1,59 @@
+package aQute.bnd.service;
+
+import java.io.*;
+import java.util.*;
+
+import aQute.lib.osgi.*;
+import aQute.libg.version.*;
+
+public interface RepositoryPlugin {
+ /**
+ * Return a URL to a matching version of the given bundle.
+ *
+ * @param bsn
+ * Bundle-SymbolicName of the searched bundle
+ * @param range
+ * Version range for this bundle,"latest" if you only want the
+ * latest, or null when you want all.
+ * @return A list of URLs sorted on version, lowest version is at index 0.
+ * null is returned when no files with the given bsn ould be found.
+ * @throws Exception
+ * when anything goes wrong
+ */
+ File[] get(String bsn, String range) throws Exception;
+
+ /**
+ * Answer if this repository can be used to store files.
+ *
+ * @return true if writable
+ */
+ boolean canWrite();
+
+ /**
+ * Put a JAR file in the repository.
+ *
+ * @param jar
+ * @throws Exception
+ */
+ File put(Jar jar) throws Exception;
+
+ /**
+ * Return a list of bsns that are present in the repository.
+ *
+ * @param regex if not null, match against the bsn and if matches, return otherwise skip
+ * @return A list of bsns that match the regex parameter or all if regex is null
+ */
+ List<String> list(String regex);
+
+ /**
+ * Return a list of versions.
+ */
+
+ List<Version> versions(String bsn);
+
+ /**
+ * @return The name of the repository
+ */
+ String getName();
+
+}
diff --git a/bundleplugin/src/main/java/aQute/bnd/service/SignerPlugin.java b/bundleplugin/src/main/java/aQute/bnd/service/SignerPlugin.java
new file mode 100644
index 0000000..aaef646
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/bnd/service/SignerPlugin.java
@@ -0,0 +1,15 @@
+package aQute.bnd.service;
+
+import aQute.lib.osgi.*;
+
+public interface SignerPlugin {
+ /**
+ * Sign the current jar. The alias is the given certificate
+ * keystore.
+ *
+ * @param builder The current builder that contains the jar to sign
+ * @param alias The keystore certificate alias
+ * @throws Exception When anything goes wrong
+ */
+ void sign(Builder builder, String alias) throws Exception;
+}
diff --git a/bundleplugin/src/main/java/aQute/bnd/service/action/Action.java b/bundleplugin/src/main/java/aQute/bnd/service/action/Action.java
new file mode 100644
index 0000000..9fd42ed
--- /dev/null
+++ b/bundleplugin/src/main/java/aQute/bnd/service/action/Action.java
@@ -0,0 +1,25 @@
+package aQute.bnd.service.action;
+
+import aQute.bnd.build.*;
+
+public interface Action {
+ /**
+ * A String[] that specifies a menu entry. The entry
+ * can be hierarchical by separating the parts with a ':'.
+ *
+ * <pre>
+ * A:B:C
+ * A:B:D
+ *
+ * A
+ * |
+ * B
+ * / \
+ * C D
+ *
+ * </pre>
+ */
+ String ACTION_MENU = "bnd.action.menu";
+
+ void execute( Project project, String action) throws Exception;
+}