KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > sun > ide > j2ee > Utils


1 package org.netbeans.modules.j2ee.sun.ide.j2ee;
2 /*
3  * The contents of this file are subject to the terms of the Common Development
4  * and Distribution License (the License). You may not use this file except in
5  * compliance with the License.
6  *
7  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
8  * or http://www.netbeans.org/cddl.txt.
9  *
10  * When distributing Covered Code, include this CDDL Header Notice in each file
11  * and include the License file at http://www.netbeans.org/cddl.txt.
12  * If applicable, add the following below the CDDL Header, with the fields
13  * enclosed by brackets [] replaced by your own identifying information:
14  * "Portions Copyrighted [year] [name of copyright owner]"
15  *
16  * The Original Software is NetBeans. The Initial Developer of the Original
17  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
18  * Microsystems, Inc. All Rights Reserved.
19  */

20 /*
21  * Utils.java
22  *
23  * Created on December 5, 2004, 6:33 PM
24  */

25
26 import java.io.File JavaDoc;
27 import java.io.FileFilter JavaDoc;
28 import java.io.FileInputStream JavaDoc;
29 import java.io.FileOutputStream JavaDoc;
30 import java.io.IOException JavaDoc;
31 import java.io.OutputStream JavaDoc;
32 import java.io.PrintWriter JavaDoc;
33 import java.text.MessageFormat JavaDoc;
34 import java.util.ResourceBundle JavaDoc;
35
36 import org.netbeans.modules.j2ee.deployment.common.api.SourceFileMap;
37 import org.netbeans.modules.j2ee.sun.dd.api.DDProvider;
38 import org.netbeans.modules.j2ee.sun.dd.api.serverresources.*;
39 import org.netbeans.modules.j2ee.sun.api.ServerInterface;
40 import org.netbeans.modules.j2ee.sun.api.SunDeploymentManagerInterface;
41 import org.netbeans.modules.j2ee.sun.ide.sunresources.beans.ResourceUtils;
42
43 import org.openide.filesystems.FileObject;
44 import org.openide.filesystems.FileUtil;
45
46 /**
47  *
48  * @author Rajeshwar Patil
49  */

