@Override // TODO: create AssetStreamException ? public InputStream openStream() { try { final ZipFile file = new ZipFile(this.file); return new InputStreamWrapper(file, file.getInputStream(entry)); } catch (final Exception e) { throw new RuntimeException("Could not open zip file stream", e); } }
/** * path = /package/MyClass$Test.class <br/> * clazz = /package/MyClass.class <br/> * * * @param path * The added classes * @return */ @Override public boolean include(ArchivePath path) { ArchivePath classArchivePath = AssetUtil.getFullPathForClassResource(clazz); String expression = classArchivePath.get().replace(".class", "\\$.*"); return path.get().matches(expression); }; }, adjustedCl,
@Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionOnNullArgumnet() throws Exception { new ServiceProviderAsset((Class<?>[]) null); }
/** * {@inheritDoc} * * @see org.jboss.shrinkwrap.api.container.ManifestContainer#setManifest(java.lang.Package, java.lang.String) */ @Override public T setManifest(Package resourcePackage, String resourceName) throws IllegalArgumentException { Validate.notNull(resourcePackage, "ResourcePackage must be specified"); Validate.notNull(resourceName, "ResourceName must be specified"); String classloaderResourceName = AssetUtil.getClassLoaderResourceName(resourcePackage, resourceName); return setManifest(classloaderResourceName); }
@Test public void shouldBeAbleToGetNameForClassloaderResource() throws Exception { String foundResourceName = AssetUtil.getNameForClassloaderResource(EXISTING_RESOURCE); Assert.assertEquals("The classloader resource name should not contain the path", "Test.properties", foundResourceName); }
@Override public boolean contains(final Class<?> aClass) throws IllegalArgumentException { return war.contains(new BasicPath(PATH_CLASSES, AssetUtil.getFullPathForClassResource(aClass))); }
@Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionOnNullArgumnetValue() throws Exception { new ServiceProviderAsset((Class<?>) null); }
/** * {@inheritDoc} * * @see org.jboss.shrinkwrap.api.container.ManifestContainer#setManifest(java.lang.Package, java.lang.String) */ @Override public T setManifest(Package resourcePackage, String resourceName) throws IllegalArgumentException { Validate.notNull(resourcePackage, "ResourcePackage must be specified"); Validate.notNull(resourceName, "ResourceName must be specified"); String classloaderResourceName = AssetUtil.getClassLoaderResourceName(resourcePackage, resourceName); return setManifest(classloaderResourceName); }
/** * {@inheritDoc} * * @see org.jboss.shrinkwrap.api.container.EnterpriseContainer#addAsModule(java.lang.String) */ @Override public T addAsModule(String resourceName) { Validate.notNull(resourceName, "ResourceName must be specified"); ArchivePath location = new BasicPath(AssetUtil.getNameForClassloaderResource(resourceName)); return addAsModule(resourceName, location); }
@Override public void classFound(String className, Asset asset) { ArchivePath classNamePath = AssetUtil.getFullPathForClassResource(className); if (!filter.include(classNamePath)) { return; } //Asset asset = new ClassLoaderAsset(classNamePath.get().substring(1), classLoader); ArchivePath location = new BasicPath(getClassesPath(), classNamePath); add(asset, location); } };
@Override public T addAsServiceProvider(String serviceInterface, String... serviceImpls) throws IllegalArgumentException { Validate.notNull(serviceInterface, "ServiceInterface must be specified"); Validate.notNullAndNoNullValues(serviceImpls, "ServiceImpls must be specified and can not contain null values"); Asset asset = new ServiceProviderAsset(serviceImpls); ArchivePath path = new BasicPath("services", serviceInterface); return addAsManifestResource(asset, path); }
@Override public T addAsManifestResource(Package resourcePackage, String resourceName) throws IllegalArgumentException { Validate.notNull(resourcePackage, "ResourcePackage must be specified"); Validate.notNull(resourceName, "ResourceName must be specified"); String classloaderResourceName = AssetUtil.getClassLoaderResourceName(resourcePackage, resourceName); ArchivePath target = ArchivePaths.create(classloaderResourceName); return addAsManifestResource(resourcePackage, resourceName, target); }
/** * {@inheritDoc} * * @see org.jboss.shrinkwrap.api.container.WebContainer#addAsWebInfResource(java.lang.String) */ @Override public T addAsWebInfResource(final String resourceName) throws IllegalArgumentException { Validate.notNull(resourceName, "ResourceName should be specified"); return addAsWebInfResource(new ClassLoaderAsset(resourceName), AssetUtil.getNameForClassloaderResource(resourceName)); }
@Override public void classFound(String className, Asset asset) { ArchivePath classNamePath = AssetUtil.getFullPathForClassResource(className); if (!filter.include(classNamePath)) { return; } ArchivePath location = new BasicPath(getClassesPath(), classNamePath); delete(location); } };
@Override public T addAsServiceProvider(String serviceInterface, String... serviceImpls) throws IllegalArgumentException { Validate.notNull(serviceInterface, "ServiceInterface must be specified"); Validate.notNullAndNoNullValues(serviceImpls, "ServiceImpls must be specified and can not contain null values"); Asset asset = new ServiceProviderAsset(serviceImpls); ArchivePath path = new BasicPath("services", serviceInterface); return addAsManifestResource(asset, path); }
@Override public T setApplicationXML(Package resourcePackage, String resourceName) throws IllegalArgumentException { Validate.notNull(resourcePackage, "ResourcePackage must be specified"); Validate.notNull(resourceName, "ResourceName must be specified"); String classloaderResourceName = AssetUtil.getClassLoaderResourceName(resourcePackage, resourceName); return setApplicationXML(new ClassLoaderAsset(classloaderResourceName)); }
@Override public T addAsServiceProvider(String serviceInterface, String... serviceImpls) throws IllegalArgumentException { Validate.notNull(serviceInterface, "ServiceInterface must be specified"); Validate.notNullAndNoNullValues(serviceImpls, "ServiceImpls must be specified and can not contain null values"); Asset asset = new ServiceProviderAsset(serviceImpls); ArchivePath path = new BasicPath(getServiceProvidersPath(), serviceInterface); return add(asset, path); }
@Override public T addAsResource(Package resourcePackage, String resourceName) throws IllegalArgumentException { Validate.notNull(resourcePackage, "ResourcePackage must be specified"); Validate.notNull(resourceName, "ResourceName must be specified"); String classloaderResourceName = AssetUtil.getClassLoaderResourceName(resourcePackage, resourceName); ArchivePath target = ArchivePaths.create(classloaderResourceName); return addAsResource(resourcePackage, resourceName, target); }
@Override public T addAsApplicationResource(Package resourcePackage, String resourceName) throws IllegalArgumentException { Validate.notNull(resourcePackage, "ResourcePackage must be specified"); Validate.notNull(resourceName, "ResourceName must be specified"); String classloaderResourceName = AssetUtil.getClassLoaderResourceName(resourcePackage, resourceName); ArchivePath target = ArchivePaths.create(classloaderResourceName); return addAsApplicationResource(resourcePackage, resourceName, target); }
@Override public T addAsManifestResource(Package resourcePackage, String resourceName, ArchivePath target) throws IllegalArgumentException { Validate.notNull(resourcePackage, "ResourcePackage must be specified"); Validate.notNull(resourceName, "ResourceName must be specified"); Validate.notNull(target, "Target must be specified"); String classloaderResourceName = AssetUtil.getClassLoaderResourceName(resourcePackage, resourceName); Asset resource = new ClassLoaderAsset(classloaderResourceName); return addAsManifestResource(resource, target); }