Search in sources :

Example 1 with SourceManager

use of org.gbif.ipt.service.manage.SourceManager in project ipt by gbif.

the class ResourceManagerImplIT method data.

public static Stream<Arguments> data() throws IOException {
    // Mock classes
    AppConfig mockAppConfig = mock(AppConfig.class);
    // mock returning resource URI in gbif-uat belong
    when(mockAppConfig.getResourceUri(anyString())).thenReturn(UriBuilder.fromPath("http://www.gbif-uat.org:7001/ipt?r=ants").build());
    when(mockAppConfig.getResourceVersionUri("ants", new BigDecimal("1.1"))).thenReturn(UriBuilder.fromPath("http://www.gbif-uat.org:7001/ipt?r=ants&v=1.1").build());
    when(mockAppConfig.getMaxThreads()).thenReturn(3);
    UserAccountManager mockUserAccountManager = mock(UserAccountManager.class);
    UserEmailConverter mockEmailConverter = new UserEmailConverter(mockUserAccountManager);
    ExtensionRowTypeConverter mockExtensionRowTypeConverter = mock(ExtensionRowTypeConverter.class);
    ExtensionManager mockExtensionManager = mock(ExtensionManager.class);
    JdbcInfoConverter mockJdbcConverter = mock(JdbcInfoConverter.class);
    SourceManager mockSourceManager = mock(SourceManager.class);
    RegistryManager mockRegistryManager = MockRegistryManager.buildMock();
    GenerateDwcaFactory mockDwcaFactory = mock(GenerateDwcaFactory.class);
    PasswordEncrypter mockPasswordEncrypter = mock(PasswordEncrypter.class);
    Eml2Rtf mockEml2Rtf = mock(Eml2Rtf.class);
    VocabulariesManager mockVocabulariesManager = mock(VocabulariesManager.class);
    SimpleTextProvider mockSimpleTextProvider = mock(SimpleTextProvider.class);
    ConceptTermConverter mockConceptTermConverter = mock(ConceptTermConverter.class);
    // persist eml file for version 1.0 (contents written later)
    TMP_EML_FILE = File.createTempFile("eml-1.0", ".xml");
    when(MOCK_DATA_DIR.resourceEmlFile("ants", new BigDecimal("1.1"))).thenReturn(TMP_EML_FILE);
    // DataCite parameters..
    RegistrationManager mockRegistrationManagerDataCite = mock(RegistrationManager.class);
    Properties p = PropertiesUtil.loadProperties("datacite.properties");
    ClientConfiguration cfg = ClientConfiguration.builder().withBaseApiUrl(p.getProperty("baseApiUrl")).withTimeOut(Long.valueOf(p.getProperty("timeOut"))).withFileCacheMaxSizeMb(Long.valueOf(p.getProperty("fileCacheMaxSizeMb"))).withUser(p.getProperty("user")).withPassword(p.getProperty("password")).build();
    // LOG.info("DataCite password (read from Maven property datacite.password)= " + dcCfg.getPassword());
    Organisation oDataCite = new Organisation();
    oDataCite.setAgencyAccountPrimary(true);
    oDataCite.setName("GBIF");
    oDataCite.setDoiPrefix(Constants.TEST_DOI_PREFIX);
    oDataCite.setCanHost(true);
    oDataCite.setAgencyAccountUsername(cfg.getUser());
    oDataCite.setAgencyAccountPassword(cfg.getPassword());
    oDataCite.setDoiRegistrationAgency(DOIRegistrationAgency.DATACITE);
    // mock returning primary DOI agency account
    when(mockRegistrationManagerDataCite.findPrimaryDoiAgencyAccount()).thenReturn(oDataCite);
    // mock returning DataCite service
    DoiService dataCiteService = new RestJsonApiDataCiteService(cfg.getBaseApiUrl(), cfg.getUser(), cfg.getPassword());
    when(mockRegistrationManagerDataCite.getDoiService()).thenReturn(dataCiteService);
    // mock ResourceManagerImpl for DataCite
    ResourceManagerImpl managerDataCite = new ResourceManagerImpl(mockAppConfig, MOCK_DATA_DIR, mockEmailConverter, new OrganisationKeyConverter(mockRegistrationManagerDataCite), mockExtensionRowTypeConverter, mockJdbcConverter, mockSourceManager, mockExtensionManager, mockRegistryManager, mockConceptTermConverter, mockDwcaFactory, mockPasswordEncrypter, mockEml2Rtf, mockVocabulariesManager, mockSimpleTextProvider, mockRegistrationManagerDataCite);
    return Stream.of(Arguments.of(managerDataCite, DOIRegistrationAgency.DATACITE, DOIUtils.mintDOI(DOIRegistrationAgency.DATACITE, Constants.TEST_DOI_PREFIX), mockRegistrationManagerDataCite));
}
Also used : AppConfig(org.gbif.ipt.config.AppConfig) RegistrationManager(org.gbif.ipt.service.admin.RegistrationManager) RestJsonApiDataCiteService(org.gbif.doi.service.datacite.RestJsonApiDataCiteService) Organisation(org.gbif.ipt.model.Organisation) UserEmailConverter(org.gbif.ipt.model.converter.UserEmailConverter) JdbcInfoConverter(org.gbif.ipt.model.converter.JdbcInfoConverter) VocabulariesManager(org.gbif.ipt.service.admin.VocabulariesManager) Properties(java.util.Properties) BigDecimal(java.math.BigDecimal) Eml2Rtf(org.gbif.ipt.task.Eml2Rtf) UserAccountManager(org.gbif.ipt.service.admin.UserAccountManager) OrganisationKeyConverter(org.gbif.ipt.model.converter.OrganisationKeyConverter) PasswordEncrypter(org.gbif.ipt.model.converter.PasswordEncrypter) DoiService(org.gbif.doi.service.DoiService) ExtensionManager(org.gbif.ipt.service.admin.ExtensionManager) SimpleTextProvider(org.gbif.ipt.struts2.SimpleTextProvider) GenerateDwcaFactory(org.gbif.ipt.task.GenerateDwcaFactory) SourceManager(org.gbif.ipt.service.manage.SourceManager) MockRegistryManager(org.gbif.ipt.mock.MockRegistryManager) RegistryManager(org.gbif.ipt.service.registry.RegistryManager) ConceptTermConverter(org.gbif.ipt.model.converter.ConceptTermConverter) ClientConfiguration(org.gbif.datacite.rest.client.configuration.ClientConfiguration) ExtensionRowTypeConverter(org.gbif.ipt.model.converter.ExtensionRowTypeConverter)

