mirror of
https://github.com/apache/struts.git
synced 2026-08-11 09:36:57 +00:00
WW-3851 adds FileManager dependency
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1364073 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -21,33 +21,35 @@
|
||||
|
||||
package org.apache.struts2.osgi;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.*;
|
||||
|
||||
import org.osgi.framework.Bundle;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
import com.opensymphony.xwork2.FileManager;
|
||||
import com.opensymphony.xwork2.ObjectFactory;
|
||||
import com.opensymphony.xwork2.ActionContext;
|
||||
import com.opensymphony.xwork2.inject.Inject;
|
||||
import com.opensymphony.xwork2.config.Configuration;
|
||||
import com.opensymphony.xwork2.config.ConfigurationException;
|
||||
import com.opensymphony.xwork2.config.PackageProvider;
|
||||
import com.opensymphony.xwork2.config.entities.PackageConfig;
|
||||
import com.opensymphony.xwork2.config.impl.DefaultConfiguration;
|
||||
import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
|
||||
import com.opensymphony.xwork2.util.location.Location;
|
||||
import com.opensymphony.xwork2.util.logging.Logger;
|
||||
import com.opensymphony.xwork2.util.logging.LoggerFactory;
|
||||
import org.osgi.framework.Bundle;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Package loader implementation that loads resources from a bundle
|
||||
*/
|
||||
public class BundlePackageLoader implements PackageLoader {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(BundlePackageLoader.class);
|
||||
|
||||
public List<PackageConfig> loadPackages(Bundle bundle, BundleContext bundleContext, ObjectFactory objectFactory, Map<String, PackageConfig> pkgConfigs) throws ConfigurationException {
|
||||
public List<PackageConfig> loadPackages(Bundle bundle, BundleContext bundleContext, ObjectFactory objectFactory,
|
||||
FileManager fileManager, Map<String, PackageConfig> pkgConfigs) throws ConfigurationException {
|
||||
Configuration config = new DefaultConfiguration("struts.xml");
|
||||
BundleConfigurationProvider prov = new BundleConfigurationProvider("struts.xml", bundle, bundleContext);
|
||||
for (PackageConfig pkg : pkgConfigs.values()) {
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
package org.apache.struts2.osgi;
|
||||
|
||||
import com.opensymphony.xwork2.ActionContext;
|
||||
import com.opensymphony.xwork2.FileManager;
|
||||
import com.opensymphony.xwork2.FileManagerFactory;
|
||||
import com.opensymphony.xwork2.ObjectFactory;
|
||||
import com.opensymphony.xwork2.config.Configuration;
|
||||
import com.opensymphony.xwork2.config.ConfigurationException;
|
||||
@@ -54,6 +56,7 @@ public class OsgiConfigurationProvider implements PackageProvider, BundleListene
|
||||
|
||||
private Configuration configuration;
|
||||
private ObjectFactory objectFactory;
|
||||
private FileManager fileManager;
|
||||
|
||||
private OsgiHost osgiHost;
|
||||
private BundleContext bundleContext;
|
||||
@@ -130,7 +133,7 @@ public class OsgiConfigurationProvider implements PackageProvider, BundleListene
|
||||
|
||||
//XML config
|
||||
PackageLoader loader = new BundlePackageLoader();
|
||||
for (PackageConfig pkg : loader.loadPackages(bundle, bundleContext, objectFactory, configuration.getPackageConfigs())) {
|
||||
for (PackageConfig pkg : loader.loadPackages(bundle, bundleContext, objectFactory, fileManager, configuration.getPackageConfigs())) {
|
||||
configuration.addPackageConfig(pkg.getName(), pkg);
|
||||
bundleAccessor.addPackageFromBundle(bundle, pkg.getName());
|
||||
}
|
||||
@@ -202,6 +205,10 @@ public class OsgiConfigurationProvider implements PackageProvider, BundleListene
|
||||
this.servletContext = servletContext;
|
||||
}
|
||||
|
||||
public void setFileManagerFactory(FileManagerFactory fmFactory) {
|
||||
this.fileManager = fmFactory.getFileManager();
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
try {
|
||||
osgiHost.destroy();
|
||||
|
||||
@@ -21,20 +21,22 @@
|
||||
|
||||
package org.apache.struts2.osgi;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.opensymphony.xwork2.FileManager;
|
||||
import com.opensymphony.xwork2.ObjectFactory;
|
||||
import com.opensymphony.xwork2.config.ConfigurationException;
|
||||
import com.opensymphony.xwork2.config.entities.PackageConfig;
|
||||
import org.osgi.framework.Bundle;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
import com.opensymphony.xwork2.ObjectFactory;
|
||||
import com.opensymphony.xwork2.config.ConfigurationException;
|
||||
import com.opensymphony.xwork2.config.PackageProvider;
|
||||
import com.opensymphony.xwork2.config.entities.PackageConfig;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Implementations of this interface can load packages from a Bundle
|
||||
*/
|
||||
public interface PackageLoader {
|
||||
List<PackageConfig> loadPackages(Bundle bundle, BundleContext bundleContext, ObjectFactory objectFactory, Map<String, PackageConfig> map) throws ConfigurationException;
|
||||
|
||||
List<PackageConfig> loadPackages(Bundle bundle, BundleContext bundleContext, ObjectFactory objectFactory, FileManager fileManager,
|
||||
Map<String, PackageConfig> map) throws ConfigurationException;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user