Latest bnd sync
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1370165 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/Container.java b/bundleplugin/src/main/java/aQute/bnd/build/Container.java
index 8a721c9..0de335d 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/Container.java
+++ b/bundleplugin/src/main/java/aQute/bnd/build/Container.java
@@ -103,12 +103,14 @@
return error;
}
+ @Override
public boolean equals(Object other) {
if (other instanceof Container)
return file.equals(((Container) other).file);
return false;
}
+ @Override
public int hashCode() {
return file.hashCode();
}
@@ -122,6 +124,7 @@
*
* @return
*/
+ @Override
public String toString() {
if (getError() != null)
return "/error/" + getError();
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/Project.java b/bundleplugin/src/main/java/aQute/bnd/build/Project.java
index 06a4f8e..9c5c2ec 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/Project.java
+++ b/bundleplugin/src/main/java/aQute/bnd/build/Project.java
@@ -14,6 +14,7 @@
import aQute.bnd.osgi.*;
import aQute.bnd.osgi.eclipse.*;
import aQute.bnd.service.*;
+import aQute.bnd.service.RepositoryPlugin.PutResult;
import aQute.bnd.service.RepositoryPlugin.Strategy;
import aQute.bnd.service.action.*;
import aQute.bnd.version.*;
@@ -146,6 +147,7 @@
return workspace;
}
+ @Override
public String toString() {
return getBase().getName();
}
@@ -202,7 +204,9 @@
// Set default bin directory
output = getOutput0();
if (!output.exists()) {
- output.mkdirs();
+ if (!output.mkdirs()) {
+ throw new IOException("Could not create directory " + output);
+ }
getWorkspace().changedFile(output);
}
if (!output.isDirectory())
@@ -296,10 +300,12 @@
/**
*
*/
- private File getTarget0() {
+ private File getTarget0() throws IOException {
File target = getFile(getProperty("target", "generated"));
if (!target.exists()) {
- target.mkdirs();
+ if (!target.mkdirs()) {
+ throw new IOException("Could not create directory " + target);
+ }
getWorkspace().changedFile(target);
}
return target;
@@ -809,15 +815,16 @@
return join(list, separator);
}
+ @Override
protected Object[] getMacroDomains() {
return new Object[] {
workspace
};
}
- public File release(Jar jar) throws Exception {
+ public File release(String jarName, InputStream jarStream) throws Exception {
String name = getProperty(Constants.RELEASEREPO);
- return release(name, jar);
+ return release(name, jarName, jarStream);
}
/**
@@ -825,11 +832,12 @@
*
* @param name
* The repository name
- * @param jar
+ * @param jarName
+ * @param jarStream
* @return
* @throws Exception
*/
- public File release(String name, Jar jar) throws Exception {
+ public File release(String name, String jarName, InputStream jarStream) throws Exception {
trace("release %s", name);
List<RepositoryPlugin> plugins = getPlugins(RepositoryPlugin.class);
RepositoryPlugin rp = null;
@@ -848,14 +856,11 @@
if (rp != null) {
try {
- File file = rp.put(jar);
- trace("Released %s to file %s in repository %s", jar.getName(), file, rp);
+ PutResult r = rp.put(jarStream, new RepositoryPlugin.PutOptions());
+ trace("Released %s to %s in repository %s", jarName, r.artifact, rp);
}
catch (Exception e) {
- msgs.Release_Into_Exception_(jar, rp, e);
- }
- finally {
- jar.close();
+ msgs.Release_Into_Exception_(jarName, rp, e);
}
} else if (name == null)
msgs.NoNameForReleaseRepository();
@@ -890,15 +895,8 @@
}
trace("build ", Arrays.toString(jars));
for (File jar : jars) {
- Jar j = new Jar(jar);
- try {
- release(name, j);
- }
- finally {
- j.close();
- }
+ release(name, jar.getName(), new BufferedInputStream(new FileInputStream(jar)));
}
-
}
/**
@@ -1114,17 +1112,13 @@
}
if (rp != null) {
- Jar jar = new Jar(file);
try {
- rp.put(jar);
+ rp.put(new BufferedInputStream(new FileInputStream(file)), new RepositoryPlugin.PutOptions());
return;
}
catch (Exception e) {
msgs.DeployingFile_On_Exception_(file, rp.getName(), e);
}
- finally {
- jar.close();
- }
return;
}
trace("No repo found " + file);
@@ -1155,22 +1149,16 @@
}
File[] outputs = getBuildFiles();
for (File output : outputs) {
- Jar jar = new Jar(output);
- try {
for (Deploy d : getPlugins(Deploy.class)) {
- trace("Deploying %s to: %s", jar, d);
+ trace("Deploying %s to: %s", output.getName(), d);
try {
- if (d.deploy(this, jar))
+ if (d.deploy(this, output.getName(), new BufferedInputStream(new FileInputStream(output))))
trace("deployed %s successfully to %s", output, d);
}
catch (Exception e) {
msgs.Deploying(e);
}
}
- }
- finally {
- jar.close();
- }
}
}
@@ -1452,8 +1440,12 @@
if (!f.exists() || f.lastModified() < jar.lastModified()) {
reportNewer(f.lastModified(), jar);
f.delete();
- if (!f.getParentFile().isDirectory())
- f.getParentFile().mkdirs();
+ File fp = f.getParentFile();
+ if (!fp.isDirectory()) {
+ if (!fp.exists() && !fp.mkdirs()) {
+ throw new IOException("Could not create directory " + fp);
+ }
+ }
jar.write(f);
getWorkspace().changedFile(f);
@@ -1491,6 +1483,7 @@
/**
* Refresh if we are based on stale data. This also implies our workspace.
*/
+ @Override
public boolean refresh() {
boolean changed = false;
if (isCnf()) {
@@ -1503,6 +1496,7 @@
return getBase().getName().equals(Workspace.CNFDIR);
}
+ @Override
public void propertiesChanged() {
super.propertiesChanged();
preparedPaths = false;
@@ -1568,12 +1562,16 @@
File target = getTarget0();
if (target.isDirectory() && target.getParentFile() != null) {
IO.delete(target);
- target.mkdirs();
+ if (!target.exists() && !target.mkdirs()) {
+ throw new IOException("Could not create directory " + target);
+ }
}
File output = getOutput0();
if (getOutput().isDirectory())
IO.delete(output);
- output.mkdirs();
+ if (!output.exists() && !output.mkdirs()) {
+ throw new IOException("Could not create directory " + output);
+ }
}
public File[] build() throws Exception {
@@ -2052,7 +2050,10 @@
String path = packageName.replace('.', '/') + "/packageinfo";
File binary = IO.getFile(getOutput(), path);
- binary.getParentFile().mkdirs();
+ File bp = binary.getParentFile();
+ if (!bp.exists() && !bp.mkdirs()) {
+ throw new IOException("Could not create directory " + bp);
+ }
IO.copy(file, binary);
refresh();
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/ProjectBuilder.java b/bundleplugin/src/main/java/aQute/bnd/build/ProjectBuilder.java
index 5cf4f0e..774934a 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/ProjectBuilder.java
+++ b/bundleplugin/src/main/java/aQute/bnd/build/ProjectBuilder.java
@@ -27,12 +27,14 @@
/**
* We put our project and our workspace on the macro path.
*/
+ @Override
protected Object[] getMacroDomains() {
return new Object[] {
project, project.getWorkspace()
};
}
+ @Override
public Builder getSubBuilder() throws Exception {
return project.getBuilder(this);
}
@@ -41,6 +43,7 @@
return project;
}
+ @Override
public void init() {
try {
if (!initialized) {
@@ -68,6 +71,7 @@
}
}
+ @Override
public List<Jar> getClasspath() {
init();
return super.getClasspath();
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java b/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java
index 57367f6..f692abb 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java
+++ b/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java
@@ -3,7 +3,6 @@
import java.io.*;
import java.util.*;
-import aQute.bnd.osgi.*;
import aQute.bnd.service.*;
import aQute.bnd.service.RepositoryPlugin.Strategy;
import aQute.bnd.version.*;
@@ -39,7 +38,7 @@
ERROR ReleaseRepository_NotFoundIn_(String name, List<RepositoryPlugin> plugins);
- ERROR Release_Into_Exception_(Jar jar, RepositoryPlugin rp, Exception e);
+ ERROR Release_Into_Exception_(String jar, RepositoryPlugin rp, Exception e);
ERROR NoScripters_(String script);
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/ProjectTester.java b/bundleplugin/src/main/java/aQute/bnd/build/ProjectTester.java
index 86ce2e3..4549624 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/ProjectTester.java
+++ b/bundleplugin/src/main/java/aQute/bnd/build/ProjectTester.java
@@ -63,7 +63,9 @@
}
public boolean prepare() throws Exception {
- reportDir.mkdirs();
+ if (!reportDir.exists() && !reportDir.mkdirs()) {
+ throw new IOException("Could not create directory " + reportDir);
+ }
for (File file : reportDir.listFiles()) {
file.delete();
}
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/ReflectAction.java b/bundleplugin/src/main/java/aQute/bnd/build/ReflectAction.java
index 3c3ee16..7a0f855 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/ReflectAction.java
+++ b/bundleplugin/src/main/java/aQute/bnd/build/ReflectAction.java
@@ -16,6 +16,7 @@
m.invoke(project);
}
+ @Override
public String toString() {
return "ra:" + what;
}
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/Workspace.java b/bundleplugin/src/main/java/aQute/bnd/build/Workspace.java
index 9111773..0044b11 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/Workspace.java
+++ b/bundleplugin/src/main/java/aQute/bnd/build/Workspace.java
@@ -81,7 +81,9 @@
public Workspace(File dir) throws Exception {
dir = dir.getAbsoluteFile();
- dir.mkdirs();
+ if (!dir.exists() && !dir.mkdirs()) {
+ throw new IOException("Could not create directory " + dir);
+ }
assert dir.isDirectory();
File buildDir = new File(dir, BNDDIR).getAbsoluteFile();
@@ -123,6 +125,7 @@
return models.values();
}
+ @Override
public boolean refresh() {
if (super.refresh()) {
for (Project project : getCurrentProjects()) {
@@ -261,19 +264,23 @@
super("cache", getFile(buildDir, CACHEDIR), false);
}
+ @Override
public String toString() {
return "bnd-cache";
}
+ @Override
protected void init() throws Exception {
if (lock.tryLock(50, TimeUnit.SECONDS) == false)
throw new TimeLimitExceededException("Cached File Repo is locked and can't acquire it");
try {
if (!inited) {
inited = true;
- root.mkdirs();
+ if (!root.exists() && !root.mkdirs()) {
+ throw new IOException("Could not create cache directory " + root);
+ }
if (!root.isDirectory())
- throw new IllegalArgumentException("Cannot create cache dir " + root);
+ throw new IllegalArgumentException("Cache directory " + root + " not a directory");
InputStream in = getClass().getResourceAsStream(EMBEDDED_REPO);
if (in != null)
@@ -296,7 +303,10 @@
if (!jentry.isDirectory()) {
File dest = Processor.getFile(dir, jentry.getName());
if (!dest.isFile() || dest.lastModified() < jentry.getTime() || jentry.getTime() == 0) {
- dest.getParentFile().mkdirs();
+ File dp = dest.getParentFile();
+ if (!dp.exists() && !dp.mkdirs()) {
+ throw new IOException("Could not create directory " + dp);
+ }
FileOutputStream out = new FileOutputStream(dest);
try {
copy(jin, out);
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java b/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java
index 451bd77..c52b7f1 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java
+++ b/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java
@@ -86,7 +86,7 @@
return false;
}
- public File put(Jar jar) throws Exception {
+ public PutResult put(InputStream stream, PutOptions options) throws Exception {
return null;
}
diff --git a/bundleplugin/src/main/java/aQute/bnd/build/packageinfo b/bundleplugin/src/main/java/aQute/bnd/build/packageinfo
index 0ff7674..084a0d4 100644
--- a/bundleplugin/src/main/java/aQute/bnd/build/packageinfo
+++ b/bundleplugin/src/main/java/aQute/bnd/build/packageinfo
@@ -1 +1 @@
-version 1.45.0
+version 2.0.0