diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.weaving.caching.j9/src/org/eclipse/equinox/weaving/internal/caching/j9/CachingService.java')
-rw-r--r-- | bundles/org.eclipse.equinox.weaving.caching.j9/src/org/eclipse/equinox/weaving/internal/caching/j9/CachingService.java | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/bundles/org.eclipse.equinox.weaving.caching.j9/src/org/eclipse/equinox/weaving/internal/caching/j9/CachingService.java b/bundles/org.eclipse.equinox.weaving.caching.j9/src/org/eclipse/equinox/weaving/internal/caching/j9/CachingService.java deleted file mode 100644 index df3026c54..000000000 --- a/bundles/org.eclipse.equinox.weaving.caching.j9/src/org/eclipse/equinox/weaving/internal/caching/j9/CachingService.java +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008, 2009 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * David Knibb initial implementation - * Matthew Webster Eclipse 3.2 changes - * Martin Lippert extracted caching service factory - * Martin Lippert caching of generated classes - *******************************************************************************/ - -package org.eclipse.equinox.weaving.internal.caching.j9; - -import java.net.URL; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Map; - -import com.ibm.oti.shared.HelperAlreadyDefinedException; -import com.ibm.oti.shared.Shared; -import com.ibm.oti.shared.SharedClassURLHelper; - -import org.eclipse.equinox.service.weaving.CacheEntry; -import org.eclipse.equinox.service.weaving.ICachingService; -import org.osgi.framework.Bundle; - -public class CachingService implements ICachingService { - - SharedClassURLHelper urlhelper; - - private final Bundle bundle; - - private final ClassLoader classLoader; - - private final String partition; - - public CachingService(final ClassLoader loader, final Bundle bundle, - final String key) { - if (CachingServicePlugin.DEBUG) - System.out.println("> CachingService.<init>() bundle=" - + bundle.getSymbolicName() + ", loader=" + loader - + ", key='" + key + "'"); - this.bundle = bundle; - this.classLoader = loader; - this.partition = hashNamespace(key + bundle.getBundleId() - + bundle.getLastModified()); - try { - urlhelper = Shared.getSharedClassHelperFactory().getURLHelper( - classLoader); - } catch (final HelperAlreadyDefinedException e) { - e.printStackTrace(); - } - if (CachingServicePlugin.DEBUG) - System.out.println("< CachingService.<init>() partition='" - + partition + "', urlhelper=" + urlhelper); - } - - /** - * @see org.eclipse.equinox.service.weaving.ICachingService#canCacheGeneratedClasses() - */ - public boolean canCacheGeneratedClasses() { - return false; - } - - /** - * @see org.eclipse.equinox.service.weaving.ICachingService#findStoredClass(java.lang.String, - * java.net.URL, java.lang.String) - */ - public CacheEntry findStoredClass(final String namespace, - final URL sourceFileURL, final String name) { - final byte[] bytes = urlhelper.findSharedClass(partition, - sourceFileURL, name); - if (CachingServicePlugin.DEBUG && bytes != null) - System.out.println("- CachingService.findStoredClass() bundle=" - + bundle.getSymbolicName() + ", name=" + name + ", url=" - + sourceFileURL + ", bytes=" + bytes); - - if (bytes != null) { - return new CacheEntry(true, bytes); - } else { - return new CacheEntry(false, null); - } - } - - /** - * Hash the shared class namespace using MD5 - * - * @param keyToHash - * @return the MD5 version of the input string - */ - public String hashNamespace(final String namespace) { - MessageDigest md = null; - try { - md = MessageDigest.getInstance("MD5"); - } catch (final NoSuchAlgorithmException e) { - e.printStackTrace(); - } - final byte[] bytes = md.digest(namespace.getBytes()); - final StringBuffer result = new StringBuffer(); - for (int i = 0; i < bytes.length; i++) { - final byte b = bytes[i]; - int num; - if (b < 0) { - num = b + 256; - } else { - num = b; - } - String s = Integer.toHexString(num); - while (s.length() < 2) { - s = "0" + s; - } - result.append(s); - } - return new String(result); - } - - /** - * @see org.eclipse.equinox.service.weaving.ICachingService#stop() - */ - public void stop() { - } - - /** - * @see org.eclipse.equinox.service.weaving.ICachingService#storeClass(java.lang.String, - * java.net.URL, java.lang.Class, byte[]) - */ - public boolean storeClass(final String namespace, final URL sourceFileURL, - final Class<?> clazz, final byte[] classbytes) { - final boolean success = urlhelper.storeSharedClass(partition, - sourceFileURL, clazz); - if (CachingServicePlugin.DEBUG && success) - System.out.println("- CachingService.storeClass() bundle=" - + bundle.getSymbolicName() + ", clazz=" + clazz + ", url=" - + sourceFileURL); - return success; - } - - /** - * @see org.eclipse.equinox.service.weaving.ICachingService#storeClassAndGeneratedClasses(java.lang.String, - * java.net.URL, java.lang.Class, byte[], java.util.Map) - */ - public boolean storeClassAndGeneratedClasses(final String namespace, - final URL sourceFileUrl, final Class<?> clazz, - final byte[] classbytes, final Map<String, byte[]> generatedClasses) { - return false; - } - -} |