Because I am really lazy and if I banged my head enough on a wall I start doing 
what I was suppose to do a long time ago.

As already mentioned in a Tweet I finally managed to create an IntelliJ 9 
Plugin that will deploy the content of an Document onto a configured life 
server. Before deploying the Plugin to the JetBrains plugin repository I would 
love to test that by someone else.

Is anyone out there willing to test that XWiki Publisher Plugin for IntelliJ 9 
(Community Edition should work) ? It is configurable (server url, user name / 
password, target space and optional extension list).
With that plugin you can publish the content of a page or object with a simple 
keyboard shortcut. This can be text, groovy, velocity etc. The plugin relies on 
this naming convention:

- file extension are remove first
- everything before the 1st dot is the document name in the given space
- if there is a number at the end of the file name this is the object number / 
index
- everything else, if provided, is the object class name

Examples:

- AddCategory.groovy referes to the <Space>.AddCategory document
- ManageCategories.XWiki.JavaScriptExtension.js referes to the 
<Space>ManageCategories XWiki.JavaScriptExtension object (first one)
- ManageCategories.XWiki.JavaScriptExtension.1.js referes to the 
<Space>ManageCategories XWiki.JavaScriptExtension second object

Cheers - Andy

On Dec 28, 2009, at 5:49 PM, Andreas Schaefer wrote:

