[jboss-cvs] JBossAS SVN: r96014 - in projects/demos/microcontainer/trunk: classloader/src/main/java/org/jboss/demos/bootstrap/cl and 6 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Nov 4 16:16:14 EST 2009
Author: alesj
Date: 2009-11-04 16:16:13 -0500 (Wed, 04 Nov 2009)
New Revision: 96014
Added:
projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/RegexpClassLoaderDescribeDeployer.java
projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/RegexpClassLoaderPolicyModule.java
projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/crypt-beans.xml
projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/regexp-beans.xml
projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/PrintService.java
projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/RegexpService.java
projects/demos/microcontainer/trunk/policy/src/main/resources/META-INF/regexp-beans.xml
Removed:
projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/classloader-beans.xml
Modified:
projects/demos/microcontainer/trunk/bootstrap/src/main/java/org/jboss/demos/bootstrap/Main.java
projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/bootstrap/cl/ClassLoaderMain.java
projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/crypt/Tools.java
projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/DecrypterClassLoaderPolicyModule.java
projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java
projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/EncryptedService.java
Log:
Introduce regexp cl policy.
Modified: projects/demos/microcontainer/trunk/bootstrap/src/main/java/org/jboss/demos/bootstrap/Main.java
===================================================================
--- projects/demos/microcontainer/trunk/bootstrap/src/main/java/org/jboss/demos/bootstrap/Main.java 2009-11-04 20:51:24 UTC (rev 96013)
+++ projects/demos/microcontainer/trunk/bootstrap/src/main/java/org/jboss/demos/bootstrap/Main.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -54,7 +54,7 @@
main.configure(args, map);
}
- protected static void setSystemProperty(String key, String value, boolean override)
+ public static void setSystemProperty(String key, String value, boolean override)
{
if (override || System.getProperty(key) == null)
System.setProperty(key, value);
Modified: projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/bootstrap/cl/ClassLoaderMain.java
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/bootstrap/cl/ClassLoaderMain.java 2009-11-04 20:51:24 UTC (rev 96013)
+++ projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/bootstrap/cl/ClassLoaderMain.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -33,7 +33,9 @@
{
public static void main(String[] args)
{
- Map<String, String> map = Collections.singletonMap(Main.CL_DESCRIBE, "${demos.home}/classloader/src/main/resources/META-INF/classloader-beans.xml");
+ Main.setSystemProperty("demos.cl.policy", "regexp", false); // default CL policy
+
+ Map<String, String> map = Collections.singletonMap(Main.CL_DESCRIBE, "${demos.home}/classloader/src/main/resources/META-INF/${demos.cl.policy}-beans.xml");
Main.main(args, map);
}
}
Modified: projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/crypt/Tools.java
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/crypt/Tools.java 2009-11-04 20:51:24 UTC (rev 96013)
+++ projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/crypt/Tools.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -25,8 +25,8 @@
import java.security.Key;
import java.util.Arrays;
+import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.VFS;
/**
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
Modified: projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/DecrypterClassLoaderPolicyModule.java
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/DecrypterClassLoaderPolicyModule.java 2009-11-04 20:51:24 UTC (rev 96013)
+++ projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/DecrypterClassLoaderPolicyModule.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -34,7 +34,6 @@
{
private Decrypter decrypter;
- @SuppressWarnings("unchecked")
public DecrypterClassLoaderPolicyModule(DeploymentUnit unit, Decrypter decrypter)
{
super(unit);
Copied: projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/RegexpClassLoaderDescribeDeployer.java (from rev 95965, projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/DecrypterClassLoaderDescribeDeployer.java)
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/RegexpClassLoaderDescribeDeployer.java (rev 0)
+++ projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/RegexpClassLoaderDescribeDeployer.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.demos.classloader.deployers;
+
+import org.jboss.classloading.spi.dependency.policy.ClassLoaderPolicyModule;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
+import org.jboss.deployers.plugins.classloading.AbstractClassLoaderDescribeDeployer;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class RegexpClassLoaderDescribeDeployer extends AbstractClassLoaderDescribeDeployer
+{
+ protected ClassLoaderPolicyModule createModule(DeploymentUnit unit, ClassLoadingMetaData metaData) throws DeploymentException
+ {
+ return new RegexpClassLoaderPolicyModule(unit);
+ }
+}
\ No newline at end of file
Copied: projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/RegexpClassLoaderPolicyModule.java (from rev 96002, projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/DecrypterClassLoaderPolicyModule.java)
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/RegexpClassLoaderPolicyModule.java (rev 0)
+++ projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/deployers/RegexpClassLoaderPolicyModule.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.demos.classloader.deployers;
+
+import java.util.List;
+
+import org.jboss.demos.classloader.policy.RegexpClassLoaderPolicy;
+import org.jboss.deployers.plugins.classloading.AbstractDeploymentClassLoaderPolicyModule;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderClassPathDeployer;
+import org.jboss.virtual.VirtualFile;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class RegexpClassLoaderPolicyModule extends AbstractDeploymentClassLoaderPolicyModule
+{
+ private VirtualFile[] roots;
+
+ @SuppressWarnings("unchecked")
+ public RegexpClassLoaderPolicyModule(DeploymentUnit unit)
+ {
+ super(unit);
+ List<VirtualFile> vfsClassPath = unit.getAttachment(VFSClassLoaderClassPathDeployer.VFS_CLASS_PATH, List.class);
+ if (vfsClassPath == null)
+ roots = new VirtualFile[0];
+ else
+ roots = vfsClassPath.toArray(new VirtualFile[vfsClassPath.size()]);
+ }
+
+ @Override
+ protected RegexpClassLoaderPolicy determinePolicy()
+ {
+ return new RegexpClassLoaderPolicy(roots);
+ }
+}
\ No newline at end of file
Modified: projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java 2009-11-04 20:51:24 UTC (rev 96013)
+++ projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -23,35 +23,135 @@
import java.io.IOException;
import java.net.URL;
+import java.util.HashSet;
+import java.util.List;
import java.util.Set;
+import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jboss.classloader.spi.ClassLoaderPolicy;
+import org.jboss.classloading.plugins.vfs.PackageVisitor;
+import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.deployers.vfs.spi.structure.helpers.AbstractStructureDeployer;
import org.jboss.virtual.VirtualFile;
+import org.jboss.virtual.VirtualFileVisitor;
+import org.jboss.virtual.VisitorAttributes;
/**
+ * The regexp matching is completely naive,
+ * we could handle the regexp wrt path a lot better.
+ *
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
*/
public class RegexpClassLoaderPolicy extends ClassLoaderPolicy
{
private VirtualFile[] roots;
+ private String[] packageNames;
public RegexpClassLoaderPolicy(VirtualFile[] roots)
{
this.roots = roots;
}
+ @Override
+ public String[] getPackageNames()
+ {
+ if (packageNames == null)
+ {
+ Set<String> exportedPackages = PackageVisitor.determineAllPackages(roots, null, ExportAll.NON_EMPTY, null, null, null);
+ packageNames = exportedPackages.toArray(new String[exportedPackages.size()]);
+ }
+ return packageNames;
+ }
+
+ protected Pattern createPattern(String regexp)
+ {
+ return Pattern.compile(regexp);
+ }
+
public URL getResource(String path)
{
- Pattern pattern = Pattern.compile(path);
+ Pattern pattern = createPattern(path);
for (VirtualFile root : roots)
{
-
+ URL url = findURL(root, root, pattern);
+ if (url != null)
+ return url;
}
return null;
}
+ private URL findURL(VirtualFile root, VirtualFile file, Pattern pattern)
+ {
+ try
+ {
+ String path = AbstractStructureDeployer.getRelativePath(root, file);
+ Matcher matcher = pattern.matcher(path);
+ if (matcher.matches())
+ return file.toURL();
+
+ List<VirtualFile> children = file.getChildren();
+ for (VirtualFile child : children)
+ {
+ URL url = findURL(root, child, pattern);
+ if (url != null)
+ return url;
+ }
+
+ return null;
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
public void getResources(String name, Set<URL> urls) throws IOException
{
+ Pattern pattern = createPattern(name);
+ for (VirtualFile root : roots)
+ {
+ RegexpVisitor visitor = new RegexpVisitor(root, pattern);
+ root.visit(visitor);
+ urls.addAll(visitor.getUrls());
+ }
}
+
+ private static class RegexpVisitor implements VirtualFileVisitor
+ {
+ private VirtualFile root;
+ private Pattern pattern;
+ private Set<URL> urls = new HashSet<URL>();
+
+ private RegexpVisitor(VirtualFile root, Pattern pattern)
+ {
+ this.root = root;
+ this.pattern = pattern;
+ }
+
+ public VisitorAttributes getAttributes()
+ {
+ return VisitorAttributes.RECURSE_LEAVES_ONLY;
+ }
+
+ public void visit(VirtualFile file)
+ {
+ try
+ {
+ String path = AbstractStructureDeployer.getRelativePath(root, file);
+ Matcher matcher = pattern.matcher(path);
+ if (matcher.matches())
+ urls.add(file.toURL());
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public Set<URL> getUrls()
+ {
+ return urls;
+ }
+ }
}
\ No newline at end of file
Deleted: projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/classloader-beans.xml
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/classloader-beans.xml 2009-11-04 20:51:24 UTC (rev 96013)
+++ projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/classloader-beans.xml 2009-11-04 21:16:13 UTC (rev 96014)
@@ -1,32 +0,0 @@
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
- <bean name="KeyProvider" class="org.jboss.demos.classloader.crypt.KeyProvider">
- <constructor factoryClass="org.jboss.demos.classloader.crypt.KeyProviderFactory" factoryMethod="createKeyProvider">
- <parameter>
- <bean class="java.io.File">
- <constructor>
- <parameter>${demos.home}/encrypted/keystore.txt</parameter>
- </constructor>
- </bean>
- </parameter>
- </constructor>
- </bean>
-
- <bean name="Decrypter" class="org.jboss.demos.classloader.crypt.Decrypter">
- <constructor factoryClass="org.jboss.demos.classloader.crypt.CipherCrypter" factoryMethod="getDecrypter">
- <parameter>
- <inject bean="KeyProvider" property="decryptionKey"/>
- </parameter>
- </constructor>
- </bean>
-
- <bean name="ClassLoaderDescribeDeployer" class="org.jboss.demos.classloader.deployers.DecrypterClassLoaderDescribeDeployer">
- <constructor>
- <parameter>
- <inject bean="Decrypter"/>
- </parameter>
- </constructor>
- <property name="classLoading"><inject bean="ClassLoading"/></property>
- </bean>
-
-</deployment>
Copied: projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/crypt-beans.xml (from rev 96007, projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/classloader-beans.xml)
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/crypt-beans.xml (rev 0)
+++ projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/crypt-beans.xml 2009-11-04 21:16:13 UTC (rev 96014)
@@ -0,0 +1,32 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="KeyProvider" class="org.jboss.demos.classloader.crypt.KeyProvider">
+ <constructor factoryClass="org.jboss.demos.classloader.crypt.KeyProviderFactory" factoryMethod="createKeyProvider">
+ <parameter>
+ <bean class="java.io.File">
+ <constructor>
+ <parameter>${demos.home}/policy/keystore.txt</parameter>
+ </constructor>
+ </bean>
+ </parameter>
+ </constructor>
+ </bean>
+
+ <bean name="Decrypter" class="org.jboss.demos.classloader.crypt.Decrypter">
+ <constructor factoryClass="org.jboss.demos.classloader.crypt.CipherCrypter" factoryMethod="getDecrypter">
+ <parameter>
+ <inject bean="KeyProvider" property="decryptionKey"/>
+ </parameter>
+ </constructor>
+ </bean>
+
+ <bean name="ClassLoaderDescribeDeployer" class="org.jboss.demos.classloader.deployers.DecrypterClassLoaderDescribeDeployer">
+ <constructor>
+ <parameter>
+ <inject bean="Decrypter"/>
+ </parameter>
+ </constructor>
+ <property name="classLoading"><inject bean="ClassLoading"/></property>
+ </bean>
+
+</deployment>
Added: projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/regexp-beans.xml
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/regexp-beans.xml (rev 0)
+++ projects/demos/microcontainer/trunk/classloader/src/main/resources/META-INF/regexp-beans.xml 2009-11-04 21:16:13 UTC (rev 96014)
@@ -0,0 +1,7 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="ClassLoaderDescribeDeployer" class="org.jboss.demos.classloader.deployers.RegexpClassLoaderDescribeDeployer">
+ <property name="classLoading"><inject bean="ClassLoading"/></property>
+ </bean>
+
+</deployment>
Modified: projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/EncryptedService.java
===================================================================
--- projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/EncryptedService.java 2009-11-04 20:51:24 UTC (rev 96013)
+++ projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/EncryptedService.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -22,50 +22,28 @@
package org.jboss.demos.policy.services;
import java.io.InputStream;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.IOException;
import java.net.URL;
/**
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
*/
-public class EncryptedService
+public class EncryptedService extends PrintService
{
public void start() throws Exception
{
ClassLoader cl = getClass().getClassLoader();
- URL url = cl.getResource("/config/settings.txt");
+ URL url = cl.getResource("config/settings.txt");
if (url == null)
throw new IllegalArgumentException("No such settings.txt.");
- System.out.println("Printing settings:\n");
InputStream is = url.openStream();
- print(is);
+ print(is, "Printing settings:\n");
- is = cl.getResourceAsStream("/config/properties.xml");
+ is = cl.getResourceAsStream("config/properties.xml");
if (is == null)
throw new IllegalArgumentException("No such properties.xml.");
- System.out.println("\nPrinting properties:\n");
- print(is);
+ print(is, "\nPrinting properties:\n");
}
-
- protected void print(InputStream is) throws IOException
- {
- try
- {
- BufferedReader buffer = new BufferedReader(new InputStreamReader(is));
- String line;
- while((line = buffer.readLine()) != null)
- {
- System.out.println(line);
- }
- }
- finally
- {
- is.close();
- }
- }
}
Added: projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/PrintService.java
===================================================================
--- projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/PrintService.java (rev 0)
+++ projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/PrintService.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.demos.policy.services;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+abstract class PrintService
+{
+ protected boolean ignoreInputStream(InputStream stream)
+ {
+ return false;
+ }
+
+ protected void print(InputStream is, String intro) throws IOException
+ {
+ if (ignoreInputStream(is))
+ return;
+
+ System.out.println(intro);
+
+ try
+ {
+ BufferedReader buffer = new BufferedReader(new InputStreamReader(is));
+ String line;
+ while((line = buffer.readLine()) != null)
+ {
+ System.out.println(line);
+ }
+ }
+ finally
+ {
+ is.close();
+ }
+ }
+}
\ No newline at end of file
Copied: projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/RegexpService.java (from rev 96008, projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/EncryptedService.java)
===================================================================
--- projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/RegexpService.java (rev 0)
+++ projects/demos/microcontainer/trunk/policy/src/main/java/org/jboss/demos/policy/services/RegexpService.java 2009-11-04 21:16:13 UTC (rev 96014)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.demos.policy.services;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Enumeration;
+
+import javax.crypto.CipherInputStream;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class RegexpService extends PrintService
+{
+ @Override
+ protected boolean ignoreInputStream(InputStream stream)
+ {
+ return (stream instanceof CipherInputStream);
+ }
+
+ public void start() throws Exception
+ {
+ System.out.println();
+
+ ClassLoader cl = getClass().getClassLoader();
+ Enumeration<URL> urls = cl.getResources("config/[^.]+.[^.]{1,4}");
+ while (urls.hasMoreElements())
+ {
+ URL url = urls.nextElement();
+ print(url.openStream(), url.toExternalForm());
+ }
+ }
+}
\ No newline at end of file
Copied: projects/demos/microcontainer/trunk/policy/src/main/resources/META-INF/regexp-beans.xml (from rev 96008, projects/demos/microcontainer/trunk/policy/src/main/resources/META-INF/encrypted-beans.xml)
===================================================================
--- projects/demos/microcontainer/trunk/policy/src/main/resources/META-INF/regexp-beans.xml (rev 0)
+++ projects/demos/microcontainer/trunk/policy/src/main/resources/META-INF/regexp-beans.xml 2009-11-04 21:16:13 UTC (rev 96014)
@@ -0,0 +1,5 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="RegexpService" class="org.jboss.demos.policy.services.RegexpService"/>
+
+</deployment>
More information about the jboss-cvs-commits
mailing list