1 87 package org.codehaus.loom.components.classloader; 88 89 import java.io.File ; 90 import java.net.URL ; 91 import java.security.Policy ; 92 import java.util.Map ; 93 import org.codehaus.dna.AbstractLogEnabled; 94 import org.codehaus.dna.impl.ContainerUtil; 95 import org.codehaus.loom.components.util.ResourceUtil; 96 import org.codehaus.loom.xmlpolicy.builder.PolicyResolver; 97 98 105 class SarPolicyResolver 106 extends AbstractLogEnabled 107 implements PolicyResolver 108 { 109 private final File m_baseDirectory; 110 private final File m_workDirectory; 111 112 SarPolicyResolver( final File baseDirectory, 113 final File workDirectory ) 114 { 115 m_workDirectory = workDirectory; 116 m_baseDirectory = baseDirectory; 117 } 118 119 public Policy createPolicy( final Map grants ) 120 throws Exception 121 { 122 final SarPolicy sarPolicy = new SarPolicy( grants ); 123 ContainerUtil.enableLogging( sarPolicy, getLogger() ); 124 ContainerUtil.initialize( sarPolicy ); 125 return sarPolicy; 126 } 127 128 public URL resolveLocation( String location ) 129 throws Exception 130 { 131 if( null == location ) 132 { 133 return null; 134 } 135 else 136 { 137 location = ResourceUtil.expandSarURL( location, 138 m_baseDirectory, 139 m_workDirectory ); 140 return new URL ( location ); 141 } 142 } 143 } 144 | Popular Tags |