Here you can find the source of getRelativeURI(URI repositoryXml, URI bundleJar)
Parameter | Description |
---|---|
repositoryXml | URI pointing to repository.xml, or directory containing it |
bundleJar | URI pointing to bundle jarfile |
public static URI getRelativeURI(URI repositoryXml, URI bundleJar)
//package com.java2s; /*//from ww w . j a v a2s . c o m * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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. */ import java.net.URI; public class Main { private static final String DOT_XML = ".xml"; /** * @param repositoryXml URI pointing to repository.xml, or directory containing it * @param bundleJar URI pointing to bundle jarfile * @return relative URI to bundle jarfile */ public static URI getRelativeURI(URI repositoryXml, URI bundleJar) { try { String repositoryPath = repositoryXml.getPath(); if (repositoryPath.toLowerCase().endsWith(DOT_XML)) { // remove filename to get containing directory int dirnameIndex = repositoryPath.lastIndexOf('/'); repositoryPath = repositoryPath.substring(0, dirnameIndex); } URI rootURI = new URI(null, repositoryPath, null); URI localURI = new URI(null, bundleJar.getPath(), null); return rootURI.relativize(localURI); } catch (Exception e) { return bundleJar; } } }