Example usage for org.springframework.context.support ClassPathXmlApplicationContext close

List of usage examples for org.springframework.context.support ClassPathXmlApplicationContext close

Introduction

In this page you can find the example usage for org.springframework.context.support ClassPathXmlApplicationContext close.

Prototype

@Override
public void close() 

Source Link

Document

Close this application context, destroying all beans in its bean factory.

Usage

From source file:com.alibaba.dubbo.examples.annotation.AnnotationTest.java

@Test
public void testAnnotation() {
    ClassPathXmlApplicationContext providerContext = new ClassPathXmlApplicationContext(
            AnnotationTest.class.getPackage().getName().replace('.', '/') + "/annotation-provider.xml");
    providerContext.start();//from ww w  .j  av  a 2 s  .  c  o m
    try {
        ClassPathXmlApplicationContext consumerContext = new ClassPathXmlApplicationContext(
                AnnotationTest.class.getPackage().getName().replace('.', '/') + "/annotation-consumer.xml");
        consumerContext.start();
        try {
            AnnotationAction annotationAction = (AnnotationAction) consumerContext.getBean("annotationAction");
            String hello = annotationAction.doSayHello("world");
            assertEquals("annotation: hello, world", hello);
        } finally {
            consumerContext.stop();
            consumerContext.close();
        }
    } finally {
        providerContext.stop();
        providerContext.close();
    }
}

From source file:org.alfresco.util.exec.RuntimeExecBeansTest.java

public void testFailureModeOfMissingCommand() {
    File dir = new File(DIR);
    dir.mkdir();/* w w  w  .  j av a2 s.c  o  m*/
    assertTrue("Directory not created", dir.exists());

    ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(APP_CONTEXT_XML);
    try {
        RuntimeExec failureExec = (RuntimeExec) ctx.getBean("commandFailureGuaranteed");
        assertNotNull(failureExec);
        // Execute it
        ExecutionResult result = failureExec.execute();
        assertEquals("Expected first error code in list", 666, result.getExitValue());
    } finally {
        ctx.close();
    }
}

From source file:org.silverpeas.dbbuilder.DBBuilder.java

/**
 * @param args/*from   w  w w .  j  a  va 2 s  . co m*/
 * @see
 */