> Hi Paul
> 
> I think the inclusion of external content is problematic because it must be 
> maintained even through exports otherwise it helpfulness is limited.
> 
> I went ahead and created a simple Maven plugin that published the content of 
> Groovy or VM files into the appropriate document / object. The only thing it 
> relies on is the pattern of the File name. It must look like this:
> 
> <PageId>[.<class name>[.<object number>]].<extension>
> 
> The plugin takes the URL to the server, user name and password and the Space 
> the documents resides in. In addition it has a list of extension that will be 
> removed from the file name before its pattern is parsed. This way I can 
> support Groovy, Velocity, Java Script etc. For example the content of the 
> Blog's AddCategory can be published in a file called:
> 
>       AddCategory.vm
> 
> or the Archive Panel can be published with a file named:
> 
>       ArchivePanel.Panels.Category.groovy
> or
>       ArchivePanel.Panels.Category.0.groovy
> 
> This would be a simple configuration:
> 
> <plugin>
>    <groupId>org.xwiki.platform.tools</groupId>
>    <artifactId>xwiki-content-publisher-plugin</artifactId>
>    <version>1.5-SNAPSHOT</version>
>    <executions>
>        <execution>
>            <phase>generate-sources</phase>
>            <goals><goal>publish</goal></goals>
>            <configuration>
>                <sourceDirectory>src/main/content</sourceDirectory>
>                <extensions>.groovy,.vm</extensions>
>                <spaceName>GBlog</spaceName>
>                <createElements>false</createElements>
>                <serverURL>http://127.0.0.1:8080/xwiki/xmlrpc</serverURL>
>                <userName>ABC</userName>
>                <password>XXXX</password>
>            </configuration>
>        </execution>
>    </executions>
> </plugin>
> 
> This way I can develop the code outside and with a simple Maven plugin it can 
> be pushed to the server much like your Groovy script but it works over a 
> number of files or an entire project. Together with a merge tool (which could 
> be incorporate into the XAR plugin or also could be place inside a separated 
> plugin) this would make it easy to write application outside of XWiki using 
> the tools like Eclipse or IntelliJ and still being able to easily post them 
> to a XWiki or create a XAR file for publication.
> 
> Cheers - Andy
> 
> On Dec 28, 2009, at 2:04 PM, Paul Libbrecht wrote:
> 
>> Andreas,
>> 
>> I think the best would be to:
>> - allow XML documents of pages to include external content (that's  
>> been discussed many many times I think) as content
>> -  insert an upload or previewlifecycle phase (?) which would directly  
>> upload all changed files of the project into the xar maven plugin; is  
>> it possible with XML-encoded pages?
>> 
>> I agree with you that I'd rather have it all in src/main/pages or src/ 
>> main/wikipages (we use pages with our approach but it's not very  
>> systematic yet).
>> 
>> Best would be to have it all within the maven-xar plugin if you  
>> manage, I feel; but the opinions of its authors should rather be heard.
>> 
>> paul
>> 
>> 
>> Le 28-déc.-09 à 01:31, Andreas Schaefer a écrit :
>> 
>>> Hi Paul and Vincent
>>> 
>>> I checkout out XEclipse and it is a nice tool but just not what I am  
>>> looking for because I want to keep editing the code inside IntelliJ  
>>> as a Groovy or Velocity script. Paul's idea is much closer to what I  
>>> am looking for. Still I like XEclipse do view the content of a space  
>>> in its raw format rather than through the XWiki view. At least this  
>>> way I know what pages are out there in a space.
>>> 
>>> That said last night I wrote a simple and stupid Maven 2 plugin that  
>>> takes the plain code and inserts into the XML class using <! 
>>> [CDATA[ ... ]]> to protect the encoding and then build a XAR file  
>>> from it using the XAR Maven 2 plugin. This is still cumbersome  
>>> because I need to upload and import the XAR file which is too much  
>>> of a hassle.
>>> 
>>> Now I am thinking that maybe one could create a Maven 2 Plugin that  
>>> uploads the Content of a page or an Object directly into the running  
>>> XWiki instance as Paul's script or XEclipse does. This way I don't  
>>> need a XAR file and I need one Maven command to upload all the  
>>> changes in one step.
>>> 
>>> Finally I ran into some shortcomings of the XAR plugin because the  
>>> pages need to be placed into the "src/main/resources" directory. It  
>>> might be better to make that configurable because my own Maven  
>>> plugin needs to put the generated classes inside the "src/main/ 
>>> resources" directory but that is not a wise idea. If I find time I  
>>> will make that configurable soon.
>>> 
>>> Cheers - Andy
>>> 
>>> On Dec 27, 2009, at 8:25 AM, Paul Libbrecht wrote:
>>> 
>>>> We have been using a very simple post method that allows two things:
>>>> 
>>>> - keep the source code files as source, e.g. a velocity file is a .vm
>>>> file
>>>> - a command called uploadPages (made of mostly curl and a bit of  
>>>> groovy)
>>>> 
>>>> I use IntelliJ with a bit "well-informed-classes" to edit both groovy
>>>> and velocity files and upload with uploadPages.
>>>> See http://svn.activemath.org/intergeo/Platform/bin/ to get
>>>> uploadPages and uploadPages.grv.
>>>> 
>>>> The big advantage of keeping the source files source is that they are
>>>> svn-shared as is, so they merge well, and are edited with luxury  
>>>> (e.g.
>>>> auto-complete on variable names, properties uniqueness check, evil
>>>> velocity syntax catches, not yet wiki syntax protection indeed!).
>>>> 
>>>> I feel uploadPages should be turned into some simple ant tasks, I  
>>>> just
>>>> didn't find the time to do it.
>>>> I would also love that this would apply to any document-information,
>>>> thus far it's just the page content in english.
>>>> 
>>>> Direct page preview of the page being edited, as XEclipse always  
>>>> does,
>>>> is too minimalistic to my taste: I always test some derivative of the
>>>> code I edit (e.g. I edit a groovy class and test a vm page that uses
>>>> the groovy as tool, or I test things with parameters...).
>>>> 
>>>> paul
>>>> 
>>>> 
>>>> 
>>>> 
>>>> Le 27-déc.-09 à 10:16, Vincent Massol a écrit :
>>>> 
>>>>> Hi Andreas,
>>>>> 
>>>>> On Dec 27, 2009, at 1:16 AM, Andreas Schaefer wrote:
>>>>> 
>>>>>> Hi
>>>>>> 
>>>>>> For the development of the Groovy based Blog I just developed the
>>>>>> code in IntelliJ, copied inside a browser and eventually exported
>>>>>> the content into a XAR file. Slowly but surely this is getting way
>>>>>> to much work especially when doing sweeping changes.
>>>>>> 
>>>>>> Because I don't use Eclipse I am not able to use the XEclipse tool
>>>>> 
>>>>> XEclipse is a standalone tool (it's a RCP application), you don't  
>>>>> need
>>>>> Eclipse to use it... :)
>>>>> 
>>>>>> but I was wondering if anybody knows a way to XML encode text
>>>>>> (within Maven2) so that it later could use Ant's copy and filter
>>>>>> tool to incorporate the developed code / content inside the XML  
>>>>>> file
>>>>>> that will build up the XAR file.
>>>>> 
>>>>> But then you need to load the XAR to test it. You need to automate
>>>>> that part too. What you need is the full round trip:
>>>>> - get a page content locally
>>>>> - make changes to it
>>>>> - save (which uploads it to the server)
>>>>> - test
>>>>> 
>>>>> This is what Eclipse does indeed. However XEclipse has some current
>>>>> limitations, one of which is that it doesn't work with XWiki Syntax
>>>>> 2.0 yet (there's some code for this in SVN I believe though).
>>>>> Unfortunately not many devs have been working on XEclipse which is a
>>>>> real pity since it has a huge potential.
>>>>> 
>>>>> Re encoding I'm not sure why you'd want to do that. You can just  
>>>>> copy
>>>>> paste the content in pages directly without going through XAR +
>>>>> import.
>>>>> 
>>>>> Thanks
>>>>> -Vincent
>>>>> 
>>>>> _______________________________________________
>>>>> devs mailing list
>>>>> [email protected]
>>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>> 
>>>> _______________________________________________
>>>> devs mailing list
>>>> [email protected]
>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>> 
>>> _______________________________________________
>>> devs mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/devs
>> 
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
> 

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to