On 07/04/2015 07:51, Thusitha Thilina Dayaratne wrote: > Hi All, > > I'm having the same issue. We have extend the WebAppLoader as follows in > the Tomcat 7 > > public class CarbonWebappLoader extends WebappLoader { > @Override > protected void startInternal() throws LifecycleException { > WebappClassloadingContext webappClassloadingContext; > try { > webappClassloadingContext = > ClassloadingContextBuilder.buildClassloadingContext(getWebappFilePath()); > } catch (Exception e) { > throw new LifecycleException(e.getMessage(), e); > } > > //Adding provided classpath entries, if any > for (String repository : > webappClassloadingContext.getProvidedRepositories()) { > addRepository(repository); > } > > super.startInternal(); > > //Adding the WebappClassloadingContext to the WebappClassloader > ((CarbonWebappClassLoader) > getClassLoader()).setWebappCC(webappClassloadingContext); > } > } > > Since addRepository method have been removed, what could I do?
Don't top-post. Read the thread history. The answer has already been provided by Chris. Mark > > > Thanks > Best Regards > /Thusitha > > On Wed, Mar 18, 2015 at 12:25 AM, Mark Thomas <ma...@apache.org> wrote: > >> On 17/03/2015 18:30, Ed Rouse wrote: >>> >>> >>>> -----Original Message----- >>>> From: Pilkington, Simon [mailto:simo...@amazon.com] >>>> Sent: Tuesday, March 17, 2015 12:45 PM >>>> To: users@tomcat.apache.org >>>> Subject: [Tomcat8] What happened to WebappLoader.addRepository()? >>>> >>>> Hey tomcat users, >>>> >>>> The javadoc for WebappLoader still tells me to use addRepository(), but >>>> that method no longer exists. My team has implemented an extension of >>>> WebappLoader that looked like this: >>>> >>>> http://cp.mcafee.com/d/1jWVIq3zqb2rzydPhOCYrKrhKCqenTzhOe7cCQrFCzBZUQsL >>>> 9ICQrFCzBZUQszxP1J6WpEVvd7aabPxLURrFUalAv3UYKrlAv3UYKrKXHXRTT-LPz5TCnA- >>>> LsKyev7szsQsIFICzBzBHEShhlKYPOEuvkzaT0QSyrjdTdTdAVPmEBCjGHrpZGSS9_M079R >>>> lJIOUXHBQaSPlFo01PlJIj_brfjVgT3WWxYs0nO6Hb1mKEv7wsrrFYq5U_dKc2WrWr9EVjb >>>> _6HtfelAv3UYK2FRlJI- >>>> Rrr4_U02rs7e3zpFr1dlrrdUQKCy01iuPd41flBLxW1EwDkQg0bV3lBwHnkfzSE80LRGQBe >>>> IiNEEd598S-UrI1Lf5-sL >>>> http://cp.mcafee.com/d/2DRPoAd3hJ5xdNN6VEVjudTdETjd7bXNEV73CjqdQPhO- >>>> YqenASjqdQPhO- >>>> YqehMVwSztcQsLCzB55VMTYqJQY5aOfxYundGOfxYundTtRZWXX_nVNyXPbOvnKnh7fzKhK >>>> qemkSjhONORQr8EGTupVkffGhBrwqrjdFCXCXCOsVHkiP9RlJI- >>>> Rrr4_U03AWGSSptXHBQaSPlFo01PlJIj_brfjVgT3WWxYs0nO6Hb1mKEv7wsrrFYq5U_dKc >>>> 2WrWr9EVjb_6HtfelAv3UYK2FRlJI- >>>> Rrr4_U02rs7e3zpFr1dlrrdUQKCy01iuPd41flBLxW1EwDkQg0bV3lBwHnkfzSE80LRGQBe >>>> IiNEEd598S-UrHrI5 >>>> >>>> @Override >>>> protected void startInternal() throws LifecycleException { >>>> // validate the context, which is used for debugging messages >>>> Context context; >>>> { >>>> Container container = getContainer(); >>>> if (container == null) { >>>> throw new LifecycleException("Container is null?!"); >>>> } >>>> if (!(container instanceof Context)) { >>>> throw new LifecycleException("Container is not an >>>> instance of Context?!"); >>>> } >>>> context = (Context) container; >>>> } >>>> >>>> if (ENVIRONMENT_ROOT != null && ENVIRONMENT_ROOT.length() > 0) { >>>> // validate targetPackage >>>> if (null == targetPackage) { >>>> throw new LifecycleException( >>>> "Missing required Loader attribute >>>> \"targetPackage\" in Context configuration " + >>>> context.getConfigFile()); >>>> } >>>> >>>> try { >>>> // Excluded jars are those already pulled in by tomcat. >>>> Set<String> allExcludedJars = getAllExcludedJars(); >>>> Set<String> reallyExcludedJars = new HashSet<String>(); >>>> // add JARs from target package as "repositories" >>>> // getPackageClasspath finds the list of jars I want to >>>> include for this webapp. >>>> for (String jar : getPackageClasspath(targetPackage)) { >>>> File file = new File(ENVIRONMENT_ROOT, jar); >>>> // skip bad and unwanted JARs >>>> if (allExcludedJars.contains(jar) || isBadJar(file)) >>>> { >>>> reallyExcludedJars.add(jar); >>>> } else { >>>> // TODO: HOW TO FIX ME?? >>>> addRepository(file.toURI().toString()); >>>> } >>>> } >>>> log.info("Context path \"" + context.getPath() + "\" >>>> excluding JARs: " + reallyExcludedJars); >>>> } catch (IOException e) { >>>> throw new LifecycleException( >>>> "Problem setting classpath for context path \"" >>>> + context.getPath() + "\"", >>>> e); >>>> } >>>> >>>> // getRepositoriesString() has been renamed to >>>> getLoaderRepositoriesString()... >>>> log.info("Context path \"" + context.getPath() + "\" using >>>> classpath: " + getRepositoriesString()); >>>> } else { >>>> log.warning("MyWebappLoader seems to be used outside of my >>>> environment. Delegating to parent."); >>>> } >>>> >>>> super.startInternal(); >>>> } >>>> >>>> Can the community help me figure out how to upgrade this for tomcat 8? >>> >>> JarResourceSet jrs = new JarResourceSet(Context.getResources(), "/", >> file.getAbsolutePath(), "/"); >>> Context.getResources().addPostResources(jrs); >> >> Bad idea. That will mount the contents of the JAR at the root of the web >> application. >> >> Mark >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >> > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org