Changeset 7848 for mauRepo/newmoon


Ignore:
Timestamp:
27/01/11 08:49:51 (9 years ago)
Author:
mnagni
Message:

Accepts external user/psw/host

Location:
mauRepo/newmoon/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/newmoon/src/main/java/ndg/services/newmoon/DBManager.java

    r7830 r7848  
    1010import org.apache.commons.lang.StringUtils; 
    1111import org.exist.xmldb.EXistResource; 
    12 import org.exist.xmldb.UserManagementService; 
    1312import org.exist.xmldb.XQueryService; 
    1413import org.slf4j.Logger; 
     
    2322import org.xmldb.api.modules.XMLResource; 
    2423 
     24 
    2525public class DBManager { 
    2626 
    27         private static boolean running = false; 
     27        private static String user; 
     28        private static String psw; 
     29        private static String rootCollectionPath; 
     30        private static boolean initialized = false; 
    2831 
    2932        private final static DBManager instance = new DBManager(); 
     33 
     34        private final static void initialize() { 
     35                String driver = "org.exist.xmldb.DatabaseImpl";          
     36                // initialize database driver            
     37                try { 
     38                        Class<?> cl = Class.forName(driver); 
     39                        Database database = (Database) cl.newInstance(); 
     40                        DatabaseManager.registerDatabase(database); 
     41                } catch (ClassNotFoundException e) { 
     42                        LOG.error("Error", e); 
     43                } catch (InstantiationException e) { 
     44                        LOG.error("Error", e); 
     45                } catch (IllegalAccessException e) { 
     46                        LOG.error("Error", e); 
     47                } catch (XMLDBException e) { 
     48                        LOG.error("Error", e); 
     49                } 
     50                initialized = true; 
     51        } 
    3052         
    31         private static Collection rootCollection = null; 
    32  
    3353        /** 
    3454         * User name for database access. 
    3555         */ 
    36         static final String XMLDB_USER = "admin"; 
     56        // static final String XMLDB_USER = "admin"; 
    3757 
    3858        /** 
    3959         * Password for the XMLDB_USER account. 
    4060         */ 
    41         static final String XMLDB_PASSWORD = "newmoon"; 
     61        // static final String XMLDB_PASSWORD = "newmoon"; 
    4262 
    4363        /** 
     
    102122        } 
    103123 
    104         public static boolean isRunning() { 
    105                 return running; 
    106         } 
    107  
     124        public static void setDBAccess(String newUser, String newPwd, String newRootCollectionPath) { 
     125                if (StringUtils.isEmpty(newUser) || StringUtils.isEmpty(newPwd) || StringUtils.isEmpty(newRootCollectionPath)) 
     126                        return; 
     127                user = newUser; 
     128                psw = newPwd; 
     129                rootCollectionPath = newRootCollectionPath; 
     130                isInitialized(); 
     131        } 
     132 
     133        private static boolean isInitialized() { 
     134                if (!initialized) { 
     135                        initialize(); 
     136                }                        
     137                return initialized; 
     138        } 
     139         
     140        /* 
    108141        public static String getROOT_COLLECTION_PATH() { 
    109142                return "xmldb:exist://localhost:8080/exist/xmlrpc/db"; 
    110143        } 
    111          
     144        */ 
     145 
    112146        /** 
    113147         * Creates a collection as an immediate child of the root collection. 
     
    149183 
    150184        public Collection getCollection(String parentCollection, String collectionName) throws XMLDBException { 
    151                 Collection parent = getCollection(parentCollection, XMLDB_USER, XMLDB_PASSWORD); 
     185                Collection parent = getCollection(parentCollection); 
    152186                String[] children = collectionName.split("/"); 
    153187                if (ArrayUtils.isEmpty(children)) { 
     
    161195        } 
    162196 
    163         private Collection getCollection(String collectionName, String user, String pwd) throws XMLDBException { 
    164                 collectionName = StringUtils.isBlank(collectionName) ? getROOT_COLLECTION_PATH() : collectionName; 
    165                 return DatabaseManager.getCollection(collectionName, user, pwd); 
     197        private Collection getCollection(String collectionName) throws XMLDBException { 
     198                if(!isInitialized()) { 
     199                        throw new XMLDBException(); 
     200                }  
     201                collectionName = StringUtils.isBlank(collectionName) ? DBManager.rootCollectionPath : collectionName; 
     202                return DatabaseManager.getCollection(collectionName, DBManager.user, DBManager.psw); 
    166203        } 
    167204 
     
    203240 
    204241        private Collection getRootCollection() throws XMLDBException { 
    205                 if (rootCollection == null) { 
    206                         rootCollection = getCollection(getROOT_COLLECTION_PATH(), XMLDB_USER, XMLDB_PASSWORD); 
    207                 } 
    208                 return rootCollection; 
    209         } 
    210  
    211         private void initEnv() throws NewmoonException { 
    212                 System.setProperty("exist.initdb", "true"); 
    213                 String existHome = System.getProperty("exist.home"); 
    214                 File existHomeDir = new File(existHome); 
    215                 if (!existHomeDir.exists() || (existHomeDir.exists() && !existHomeDir.isDirectory())) { 
    216                         throw new NewmoonException("the System property exist.home does not refer to a directory"); 
    217                 } 
    218                 File logs = new File(existHome + "/logs"); 
    219                 logs.mkdir(); 
    220                 File data = new File(existHome + "/data"); 
    221                 data.mkdir(); 
    222         } 
    223  
     242                return getCollection(rootCollectionPath); 
     243        } 
     244         
    224245        /** 
    225246         * Create and initialise an instance of the database. 
    226          * @throws XMLDBException  
     247         *  
     248         * @throws XMLDBException 
    227249         *  
    228250         * @throws Exception 
     
    232254                Collection root = getRootCollection(); 
    233255 
    234                 // Log in to the database using default admin account and create a 
    235                 // new user 
    236                 UserManagementService srvUserMgmt = (UserManagementService) root.getService(USER_MGMT_SERVICE_NAME, 
    237                                 USER_MGMT_SERVICE_VERSION); 
    238                 CollectionManagementService mgtService = (CollectionManagementService)root.getService(COLLECTION_MGMT_SERVICE_NAME, COLLECTION_MGMT_SERVICE_VERSION); 
    239                 /* 
    240                 User user = srvUserMgmt.getUser(XMLDB_USER); 
    241                 if (user != null) 
    242                         srvUserMgmt.removeUser(new User(XMLDB_USER)); 
    243                 user = new User(XMLDB_USER, XMLDB_PASSWORD, "dba"); 
    244                 user.setHome(XmldbURI.create("/db")); 
    245                 try { 
    246                         srvUserMgmt.addUser(user);       
    247                 } catch (XMLDBException e) { 
    248                          
    249                 } 
    250                 */ 
     256                CollectionManagementService mgtService = (CollectionManagementService) root.getService( 
     257                                COLLECTION_MGMT_SERVICE_NAME, COLLECTION_MGMT_SERVICE_VERSION); 
     258 
    251259                for (NewmoonManager.MODULE_NAME def_coll : NewmoonManager.MODULE_NAME.values()) { 
    252260                        mgtService.removeCollection(def_coll.getCollectionName()); 
     
    258266                LOG.info("Successfully created default collections."); 
    259267        } 
    260          
    261         public void startExist() throws XMLDBException, NewmoonException { 
    262                 //initEnv(); 
    263                 Database database; 
    264                 try { 
    265                         Class<?> cl = Class.forName("org.exist.xmldb.DatabaseImpl"); 
    266                         database = (Database) cl.newInstance(); 
    267                         //database.setProperty("create-database", "true"); 
    268                         DatabaseManager.registerDatabase(database); 
    269                         running = true; 
    270                         // initialize the deafult DB 
    271                         initialiseDBase(); 
    272                 } catch (ClassNotFoundException e) { 
    273                         // TODO Auto-generated catch block 
    274                         e.printStackTrace(); 
    275                 } catch (InstantiationException e) { 
    276                         // TODO Auto-generated catch block 
    277                         e.printStackTrace(); 
    278                 } catch (IllegalAccessException e) { 
    279                         // TODO Auto-generated catch block 
    280                         e.printStackTrace(); 
    281                 } 
    282         } 
     268 
     269        /* 
     270         * public void startExist() throws XMLDBException, NewmoonException { 
     271         * //initEnv(); Database database; try { Class<?> cl = 
     272         * Class.forName("org.exist.xmldb.DatabaseImpl"); database = (Database) 
     273         * cl.newInstance(); //database.setProperty("create-database", "true"); 
     274         * DatabaseManager.registerDatabase(database); running = true; // initialize 
     275         * the deafult DB initialiseDBase(); } catch (ClassNotFoundException e) { // 
     276         * TODO Auto-generated catch block e.printStackTrace(); } catch 
     277         * (InstantiationException e) { // TODO Auto-generated catch block 
     278         * e.printStackTrace(); } catch (IllegalAccessException e) { // TODO 
     279         * Auto-generated catch block e.printStackTrace(); } } 
     280         */ 
    283281 
    284282        public void stopExist() throws XMLDBException { 
    285283                // shut down the database 
    286284                /* 
    287                 DatabaseInstanceManager manager = (DatabaseInstanceManager) rootCollection.getService( 
    288                                 "DatabaseInstanceManager", "1.0"); 
    289                 manager.shutdown(); 
    290                 */ 
     285                 * DatabaseInstanceManager manager = (DatabaseInstanceManager) 
     286                 * rootCollection.getService( "DatabaseInstanceManager", "1.0"); 
     287                 * manager.shutdown(); 
     288                 */ 
    291289        } 
    292290 
  • mauRepo/newmoon/src/main/java/ndg/services/newmoon/NewmoonManager.java

    r7830 r7848  
    201201                                                + NM_PARAM.OUTPUT_DIR.getParamName()); 
    202202                // -------------------- 
    203                 variables.put(NM_PARAM.ROOT_COLLECTION_URI.getParamName(), DBManager.getROOT_COLLECTION_PATH()); 
    204                 String user = DBManager.XMLDB_USER; 
    205                 variables.put(NM_PARAM.XMLDB_USER.getParamName(), user); 
    206                 String pass = DBManager.XMLDB_PASSWORD; 
    207                 variables.put(NM_PARAM.XMLDB_PASSWORD.getParamName(), pass); 
    208  
    209                 String rootCollectionPath = DBManager.getROOT_COLLECTION_PATH(); 
     203                //variables.put(NM_PARAM.ROOT_COLLECTION_URI.getParamName(), DBManager.getROOT_COLLECTION_PATH()); 
     204                //String user = DBManager.XMLDB_USER; 
     205                //variables.put(NM_PARAM.XMLDB_USER.getParamName(), user); 
     206                //String pass = DBManager.XMLDB_PASSWORD; 
     207                //variables.put(NM_PARAM.XMLDB_PASSWORD.getParamName(), pass); 
     208 
     209                //String rootCollectionPath = DBManager.getROOT_COLLECTION_PATH(); 
     210                //rootCollectionPath = rootCollectionPath.replaceAll("^(.*/exist/xmlrpc)(/[^/]*)$", "$2"); 
     211                //variables.put(NM_PARAM.ROOT_COLLECTION_PATH.getParamName(), rootCollectionPath); 
     212                //variables.put(NM_PARAM.ROOT_COLLECTION_URI.getParamName(), variables.get(NM_PARAM.ROOT_COLLECTION_PATH.getParamName())); 
     213                String rootCollectionPath = (String)variables.get(NM_PARAM.ROOT_COLLECTION_URI.getParamName()); 
    210214                rootCollectionPath = rootCollectionPath.replaceAll("^(.*/exist/xmlrpc)(/[^/]*)$", "$2"); 
    211215                variables.put(NM_PARAM.ROOT_COLLECTION_PATH.getParamName(), rootCollectionPath); 
     
    341345                                buffy.append((String) result.getContent()).append(LS); 
    342346                        } catch (Exception e) { 
    343                                 LOG.info("possible error", e); 
     347                                if(LOG.isDebugEnabled()) { 
     348                                        LOG.debug("possible error", e);  
     349                                } 
    344350                        } 
    345351                } 
  • mauRepo/newmoon/src/main/java/ndg/services/newmoon/XMIEncoder.java

    r7830 r7848  
    2929         */ 
    3030        private static final Logger LOG = LoggerFactory.getLogger(XMIEncoder.class); 
    31  
    32         private void checkExistStatus() throws XMLDBException, NewmoonException { 
    33                 if (!DBManager.isRunning()) { 
    34                         DBManager.getInstance().startExist(); 
    35                 } 
    36         } 
    3731         
    3832        public String getOutputdirPath() { 
     
    4337                        throws NewmoonException { 
    4438                try { 
    45                         checkExistStatus(); 
    4639                        executeEncode(params); 
    4740                } catch (XMLDBException e) { 
     
    5649                NewmoonManager nm = new NewmoonManager(); 
    5750                nm.setVariables(params); 
     51                DBManager.setDBAccess(nm.getVariables(NM_PARAM.XMLDB_USER), 
     52                                nm.getVariables(NM_PARAM.XMLDB_PASSWORD),  
     53                                nm.getVariables(NM_PARAM.ROOT_COLLECTION_URI)); 
    5854                 
    5955                File xmiDoc = new File(nm.getVariables(NM_PARAM.WORKING_DIRECTORY), nm.getVariables(NM_PARAM.XMI_DOC)); 
  • mauRepo/newmoon/src/test/java/ndg/services/newmoon/XMIEncoderTest.java

    r7830 r7848  
    33import java.net.URL; 
    44import java.util.HashMap; 
    5 import java.util.List; 
    65import java.util.Map; 
    76 
     
    4746                params.put(NM_PARAM.RESOURCE_NAME, RESOURCE_ID); 
    4847                params.put(NM_PARAM.XMI_DOC, sample);                            
     48                params.put(NM_PARAM.XMLDB_USER, "admin"); 
     49                params.put(NM_PARAM.XMLDB_PASSWORD, "newmoon"); 
     50                params.put(NM_PARAM.ROOT_COLLECTION_URI, "xmldb:exist://localhost:8080/exist/xmlrpc/db");                
    4951                encoder.doEncode(params); 
    5052                System.out.println(encoder.getOutputdirPath()); 
Note: See TracChangeset for help on using the changeset viewer.