Example 2 with SourceManager

use of org.gbif.ipt.service.manage.SourceManager in project ipt by gbif.

the class GenerateDCATTest method getResource.

/**
 * Generates a test Resource from zipped resource folder, and populates resource with license, contacts, etc.
 *
 * @param resourceXML resource (XML) configuration file defining column mapping of sourceFile
 *
 * @return test Resource
 */
private Resource getResource(@NotNull File resourceXML) throws IOException, SAXException, ParserConfigurationException, AlreadyExistingException, ImportException, InvalidFilenameException {
    UserAccountManager mockUserAccountManager = mock(UserAccountManager.class);
    UserEmailConverter mockEmailConverter = new UserEmailConverter(mockUserAccountManager);
    OrganisationKeyConverter mockOrganisationKeyConverter = new OrganisationKeyConverter(mockRegistrationManager);
    RegistryManager mockRegistryManager = MockRegistryManager.buildMock();
    GenerateDwcaFactory mockDwcaFactory = mock(GenerateDwcaFactory.class);
    Eml2Rtf mockEml2Rtf = mock(Eml2Rtf.class);
    VocabulariesManager mockVocabulariesManager = mock(VocabulariesManager.class);
    SimpleTextProvider mockSimpleTextProvider = mock(SimpleTextProvider.class);
    BaseAction baseAction = new BaseAction(mockSimpleTextProvider, mockAppConfig, mockRegistrationManager);
    // construct ExtensionFactory using injected parameters
    Injector injector = Guice.createInjector(new ServletModule(), new Struts2GuicePluginModule(), new IPTModule());
    HttpClient httpClient = injector.getInstance(HttpClient.class);
    ThesaurusHandlingRule thesaurusRule = new ThesaurusHandlingRule(mock(VocabulariesManagerImpl.class));
    SAXParserFactory saxf = injector.getInstance(SAXParserFactory.class);
    ExtensionFactory extensionFactory = new ExtensionFactory(thesaurusRule, saxf, httpClient);
    JdbcSupport support = injector.getInstance(JdbcSupport.class);
    PasswordEncrypter passwordEncrypter = injector.getInstance(PasswordEncrypter.class);
    JdbcInfoConverter jdbcConverter = new JdbcInfoConverter(support);
    // construct occurrence core Extension
    InputStream occurrenceCoreIs = GenerateDwcaTest.class.getResourceAsStream("/extensions/dwc_occurrence_2015-04-24.xml");
    Extension occurrenceCore = extensionFactory.build(occurrenceCoreIs);
    ExtensionManager extensionManager = mock(ExtensionManager.class);
    // mock ExtensionManager returning occurrence core Extension
    when(extensionManager.get("http://rs.tdwg.org/dwc/terms/Occurrence")).thenReturn(occurrenceCore);
    ExtensionRowTypeConverter extensionRowTypeConverter = new ExtensionRowTypeConverter(extensionManager);
    ConceptTermConverter conceptTermConverter = new ConceptTermConverter(extensionRowTypeConverter);
    // mock finding resource.xml file
    when(mockDataDir.resourceFile(anyString(), anyString())).thenReturn(resourceXML);
    // retrieve sample zipped resource folder
    File zippedResourceFolder = FileUtils.getClasspathFile("resources/res1.zip");
    // retrieve sample eml.xml file
    File emlXML = FileUtils.getClasspathFile("resources/res1/eml.xml");
    // mock finding eml.xml file
    when(mockDataDir.resourceEmlFile(anyString())).thenReturn(emlXML);
    // mock finding dwca.zip file that does not exist
    when(mockDataDir.resourceDwcaFile(anyString())).thenReturn(new File("dwca.zip"));
    // create SourceManagerImpl
    SourceManager mockSourceManager = new SourceManagerImpl(mock(AppConfig.class), mockDataDir);
    // create temp directory
    File tmpDataDir = FileUtils.createTempDir();
    when(mockDataDir.tmpDir()).thenReturn(tmpDataDir);
    // create ResourceManagerImpl
    ResourceManagerImpl resourceManager = new ResourceManagerImpl(mockAppConfig, mockDataDir, mockEmailConverter, mockOrganisationKeyConverter, extensionRowTypeConverter, jdbcConverter, mockSourceManager, extensionManager, mockRegistryManager, conceptTermConverter, mockDwcaFactory, passwordEncrypter, mockEml2Rtf, mockVocabulariesManager, mockSimpleTextProvider, mockRegistrationManager);
    // creator
    User creator = new User();
    creator.setEmail("jcuadra@gbif.org");
    creator.setLastname("Cuadra");
    // create a new resource.
    Resource resource = resourceManager.create(RESOURCE_SHORTNAME, null, zippedResourceFolder, creator, baseAction);
    // update resource title and description, to have double quotation marks which need to be escaped
    resource.setTitle("TEST \"RESOURCE\"");
    resource.getEml().getDescription().set(0, "Test \"description\"");
    // update keyword sets: should be three, with "Occurrence" and "Observation" repeating more than once which breaks the feed
    resource.getEml().getKeywords().clear();
    KeywordSet keywordSet1 = new KeywordSet();
    keywordSet1.add("Phytosociology");
    keywordSet1.add("Occurrence");
    keywordSet1.add("Observation");
    keywordSet1.setKeywordThesaurus("n/a");
    KeywordSet keywordSet2 = new KeywordSet();
    keywordSet2.add("Occurrence");
    keywordSet2.setKeywordThesaurus("http://rs.gbif.org/vocabulary/gbif/dataset_type.xml");
    KeywordSet keywordSet3 = new KeywordSet();
    keywordSet3.add("Observation");
    keywordSet3.setKeywordThesaurus("http://rs.gbif.org/vocabulary/gbif/dataset_subtype.xml");
    resource.getEml().addKeywordSet(keywordSet1);
    resource.getEml().addKeywordSet(keywordSet2);
    resource.getEml().addKeywordSet(keywordSet3);
    // CCO
    resource.getEml().setIntellectualRights("This work is licensed under <a href=\"http://creativecommons.org/publicdomain/zero/1.0/legalcode\">Creative Commons CCZero (CC0) 1.0 License</a>.");
    assertEquals("http://creativecommons.org/publicdomain/zero/1.0/legalcode", resource.getEml().parseLicenseUrl());
    // set creator, contact, and metadata provider
    Agent agent = new Agent();
    agent.setFirstName("Eric");
    agent.setLastName("Stienen");
    agent.setEmail("eric.stienen@inbo.be");
    resource.getEml().addCreator(agent);
    resource.getEml().addContact(agent);
    resource.getEml().addMetadataProvider(agent);
    return resource;
}
Also used : User(org.gbif.ipt.model.User) IPTModule(org.gbif.ipt.config.IPTModule) JdbcSupport(org.gbif.ipt.config.JdbcSupport) ServletModule(com.google.inject.servlet.ServletModule) KeywordSet(org.gbif.metadata.eml.KeywordSet) UserAccountManager(org.gbif.ipt.service.admin.UserAccountManager) OrganisationKeyConverter(org.gbif.ipt.model.converter.OrganisationKeyConverter) Injector(com.google.inject.Injector) MockRegistryManager(org.gbif.ipt.mock.MockRegistryManager) RegistryManager(org.gbif.ipt.service.registry.RegistryManager) ConceptTermConverter(org.gbif.ipt.model.converter.ConceptTermConverter) ExtensionRowTypeConverter(org.gbif.ipt.model.converter.ExtensionRowTypeConverter) MockAppConfig(org.gbif.ipt.mock.MockAppConfig) AppConfig(org.gbif.ipt.config.AppConfig) Agent(org.gbif.metadata.eml.Agent) InputStream(java.io.InputStream) ResourceManagerImpl(org.gbif.ipt.service.manage.impl.ResourceManagerImpl) Resource(org.gbif.ipt.model.Resource) BaseAction(org.gbif.ipt.action.BaseAction) SourceManagerImpl(org.gbif.ipt.service.manage.impl.SourceManagerImpl) UserEmailConverter(org.gbif.ipt.model.converter.UserEmailConverter) VocabulariesManager(org.gbif.ipt.service.admin.VocabulariesManager) JdbcInfoConverter(org.gbif.ipt.model.converter.JdbcInfoConverter) Extension(org.gbif.ipt.model.Extension) PasswordEncrypter(org.gbif.ipt.model.converter.PasswordEncrypter) VocabulariesManagerImpl(org.gbif.ipt.service.admin.impl.VocabulariesManagerImpl) ExtensionManager(org.gbif.ipt.service.admin.ExtensionManager) Struts2GuicePluginModule(com.google.inject.struts2.Struts2GuicePluginModule) ExtensionFactory(org.gbif.ipt.model.factory.ExtensionFactory) SimpleTextProvider(org.gbif.ipt.struts2.SimpleTextProvider) HttpClient(org.gbif.utils.HttpClient) ThesaurusHandlingRule(org.gbif.ipt.model.factory.ThesaurusHandlingRule) SourceManager(org.gbif.ipt.service.manage.SourceManager) File(java.io.File) SAXParserFactory(javax.xml.parsers.SAXParserFactory)

