BBCodeServiceImpl implements Startable, BBCodeService, ManagementAware { public void initDefaultBBCodes() throws Exception { SessionProvider sProvider = SessionProvider.createSystemProvider(); try { Node bbCodeHome = getBBcodeHome(sProvider); NodeIterator iter = bbCodeHome.getNodes(); if (iter.getSize() <= 0) { List<BBCode> bbCodes = new ArrayList<BBCode>(); for (BBCodePlugin pln : plugins) { List<BBCodeData> codeDatas = pln.getBBCodeData(); for (BBCodeData codeData : codeDatas) { BBCode bbCode = new BBCode(); bbCode.setTagName(codeData.getTagName()); bbCode.setReplacement(codeData.getReplacement()); bbCode.setDescription(codeData.getDescription()); bbCode.setExample(codeData.getExample()); bbCode.setOption(Boolean.parseBoolean(codeData.getIsOption())); bbCode.setActive(Boolean.parseBoolean(codeData.getIsActive())); bbCodes.add(bbCode); if (log.isDebugEnabled()) { log.debug("Registered " + bbCode); } } managePlugin(pln); } if (!bbCodes.isEmpty()) { this.save(bbCodes); } } } finally { sProvider.close(); } } BBCodeServiceImpl();  BBCodeServiceImpl(KSDataLocation dataLocator); void registerBBCodePlugin(BBCodePlugin plugin); void initDefaultBBCodes(); void save(List<BBCode> bbcodes); List<BBCode> getAll(); List<String> getActive(); BBCode findById(String id); void delete(String bbcodeId); void start(); void stop(); void setContext(ManagementContext context); KSDataLocation getDataLocator(); void setDataLocator(KSDataLocation dataLocator); List<BBCodePlugin> getPlugins(); void setPlugins(List<BBCodePlugin> plugins); final static String BBCODE_NODE_TYPE; final static String BBCODE_HOME_NODE_TYPE; }
@Test public void testInitDefaultBBCodes() throws Exception { BBCodePlugin plugin = new BBCodePlugin(); plugin.setBbcodeData(Arrays.asList(new BBCodeData("foo", "bar", false, false))); bbcodeService.registerBBCodePlugin(plugin); bbcodeService.initDefaultBBCodes(); String targetPath = bbcodesPath + "/" + "foo"; assertNodeExists(targetPath); }