Java tutorial
// Copyright 2011 the original author or authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package lichen.orm.internal; import java.util.Collection; import lichen.orm.services.AnnotationEntityPackageManager; import lichen.orm.services.HibernateConfiger; import org.apache.tapestry5.ioc.services.ClassNameLocator; import org.hibernate.HibernateException; import org.hibernate.cfg.Configuration; /** * hibernate? * @author jcai * @version 0.1 */ public class AnnotationEntityPackageConfiger implements HibernateConfiger { private Collection<String> packages; private ClassNameLocator classNameLocator; public AnnotationEntityPackageConfiger(AnnotationEntityPackageManager manager, ClassNameLocator classNameLocator) { this.packages = manager.getPackages(); this.classNameLocator = classNameLocator; } public void config(Configuration cfg) throws HibernateException { ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); for (String packageName : packages) { cfg.addPackage(packageName); for (String className : classNameLocator.locateClassNames(packageName)) { try { Class entityClass = contextClassLoader.loadClass(className); cfg.addAnnotatedClass(entityClass); } catch (ClassNotFoundException ex) { throw new RuntimeException(ex); } } } } }