Example 3 with SourceManager

use of org.gbif.ipt.service.manage.SourceManager in project ipt by gbif.

the class TranslationActionTest method setup.

@BeforeEach
public void setup() throws Exception {
    // mock needed managers
    SimpleTextProvider mockTextProvider = mock(SimpleTextProvider.class);
    LocaleProviderFactory localeProviderFactory = new DefaultLocaleProviderFactory();
    AppConfig mockCfg = mock(AppConfig.class);
    ResourceManager mockResourceManager = mock(ResourceManager.class);
    SourceManager mockSourceManager = mock(SourceManager.class);
    VocabulariesManager mockVocabManager = mock(VocabulariesManager.class);
    TranslationAction.Translation translation = new TranslationAction.Translation();
    RegistrationManager mockRegistrationManager = mock(RegistrationManager.class);
    Container container = mock(Container.class);
    // mock getting list of values back for BasisOfRecord field/column in source
    Set<String> values = new LinkedHashSet<>();
    values.add("spe");
    values.add("obs");
    values.add("fos");
    when(mockSourceManager.inspectColumn(any(SourceBase.class), anyInt(), anyInt(), anyInt())).thenReturn(values);
    // mock getI18nVocab - only called in prepare()
    Map<String, String> mockVocab = new HashMap<>();
    mockVocab.put("NomenclaturalChecklist", "Nomenclatural Checklist");
    mockVocab.put("MachineObservation", "Machine Observation");
    when(mockVocabManager.getI18nVocab(anyString(), anyString(), anyBoolean())).thenReturn(mockVocab);
    // initialize new Resource
    Resource resource = new Resource();
    String resourceShortName = "TestResource";
    resource.setShortname(resourceShortName);
    // initialize new ExtensionMapping
    ExtensionMapping mapping = new ExtensionMapping();
    // add source to mapping
    mapping.setSource(new TextFileSource());
    ExtensionFactory factory = ExtensionFactoryTest.getFactory();
    Extension e = factory.build(ExtensionFactoryTest.class.getResourceAsStream("/extensions/dwc_occurrence.xml"));
    // ensure rowType for Extension is set
    if (e.getRowType() == null) {
        e.setRowType(Constants.DWC_ROWTYPE_TAXON);
    }
    // add extension to ExtensionMapping
    mapping.setExtension(e);
    // create map of source value
    TreeMap<String, String> sourceValues = new TreeMap<>();
    sourceValues.put("k1", "spe");
    sourceValues.put("k2", "obs");
    // create map of translation values
    TreeMap<String, String> translatedValues = new TreeMap<>();
    translatedValues.put("k1", "Preserved Specimen");
    translatedValues.put("k2", "observation");
    // create map of translations that get persisted
    Map<String, String> persistedTranslations = new HashMap<>();
    persistedTranslations.put("spe", "Preserved Specimen");
    persistedTranslations.put("obs", "observation");
    // initialize PropertyMapping for BasisOfRecord term
    PropertyMapping field = new PropertyMapping();
    // set ConceptTerm
    field.setTerm(DwcTerm.basisOfRecord);
    // set index
    field.setIndex(1);
    // add translations to field
    field.setTranslation(persistedTranslations);
    // add set of PropertyMapping, including field, to ExtensionMapping
    Set<PropertyMapping> fields = new TreeSet<>();
    fields.add(field);
    mapping.setFields(fields);
    // add ExtensionMapping to resource, with mapping ID 0
    List<ExtensionMapping> mappings = new LinkedList<>();
    mappings.add(mapping);
    resource.setMappings(mappings);
    // mock resourceManager.get - called only in ManagerBaseAction.prepare()
    when(mockResourceManager.get(anyString())).thenReturn(resource);
    // mock a locale provider
    when(container.getInstance(LocaleProviderFactory.class)).thenReturn(localeProviderFactory);
    // create mock Action
    action = new TranslationAction(mockTextProvider, mockCfg, mockRegistrationManager, mockResourceManager, mockSourceManager, mockVocabManager, translation);
    action.setContainer(container);
    // initialize ExtensionProperty representing BasisOfRecord field on Occurrence core Extension
    ExtensionProperty property = mapping.getExtension().getProperty(field.getTerm());
    // set a vocabulary for the BasisOfRecord field
    // mock creation of BasisOfRecord vocabulary
    VocabularyConcept concept = new VocabularyConcept();
    concept.setIdentifier("PreservedSpecimen");
    concept.setUri("http://rs.tdwg.org/dwc/dwctype/PreservedSpecimen");
    // preferred titles
    Set<VocabularyTerm> preferredTerms = new HashSet<>();
    VocabularyTerm term = new VocabularyTerm();
    term.setLang("en");
    term.setTitle("Preserved Specimen");
    preferredTerms.add(term);
    concept.setPreferredTerms(preferredTerms);
    // alternative titles
    Set<VocabularyTerm> alternateTerms = new HashSet<>();
    term = new VocabularyTerm();
    term.setLang("en");
    term.setTitle("Conserved Specimen");
    alternateTerms.add(term);
    concept.setAlternativeTerms(alternateTerms);
    Vocabulary vocab = new Vocabulary();
    List<VocabularyConcept> concepts = new ArrayList<>();
    concepts.add(concept);
    vocab.setConcepts(concepts);
    vocab.setUriString("http://rs.gbif.org/vocabulary/dwc/basis_of_record");
    property.setVocabulary(vocab);
    // create sessionScoped Translation
    // populate sessionScoped Translation with translations
    action.getTrans().setTmap(mapping.getExtension().getRowType(), property, sourceValues, translatedValues);
    // set various properties on Action
    action.setField(field);
    action.setExtensionMapping(mapping);
    action.setProperty(property);
    // mock servlet request
    HttpServletRequest mockRequest = mock(HttpServletRequest.class);
    // the mapping id is 0 - relates to resource's List<ExtensionMapping> mappings
    when(mockRequest.getParameter(TranslationAction.REQ_PARAM_MAPPINGID)).thenReturn("0");
    when(mockRequest.getParameter(TranslationAction.REQ_PARAM_ROWTYPE)).thenReturn(Constants.DWC_ROWTYPE_OCCURRENCE);
    when(mockRequest.getParameter(TranslationAction.REQ_PARAM_TERM)).thenReturn(DwcTerm.basisOfRecord.qualifiedName());
    when(mockRequest.getParameter(Constants.REQ_PARAM_RESOURCE)).thenReturn(resourceShortName);
    action.setServletRequest(mockRequest);
    // ensure the resource is set
    action.setResource(resource);
}
Also used : LinkedHashSet(java.util.LinkedHashSet) Vocabulary(org.gbif.ipt.model.Vocabulary) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) HttpServletRequest(javax.servlet.http.HttpServletRequest) Container(com.opensymphony.xwork2.inject.Container) TreeSet(java.util.TreeSet) LocaleProviderFactory(com.opensymphony.xwork2.LocaleProviderFactory) DefaultLocaleProviderFactory(com.opensymphony.xwork2.DefaultLocaleProviderFactory) HashSet(java.util.HashSet) LinkedHashSet(java.util.LinkedHashSet) AppConfig(org.gbif.ipt.config.AppConfig) RegistrationManager(org.gbif.ipt.service.admin.RegistrationManager) ExtensionFactoryTest(org.gbif.ipt.model.factory.ExtensionFactoryTest) SourceBase(org.gbif.ipt.model.SourceBase) Resource(org.gbif.ipt.model.Resource) VocabularyConcept(org.gbif.ipt.model.VocabularyConcept) TextFileSource(org.gbif.ipt.model.TextFileSource) ResourceManager(org.gbif.ipt.service.manage.ResourceManager) VocabulariesManager(org.gbif.ipt.service.admin.VocabulariesManager) TreeMap(java.util.TreeMap) LinkedList(java.util.LinkedList) Extension(org.gbif.ipt.model.Extension) ExtensionProperty(org.gbif.ipt.model.ExtensionProperty) ExtensionMapping(org.gbif.ipt.model.ExtensionMapping) ExtensionFactory(org.gbif.ipt.model.factory.ExtensionFactory) VocabularyTerm(org.gbif.ipt.model.VocabularyTerm) SimpleTextProvider(org.gbif.ipt.struts2.SimpleTextProvider) PropertyMapping(org.gbif.ipt.model.PropertyMapping) SourceManager(org.gbif.ipt.service.manage.SourceManager) DefaultLocaleProviderFactory(com.opensymphony.xwork2.DefaultLocaleProviderFactory) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

