package edu.internet2.middleware; import net.sf.hibernate.tool.hbm2ddl.SchemaExportTask; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; import edu.internet2.middleware.grouper.RegistryInstall; import java.io.File; public class GrouperInit { public static void main(String[] args) { System.out.println("********************************************************************"); System.out.println("Initializing grouper..."); System.out.println("********************************************************************"); if (args.length != 3) { System.err.println("Unexpected number of parameters were provided. Parameters should be:"); System.err.println("output file"); System.err.println("properties file"); System.err.println("directory to hibernate mapping files"); System.exit(1); } String outputFileStr = args[0]; String propertiesFileStr = args[1]; String hibernateMappingsDirStr = args[2]; System.out.println("Output file: " + outputFileStr); System.out.println("Hibernate properties: " + propertiesFileStr); System.out.println("Hibernate mappings dir: " + hibernateMappingsDirStr); File propertiesFile = new File(propertiesFileStr); if (!propertiesFile.exists()) { System.err.println("Hibernate properties not found: " + propertiesFile.getAbsolutePath()); System.exit(1); } File hibernateMappingsDir = new File(hibernateMappingsDirStr); if (!hibernateMappingsDir.exists()) { System.err.println("Hibernate mappings directory not found: " + hibernateMappingsDir.getAbsolutePath()); System.exit(1); } if (!hibernateMappingsDir.isDirectory()) { System.err.println("Not a directory: " + hibernateMappingsDir.getAbsolutePath()); System.exit(1); } try { SchemaExportTask se = new SchemaExportTask(); se.setProject(new Project()); se.getProject().setBaseDir(new File(".")); se.setQuiet(false); se.setText(false); se.setDrop(false); se.setDelimiter(";"); se.setOutput(outputFileStr); se.setProperties(propertiesFile); FileSet fileSet = new FileSet(); fileSet.setDir(hibernateMappingsDir); fileSet.setIncludes("**/*.hbm.xml"); se.addFileset(fileSet); se.execute(); edu.internet2.middleware.grouper.RegistryInstall.main(new String[0]); } catch(Throwable e) { e.printStackTrace(); } } }