public static void main(String[] args) {
    ClassPathXmlApplicationContext springContext = new ClassPathXmlApplicationContext(
            "classpath:/spring-jdbc-datasource.xml");
    try {
        // Ouverture des traces
        Date startDate = new Date();
        System.out.println(
                MessageFormat.format(messages.getString("dbbuilder.start"), DBBuilderAppVersion, startDate));
        console = new Console(DBBuilder.class);
        console.printMessage("*************************************************************");
        console.printMessage(
                MessageFormat.format(messages.getString("dbbuilder.start"), DBBuilderAppVersion, startDate));
        // Lecture des variables d'environnement  partir de dbBuilderSettings
        dbBuilderResources = FileUtil
                .loadResource("/org/silverpeas/dbBuilder/settings/dbBuilderSettings.properties");
        // Lecture des paramtres d'entre
        params = new CommandLineParameters(console, args);

        if (params.isSimulate() && DatabaseType.ORACLE == params.getDbType()) {
            throw new Exception(messages.getString("oracle.simulate.error"));
        }
        console.printMessage(messages.getString("jdbc.connection.configuration"));
        console.printMessage(ConnectionFactory.getConnectionInfo());
        console.printMessage("\tAction        : " + params.getAction());
        console.printMessage("\tVerbose mode  : " + params.isVerbose());
        console.printMessage("\tSimulate mode : " + params.isSimulate());
        if (Action.ACTION_CONNECT == params.getAction()) {
            // un petit message et puis c'est tout
            console.printMessage(messages.getString("connection.success"));
            System.out.println(messages.getString("connection.success"));
        } else {
            // Modules en place sur la BD avant install
            console.printMessage("DB Status before build :");
            List<String> packagesIntoDB = checkDBStatus();
            // initialisation d'un vecteur des instructions SQL  passer en fin d'upgrade
            // pour mettre  niveau les versions de modules en base
            MetaInstructions sqlMetaInstructions = new MetaInstructions();
            File dirXml = new File(params.getDbType().getDBContributionDir());
            DBXmlDocument destXml = loadMasterContribution(dirXml);
            UninstallInformations processesToCacheIntoDB = new UninstallInformations();

            File[] listeFileXml = dirXml.listFiles();
            Arrays.sort(listeFileXml);

            List<DBXmlDocument> listeDBXmlDocument = new ArrayList<DBXmlDocument>(listeFileXml.length);
            int ignoredFiles = 0;
            // Ouverture de tous les fichiers de configurations
            console.printMessage(messages.getString("ignored.contribution"));

            for (File xmlFile : listeFileXml) {
                if (xmlFile.isFile() && "xml".equals(FileUtil.getExtension(xmlFile))
                        && !(FIRST_DBCONTRIBUTION_FILE.equalsIgnoreCase(xmlFile.getName()))
                        && !(MASTER_DBCONTRIBUTION_FILE.equalsIgnoreCase(xmlFile.getName()))) {
                    DBXmlDocument fXml = new DBXmlDocument(dirXml, xmlFile.getName());
                    fXml.load();
                    // vrification des dpendances et prise en compte uniquement si dependences OK
                    if (hasUnresolvedRequirements(listeFileXml, fXml)) {
                        console.printMessage(
                                '\t' + xmlFile.getName() + " (because of unresolved requirements).");
                        ignoredFiles++;
                    } else if (ACTION_ENFORCE_UNINSTALL == params.getAction()) {
                        console.printMessage('\t' + xmlFile.getName() + " (because of "
                                + ACTION_ENFORCE_UNINSTALL + " mode).");
                        ignoredFiles++;
                    } else {
                        listeDBXmlDocument.add(fXml);
                    }
                }
            }
            if (0 == ignoredFiles) {
                console.printMessage("\t(none)");
            }

            // prpare une HashMap des modules prsents en fichiers de contribution
            Map packagesIntoFile = new HashMap();
            int j = 0;
            console.printMessage(messages.getString("merged.contribution"));
            console.printMessage(params.getAction().toString());
            if (ACTION_ENFORCE_UNINSTALL != params.getAction()) {
                console.printMessage('\t' + FIRST_DBCONTRIBUTION_FILE);
                j++;
            }
            for (DBXmlDocument currentDoc : listeDBXmlDocument) {
                console.printMessage('\t' + currentDoc.getName());
                j++;
            }
            if (0 == j) {
                console.printMessage("\t(none)");
            }
            // merge des diffrents fichiers de contribution ligibles :
            console.printMessage("Build decisions are :");
            // d'abord le fichier dbbuilder-contribution ...
            DBXmlDocument fileXml;
            if (ACTION_ENFORCE_UNINSTALL != params.getAction()) {
                try {
                    fileXml = new DBXmlDocument(dirXml, FIRST_DBCONTRIBUTION_FILE);
                    fileXml.load();
                } catch (Exception e) {
                    // contribution de dbbuilder non trouve -> on continue, on est certainement en train
                    // de desinstaller la totale
                    fileXml = null;
                }
                if (null != fileXml) {
                    DBBuilderFileItem dbbuilderItem = new DBBuilderFileItem(fileXml);
                    packagesIntoFile.put(dbbuilderItem.getModule(), null);
                    mergeActionsToDo(dbbuilderItem, destXml, processesToCacheIntoDB, sqlMetaInstructions);
                }
            }

            // ... puis les autres
            for (DBXmlDocument currentDoc : listeDBXmlDocument) {
                DBBuilderFileItem tmpdbbuilderItem = new DBBuilderFileItem(currentDoc);
                packagesIntoFile.put(tmpdbbuilderItem.getModule(), null);
                mergeActionsToDo(tmpdbbuilderItem, destXml, processesToCacheIntoDB, sqlMetaInstructions);
            }

            // ... et enfin les pices BD  dsinstaller
            // ... attention, l'ordonnancement n'tant pas dispo, on les traite dans
            // l'ordre inverse pour faire passer busCore a la fin, de nombreuses contraintes
            // des autres modules referencant les PK de busCore
            List<String> itemsList = new ArrayList<String>();

            boolean foundDBBuilder = false;
            for (String dbPackage : packagesIntoDB) {
                if (!packagesIntoFile.containsKey(dbPackage)) {
                    // Package en base et non en contribution -> candidat  desinstallation
                    if (DBBUILDER_MODULE.equalsIgnoreCase(dbPackage)) {
                        foundDBBuilder = true;
                    } else if (ACTION_ENFORCE_UNINSTALL == params.getAction()) {
                        if (dbPackage.equals(params.getModuleName())) {
                            itemsList.add(0, dbPackage);
                        }
                    } else {
                        itemsList.add(0, dbPackage);
                    }
                }
            }

            if (foundDBBuilder) {
                if (ACTION_ENFORCE_UNINSTALL == params.getAction()) {
                    if (DBBUILDER_MODULE.equals(params.getModuleName())) {
                        itemsList.add(itemsList.size(), DBBUILDER_MODULE);
                    }
                } else {
                    itemsList.add(itemsList.size(), DBBUILDER_MODULE);
                }
            }
            for (String item : itemsList) {
                console.printMessage("**** Treating " + item + " ****");
                DBBuilderDBItem tmpdbbuilderItem = new DBBuilderDBItem(item);
                mergeActionsToDo(tmpdbbuilderItem, destXml, processesToCacheIntoDB, sqlMetaInstructions);
            }
            destXml.setName("res.txt");
            destXml.save();
            console.printMessage("Build parts are :");
            // Traitement des pices slectionnes
            // remarque : durant cette phase, les erreurs sont traites -> on les catche en
            // retour sans les retraiter
            if (ACTION_INSTALL == params.getAction()) {
                processDB(destXml, processesToCacheIntoDB, sqlMetaInstructions, TAGS_TO_MERGE_4_INSTALL);
            } else if (ACTION_UNINSTALL == params.getAction()
                    || ACTION_ENFORCE_UNINSTALL == params.getAction()) {
                processDB(destXml, processesToCacheIntoDB, sqlMetaInstructions, TAGS_TO_MERGE_4_UNINSTALL);
            } else if (ACTION_OPTIMIZE == params.getAction()) {
                processDB(destXml, processesToCacheIntoDB, sqlMetaInstructions, TAGS_TO_MERGE_4_OPTIMIZE);
            } else if (ACTION_ALL == params.getAction()) {
                processDB(destXml, processesToCacheIntoDB, sqlMetaInstructions, TAGS_TO_MERGE_4_ALL);
            }
            // Modules en place sur la BD en final
            console.printMessage("Finally DB Status :");
            checkDBStatus();
        }
        Date endDate = new Date();
        console.printMessage(MessageFormat.format(messages.getString("dbbuilder.success"), endDate));
        System.out.println("*******************************************************************");
        System.out.println(MessageFormat.format(messages.getString("dbbuilder.success"), endDate));
    } catch (Exception e) {
        e.printStackTrace();
        console.printError(e.getMessage(), e);
        Date endDate = new Date();
        console.printError(MessageFormat.format(messages.getString("dbbuilder.failure"), endDate));
        System.out.println("*******************************************************************");
        System.out.println(MessageFormat.format(messages.getString("dbbuilder.failure"), endDate));
        System.exit(1);
    } finally {
        springContext.close();
        console.close();
    }
}

