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

Reply via email to