User: mulder  
  Date: 00/07/28 07:00:49

  Modified:    src/main/org/jboss/metadata/aggregate AggregateBean.java
                        AggregateMethod.java
  Log:
  Change metadata to use Strings instead of Classes.
  Prevents icky ClassNotFoundExceptions and NoClassDefFoundErrors.
  Added convenience methods that take Classes and convert them to Strings.
  
  Revision  Changes    Path
  1.3       +19 -4     jboss/src/main/org/jboss/metadata/aggregate/AggregateBean.java
  
  Index: AggregateBean.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/aggregate/AggregateBean.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AggregateBean.java        2000/07/25 17:03:51     1.2
  +++ AggregateBean.java        2000/07/28 14:00:49     1.3
  @@ -32,7 +32,7 @@
           container.addPlugin(plugin.getContainer());
       }
   
  -    private static MethodMetaData getMethod(Set source, String name, Class[] args) {
  +    private static MethodMetaData getMethod(Set source, String name, String[] args) 
{
           Iterator it = source.iterator();
           while(it.hasNext()) {
               MethodMetaData mmd = (MethodMetaData)it.next();
  @@ -56,7 +56,7 @@
       private static AggregateMethod[] mergeMethods(Set incoming, AggregateMethod[] 
existing, MetaDataPlugin manager) {
           for(int i=0; i<existing.length; i++) {
               String name = existing[i].getName();
  -            Class[] args = existing[i].getParameterTypes();
  +            String[] args = existing[i].getParameterTypes();
               try {
                   MethodMetaData mmd = getMethod(incoming, name, args);
                   existing[i].addPlugin(mmd);
  @@ -77,7 +77,7 @@
           for(Iterator it = incoming.iterator(); it.hasNext();) {
               MethodMetaData mmd = (MethodMetaData)it.next();
               String name = mmd.getName();
  -            Class[] args = mmd.getParameterTypes();
  +            String[] args = mmd.getParameterTypes();
               MethodMetaData[] list = new 
MethodMetaData[MetaDataFactory.getPluginCount()];
               for(int i=0; i<list.length; i++) {
                   Class cls = MetaDataFactory.getPlugin(i).getMethodClass();
  @@ -142,6 +142,10 @@
       }
   
       public MethodMetaData getMethod(String name, Class[] args) {
  +        return getMethod(name, getClassNames(args));
  +    }
  +
  +    public MethodMetaData getMethod(String name, String[] args) {
           for(int i=0; i<methods.length; i++)
               if(methods[i].getName().equals(name) &&
                  paramsMatch(methods[i].getParameterTypes(), args))
  @@ -150,6 +154,10 @@
       }
   
       public MethodMetaData getHomeMethod(String name, Class[] args) {
  +        return getHomeMethod(name, getClassNames(args));
  +    }
  +
  +    public MethodMetaData getHomeMethod(String name, String[] args) {
           for(int i=0; i<homeMethods.length; i++)
               if(homeMethods[i].getName().equals(name) &&
                  paramsMatch(homeMethods[i].getParameterTypes(), args))
  @@ -184,12 +192,19 @@
           return container;
       }
   
  -    private static boolean paramsMatch(Class[] one, Class[] two) {
  +    private static boolean paramsMatch(String[] one, String[] two) {
           if(one.length != two.length)
               return false;
           for(int i=0; i<one.length; i++)
               if(!one[i].equals(two[i]))
                   return false;
           return true;
  +    }
  +
  +    private static String[] getClassNames(Class[] source) {
  +        String out[] = new String[source.length];
  +        for(int i=0; i<out.length; i++)
  +            out[i] = source[i].getName();
  +        return out;
       }
   }
  
  
  
  1.2       +4 -4      jboss/src/main/org/jboss/metadata/aggregate/AggregateMethod.java
  
  Index: AggregateMethod.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/aggregate/AggregateMethod.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AggregateMethod.java      2000/07/04 00:10:03     1.1
  +++ AggregateMethod.java      2000/07/28 14:00:49     1.2
  @@ -5,14 +5,14 @@
   
   public class AggregateMethod extends AggregateMetaData implements MethodMetaData {
       private String name;
  -    private Class[] params;
  +    private String[] params;
   
  -    public AggregateMethod(String name, Class[] paramTypes) {
  +    public AggregateMethod(String name, String[] paramTypes) {
           this.name = name;
           params = paramTypes;
       }
   
  -    public AggregateMethod(String name, Class[] paramTypes, MethodMetaData[] 
plugins) {
  +    public AggregateMethod(String name, String[] paramTypes, MethodMetaData[] 
plugins) {
           super(plugins);
           this.name = name;
           params = paramTypes;
  @@ -26,7 +26,7 @@
           return name;
       }
   
  -    public Class[] getParameterTypes() {
  +    public String[] getParameterTypes() {
           return params;
       }
   }
  
  
  

Reply via email to