/* * Copyright 2013 The Solmix Project * * This 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 software 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. * * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.gnu.org/licenses/ * or see the FSF site: http://www.fsf.org. */ package org.solmix.mybatis; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.io.Resources; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.solmix.runtime.SystemContext; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; /** * * @author solmix.f@gmail.com * @version $Id$ 2014年6月13日 */ public class LocalSqlSessionFactoryProvider extends AbstractSqlSessionFactoryProvider { private final Logger LOG = LoggerFactory.getLogger(LocalSqlSessionFactoryProvider.class.getName()); public LocalSqlSessionFactoryProvider(final SystemContext sc) { super(sc); } /** * {@inheritDoc} * @throws IOException * * @see org.solmix.mybatis.AbstractSqlSessionFactoryProvider#getConfigAsStream(java.lang.String) */ @Override protected InputStream getConfigAsStream(String environment,String configLocation) throws IOException { return Resources.getResourceAsStream(configLocation); } /** * {@inheritDoc} * * @see org.solmix.mybatis.AbstractSqlSessionFactoryProvider#getMapperResources(java.lang.String) */ @Override protected Map<String, InputStream> getMapperResources(String environment,String mapperLocations) throws IOException{ Map<String, InputStream> mapperResources=new HashMap<String,InputStream>(); List<org.springframework.core.io.Resource> resources = new ArrayList<org.springframework.core.io.Resource>(); try { PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver( Thread.currentThread().getContextClassLoader()); Collections.addAll(resources, resolver.getResources(mapperLocations)); for(org.springframework.core.io.Resource r:resources){ mapperResources.put(r.toString(), r.getInputStream()); } } catch (IOException ex) { // ignore } return mapperResources; } }