Alfresco Share microblogging component released as open source

Back in February (I know, it’s been simmering on the back burner for too long), I did a couple of screencasts on Optaros Labs showing a demo of Alfresco Share (part 1, part 2). In part 2 of that screencast I showed two custom components: Status and Bookmark. Alfresco made Bookmark obsolete by releasing their own shared bookmarks module for Share, and that’s a Good Thing. I kind of expected them to release a microblog component as well, but they haven’t yet. Well, I finally got around to making ours available, so until a similar feature makes it into the product, feel free to use it in your own projects.

The component is simple: A “My Current Activity” dashlet lets you and your team give a quick blurb about what you’re working on. Another dashlet aggregates all of the status entries from your teammates. A global dashlet aggregates the entries from all Share sites. All status changes automatically show up in Alfresco’s Activity Feed as well.

My Current Activity Dashlet
My Current Activity Dashlet

Unlike Twitter, the status component lets you mark an entry as “done”. When you do that, your current status gets reset and the old entry moves to the archive. So it’s a little more task-oriented than more general purpose, free-form microblogging tools.

Deployment is pretty easy. An AMP gets deployed to your Alfresco WAR, and a ZIP gets unzipped into your Alfresco Share web application. That’s it. No configuration necessary. All of the data lives in the same structure as the other tools in your Share site.

I’ve put the code out on Google Code under a BSD license. There’s a pre-built AMP and a ZIP for download or you can checkout and build from source. There’s one Eclipse project for the repository tier and one for the Surf tier. I’ve tested this on Alfresco 3.2 Community. I’ll test it out on the Enterprise releases when I get a chance. There were some changes in the Activity Feed that I had to deal with and I’m not sure how far back those go so I may have to have version-specific releases.

Have a look and give me your feedback. If you want to dig in and make enhancements, bring ’em on.

