X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.osgi%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fosgi%2FOsgiExecutionResources.java;h=b4658bdffd7fd4bf0711c5135726592ba0937d20;hb=60677ee743e6d54ceda3187824cef28cf844ccc0;hp=7ef87fcde1186b6f167fd0d05a3b2137e9ce8fe1;hpb=afe680eba2d193e550e4d0a897c1329e9bd533ca;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiExecutionResources.java b/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiExecutionResources.java index 7ef87fcde..b4658bdff 100644 --- a/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiExecutionResources.java +++ b/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiExecutionResources.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * 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 org.argeo.slc.osgi; import java.io.File; @@ -46,13 +62,18 @@ public class OsgiExecutionResources extends FileExecutionResources implements // TODO: Equinox specific? String relPath = location.substring("initial@reference:file:" .length()); - if (relPath.startsWith("../"))// relative to the framework jar - relPath = relPath.substring("../".length()); - String framework = System.getProperty("osgi.framework").substring( - "file:".length()); - int sepIndex = framework.lastIndexOf(File.separatorChar); - framework = framework.substring(0, sepIndex); - base = framework + '/' + relPath; +// if (relPath.startsWith("../"))// relative to the framework jar +// relPath = relPath.substring("../".length()); +// String framework = System.getProperty("osgi.framework").substring( +// "file:".length()); +// log.debug(framework); + String installArea = System.getProperty("osgi.install.area") + .substring("file:".length()); +// log.debug(installArea); + base = installArea + '/' + relPath; + // int sepIndex = framework.lastIndexOf(File.separatorChar); + // framework = framework.substring(0, sepIndex); + // base = framework + '/' + relPath; } else { return null; } @@ -64,7 +85,13 @@ public class OsgiExecutionResources extends FileExecutionResources implements throw new SlcException("Cannot determine canonical path for " + path, e); } - if (log.isDebugEnabled()) + + if (!file.exists()) + throw new SlcException(file + + " was retrieved in bundle located at '" + location + + "' for resource " + resource + " but it does not exist"); + + if (log.isTraceEnabled()) log.debug("OSGi local resource: " + file + " from " + resource); return file; }