01: /*
02: * JBoss, Home of Professional Open Source
03: * Copyright 2005, JBoss Inc., and individual contributors as indicated
04: * by the @authors tag. See the copyright.txt in the distribution for a
05: * full listing of individual contributors.
06: *
07: * This is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU Lesser General Public License as
09: * published by the Free Software Foundation; either version 2.1 of
10: * the License, or (at your option) any later version.
11: *
12: * This software is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this software; if not, write to the Free
19: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21: */
22: package org.jbpm.identity.ant;
23:
24: import java.io.File;
25: import java.io.FileInputStream;
26: import java.io.FileNotFoundException;
27:
28: import org.apache.tools.ant.BuildException;
29: import org.apache.tools.ant.Task;
30: import org.hibernate.Session;
31: import org.jbpm.JbpmConfiguration;
32: import org.jbpm.JbpmContext;
33: import org.jbpm.ant.AntHelper;
34: import org.jbpm.identity.Entity;
35: import org.jbpm.identity.xml.IdentityXmlParser;
36:
37: public class LoadIdentitiesTask extends Task {
38:
39: private File file = null;
40: private String jbpmCfg = null;
41:
42: public void execute() throws BuildException {
43: // get the JbpmSessionFactory
44: JbpmConfiguration jbpmConfiguration = AntHelper
45: .getJbpmConfiguration(jbpmCfg);
46:
47: // if attribute file is set, deploy that file file
48: if (file == null)
49: throw new BuildException(
50: "no file specified in the loadidentities task");
51:
52: log("loading identities from " + file + " ...");
53: FileInputStream fileInputStream = null;
54: try {
55: fileInputStream = new FileInputStream(file);
56: } catch (FileNotFoundException e) {
57: throw new BuildException("identities file '" + file
58: + "' not found");
59: }
60: Entity[] entities = IdentityXmlParser
61: .parseEntitiesResource(fileInputStream);
62:
63: JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
64: try {
65: Session session = jbpmContext.getSession();
66: for (int i = 0; i < entities.length; i++) {
67: session.save(entities[i]);
68: }
69: } finally {
70: jbpmContext.close();
71: }
72: }
73:
74: public void setFile(File file) {
75: this .file = file;
76: }
77:
78: public void setJbpmCfg(String jbpmCfg) {
79: this.jbpmCfg = jbpmCfg;
80: }
81: }
|