@Override public ExtensionFile getFile() { return getWrapped().getFile(); }
@Override public LocalExtension storeExtension(Extension extension) throws LocalExtensionRepositoryException { DefaultLocalExtension localExtension = this.extensions.get(extension.getId()); if (localExtension == null) { try { localExtension = createExtension(extension); InputStream is = extension.getFile().openStream(); FileUtils.copyInputStreamToFile(is, localExtension.getFile().getFile()); this.storage.saveDescriptor(localExtension); // Cache extension addLocalExtension(localExtension); } catch (Exception e) { // TODO: clean throw new LocalExtensionRepositoryException("Failed to save extension [" + extension + "] descriptor", e); } } else { throw new LocalExtensionRepositoryException( "Extension [" + extension + "] already exists in local repository"); } return localExtension; }