From source file:gemlite.shell.service.batch.ImportService.java

/**
 * /*from  w w w. ja  va 2  s .co m*/
 * @param template
 * @param file
 * @param delimiter
 * @param quote
 * @param skipable
 * @param columns
 * @param region
 * @param table
 * @param encoding
 * @param linesToSkip
 * @param dbdriver
 *          //?????
 * @param dburl
 * @param dbuser
 * @param dbpsw
 * @param sortKey
 * @param where
 * @param pageSize
 * @param fetchSize
 * @return
 */
public boolean defineJob(String template, String file, String delimiter, String quote, boolean skipable,
        String columns, String region, String table, String encoding, int linesToSkip, String dbdriver,
        String dburl, String dbuser, String dbpsw, String sortKey, String where, int pageSize, int fetchSize) {
    BatchParameter param = new BatchParameter(template, file, delimiter, quote, skipable, columns, region,
            table, encoding, linesToSkip, sortKey, where, pageSize, fetchSize);
    if (!validParameters(param))
        return false;
    String cacheKey = region + template;
    try {
        // ??,?db??
        if (StringUtils.equals(BatchTemplateTypes.jdbcPartition.getValue(), param.getTemplate())
                || StringUtils.equals(BatchTemplateTypes.jdbcpaging.getValue(), param.getTemplate())) {
            // ??
            setDbParameter(dbdriver, dburl, dbuser, dbpsw);
            saveDbConfig(dbdriver, dburl, dbuser, dbpsw);
        }

        // partition,?table
        if (StringUtils.equals(BatchTemplateTypes.jdbcPartition.getValue(), param.getTemplate())) {
            DataSource dataSource = null;
            DatabaseType type = null;
            // ??
            if (jobItems.containsKey(cacheKey)) {
                dataSource = (DataSource) (jobItems.get(cacheKey).jobContext.getBean("jdbcDataSource"));
                type = DatabaseType.fromMetaData(dataSource);
            } else {
                // ,???
                ClassPathXmlApplicationContext jdbc = Util.initContext(true, "batch/job-context.xml",
                        "batch/import-db-jdbc.xml");
                dataSource = (DataSource) jdbc.getBean("jdbcDataSource");
                type = DatabaseType.fromMetaData(dataSource);
                jdbc.close();
            }
            if (converters.containsKey(type))
                param.setTable(converters.get(type).converte(table, sortKey));
        }

        String jobXMLFile = generator.generateFileJob(region, param);
        ClassPathXmlApplicationContext jobContext = null;
        if (StringUtils.equals("file", template)) {
            jobContext = Util.initContext(false, "batch/job-context.xml", jobXMLFile);
        } else {
            // ????db?
            jobContext = Util.initContext(false, "batch/job-context.xml", "batch/import-db-jdbc.xml",
                    jobXMLFile);
        }
        jobContext.setParent(batchContext);
        jobContext.refresh();
        if (LogUtil.getCoreLog().isDebugEnabled())
            LogUtil.getCoreLog().debug("Job:" + region + " define success.");

        JobItem item = new JobItem();
        item.attributes = param;
        item.job = jobContext.getBean(Job.class);
        item.jobContent = jobXMLFile;
        item.jobContext = jobContext;
        jobItems.put(cacheKey, item);
        return true;
    } catch (Exception e) {
        LogUtil.getCoreLog().info("Job define error.", e);
        throw new GemliteException(e);
    }
}

