From: <aft...@us...> - 2007-06-06 14:23:27
|
Revision: 4248 http://svn.sourceforge.net/smartfrog/?rev=4248&view=rev Author: aftereight Date: 2007-06-06 07:07:46 -0700 (Wed, 06 Jun 2007) Log Message: ----------- cleanup Modified Paths: -------------- branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java Modified: branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java =================================================================== --- branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java 2007-06-06 13:07:02 UTC (rev 4247) +++ branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java 2007-06-06 14:07:46 UTC (rev 4248) @@ -162,22 +162,18 @@ * @exception Exception failed to load class */ protected Class getPrimClass() throws Exception { - System.out.println("getPrimClass"); String targetCodeBase=null; String targetClassName=null; Object obj=null; try { // extract code base - System.out.println("getSfCodeBase"); targetCodeBase = getSfCodeBase(target); // extract class name - System.out.println("sfResolve(refClass)"); obj = target.sfResolve(refClass); targetClassName = (String) obj; // We look in the default code base if everything else fails. - System.out.println("SFClassLoader.forName"); return SFClassLoader.forName(targetClassName,targetCodeBase, true); } catch (SmartFrogResolutionException resex) { resex.put(SmartFrogRuntimeException.SOURCE, target.sfCompleteName()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aft...@us...> - 2007-06-29 18:30:50
|
Revision: 4513 http://svn.sourceforge.net/smartfrog/?rev=4513&view=rev Author: aftereight Date: 2007-06-29 11:30:48 -0700 (Fri, 29 Jun 2007) Log Message: ----------- Temporary hack to make DNSComponentDeployerImpl work Modified Paths: -------------- branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java Modified: branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java =================================================================== --- branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java 2007-06-29 17:56:48 UTC (rev 4512) +++ branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java 2007-06-29 18:30:48 UTC (rev 4513) @@ -20,15 +20,15 @@ package org.smartfrog.sfcore.prim; -import org.smartfrog.sfcore.common.Context; -import org.smartfrog.sfcore.common.MessageKeys; -import org.smartfrog.sfcore.common.SmartFrogDeploymentException; -import org.smartfrog.sfcore.common.SmartFrogException; -import org.smartfrog.sfcore.common.SmartFrogRuntimeException; +import org.smartfrog.sfcore.common.*; import org.smartfrog.sfcore.componentdescription.ComponentDescription; +import org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl; import org.smartfrog.sfcore.deployer.ComponentDeployer; import org.smartfrog.sfcore.deployer.ComponentFactory; import org.smartfrog.sfcore.reference.Reference; +import org.smartfrog.sfcore.security.SFClassLoader; +import org.smartfrog.sfcore.logging.LogSF; +import org.smartfrog.sfcore.logging.LogFactory; import java.util.Enumeration; @@ -138,4 +138,94 @@ } return deploy(parent); } + + // BEGIN LEGACY CODE ////////////// + // This is now in OldAlgorithmComponentFactory, but DNSComponentDeployerImpl needs it here. + // Should be removed very soon. + + + private LogSF sfLog = LogFactory.sfGetProcessLog(); + + + /** + * Efficiency holder of sfClass reference. + */ + private static final Reference refClass = new Reference( + SmartFrogCoreKeys.SF_CLASS); + + /** + * Efficiency holder of sfCodeBase reference. + */ + private static final Reference refCodeBase = new Reference( + SmartFrogCoreKeys.SF_CODE_BASE); + + + /** + * Get the class for the primitive to be deployed. This is where the + * sfClass attribute is looked up, using the classloader returned by + * getPrimClassLoader + * + * @return class for target + * @throws Exception failed to load class + */ + private Class getPrimClass() throws SmartFrogResolutionException, SmartFrogDeploymentException { + String targetCodeBase = null; + String targetClassName; + Object obj = null; + try { + + targetCodeBase = getSfCodeBase(target); + targetClassName = (String) target.sfResolve(refClass); + + // 3rd parameter = true: We look in the default code base if everything else fails. + return SFClassLoader.forName(targetClassName, targetCodeBase, true); + + } catch (SmartFrogResolutionException resex) { + resex.put(SmartFrogRuntimeException.SOURCE, target.sfCompleteName()); + resex.fillInStackTrace(); + + throw resex; + } catch (ClassCastException ccex) { + Object name = null; + if (target.sfContext().containsKey(SmartFrogCoreKeys.SF_PROCESS_COMPONENT_NAME)) { + name = target.sfResolveHere(SmartFrogCoreKeys.SF_PROCESS_COMPONENT_NAME, false); + } + throw new SmartFrogDeploymentException(refClass, null, name, target, + null, "Wrong class when resolving '" + refClass + "': '" + + obj + "' (" + obj.getClass().getName() + ")", ccex, targetCodeBase); + } catch (ClassNotFoundException cnfex) { + Object name = null; + if (target.sfContext().containsKey(SmartFrogCoreKeys.SF_PROCESS_COMPONENT_NAME)) { + name = target.sfResolveHere(SmartFrogCoreKeys.SF_PROCESS_COMPONENT_NAME, false); + } + ComponentDescription cdInfo = new ComponentDescriptionImpl(null, new ContextImpl(), false); + try { + if (targetCodeBase != null) cdInfo.sfAddAttribute(SmartFrogCoreKeys.SF_CODE_BASE, + targetCodeBase); + cdInfo.sfAddAttribute("java.class.path", System.getProperty("java.class.path")); + cdInfo.sfAddAttribute("org.smartfrog.sfcore.processcompound.sfProcessName", + System.getProperty("org.smartfrog.sfcore.processcompound.sfProcessName")); + } catch (SmartFrogException sfex) { + if (sfLog.isDebugEnabled()) sfLog.debug("", sfex); + } + throw new SmartFrogDeploymentException(refClass, null, name, target, null, "Class not found", cnfex, cdInfo); + } + } + + /** + * Gets the class code base by resolving the sfCodeBase attribute in the + * given description. + * + * @param desc Description in which we resolve the code base. + * @return class code base for that description. + */ + private String getSfCodeBase(ComponentDescription desc) { + try { + return (String) desc.sfResolve(refCodeBase); + } catch (Exception e) { + return null; + } + } + + // END LEGACY CODE //////////////// } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aft...@us...> - 2007-06-29 18:36:58
|
Revision: 4514 http://svn.sourceforge.net/smartfrog/?rev=4514&view=rev Author: aftereight Date: 2007-06-29 11:36:57 -0700 (Fri, 29 Jun 2007) Log Message: ----------- Temporary hack to make DNSComponentDeployerImpl work Modified Paths: -------------- branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java Modified: branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java =================================================================== --- branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java 2007-06-29 18:30:48 UTC (rev 4513) +++ branches/core-branch-osgi/smartfrog/src/org/smartfrog/sfcore/prim/PrimDeployerImpl.java 2007-06-29 18:36:57 UTC (rev 4514) @@ -168,7 +168,7 @@ * @return class for target * @throws Exception failed to load class */ - private Class getPrimClass() throws SmartFrogResolutionException, SmartFrogDeploymentException { + protected Class getPrimClass() throws SmartFrogResolutionException, SmartFrogDeploymentException { String targetCodeBase = null; String targetClassName; Object obj = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |