/** * 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,
/** * {@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); }
@Test public void shouldBeAbleToGetPathForClassloaderResource() throws Exception { ArchivePath foundResourcePath = AssetUtil.getPathForClassloaderResource(EXISTING_RESOURCE); Assert.assertEquals("The classloader resource path should not contain the file name", new BasicPath( "org/jboss/shrinkwrap/impl/base/asset"), foundResourcePath); }
/** * 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,
/** * {@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.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 boolean contains(final Class<?> aClass) throws IllegalArgumentException { return war.contains(new BasicPath(PATH_CLASSES, AssetUtil.getFullPathForClassResource(aClass))); }
@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); }
@Override public T addAsWebResource(String resourceName) throws IllegalArgumentException { Validate.notNull(resourceName, "ResourceName should be specified"); return addAsWebResource(new ClassLoaderAsset(resourceName), AssetUtil.getNameForClassloaderResource(resourceName)); }
private static void enrichWithGlues(final Class<?> javaClass, final LibraryContainer<?> libraryContainer, final String ln) { final Collection<Class<?>> glues = Glues.findGlues(javaClass); final StringBuilder gluesStr = new StringBuilder(); if (!glues.isEmpty()) { final JavaArchive gluesJar = create(JavaArchive.class, "cukespace-glues.jar"); { // glues txt file for (final Class<?> g : glues) { gluesStr.append(g.getName()).append(ln); } gluesJar.add(new StringAsset(gluesStr.toString()), ClientServerFiles.GLUES_LIST); } { // classes gluesJar.addClasses(glues.toArray(new Class<?>[glues.size()])); for (final Class<?> clazz : glues) { Class<?> current = clazz.getSuperclass(); while (!Object.class.equals(current)) { if (!gluesJar.contains(AssetUtil.getFullPathForClassResource(current))) { gluesJar.addClass(current); } current = current.getSuperclass(); } } } libraryContainer.addAsLibrary(gluesJar); } }
@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)); }
/** * {@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 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 addAsWebResource(String resourceName) throws IllegalArgumentException { Validate.notNull(resourceName, "ResourceName should be specified"); return addAsWebResource(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 setWebXML(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 setWebXML(new ClassLoaderAsset(classloaderResourceName)); }
/** * {@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)); }
@Test public void shouldBeAbleToGetFullPathForClassResoruce() throws Exception { ArchivePath foundClassResourcePath = AssetUtil.getFullPathForClassResource(this.getClass()); Assert.assertEquals("The class resource should have a / delimiter and a .class extension", new BasicPath( "/org/jboss/shrinkwrap/impl/base/asset/AssetUtilTestCase.class"), foundClassResourcePath); } }