com.liferay.portal.spring.extender.internal.context.ModuleApplicationContext.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.portal.spring.extender.internal.context.ModuleApplicationContext.java

Source

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.portal.spring.extender.internal.context;

import java.net.URL;

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;

/**
 * @author Miguel Pastor
 */
public class ModuleApplicationContext extends ClassPathXmlApplicationContext {

    public ModuleApplicationContext(Bundle bundle, ClassLoader classLoader, String[] configLocations) {

        super(configLocations, false, null);

        _bundle = bundle;

        setClassLoader(classLoader);
    }

    public BundleContext getBundleContext() {
        return _bundle.getBundleContext();
    }

    @Override
    public Resource[] getResources(String locationPattern) {
        Enumeration<URL> enumeration = _bundle.findEntries(locationPattern, "*.xml", false);

        List<Resource> resources = new ArrayList<>();

        while (enumeration.hasMoreElements()) {
            resources.add(new UrlResource(enumeration.nextElement()));
        }

        return resources.toArray(new Resource[resources.size()]);
    }

    private final Bundle _bundle;

}