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

Reply via email to