AppConfig (org.gbif.ipt.config.AppConfig)3 VocabulariesManager (org.gbif.ipt.service.admin.VocabulariesManager)3 SourceManager (org.gbif.ipt.service.manage.SourceManager)3 SimpleTextProvider (org.gbif.ipt.struts2.SimpleTextProvider)3 MockRegistryManager (org.gbif.ipt.mock.MockRegistryManager)2 Extension (org.gbif.ipt.model.Extension)2 Resource (org.gbif.ipt.model.Resource)2 ConceptTermConverter (org.gbif.ipt.model.converter.ConceptTermConverter)2 ExtensionRowTypeConverter (org.gbif.ipt.model.converter.ExtensionRowTypeConverter)2 ExtensionFactory (org.gbif.ipt.model.factory.ExtensionFactory)2 Injector (com.google.inject.Injector)1 ServletModule (com.google.inject.servlet.ServletModule)1 Struts2GuicePluginModule (com.google.inject.struts2.Struts2GuicePluginModule)1 DefaultLocaleProviderFactory (com.opensymphony.xwork2.DefaultLocaleProviderFactory)1 LocaleProviderFactory (com.opensymphony.xwork2.LocaleProviderFactory)1 Container (com.opensymphony.xwork2.inject.Container)1 File (java.io.File)1 InputStream (java.io.InputStream)1 BigDecimal (java.math.BigDecimal)1 ArrayList (java.util.ArrayList)1