From source file:com.chevres.rss.restapi.controller.FeedController.java

@CrossOrigin
@RequestMapping(path = "/feeds", method = RequestMethod.GET)
@ResponseBody//w  w w. ja v a  2  s.co m
public ResponseEntity<String> getFeeds(@RequestHeader(value = "User-token") String userToken) {

    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    FeedDAO feedDAO = context.getBean(FeedDAO.class);
    UserAuthDAO userAuthDAO = context.getBean(UserAuthDAO.class);
    ArticleStateDAO articleStateDAO = context.getBean(ArticleStateDAO.class);

    UserAuth userAuth = userAuthDAO.findByToken(userToken);
    if (userAuth == null) {
        context.close();
        return new ResponseEntity(new ErrorMessageResponse("invalid_token"), HttpStatus.BAD_REQUEST);
    }

    ArticleState newState = articleStateDAO.findByLabel(ArticleState.NEW_LABEL);
    List<Feed> feeds = feedDAO.findAll(userAuth);
    List<SuccessGetFeedWithIdResponse> finalList = new ArrayList<>();
    for (Feed feed : feeds) {
        finalList.add(new SuccessGetFeedWithIdResponse(feed.getId(), feed.getName(), feed.getUrl(),
                feed.getRefreshError(), feedDAO.getNewArticlesByFeed(feed, newState)));
    }

    context.close();

    return new ResponseEntity(new SuccessGetFeedsResponse(finalList), HttpStatus.OK);

}

From source file:com.chevres.rss.restapi.controller.FeedController.java

@CrossOrigin
@RequestMapping(path = "/feed/{feedId}", method = RequestMethod.GET)
@ResponseBody// ww w  .  jav  a 2s.c  o  m
public ResponseEntity<String> getFeedInfos(@RequestHeader(value = "User-token") String userToken,
        @PathVariable int feedId) {

    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    FeedDAO feedDAO = context.getBean(FeedDAO.class);
    UserAuthDAO userAuthDAO = context.getBean(UserAuthDAO.class);
    ArticleStateDAO articleStateDAO = context.getBean(ArticleStateDAO.class);

    UserAuth userAuth = userAuthDAO.findByToken(userToken);
    if (userAuth == null) {
        context.close();
        return new ResponseEntity(new ErrorMessageResponse("invalid_token"), HttpStatus.BAD_REQUEST);
    }

    Feed feed = feedDAO.findById(userAuth, feedId);
    if (feed == null) {
        context.close();
        return new ResponseEntity(HttpStatus.NOT_FOUND);
    }

    ArticleState newState = articleStateDAO.findByLabel(ArticleState.NEW_LABEL);
    int newArticles = feedDAO.getNewArticlesByFeed(feed, newState);

    context.close();

    return new ResponseEntity(new SuccessFeedInfoResponse(feed.getId(), feed.getName(), feed.getUrl(),
            newArticles, feed.getRefreshError()), HttpStatus.OK);
}

From source file:com.chevres.rss.restapi.controller.FeedController.java

