Hi devs,
I'd like to propose a Deprecation Day on the 26th of April 2012.
The idea is that during this day all committers who would like to participate focus on moving deprecated APIs to legacy modules.
At the end of the day we'll count how many deprecated API we've moved (each committer should keep tab of how many APIs he moves to make that count easy).
Then we'll blog about it on xwiki.org
WDYT?
Thanks
-Vincent
Hi there,
I was testing out the XWiki Enterprise 3.5 release and I noticed that
the temporary files folder under my Tomcat 7 kept growing while I was
testing out XWiki.
I had added a number of jpg attachments to a page that was using the
{{photoalbum}} macro to display them.
However, I found that this causes a number of download requests with the
width parameter set, which seems to cause a new temporary file to be
created for each request. It seems that even though the original image
is cached it re-creates a new XWikiAttachmentContent thumbnail from
those original bytes each time, causing multiple DiskFileItems to be
created.
Looking through the code for XWikiAttachmentContent it does set the
deleteOnExit() for the DiskFileItem's store location file, but this file
then will only be deleted when the JVM is shutdown.
If multiple pages have many images each and they are being displayed in
the photoalbum macro, then this creates a problem with diskspace being
used up until the server is restarted.
(And in my case for some reason stopping Tomcat via the service icon
terminates the JVM in a way that doesn't cause the deleteOnExit() to be
called as all of the temporary files are left behind after Tomcat is
stopped)
How can we stop all these temporary files from becoming a problem with a
long running web application?
There may be a better way, but I tried hacking around with the 3.5
platform on my github account and created a component to fix the problem
by deleting files that had their DiskFileItem no longer being referenced:
Modified 3.5 platform (mainly XWikiAttachmentContent)
https://github.com/jamiemaher/xwiki-platform/tree/feature-tempfiles-3.5
Temporary Files provider component referenced by the XWikiAttachmentContent:
https://github.com/jamiemaher/xwiki-tempfiles-component
It seems to work pretty well, although there seem to be some files that
don't seem to be reclaimed, although I haven't tracked down if it's
because they are also in the regular xwiki cache as well.
Thanks,
Jamie
Hi devs,
Now that we're starting to use the Extension Manager (EM) we need to be careful about the Description and Names we use in our pom.xml since they're used by the EM to display information to the user. They're also used by the XR application to import extensions located in maven repository into extensions.xwiki.org (EXO).
Right now our names are of the type shown here: https://gist.github.com/2311321
For example:
[INFO] XWiki Commons - Extension - Parent POM ............ SUCCESS [0.004s]
[INFO] XWiki Commons - Extension - API ................... SUCCESS [2.066s]
[INFO] XWiki Commons - Extension - Handler - Parent POM .. SUCCESS [0.017s]
[INFO] XWiki Commons - Extension - Handler - JAR ......... SUCCESS [0.133s]
[INFO] XWiki Commons - Extension - Repository - Parent POM SUCCESS [0.004s]
[INFO] XWiki Commons - Extension - Repository - Aether ... SUCCESS [0.132s]
[INFO] XWiki Commons - Extension - Repository - XWiki .... SUCCESS [0.006s]
[INFO] XWiki Commons - Extension - Repository - XWiki model SUCCESS [0.188s]
[INFO] XWiki Commons - Extension - Repository - XWiki api SUCCESS [0.010s]
[INFO] XWiki Commons - Extension - Repository - XWiki handler SUCCESS [0.024s]
These names are not nice names for users. Actually they're more IDs than names. And having the users see those in our livetable on EXO isn't nice for example. Nor is it nice if they see them in the EM UI.
I thus propose that we change the way we use names in our pom.xml to use English-readable names, without any "XWiki" prefix.
For example, for the example show above we could have:
Extensions
Extension API
Extension Handlers
JAR Extension Handler
Extension Repositories
Aether Extension Repository
XWiki Extension Repository
XWiki Extension Repository Model
XWiki Extension Repository API
XWiki Extension Repository Handler
The alternative is to introduce a custom property in our pom.xm that would be used by the EM and XR but that's not a good solution because it means even more maintenance work.
While not using technical id as names in our pom.xml is not as nice when displayed in the Maven Reactor I feel it's still the best solution we have.
Here's my +1
Thanks
-Vincent
Hi devs,
I noticed that no CLIRR errors are generated for modules that have been
moved from platform to commons. This isn't good, since we're not
reporting all the API breakages.
I propose that whenever a module is moved, we add a special
configuration for the maven clirr plugin in that module's pom.xml file,
so that it compares with the previous version with the platform groupId.
See
http://mojo.codehaus.org/clirr-maven-plugin/examples/specific-artifacts.html
for more details about the required configuration.
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
The XWiki development team is proud to announce the availability of
XWiki Commons, XWiki Rendering, XWiki Platform, XWiki Enterprise and
XWiki Enterprise Manager 4.0 Release Candidate 1.
This is the first and hopefully last release candidate for XWiki
Enterprise 4.0 version. This is mostly a polishing release before the
final one.
See the full release notes at
http://www.xwiki.org/xwiki/bin/ReleaseNotes/ReleaseNotesXWikiEnterprise40RC1
for more details.
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
Hi, all,
I got a strange problem, whenever I include the jquery script in my vm
file like this:
<script type="text/javascript"
src="/xwikim/bin/skin/resources/JScripts/jQuery/slickgrid/lib/jquery-1.7.min.js"></script>
I got the following exception; I thought it caused by jquery and
prototype conflict, but I included <script type="text/javascript">
jQuery.noConflict();
var $j = jQuery;
</script>
replaced $ for jquery with $j, but the same error, I also tried to use
$xwiki.jsfx.use(), still same, any solution for this?
Thanks
Dave
missing ; before statement
...h id [xwiki:resources.JScripts]</a><div id="xwikierror1"
style="display: none;">...
jquery....min.js (line 2, col 89)
<a href="" onclick="document.getElementById('xwikierror1').style.display='block';
return false;">Error number 4001 in 4: Error while parsing velocity
page xwiki:resources.JScripts
Wrapped Exception: Failed to evaluate content with id
[xwiki:resources.JScripts]</a><div id="xwikierror1" style="display:
none;"><pre class="xwikierror">
Error number 4001 in 4: Error while parsing velocity page
xwiki:resources.JScripts
Wrapped Exception: Failed to evaluate content with id [xwiki:resources.JScripts]
com.xpn.xwiki.XWikiException: Error number 4001 in 4: Error while
parsing velocity page xwiki:resources.JScripts
Wrapped Exception: Failed to evaluate content with id [xwiki:resources.JScripts]
at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:122)
at com.xpn.xwiki.render.XWikiVelocityRenderer.render(XWikiVelocityRenderer.java:94)
at com.xpn.xwiki.render.XWikiVelocityRenderer.interpret(XWikiVelocityRenderer.java:55)
at com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderText(DefaultXWikiRenderingEngine.java:288)
at com.xpn.xwiki.render.DefaultXWikiRenderingEngine.interpretText(DefaultXWikiRenderingEngine.java:194)
at com.xpn.xwiki.XWiki.parseContent(XWiki.java:1711)
at com.xpn.xwiki.web.SkinAction.renderFileFromFilesystem(SkinAction.java:252)
at com.xpn.xwiki.web.SkinAction.render(SkinAction.java:137)
at com.xpn.xwiki.web.SkinAction.render(SkinAction.java:80)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:231)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:116)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:128)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:217)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to
evaluate content with id [xwiki:resources.JScripts]
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:247)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:117)
... 47 more
Caused by: org.apache.velocity.runtime.parser.ParseException: Lexical
error: org.apache.velocity.runtime.parser.TokenMgrError: Lexical error
at line 210, column 200. Encountered: "?" (63), after :
""
at org.apache.velocity.runtime.parser.Parser.parse(Parser.java:136)
at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1226)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:211)
... 49 more
Wrapped Exception:
org.apache.velocity.runtime.parser.ParseException: Lexical error:
org.apache.velocity.runtime.parser.TokenMgrError: Lexical error at
line 210, column 200. Encountered: "?" (63), after :
""
at org.apache.velocity.runtime.parser.Parser.parse(Parser.java:136)
at org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1226)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:211)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:117)
at com.xpn.xwiki.render.XWikiVelocityRenderer.render(XWikiVelocityRenderer.java:94)
at com.xpn.xwiki.render.XWikiVelocityRenderer.interpret(XWikiVelocityRenderer.java:55)
at com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderText(DefaultXWikiRenderingEngine.java:288)
at com.xpn.xwiki.render.DefaultXWikiRenderingEngine.interpretText(DefaultXWikiRenderingEngine.java:194)
at com.xpn.xwiki.XWiki.parseContent(XWiki.java:1711)
at com.xpn.xwiki.web.SkinAction.renderFileFromFilesystem(SkinAction.java:252)
at com.xpn.xwiki.web.SkinAction.render(SkinAction.java:137)
at com.xpn.xwiki.web.SkinAction.render(SkinAction.java:80)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:231)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:116)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:128)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:217)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
</pre></div>
Hi, all,
I have the following logback.xml file, I developed a servlet, and used
common logging library,
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Log logger = LogFactory.getLog(FileTestServlet.class);
I also added this to the logback.xml:
<logger name="next.filetest" level="debug"/>
In the code, I have the following code:
logger.debug("FileTestServlet doGet...");
But in the xwiki.log file, the message is not logged to the log file,
anything wrong? I tried to configure log4j.properties in the classes
folder, used log4j logger for logging, there is no message logged either.
Thanks for your help.
Dave
<configuration>
<appender name="xwiki"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See also
http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<file>C:\apache-tomcat-7.0.25\logs\xwiki.log</file>
<append>false</append>
<encoder>
<pattern>%d [%t] %-5p %c - %m%n</pattern>
</encoder>
<rollingPolicy
class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<maxIndex>10</maxIndex>
<FileNamePattern>C:\apache-tomcat-7.0.25\logs\xwiki.log.%i</FileNamePattern>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>5MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="com.xpn.xwiki.render.XWikiRadeoxRenderEngine" level="warn"/>
<logger name="org.apache.fop.layoutmgr.inline.ContentLayoutManager"
level="error"/>
<logger name="org.apache.struts.util.RequestUtils" level="error"/>
<logger name="org.hibernate.type" level="warn"/>
<logger name="com.xpn.xwiki.store.migration" level="info"/>
<logger name="org.hibernate.SQL" level="debug"/>
<logger name="org.jgroups" level="error"/>
<logger name="org.hibernate" level="warn"/>
<logger name="info.informatica.doc.style.css.dom" level="error"/>
<logger name="org.hibernate.ps.PreparedStatementCache" level="warn"/>
<logger name="org.xwiki" level="info"/>
<logger name="com.xpn.xwiki" level="warn"/>
<logger name="next.filetest" level="debug"/>
<root level="DEBUG">
<appender-ref ref="xwiki"/>
</root>
</configuration>
Hi devs,
Now that our Survey is over (see ) I'd like to propose that we settle on the following 2 themes for XWiki 4.x:
* Theme 1: Ease of use
* Theme 2: Quality
This means that when we define roadmaps and more generally when each of us do development tasks, we should try to focus on doing things that are about "ease of use" first and barring that about "quality". These themes are quite general but they should be understood as improving what we already have vs developing brand new features.
Of course it doesn't mean we shouldn't accept any brand new feature but more that, whenever we can, we should go in the direction of the themes.
WDYT?
If we agree I''ll add those themes to our Roadmap page at
http://enterprise.xwiki.org/xwiki/bin/view/Main/Roadmap
Thanks
-Vincent