use of org.apache.wiki.render.RenderingManager in project jspwiki by apache.
the class CachingProvider method refreshMetadata.
//
// FIXME: Kludge: make sure that the page is also parsed and it gets all the
// necessary variables.
//
private void refreshMetadata(WikiPage page) {
if (page != null && !page.hasMetadata()) {
RenderingManager mgr = m_engine.getRenderingManager();
try {
String data = m_provider.getPageText(page.getName(), page.getVersion());
WikiContext ctx = new WikiContext(m_engine, page);
MarkupParser parser = mgr.getParser(ctx, data);
parser.parse();
} catch (Exception ex) {
log.debug("Failed to retrieve variables for wikipage " + page);
}
}
}
use of org.apache.wiki.render.RenderingManager in project jspwiki by apache.
the class AbstractReferralPlugin method makeHTML.
/**
* Makes HTML with common parameters.
*
* @param context The WikiContext
* @param wikitext The wikitext to render
* @return HTML
* @since 1.6.4
*/
protected String makeHTML(WikiContext context, String wikitext) {
String result = "";
RenderingManager mgr = m_engine.getRenderingManager();
try {
MarkupParser parser = mgr.getParser(context, wikitext);
parser.addLinkTransmutator(new CutMutator(m_maxwidth));
parser.enableImageInlining(false);
WikiDocument doc = parser.parse();
result = mgr.getHTML(context, doc);
} catch (IOException e) {
log.error("Failed to convert page data to HTML", e);
}
return result;
}
use of org.apache.wiki.render.RenderingManager in project jspwiki by apache.
the class WikiFormAdminBean method doGet.
public String doGet(WikiContext context) {
String result = "";
String wikiMarkup = getForm(context);
RenderingManager mgr = context.getEngine().getRenderingManager();
WikiDocument doc;
try {
doc = mgr.getParser(context, wikiMarkup).parse();
result = mgr.getHTML(context, doc);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
use of org.apache.wiki.render.RenderingManager in project jspwiki by apache.
the class AuthorTag method doWikiStartTag.
/**
* {@inheritDoc}
*/
@Override
public final int doWikiStartTag() throws IOException {
WikiEngine engine = m_wikiContext.getEngine();
WikiPage page = m_wikiContext.getPage();
String author = page.getAuthor();
if (author != null && author.length() > 0) {
author = TextUtil.replaceEntities(author);
if (engine.pageExists(author)) {
// FIXME: It's very boring to have to do this.
// Slow, too.
RenderingManager mgr = engine.getRenderingManager();
MarkupParser p = mgr.getParser(m_wikiContext, "[" + author + "|" + author + "]");
WikiDocument d = p.parse();
author = mgr.getHTML(m_wikiContext, d);
}
pageContext.getOut().print(author);
} else {
pageContext.getOut().print(Preferences.getBundle(m_wikiContext, InternationalizationManager.CORE_BUNDLE).getString("common.unknownauthor"));
}
return SKIP_BODY;
}
use of org.apache.wiki.render.RenderingManager in project jspwiki by apache.
the class WikiEngine method initialize.
/**
* Does all the real initialization.
*/
private void initialize(Properties props) throws WikiException {
m_startTime = new Date();
m_properties = props;
//
if (!c_configured) {
String useExternalLogConfig = TextUtil.getStringProperty(props, "jspwiki.use.external.logconfig", "false");
if (useExternalLogConfig == null || useExternalLogConfig.equals("false")) {
PropertyConfigurator.configure(props);
}
c_configured = true;
}
log.info("*******************************************");
log.info(Release.APPNAME + " " + Release.getVersionString() + " starting. Whee!");
// begin initialization
fireEvent(WikiEngineEvent.INITIALIZING);
log.debug("Java version: " + System.getProperty("java.runtime.version"));
log.debug("Java vendor: " + System.getProperty("java.vm.vendor"));
log.debug("OS: " + System.getProperty("os.name") + " " + System.getProperty("os.version") + " " + System.getProperty("os.arch"));
log.debug("Default server locale: " + Locale.getDefault());
log.debug("Default server timezone: " + TimeZone.getDefault().getDisplayName(true, TimeZone.LONG));
if (m_servletContext != null) {
log.info("Servlet container: " + m_servletContext.getServerInfo());
if (m_servletContext.getMajorVersion() < 2 || (m_servletContext.getMajorVersion() == 2 && m_servletContext.getMinorVersion() < 4)) {
throw new InternalWikiException("I require a container which supports at least version 2.4 of Servlet specification");
}
}
log.debug("Configuring WikiEngine...");
// Initializes the CommandResolver
m_commandResolver = new CommandResolver(this, props);
//
// Create and find the default working directory.
//
m_workDir = TextUtil.getStringProperty(props, PROP_WORKDIR, null);
if (m_workDir == null) {
m_workDir = System.getProperty("java.io.tmpdir", ".");
m_workDir += File.separator + Release.APPNAME + "-" + m_appid;
}
try {
File f = new File(m_workDir);
f.mkdirs();
//
if (!f.exists())
throw new WikiException("Work directory does not exist: " + m_workDir);
if (!f.canRead())
throw new WikiException("No permission to read work directory: " + m_workDir);
if (!f.canWrite())
throw new WikiException("No permission to write to work directory: " + m_workDir);
if (!f.isDirectory())
throw new WikiException("jspwiki.workDir does not point to a directory: " + m_workDir);
} catch (SecurityException e) {
log.fatal("Unable to find or create the working directory: " + m_workDir, e);
throw new IllegalArgumentException("Unable to find or create the working dir: " + m_workDir, e);
}
log.info("JSPWiki working directory is '" + m_workDir + "'");
m_saveUserInfo = TextUtil.getBooleanProperty(props, PROP_STOREUSERNAME, m_saveUserInfo);
m_useUTF8 = "UTF-8".equals(TextUtil.getStringProperty(props, PROP_ENCODING, "ISO-8859-1"));
m_beautifyTitle = TextUtil.getBooleanProperty(props, PROP_BEAUTIFYTITLE, m_beautifyTitle);
m_templateDir = TextUtil.getStringProperty(props, PROP_TEMPLATEDIR, "default");
m_frontPage = TextUtil.getStringProperty(props, PROP_FRONTPAGE, "Main");
// Initialize the page name comparator now as it may be used while
// initializing other modules
initPageSorter(props);
// of a better way to do the startup-sequence.
try {
Class<?> urlclass = ClassUtil.findClass("org.apache.wiki.url", TextUtil.getStringProperty(props, PROP_URLCONSTRUCTOR, "DefaultURLConstructor"));
m_urlConstructor = (URLConstructor) urlclass.newInstance();
m_urlConstructor.initialize(this, props);
m_pageManager = (PageManager) ClassUtil.getMappedObject(PageManager.class.getName(), this, props);
m_pluginManager = (PluginManager) ClassUtil.getMappedObject(PluginManager.class.getName(), this, props);
m_differenceManager = (DifferenceManager) ClassUtil.getMappedObject(DifferenceManager.class.getName(), this, props);
m_attachmentManager = (AttachmentManager) ClassUtil.getMappedObject(AttachmentManager.class.getName(), this, props);
m_variableManager = (VariableManager) ClassUtil.getMappedObject(VariableManager.class.getName(), props);
// m_filterManager = (FilterManager)ClassUtil.getMappedObject(FilterManager.class.getName(), this, props );
m_renderingManager = (RenderingManager) ClassUtil.getMappedObject(RenderingManager.class.getName());
m_searchManager = (SearchManager) ClassUtil.getMappedObject(SearchManager.class.getName(), this, props);
m_authenticationManager = (AuthenticationManager) ClassUtil.getMappedObject(AuthenticationManager.class.getName());
m_authorizationManager = (AuthorizationManager) ClassUtil.getMappedObject(AuthorizationManager.class.getName());
m_userManager = (UserManager) ClassUtil.getMappedObject(UserManager.class.getName());
m_groupManager = (GroupManager) ClassUtil.getMappedObject(GroupManager.class.getName());
m_editorManager = (EditorManager) ClassUtil.getMappedObject(EditorManager.class.getName(), this);
m_editorManager.initialize(props);
m_progressManager = new ProgressManager();
// Initialize the authentication, authorization, user and acl managers
m_authenticationManager.initialize(this, props);
m_authorizationManager.initialize(this, props);
m_userManager.initialize(this, props);
m_groupManager.initialize(this, props);
m_aclManager = getAclManager();
// Start the Workflow manager
m_workflowMgr = (WorkflowManager) ClassUtil.getMappedObject(WorkflowManager.class.getName());
m_workflowMgr.initialize(this, props);
m_internationalizationManager = (InternationalizationManager) ClassUtil.getMappedObject(InternationalizationManager.class.getName(), this);
m_templateManager = (TemplateManager) ClassUtil.getMappedObject(TemplateManager.class.getName(), this, props);
// Since we want to use a page filters initilize() method
// as a engine startup listener where we can initialize global event listeners,
// it must be called lastly, so that all object references in the engine
// are availabe to the initialize() method
m_filterManager = (FilterManager) ClassUtil.getMappedObject(FilterManager.class.getName(), this, props);
m_adminBeanManager = (AdminBeanManager) ClassUtil.getMappedObject(AdminBeanManager.class.getName(), this);
// RenderingManager depends on FilterManager events.
m_renderingManager.initialize(this, props);
//
// ReferenceManager has the side effect of loading all
// pages. Therefore after this point, all page attributes
// are available.
//
// initReferenceManager is indirectly using m_filterManager, therefore
// it has to be called after it was initialized.
//
initReferenceManager();
//
// Hook the different manager routines into the system.
//
m_filterManager.addPageFilter(m_referenceManager, -1001);
m_filterManager.addPageFilter(m_searchManager, -1002);
} catch (RuntimeException e) {
// RuntimeExceptions may occur here, even if they shouldn't.
log.fatal("Failed to start managers.", e);
throw new WikiException("Failed to start managers: " + e.getMessage(), e);
} catch (ClassNotFoundException e) {
log.fatal("JSPWiki could not start, URLConstructor was not found: " + e.getMessage(), e);
throw new WikiException(e.getMessage(), e);
} catch (InstantiationException e) {
log.fatal("JSPWiki could not start, URLConstructor could not be instantiated: " + e.getMessage(), e);
throw new WikiException(e.getMessage(), e);
} catch (IllegalAccessException e) {
log.fatal("JSPWiki could not start, URLConstructor cannot be accessed: " + e.getMessage(), e);
throw new WikiException(e.getMessage(), e);
} catch (Exception e) {
// Final catch-all for everything
log.fatal("JSPWiki could not start, due to an unknown exception when starting.", e);
throw new WikiException("Failed to start. Caused by: " + e.getMessage() + "; please check log files for better information.", e);
}
//
try {
if (TextUtil.getBooleanProperty(props, RSSGenerator.PROP_GENERATE_RSS, false)) {
m_rssGenerator = (RSSGenerator) ClassUtil.getMappedObject(RSSGenerator.class.getName(), this, props);
}
m_pageRenamer = (PageRenamer) ClassUtil.getMappedObject(PageRenamer.class.getName(), this, props);
} catch (Exception e) {
log.error("Unable to start RSS generator - JSPWiki will still work, " + "but there will be no RSS feed.", e);
}
// Start the RSS generator & generator thread
if (m_rssGenerator != null) {
m_rssFile = TextUtil.getStringProperty(props, RSSGenerator.PROP_RSSFILE, "rss.rdf");
File rssFile = null;
if (m_rssFile.startsWith(File.separator)) {
// honor absolute pathnames:
rssFile = new File(m_rssFile);
} else {
// relative path names are anchored from the webapp root path:
rssFile = new File(getRootPath(), m_rssFile);
}
int rssInterval = TextUtil.getIntegerProperty(props, RSSGenerator.PROP_INTERVAL, 3600);
RSSThread rssThread = new RSSThread(this, rssFile, rssInterval);
rssThread.start();
}
// initialization complete
fireEvent(WikiEngineEvent.INITIALIZED);
log.info("WikiEngine configured.");
m_isConfigured = true;
}
Aggregations