@CrossOrigin
@RequestMapping(path = "/feed/{feedId}", method = RequestMethod.PUT)
@ResponseBody//from   w w  w.ja  va 2  s.com
public ResponseEntity<String> updateFeedInfos(@RequestHeader(value = "User-token") String userToken,
        @RequestBody Feed feedRequest, @PathVariable int feedId) {

    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    FeedDAO feedDAO = context.getBean(FeedDAO.class);
    UserAuthDAO userAuthDAO = context.getBean(UserAuthDAO.class);
    ArticleStateDAO articleStateDAO = context.getBean(ArticleStateDAO.class);

    UserAuth userAuth = userAuthDAO.findByToken(userToken);
    if (userAuth == null) {
        context.close();
        return new ResponseEntity(new ErrorMessageResponse("invalid_token"), HttpStatus.BAD_REQUEST);
    }

    if (StringUtils.isBlank(feedRequest.getName())) {
        context.close();
        return new ResponseEntity(new ErrorMessageResponse("bad_params"), HttpStatus.BAD_REQUEST);
    }

    Feed feed = feedDAO.findById(userAuth, feedId);
    if (feed == null) {
        context.close();
        return new ResponseEntity(HttpStatus.NOT_FOUND);
    }

    feedDAO.updateName(feed, feedRequest);

    ArticleState newState = articleStateDAO.findByLabel(ArticleState.NEW_LABEL);
    int newArticles = feedDAO.getNewArticlesByFeed(feed, newState);

    context.close();

    return new ResponseEntity(new SuccessFeedInfoResponse(feed.getId(), feed.getName(), feed.getUrl(),
            newArticles, feed.getRefreshError()), HttpStatus.OK);
}

From source file:tools.datasync.core.sampleapp.CoreSeedIntegrationTest.java

@Before
public void init() {

    createDatabases();//from w ww  .  j av  a  2 s  .  co m

    ClassPathXmlApplicationContext appContext = null;
    try {
        appContext = new ClassPathXmlApplicationContext("test-beans.xml");

        syncOrchMgr = appContext.getBean("syncOrchMgr", SyncOrchestrationManager.class);

        sourceDao = appContext.getBean("sourceDao", GenericDao.class);
        targetDao = appContext.getBean("targetDao", GenericDao.class);

    } catch (Exception e) {
        LOG.error("Cannot load app enviornment", e);
        if (appContext != null) {
            appContext.close();
        }
    }

}

From source file:com.chevres.rss.restapi.controller.FeedController.java

@CrossOrigin
@RequestMapping(path = "/feed", method = RequestMethod.POST)
@ResponseBody// w w w  .j a  va  2  s.c o m
public ResponseEntity<String> addFeed(@RequestHeader(value = "User-token") String userToken,
        @RequestBody Feed feed, BindingResult bindingResult) {

    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    FeedDAO feedDAO = context.getBean(FeedDAO.class);
    UserAuthDAO userAuthDAO = context.getBean(UserAuthDAO.class);
    ArticleStateDAO articleStateDAO = context.getBean(ArticleStateDAO.class);

    UserAuth userAuth = userAuthDAO.findByToken(userToken);
    if (userAuth == null) {
        context.close();
        return new ResponseEntity(new ErrorMessageResponse("invalid_token"), HttpStatus.BAD_REQUEST);
    }

    feedValidator.validate(feed, bindingResult);
    if (bindingResult.hasErrors()) {
        context.close();
        return new ResponseEntity(new ErrorMessageResponse("bad_params"), HttpStatus.BAD_REQUEST);
    }

    if (feedDAO.doesExist(userAuth, feed.getUrl())) {
        context.close();
        return new ResponseEntity(new ErrorMessageResponse("already_exist"), HttpStatus.BAD_REQUEST);
    }

    feed.setIdUser(userAuth.getIdUser());
    feed.setRefreshError(false);
    feedDAO.create(feed);

    ArticleState newState = articleStateDAO.findByLabel(ArticleState.NEW_LABEL);
    int newArticles = feedDAO.getNewArticlesByFeed(feed, newState);

    context.close();

    return new ResponseEntity(new SuccessFeedInfoResponse(feed.getId(), feed.getName(), feed.getUrl(),
            newArticles, feed.getRefreshError()), HttpStatus.OK);

}

From source file:com.ryantenney.metrics.spring.RegistryTest.java

@Test
public void testCustomRegistries() {
    ClassPathXmlApplicationContext ctx = null;
    try {/* ww  w.j  a  v  a 2 s.c o  m*/
        ctx = new ClassPathXmlApplicationContext("classpath:custom-registries.xml");
        Assert.assertSame("Should have a custom MetricRegistry bean.", MetricRegistry.class,
                ctx.getBean("metrics", MetricRegistry.class).getClass().getSuperclass());
        Assert.assertSame("Should have a custom HealthCheckRegistry bean.", HealthCheckRegistry.class,
                ctx.getBean("health", HealthCheckRegistry.class).getClass().getSuperclass());
    } finally {
        if (ctx != null) {
            ctx.close();
        }
    }
}