Author: tcurdt
Date: Sat Sep 24 05:25:31 2005
New Revision: 291289

URL: http://svn.apache.org/viewcvs?rev=291289&view=rev
Log:
updated to latest jci, a few other changes

Added:
    jakarta/commons/sandbox/javaflow/trunk/lib/commons-jci-r291284.jar   (with 
props)
    
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/
    
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/JavaflowResourceStore.java
    
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/TransformingResourceStore.java
      - copied, changed from r290097, 
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/TransformingResourceStore.java
Removed:
    jakarta/commons/sandbox/javaflow/trunk/lib/commons-jci-r290820.jar
    
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/RewritingResourceStore.java
    
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/TransformingResourceStore.java
Modified:
    jakarta/commons/sandbox/javaflow/trunk/project.properties
    jakarta/commons/sandbox/javaflow/trunk/project.xml

Added: jakarta/commons/sandbox/javaflow/trunk/lib/commons-jci-r291284.jar
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/lib/commons-jci-r291284.jar?rev=291289&view=auto
==============================================================================
Binary file - no diff available.

Propchange: jakarta/commons/sandbox/javaflow/trunk/lib/commons-jci-r291284.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: jakarta/commons/sandbox/javaflow/trunk/project.properties
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/project.properties?rev=291289&r1=291288&r2=291289&view=diff
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/project.properties (original)
+++ jakarta/commons/sandbox/javaflow/trunk/project.properties Sat Sep 24 
05:25:31 2005
@@ -31,7 +31,7 @@
 # ------------------------------------------------------------------------
 # Jars set explicity by path.
 # ------------------------------------------------------------------------
-maven.jar.commons-jci = lib/commons-jci-r290820.jar
+maven.jar.commons-jci = lib/commons-jci-r291284.jar
 maven.jar.bcel = lib/jakarta-bcel-20050813.jar
 maven.jar.commons-io = lib/commons-io-20050621.133116.jar
 maven.jar.asm = lib/asm-20050703.234510.jar

Modified: jakarta/commons/sandbox/javaflow/trunk/project.xml
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/project.xml?rev=291289&r1=291288&r2=291289&view=diff
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/project.xml (original)
+++ jakarta/commons/sandbox/javaflow/trunk/project.xml Sat Sep 24 05:25:31 2005
@@ -84,8 +84,8 @@
     <dependency>
       <groupId>commons-jci</groupId>
       <artifactId>commons-jci</artifactId>
-      <version>r290820</version>
-      <jar>${basedir}/lib/commons-jci-r290820.jar</jar>
+      <version>r291284</version>
+      <jar>${basedir}/lib/commons-jci-r291284.jar</jar>
       <type>jar</type>
     </dependency>
     <dependency>

Added: 
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/JavaflowResourceStore.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/JavaflowResourceStore.java?rev=291289&view=auto
==============================================================================
--- 
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/JavaflowResourceStore.java
 (added)
+++ 
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/JavaflowResourceStore.java
 Sat Sep 24 05:25:31 2005
@@ -0,0 +1,92 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.javaflow.stores;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import org.apache.bcel.Repository;
+import org.apache.bcel.util.ClassLoaderRepository;
+import org.apache.commons.javaflow.bytecode.transformation.ResourceTransformer;
+import 
org.apache.commons.javaflow.bytecode.transformation.bcel.BcelClassTransformer;
+import org.apache.commons.jci.stores.MemoryResourceStore;
+import org.apache.commons.jci.stores.ResourceStore;
+import org.apache.commons.jci.stores.TransactionalResourceStore;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Due to the BCEL dependency handling all
+ * classes have to be store first and then
+ * be rewritten. Otherwise we could just
+ * delegate to the TransformingResourceStore
+ * 
+ * @author tcurdt
+ */
+public final class JavaflowResourceStore extends TransactionalResourceStore {
+
+    private final static Log log = 
LogFactory.getLog(JavaflowResourceStore.class);
+
+    private final TransformingResourceStore tstore;
+    private final Collection changes = new ArrayList();
+    
+    public JavaflowResourceStore() {
+        this(new MemoryResourceStore());
+    }
+    
+    public JavaflowResourceStore(final ResourceStore pStore) {
+        super(pStore);
+        tstore = new TransformingResourceStore(
+                pStore,
+                new ResourceTransformer[] { new BcelClassTransformer() }
+                );
+        Repository.setRepository(new 
ClassLoaderRepository(this.getClass().getClassLoader()));
+    }
+
+    public void write(final String pResourceName, final byte[] pResourceData) {
+        super.write(pResourceName, pResourceData);
+        changes.add(pResourceName);
+    }
+
+    public void onStart() {
+        changes.clear();
+    }
+
+    public void onStop() {
+        if (changes.size() > 0) {
+            log.debug("rewriting"  + changes);
+            
+            for (Iterator it = changes.iterator(); it.hasNext();) {
+                final String clazzName = (String) it.next();
+                try {
+                    final byte[] oldClazz = super.read(clazzName);
+                    
+                    if (oldClazz == null) {
+                        throw new ClassNotFoundException("could not find " + 
clazzName);
+                    }
+                    
+                    tstore.write(clazzName, oldClazz);
+                    
+                    log.debug("rewrote " + clazzName);
+                } catch (ClassNotFoundException e) {
+                    log.error("", e);
+                }
+            }
+            
+            changes.clear();
+        }
+    }
+}

Copied: 
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/TransformingResourceStore.java
 (from r290097, 
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/TransformingResourceStore.java)
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/TransformingResourceStore.java?p2=jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/TransformingResourceStore.java&p1=jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/TransformingResourceStore.java&r1=290097&r2=291289&rev=291289&view=diff
==============================================================================
--- 
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/TransformingResourceStore.java
 (original)
+++ 
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/stores/TransformingResourceStore.java
 Sat Sep 24 05:25:31 2005
@@ -13,8 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.javaflow.bytecode.transformation;
+package org.apache.commons.javaflow.stores;
 
+import org.apache.commons.javaflow.bytecode.transformation.ResourceTransformer;
 import org.apache.commons.jci.stores.ResourceStore;
 
 
@@ -42,14 +43,14 @@
         byte[] out = resourceData;
         
         // FIXME: make the matching configurable
-        if (resourceName.endsWith(".class")) {
+        //if (resourceName.endsWith(".class")) {
             byte[] in = resourceData;
             
             for(int i=0; i<transformers.length; i++) {
                 out = transformers[i].transform(in);
                 in = out;
             }
-        }
+        //}
 
         store.write(resourceName, out);
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to