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? 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 > > -- Thusitha Dayaratne Software Engineer WSO2 Inc. - lean . enterprise . middleware | wso2.com Mobile +94712756809 Blog alokayasoya.blogspot.com About http://about.me/thusithathilina