50 public class Utils {
51
52     static final ResourceBundle JavaDoc bundle = ResourceBundle.getBundle("org.netbeans.modules.j2ee.sun.ide.j2ee.Bundle");// NOI18N
53
static final File JavaDoc[] EMPTY_FILE_LIST = new File JavaDoc[0];
54
55     /** Creates a new instance of Utils */
56     public Utils() {
57     }
58
59     /*
60      * This create a temporary file, deleted at exit, that contains
61      * the necessary password infos for starting or creating a domain
62      * bot admu and master password are there.
63      * @returns the temporary file
64      * or null if for some reason, this file cannot be created.
65      * */

66     
67     public static File JavaDoc createTempPasswordFile(String JavaDoc password, String JavaDoc masterPassword){
68         
69         OutputStream JavaDoc output=null;
70         PrintWriter JavaDoc p =null;
71         try {
72             File JavaDoc file = File.createTempFile("admin",null);//NOI18N
73
file.deleteOnExit();
74             output = new FileOutputStream JavaDoc(file);
75             p = new PrintWriter JavaDoc(output);
76             p.println("AS_ADMIN_ADMINPASSWORD="+ password);//NOI18N for create domains
77
p.println("AS_ADMIN_PASSWORD="+ password);//NOI18N for start domains
78
p.println("AS_ADMIN_MASTERPASSWORD="+ masterPassword);//NOI18N
79
return file;
80         } catch(IOException JavaDoc e) {
81             return null;
82             
83         } finally {
84             try {
85                 if (p!=null) {
86                     p.close();
87                 }
88             } catch (Exception JavaDoc ex) {
89                 return null;
90             }
91         }
92     }
93     
94     
95     public static Object JavaDoc getResource(java.io.File JavaDoc primaryFile) {
96         Resources resources = getResourceGraph(primaryFile);
97         
98         // identify JDBC Connection Pool xml
99
JdbcConnectionPool[] pools = resources.getJdbcConnectionPool();
100         if(pools.length != 0){
101             return pools[0];
102         }
103         // identify JDBC Resources xml
104
JdbcResource[] dataSources = resources.getJdbcResource();
105         if(dataSources.length != 0){
106             return dataSources[0];
107         }
108         return null;
109     }
110
111     public static String JavaDoc getResourceType(Resources resources) {
112         // import Persistence Manager Factory Resources
113
PersistenceManagerFactoryResource[] pmfResources = resources.getPersistenceManagerFactoryResource();
114         if(pmfResources.length != 0){
115             return "persistence-manager-factory-resource";
116         }
117         // import Mail Resources
118
MailResource[] mailResources = resources.getMailResource();
119         if(mailResources.length != 0){
120             return "mail-resource";
121         }
122         // import Connector/ Connector Connection Pools/ Admin Object Resources
123
ConnectorResource[] connResources = resources.getConnectorResource();
124         ConnectorConnectionPool[] connPoolResources = resources.getConnectorConnectionPool();
125         AdminObjectResource[] admObjResources = resources.getAdminObjectResource();
126         if(admObjResources.length != 0 ||(connPoolResources.length != 0 && connResources.length != 0)){
127             return "jms-resource";
128         }
129         return null;
130     }
131
132     public static void setTopManagerStatus(String JavaDoc msg){
133         org.openide.awt.StatusDisplayer.getDefault().setStatusText(msg);
134     }
135
136
137     public static File JavaDoc[] getResourceDirs(javax.enterprise.deploy.model.DeployableObject JavaDoc deployableObject){
138         try{
139             SourceFileMap sourceFileMap = SourceFileMap.findSourceMap(deployableObject);
140             if (sourceFileMap != null) {
141                 return sourceFileMap.getEnterpriseResourceDirs();
142             }
143             }catch(Exception JavaDoc exception){
144                 System.out.println(exception.getMessage());
145         }
146         return EMPTY_FILE_LIST;
147     }
148
149
150     public static File JavaDoc[] getResourceDirs(File JavaDoc file){
151       try{
152              FileObject fo = FileUtil.toFileObject(file);
153              SourceFileMap sourceFileMap = SourceFileMap.findSourceMap(fo);
154              if (sourceFileMap != null)
155                  return sourceFileMap.getEnterpriseResourceDirs();
156              }catch(Exception JavaDoc exception){
157                  System.out.println(exception.getMessage());
158          }
159          return EMPTY_FILE_LIST;
160     }
161
162
163     public static void registerResources(java.io.File JavaDoc[] resourceDirs, ServerInterface mejb){
164         System.out.println(bundle.getString("Msg_ProjResRegisterStart")); //NOI18N
165
try{
166             SunDeploymentManagerInterface sunDm = (SunDeploymentManagerInterface)mejb.getDeploymentManager();
167             for (int j=0; j<resourceDirs.length; j++){
168                 File JavaDoc resourceDir = resourceDirs[j];
169                 File JavaDoc[] resources = null;
170                 
171                 if(resourceDir != null){
172                     resources = resourceDir.listFiles(new ResourceFileFilter());
173                 }
174                 
175                 File JavaDoc resource = null;
176                 Object JavaDoc sunResource = null;
177                 if(resources != null){
178                     //Register All Connection Pools First
179
for(int i=0; i<resources.length; i++ ){
180                         resource = resources[i];
181                         if((resource != null) && (!resource.isDirectory())){
182                             sunResource = Utils.getResource(resource);
183                             if(sunResource != null && sunResource instanceof JdbcConnectionPool){
184                                 JdbcConnectionPool connectionPoolBean =(JdbcConnectionPool)sunResource;
185                                 ResourceUtils.register(connectionPoolBean, mejb, true);
186                             }
187                         }
188                     }//Connection Pools
189

190                     //Register All DataSources
191
for(int i=0; i<resources.length; i++ ){
192                         resource = resources[i];
193                         if((resource != null) && (!resource.isDirectory())){
194                             sunResource = Utils.getResource(resource);
195                             if(sunResource != null && sunResource instanceof JdbcResource){
196                                 JdbcResource datasourceBean = (JdbcResource)sunResource;
197                                 ResourceUtils.register(datasourceBean, mejb, true);
198                             }
199                         }
200                     }//DataSources
201

202                     //Register All Remaining Resources
203
for(int i=0; i<resources.length; i++ ){
204                         resource = resources[i];
205                         if((resource != null) && (!resource.isDirectory())){
206                             Resources res = getResourceGraph(resource);
207                             String JavaDoc resourceType = Utils.getResourceType(res);
208                             if(resourceType != null){
209                                 ResourceUtils.register(res, sunDm, true, resourceType);
210                             }
211                         }
212                     }//Remaining Resources
213
}
214             }
215         }catch(Exception JavaDoc ex){
216             String JavaDoc errorMsg = MessageFormat.format(bundle.getString( "Msg_RegFailure"), new Object JavaDoc[]{ex.getLocalizedMessage()}); //NOI18N
217
System.out.println(errorMsg);
218         }
219         System.out.println(bundle.getString("Msg_ProjResRegisterFinish")); //NOI18N
220
}
221   
222
223     public static class ResourceFileFilter implements FileFilter JavaDoc {
224         public boolean accept(File JavaDoc f) {
225             return f.isDirectory() || f.getName().toLowerCase().endsWith(".sun-resource"); //NOI18N
226
}
227     }
228     
229     static Resources getResourceGraph(java.io.File JavaDoc primaryFile) {
230         Resources resources = null;
231         try {
232             if((! primaryFile.isDirectory())/* && primaryFile.isValid()*/){
233                 FileInputStream JavaDoc in = new FileInputStream JavaDoc(primaryFile);
234                 
235                 resources = DDProvider.getDefault().getResourcesGraph(in);
236             }
237         }catch(Exception JavaDoc ex){}
238         return resources;
239     }
240                 
241
242 }
243
Popular Tags