42 comments

  1. jpotts says:

    Update: I’ve validated that this component works on all post-3.0 releases.

    * Community/Labs Releases
    o 3.2r Community
    o 3.2 Community
    o 3D Labs
    * Enterprise Releases
    o 3.2 Enterprise Beta
    o 3.1.1 Enterprise
    o 3.0.1 Enterprise

    If you must run on 3D Labs or 3.0 Enterprise, see my special notes on the Google Code page.

  2. Jeffrey v.d. Dungen Bille says:

    Hi Jeff,

    When I saw your post I was very happy, because I liked the feature in the screencast. Since a few days the company I’m working for, is running Share 3.2 Community as a trial. One of the things we’d like to implement is your microblog.

    Today, I’ve been trying to implement it on Linux, but unfortunately without success. Since we have some adjustments outside the extension-folder, I tried to implement the microblog by hand by placing the files in the correct folder. But since this isn’t working I was wondering if you could point out where to place the files.

    Thanks in advance.
    Regards,

    Jeffrey

  3. jpotts says:

    There are two parts to the install. The AMP needs to be installed into your Alfresco WAR using the Alfresco MMT JAR. Or, if you have the Alfresco SDK, you can just use the “ant deploy” task that is included in the source of the repository extensions. Before you run the ant task, make sure to create a build.properties file using the build.properties.sample as an example, and edit it to match your local directory locations.

    The second part of the install is to unzip the Share extensions into the Share web application root. Again, you can just use “ant deploy” from within the Share project and it will do it for you, provided you’ve created a build.properties file with the right directory paths.

    Does this make sense? If not, let me know.

    Jeff

  4. Jan Hendriks says:

    Hi Jeff,
    I’m a colleague of Jeffrey and trying to help him out. I’m almost sure we did everything right, however the dashlet can’t seem to find the webscript. ‘My current activity’ shows an errormessage: “freemarker.core.InvalidReferenceException – Expression status_value is undefined on line 52, column 107 in com/optaros/status/my-site-status.get.html.ftl.”. The log says: “/status/my-site-status.get.html.ftl does not map to a Web Script”

    What have we forgotten?

  5. jpotts says:

    That error message sounds like it can’t find the web script. You might try refreshing the webscripts by going to /share/services/index/ and clicking the “Refresh All Scripts” button. Then, verify that you can find the web script by browsing the list of web scripts by URI and searching for “status”.

    What version of Alfresco and app server are you running? Are you running the Share and Alfresco WARs in the same app server or separately?

    Jeff

  6. Lordxx says:

    Expression status_value is undefined on line 53, column 99 in com/optaros/status/my-site-status.get.html.ftl

    This is the error what i got ..

  7. jpotts says:

    Okay, I’ll take a look at this Monday night. If someone gets a chance, reply with your specific Alfresco version.

    Jeff

  8. jpotts says:

    I took a look at this and was able to recreate the problem by not installing the web scripts on the repository tier.

    Did you use the Alfresco MMT JAR to install the provided AMP to your Alfresco WAR and then deploy the AMP’d WAR to your app server?

    If so, can you validate that you can go to http://localhost:8080/alfresco/service/ and see the status web scripts?

    Jeff

  9. Jeffrey v.d. Dungen Bille says:

    The version I’m using right now is ‘Alfresco Community v3.2.0 (2039)’ and it’s running on Ubuntu.

    I didn’t use the MMT JAR, because we didn’t want to override the adjustments which were made outside the shared folder. Because of this, I did it manually.

    When I look at …/share/service/index I see six webscripts which refer to the Optaros package and also a link to the package. But when I look at …/alfresco/service/index I don’t see them. Is this correct, because the component is ment for Share of did I do something wrong?

    Jeffrey

  10. jpotts says:

    There should definitely be web scripts on both the Share tier and the repository tier. When you go to:

    http://localhost:8080/alfresco/service/index/package/com/optaros/status

    You should see two web scripts (Get Status Entries and Post Status Entries).

    You should be able to go to http://localhost:8080/alfresco/service/status/site/testsite1 where “testsite1” is the “URL name” of your Share site. The result should be a chunk of JSON.

    The repository tier web scripts live in the extension directory within their package structure. So, you should see 9 files in $TOMCAT_HOME/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status

    -rw-r--r-- 1 jpotts staff 507 Oct 15 12:08 status.get.desc.xml
    -rw-r--r-- 1 jpotts staff 140 Oct 16 00:09 status.get.html.ftl
    -rw-r--r-- 1 jpotts staff 847 Oct 16 00:12 status.get.js
    -rw-r--r-- 1 jpotts staff 186 Oct 16 00:09 status.get.json.ftl
    -rw-r--r-- 1 jpotts staff 1495 Oct 15 23:28 status.lib.ftl
    -rw-r--r-- 1 jpotts staff 325 Oct 15 12:08 status.post.desc.xml
    -rw-r--r-- 1 jpotts staff 54 Oct 16 00:09 status.post.html.ftl
    -rw-r--r-- 1 jpotts staff 866 Oct 16 00:13 status.post.js
    -rw-r--r-- 1 jpotts staff 98 Oct 16 00:09 status.post.json.ftl

    You mentioned that you’ve got other customizations in your webapp. If the above two items check out, the next step is probably to test using an out-of-the-box Alfresco WAR using the MMT to deploy the AMP.

    Jeff

  11. Kapil Malik says:

    Hi Jeff,
    I’ve only recently started reading your articles and can’t thank you enough!

    I am also seeing the same problem with Alfresco Community 3.2 r on my Windows (XP) machine when I’ve installed the AMP with alfresco.war and copied the zip file contents into the expanded share folder in the tomcat/webapps directory.
    I confirmed that the optaros web-scripts are duly deployed from the /alfresco/service Url.
    However, when I pick the ‘My Site Status’ dashlet in ‘Customize my dashboard’, I cannot see any other dashlet in the dashboard, and the My Site status also doesn’t work (no action)
    On the server, the same exception occurs as mentioned by people above.

    Regards,

    Kapil

  12. Kapil Malik says:

    Hi Jeff,

    Your second step to check for testsite1 fails for me with the server trace –

    org.alfresco.web.scripts.WebScriptException: 10040006 Wrapped Exception (with st
    atus template): 10040005 Failed to execute script ‘/com/optaros/status/status.ge
    t.js (in classpath store file:D:/install/Alfresco/tomcat/webapps/alfresco/WEB-IN
    F/classes/alfresco/extension/templates/webscripts)’: syntax error (file:D:/insta
    ll/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates
    /webscripts/com/optaros/status/status.get.js#9)
    at org.alfresco.web.scripts.AbstractWebScript.createStatusException(Abst
    ractWebScript.java:613)
    at org.alfresco.web.scripts.DeclarativeWebScript.execute(DeclarativeWebS
    cript.java:165)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecut
    e(RepositoryContainer.java:334)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecut
    eAs(RepositoryContainer.java:438)
    at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(Repos
    itoryContainer.java:302)
    at org.alfresco.web.scripts.AbstractRuntime.executeScript(AbstractRuntim
    e.java:295)
    at org.alfresco.web.scripts.AbstractRuntime.executeScript(AbstractRuntim
    e.java:172)
    at org.alfresco.web.scripts.servlet.WebScriptServlet.service(WebScriptSe
    rvlet.java:122)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ss(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
    7)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: org.alfresco.scripts.ScriptException: 10040005 Failed to execute scri
    pt ‘/com/optaros/status/status.get.js (in classpath store file:D:/install/Alfres
    co/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscrip
    ts)’: syntax error (file:D:/install/Alfresco/tomcat/webapps/alfresco/WEB-INF/cla
    sses/alfresco/extension/templates/webscripts/com/optaros/status/status.get.js#9)

  13. jpotts says:

    Seems like everyone that is seeing problems is running on Windows. There’s nothing obvious that would be operating system dependent, but I’ll see if I can find a Windows box to try to recreate this with.

    I’ve seen no problems when deploying to a fresh repository on Mac OS X.

    Jeff

  14. Peter Molendijk says:

    Hi, first of all many thanks for all your contributions to the Alfresco community.

    I will test this amp on a Windows 2003 server against alfresco enterprise 3.1.1 and report my findings.

    Cheers, Peter

  15. jpotts says:

    Found the problem. In status.get.js and status.post.js, move the import statement to be the first line of the file.

    Those files reside in $TOMCAT_HOME/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status.

    Jeff

  16. Peter says:

    Just tested on 3.1.1. enterprise, win2003 today

    got the same error as some other folks:

    Expression status_value is undefined on line 53, column 99 in com/optaros/status/my-site-status.get.html.ftl

    As Jeff mentioned in his post, the fix for this issue is to edit the two .js files.

  17. Peter Molendijk says:

    Hi Jeff,

    Will take a look at the new 01a.amp and test install.

    just a brief question.
    is there a technical reason that you need to use an amp and a seperate zip file for custom modules for Share?

    Cant the zipped files reside in the amp and placed in a shared extension folder?

    Peter

  18. Jan Hendriks says:

    Hi Jeff,

    i’ve installed the new amp file, but the error (status_value) remains the same. Further more, the imports you mention as a possible solution are no longer present in the JS files?

    Jan

  19. jpotts says:

    Jan,

    I noticed when testing that reinstalling the AMP didn’t overwrite the existing JS files with the modified JS files. When I tested with a fresh Alfresco WAR, everything worked. You might try installing the AMP with “-force”. Also, use “-verbose” so you can tell whether or not it is copying the JS files into the web app.

    Also, can you clarify your comment about the imports? I double-checked the AMP on Google Code and the JS files are in the location I expect them to be with the import statements intact.

    Jeff

  20. jpotts says:

    Jan,

    Please do this:

    1. Go to $TOMCAT_HOME/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status
    2. Do a directory listing and reply here with the results.

    You should have 9 files in that directory. The status.get.js file should be 847 bytes long and the status.post.js file should be 866 bytes long.

    Jeff

  21. Jan Hendriks says:

    root@vlc-local-share:/opt/tomcat5.5/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status# ls -la
    total 44
    drwxr-xr-x 2 root root 4096 2009-11-09 13:15 .
    drwxr-xr-x 3 root root 4096 2009-11-09 13:15 ..
    -rw-r–r– 1 root root 507 2009-10-15 11:08 status.get.desc.xml
    -rw-r–r– 1 root root 140 2009-10-15 23:09 status.get.html.ftl
    -rw-r–r– 1 root root 847 2009-11-12 08:40 status.get.js
    -rw-r–r– 1 root root 186 2009-10-15 23:09 status.get.json.ftl
    -rw-r–r– 1 root root 1495 2009-10-15 22:28 status.lib.ftl
    -rw-r–r– 1 root root 325 2009-10-15 11:08 status.post.desc.xml
    -rw-r–r– 1 root root 54 2009-10-15 23:09 status.post.html.ftl
    -rw-r–r– 1 root root 866 2009-11-12 08:39 status.post.js
    -rw-r–r– 1 root root 98 2009-10-15 23:09 status.post.json.ftl
    root@vlc-local-share:/opt/tomcat5.5/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status#

  22. jpotts says:

    @Peter,

    Yes, there is a reason why the install is divided into two. The reason is that Share is not always guaranteed to be on the same application server as Alfresco. The Alfresco installer deploys several JARs to the same Tomcat, but in production, most people will separate out the Share web app from the Alfresco web app for performance and operational reasons. For example, if you make a change to Share that requires a restart, you don’t want to have to restart all of Alfresco.

    Jeff

  23. jpotts says:

    Jan, it looks like you have the right versions of the get and post controllers.

    If this is a fresh install, I’m going to assume that (1) old copies of the scripts don’t exist elsewhere in the web app (like maybe they were copied by hand into an incorrect location) and (2) that you have not uploaded any of the web scripts into the repository’s Data Dictionary. You can go to http://localhost:8080/alfresco/service/script/com/optaros/status/status.get and scroll down to see the controller’s JavaScript to validate that if you need to.

    Regarding HTTPS, if the rest of Share is able to communicate with Alfresco (for example, you can see or create content in your test site) then the custom component will be able to communicate. It uses the same connector as the out-of-the-box components.

    From the log (thanks for the link) I can see that you are testing by logging in to your test site in Share. Let’s remove Share from the equation for the moment and instead hit the web scripts on Alfresco directly. You should be able to go to the following URLs:
    http://localhost:8080/alfresco/service/status/site/jan
    http://localhost:8080/alfresco/service/status/history/global
    http://localhost:8080/alfresco/service/status/global

    And get something back. It might be empty JSON but you should not get an error. Make sure you are forcing the browser to refresh the cache.

    If you hit these directly and Alfresco says those URLs aren’t mapped to web scripts, try clicking the “Refresh Web Scripts” button on http://localhost:8080/alfresco/service/ then try those URLs again. If that doesn’t work we may need to try to deploy a simple hello world web script to validate that your environment is okay.

    Jeff

  24. Adam says:

    I’m not sure if there’s something else going on here, but a lot of the above doesn’t seem to apply to my installation of the micro blogging tool.

    I’m experiencing the same problems as discussed above though, no action button on my status dashlet, and all other dashlets disappear when the my status dashlet is added.

    We’re running Alfresco on a Linux server, and the directory $TOMCAT_HOME/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates does not exist,

    I manually created the directories templates/webscripts/com/optaros/status and copied in the optaros/status directory with the correct files from share, but not surprisingly that didn’t work.

    I did the install with mmt to update the apache.WAR file, and unzipped the optaros-status-surf-extensions-0.1.zip with the file tree
    WEB-INF\classes\alfresco\site-webscripts\optaros\status in the share directory.

    Any idea what’s going on here?

    Thanks for all the help Jeff, this looks like a great product.

    -Adam

  25. jpotts says:

    Adam,

    You should not have to create the alfresco/extension/templates directory. All of the changes to the alfresco.war are handled by the AMP install. Did you use the 0.1a version of the AMP? The original 0.1 version had a problem with two of the web script controllers. If you installed the original AMP and are now installing the 0.1a version, you may need to use “-force” on the MMT tool to make it override the old files.

    The components in Share are web scripts. If you’re seeing the dashlets, they are probably installed okay. They communicate with web scripts on the repository tier (in the Alfresco web app). You can invoke them directly in your web browser to validate that (1) they are installed properly and (2) they are returning the data you expect. There are a couple of comments earlier on this post that show you how to do that. Here’s the relevant chunk reprinted:

    When you go to:

    http://localhost:8080/alfresco/service/index/package/com/optaros/status

    You should see two web scripts (Get Status Entries and Post Status Entries).

    You should be able to go to http://localhost:8080/alfresco/service/status/site/testsite1 where “testsite1? is the “URL name” of your Share site. The result should be a chunk of JSON.

    If you see the two web scripts in the web script index, and you can successfully get the JSON back by invoking one or both of the web scripts directly, but your dashlets still don’t work, let me know. You’ll also need to provide me with the specific version of Alfresco you are running and any exceptions that are showing up in the app server log.

    Jeff

  26. Adam says:

    Thanks for your help and patience Jeff,

    I did use the mmt tool with the -force option to install the 0.1a version

    here is the results from that…

    [adamjmcfarlin@agave status]$ cd ~
    [adamjmcfarlin@agave ~]$ ls
    alfresco-mmt-3.2.jar optaros optaros-status-repository-extensions-0.1a.amp
    [adamjmcfarlin@agave ~]$ sudo java -jar alfresco-mmt-3.2.jar install optaros-status-repository-extensions-0.1a.amp /opt/Alfresco/tomcat/webapps/alfresco.WAR -force -verbose
    Password:
    Installing AMP ‘optaros-status-repository-extensions-0.1a.amp’ into WAR ‘/opt/Alfresco/tomcat/webapps/alfresco.WAR’
    WAR has been backed up to ‘/opt/Alfresco/tomcat/webapps/alfresco.WAR-1258740955854.bak’
    WARNING: The installation of this module is being forced. All files will be removed and replaced regardless of exiting versions present.
    Clearing out files relating to version ‘0.1’ of module ‘OptarosStatus’
    – Removing file ‘/WEB-INF/classes/alfresco/extension/scripts/optarosStatus.js’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.get.json.ftl’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.post.js’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.get.html.ftl’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.post.html.ftl’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.post.json.ftl’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.get.desc.xml’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.lib.ftl’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.get.js’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.post.desc.xml’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/ui/web-client-config-custom.xml’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/model/optStatusModel.xml’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/file-mapping.properties’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/module-context.xml’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/module.properties’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/license.txt’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/messages/webclient.properties’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/activities/com/optaros/status/status-set.json.ftl’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/activities/com/optaros/status/status-set.atomentry.ftl’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/ui’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/model’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/messages’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/activities/com/optaros/status’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/activities/com/optaros’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/extension/templates/activities/com’ from war
    – Removing file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/modifications.install’ from war
    – The file ‘/WEB-INF/classes/alfresco/module/OptarosStatus/module.properties’ was expected for removal but was not present in the war
    Adding files relating to version ‘0.1’ of module ‘OptarosStatus’
    – File ‘/WEB-INF/classes/alfresco/extension/scripts/optarosStatus.js’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.get.json.ftl’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.post.js’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.get.html.ftl’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.post.html.ftl’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.post.json.ftl’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.get.desc.xml’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.lib.ftl’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.get.js’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status/status.post.desc.xml’ added to war from amp
    – Directory ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status’ added to war
    – Directory ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros’ added to war
    – Directory ‘/WEB-INF/classes/alfresco/extension/templates/webscripts/com’ added to war
    – File ‘/WEB-INF/classes/alfresco/module/OptarosStatus/ui/web-client-config-custom.xml’ added to war from amp
    – Directory ‘/WEB-INF/classes/alfresco/module/OptarosStatus/ui’ added to war
    – File ‘/WEB-INF/classes/alfresco/module/OptarosStatus/model/optStatusModel.xml’ added to war from amp
    – Directory ‘/WEB-INF/classes/alfresco/module/OptarosStatus/model’ added to war
    – File ‘/WEB-INF/classes/alfresco/module/OptarosStatus/file-mapping.properties’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/module/OptarosStatus/module-context.xml’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/module/OptarosStatus/module.properties’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/module/OptarosStatus/license.txt’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/module/OptarosStatus/messages/webclient.properties’ added to war from amp
    – Directory ‘/WEB-INF/classes/alfresco/module/OptarosStatus/messages’ added to war
    – File ‘/WEB-INF/classes/alfresco/extension/templates/activities/com/optaros/status/status-set.json.ftl’ added to war from amp
    – File ‘/WEB-INF/classes/alfresco/extension/templates/activities/com/optaros/status/status-set.atomentry.ftl’ added to war from amp
    – Directory ‘/WEB-INF/classes/alfresco/extension/templates/activities/com/optaros/status’ added to war
    – Directory ‘/WEB-INF/classes/alfresco/extension/templates/activities/com/optaros’ added to war
    – Directory ‘/WEB-INF/classes/alfresco/extension/templates/activities/com’ added to war
    [adamjmcfarlin@agave ~]$

    As you guessed the problem is that when I go to

    http://localhost:8080/alfresco/service/index/package/com/optaros/status

    I do not see Get Status Entries and Post Status Entries).

    Nor do I see the post js (also the get js seems to be too small of a file)

    here’s what I have in the webscripts/com/optaros/status directory

    [adamjmcfarlin@agave status]$ pwd
    /opt/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status
    [adamjmcfarlin@agave status]$ ls -l
    total 120
    -rw-r–r– 1 root root 292 Nov 18 10:28 my-site-status.get.desc.xml
    -rw-r–r– 1 root root 259 Nov 18 10:28 my-site-status.get.head.ftl
    -rw-r–r– 1 root root 2453 Nov 18 10:28 my-site-status.get.html.ftl
    -rw-r–r– 1 root root 2141 Nov 18 10:28 my-site-status.get.js
    -rw-r–r– 1 root root 1829 Nov 18 10:28 my-site-status.get.properties
    -rw-r–r– 1 root root 265 Nov 18 10:28 status.get.desc.xml
    -rw-r–r– 1 root root 263 Nov 18 10:28 status.get.head.ftl
    -rw-r–r– 1 root root 457 Nov 18 10:28 status.get.html.ftl
    -rw-r–r– 1 root root 225 Nov 18 10:28 status.get.js
    -rw-r–r– 1 root root 1554 Nov 18 10:28 status.get.properties
    -rw-r–r– 1 root root 273 Nov 18 10:28 statusHistory.get.desc.xml
    -rw-r–r– 1 root root 263 Nov 18 10:28 statusHistory.get.head.ftl
    -rw-r–r– 1 root root 456 Nov 18 10:28 statusHistory.get.html.ftl
    -rw-r–r– 1 root root 232 Nov 18 10:28 statusHistory.get.js
    -rw-r–r– 1 root root 1551 Nov 18 10:28 statusHistory.get.properties
    -rw-r–r– 1 root root 209 Nov 18 10:28 status-list.get.desc.xml
    -rw-r–r– 1 root root 802 Nov 18 10:28 status-list.get.js
    -rw-r–r– 1 root root 246 Nov 18 10:28 status-list.get.json.ftl
    -rw-r–r– 1 root root 1518 Nov 18 10:28 status-list.get.properties
    -rw-r–r– 1 root root 900 Nov 18 10:28 status-list.lib.ftl
    -rw-r–r– 1 root root 275 Nov 18 10:28 statusSite.get.desc.xml
    -rw-r–r– 1 root root 263 Nov 18 10:28 statusSite.get.head.ftl
    -rw-r–r– 1 root root 468 Nov 18 10:28 statusSite.get.html.ftl
    -rw-r–r– 1 root root 512 Nov 18 10:28 statusSite.get.js
    -rw-r–r– 1 root root 1554 Nov 18 10:28 statusSite.get.properties
    -rw-r–r– 1 root root 291 Nov 18 10:28 statusSiteHistory.get.desc.xml
    -rw-r–r– 1 root root 263 Nov 18 10:28 statusSiteHistory.get.head.ftl
    -rw-r–r– 1 root root 467 Nov 18 10:28 statusSiteHistory.get.html.ftl
    -rw-r–r– 1 root root 512 Nov 18 10:28 statusSiteHistory.get.js
    -rw-r–r– 1 root root 1551 Nov 18 10:28 statusSiteHistory.get.properties
    [adamjmcfarlin@agave status]$

    the .zip file I downloaded is optaros-status-surf-extensions-0.1.zip.

    Any idea why I don’t have those 2 scripts?

    Also there are 6 webscripts when I go to
    http://localhost:8080/alfresco/service/index/package/com/optaros/status
    (My Site Status, Status List, Global Status Summary, Global Status History, Site Status Summary, Site Status History)

    Thanks again,

    -Adam

  27. jpotts says:

    I see what’s happened. The optaros-status-surf-extensions-0.1.zip got unzipped into the Alfresco web app. The listing you’ve provided is showing the set of web scripts that should have been unzipped to the Share web application.

    I would remove everything from that directory and deploy your AMP again.

    After that, change to your alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status directory and do an ls|wc. You should see:
    9 9 167

    Then, change to your share/WEB-INF/classes/alfresco/site-webscripts/com/optaros/status directory and do an ls|wc. You should see:
    30 30 746

    Once that’s all straightened out I’ll bet it starts working for you.

    Jeff

  28. Adam says:

    These are the steps I took –>

    1)removed everything from the directory

    /webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/com/optaros/status

    2)re-ran the mmt with force option,

    but the AMP doesn’t seem to add anything back into INF/classes/alfresco/extension/templates/webscripts/com/optaros/status so my word count is
    0 0 0

    the word count is correct for

    share/WEB-INF/classes/alfresco/site-webscripts/com/optaros/status

    I’m going to try unzipping the zip file in the correct location but I don’t think this will solve my problem since it also won’t contribute to the
    alfresco/extension/templates/webscripts/com/optaros/status directory… I’ll let you know if my problem is solved after that though.

    Thanks!

    -Adam

  29. jpotts says:

    After you run the MMT to deploy the AMP to the WAR, are you re-deploying the WAR to your webapp? In other words, is the WAR sitting in your webapps directory or is it sitting somewhere else? If it is sitting somewhere else, you have to either copy the AMP’d WAR into your webapp directory or you have to unzip the WAR into your exploded webapp directory. If you are using the Ant deploy task that is part of the project source, it does that for you.

    So, check the WAR, by doing a jar -tvf alfresco.war|grep status and you should see that the MMT added the web scripts to the WAR. Then, check the exploded web app and see that the files were unzipped successfully. If they are in the WAR but not in the web app directory, unzip the WAR over the top of your web app directory.

    Jeff

  30. Adam says:

    alright, the issue was with where I had the WAR file, now in the right directory and I’m getting the correct word counts, but now share can’t seem to connect to the server. I’m getting the
    “Failed to Login The remote server may be unavailable or…” Also doesn’t look like virtual_stop.sh is working, stopping with a connection error.

    I’ve read up on some other people’s issues with this, and it looks like there must be a port mix-up somewhere, I don’t think this is related to the status install, I’ll let you know when I have things working.

    Thanks for your help Jeff,

    -Adam

  31. Adam says:

    Well, it looks like somehow all of the config files under webapps/alfresco/WEB-INF/classes/alfresco

    are missing… not sure what else is missing.

    Obviously this is why share can no longer connect to the Alfresco server, but I’m not at all clear on how this happened, hopefully get to the bottom of this soon.

  32. Adam says:

    Alright, everything is working except one thing =)

    the status history doesn’t show a record of the status’s I’ve finished, is this normal?
    ———————————————–

    Thanks a *ton* for the advice on the earlier problems, for for reference to anyone else in a similar situation the problem with the 503 error was caused by soffice.exe

    At one point I restarted the tomcat server and somehow openoffice blocked port 8080 needed by tomcat, only took me a day to get back on track but I learned a lot about tomcat and .war files in the process!

    Thanks,

  33. Peter says:

    Did some other tests today and like it very much.

    Are you planning to develop these dashlets a little more or are leaving that to the community?

    couple of minor testresults

    1. “empty” current activity is allowed as an update “corrupting” the “who is doing what” and “status history” dashlets
    2. history dashlet isnt limited in size so dashlet keeps growing and growing

    ad 1) would be nice to reject “null” as an update
    ad 2) would be nice to have the dashlets with a fixed frame with scroll bar

    Regards, Peter

  34. Peter says:

    another nice to have feature:

    Enable the site manager role to be able to remove status messages from “Who’s doing what” and “Status history” (for moderation point of view)

  35. jpotts says:

    @Peter,

    Thanks for testing and providing feedback. I’ll enter these as issues on the Google Code project.

    Regarding further development of the dashlets, I am definitely open to continuing development. The idea was to put them out there and gauge interest. I’m also open to anyone that wants to lend a hand.

    Jeff

  36. Peter says:

    Happy to supply the feedback.

    I just read your post on the new release.
    Looking forward to test it and will give some feedback.

    Peter

Comments are closed.