Merged V2.2 to HEAD

7653: Update and added deployment icons
   7655: Fixed multithreaded test case to handle case where threads can't get started due to lack of available DB connections.
   7657: AR-1903: Text attachments should be treated the same way as other attachments.
   7661: Fixed duplicate index creation for column that is also declared unique
   7662: Additional indexes related to permissions
   7664: Fixed query for specific property types
   7667: Used existing attachable aspect for email attachments - effectively reversing association direction.
   7682: Added AVM Console page to webapp (admin user protected)
   7683: Merged V2.1 to V2.2
      7642: Fix for WCM-949
      7668: Debugging output for getAPath(). Possible partial fix for LazyInitialization errors seen by some customers
      7672: Fixed sub optimal tree pruning in filesystem deployment


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8442 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2008-03-06 21:28:43 +00:00
parent 32d4bf1934
commit 5914bcc8c2
8 changed files with 418 additions and 2 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 619 B

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 597 B

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,281 @@
Help For The AVM Console.
-------------------------
Basic Syntax:
Enter commands into the Command box of the form:
command, arg1, arg2, arg3, ... argn
Enter further data into the Optional Data box for
command like write, create that require input data.
Click Execute to run the command.
Individual Commands:
ls - Lists the contents of the given directory.
ls, avmpath, #versionnumber#
avmpath is a valid avm path which are of the form:
storename:/name/name/name.../name
The root of the store is simply
storename:/
#versionnumber# is an integer constant indicating
the version number. -1 is used to reference the 'HEAD'
version.
------
lsr - Lists the contents of the given directory recursively.
lsr, avmpath, #versionnumber#
avmpath and #versionnumber# as above.
------
lsrep - Lists all the avmstores.
lsrep
------
lsver - Lists the versions in a given store.
lsver, storename
storename is the name of the store (alphanumeric).
------
mkrep - Create a new store.
mkrep, storename
storename as above.
------
load - Loads content recursively into an avm directory.
load, fspath, avmpath
fspath is a local filesystem path. Use '/'s to
be safe, even on windows.
avmpath as above and must be a path to a directory.
------
mkdir - Create a new directory
mkdir, avmpath, name
avmpath is as above and must point to a directory.
name must be a valid Alfresco path component name.
------
mkbr - Create a branch
mkbr, srcavmpath, dstavmpath, name, #versionnumber#
srcavmpath is a valid avmpath
dstavmpath is a valid avmpath to a directory
name is a valid path component name.
------
mkldir - Create a new layered directory
mkldir, targetavmpath, avmpath, name
targetavmpath is a valid avmpath to a directory which
will be what the new layered directory is transparent to.
avmpath is and avmpath to the directory which will contain
the new layered directory.
name is a valid path component name.
------
rename - Renames a node from one place to another.
rename, srcdiravmpath, srcname, dstdiravmpath, dstname
srcdiravmpath is the avm directory that contains the node
to be renamed.
srcname is the name of the node to rename.
dstdiravmpath is the avm directory that the renamed
node will live in.
dstname is the name of the renamed node.
------
cp - Copies a file from one place to another.
cp, avmpath, #versionnumber#, diravmpath, name
avmpath is the path to the file to copy.
#versionnumber# is as above.
diravmpath is the directory in which the copy will
reside.
name is the name of the copy.
------
snap - Creates a snapshot (a new version of an
avmstore).
snap, storename
storename is the name of the store to snapshot.
------
cat - Shows the textual content of a node. Sorry no binary
viewing.
cat, avmpath, #versionnumber#
avmpath as above.
#versionnumber# as above.
------
rm - Remove a node.
rm, avmpath, name
avmpath is a pointer to a directory.
name is the name of the node in that directory
to remove.
------
rmrep - Purges a store, i.e. makes it truly go away.
rmrep, name
name is the name of the store to purge.
------
rmver - Purges a particular version of a store.
rmver, name, #versionnumber#
name is the name of the store.
#versionnmber# is the version to purge.
------
write - Writes content to an existing file.
write, avmpath
avmpath is a path to a file.
This command expects the content to be written in
the Optional Data box.
------
create - Create a new file.
create, avmpath, name
avmpath is a path to a directory.
name is the name to give the new file.
This command expects the content to be written in
the Optional Data box.
------
stat - Get information on a node.
stat, avmpath, #versionnumber#
avmpath as above.
#versionnumber# as above.
------
getnodeproperties - List all properties of a node.
getnodeproperties, avmpath, #versionnumber#
avmpath as above.
#versionnumber# as above.
------
descnode - Describes a node (including lock information).
descnode, avmpath, #versionnumber#
avmpath as above.
#versionnumber# as above.
------
deletenodeproperty - Delete a property of a node.
deletenodeproperty, avmpath, #versionnumber#, qname
avmpath as above.
#versionnumber# as above.
qname - a property name in the form {namespaceURI}localName
------
history - Get a list of the previous versions
of a node.
history, avmpath, #versionnumber#, #count#
avmpath as above.
#versionnumber# as above.
#count# The number of versions into the past to list.
-1 means all.
------
statstore - Show information about a store.
statstore, storename
storename The name of the store.
------
compare - Compares two trees.
compare, avmpath, #versionnumber#, avmpath, #versionnumber#
------
update - Promotes a node from one tree to another.
update, avmpath, #versionnumber#, avmpath
------
resetLayer - Resets a layer.
resetLayer, avmpath
______
flatten - Flattens a layer against a target tree.
flatten, avmpath, avmpath

View File

@@ -0,0 +1,129 @@
<%--
* Copyright (C) 2005-2007 Alfresco Software Limited.
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception. You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing"
--%>
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>
<%@ page import="java.util.*,java.io.*,org.alfresco.repo.avm.*,org.alfresco.repo.avm.util.*,org.alfresco.service.cmr.avm.*,org.alfresco.service.cmr.repository.*,org.alfresco.repo.security.authentication.*,org.alfresco.service.cmr.avmsync.*,org.alfresco.service.cmr.security.*,org.alfresco.service.cmr.avm.locking.*" %>
<%!
static AVMService fgService;
static BulkLoader fgLoader;
static AVMInterpreter fgInterpreter;
static
{
fgService = (AVMService)RawServices.Instance().getContext().getBean("AVMService");
fgLoader = new BulkLoader();
fgLoader.setAvmService(fgService);
fgInterpreter = new AVMInterpreter();
fgInterpreter.setAvmService(fgService);
fgInterpreter.setAvmSyncService(
(AVMSyncService)RawServices.Instance().getContext().getBean("AVMSyncService"));
fgInterpreter.setAvmLockingService(
(AVMLockingService)RawServices.Instance().getContext().getBean("AVMLockingService"));
fgInterpreter.setBulkLoader(fgLoader);
}
static String EscapeForHTML(String data)
{
StringBuilder builder = new StringBuilder();
int count = data.length();
for (int i = 0; i < count; i++)
{
char c = data.charAt(i);
switch (c)
{
case '<' :
builder.append("&lt;");
break;
case '>' :
builder.append("&gt;");
break;
case '"' :
builder.append("&quot;");
break;
case '&' :
builder.append("&amp;");
break;
case '\'' :
builder.append("&apos;");
break;
case '\\' :
builder.append("&#092;");
break;
default :
builder.append(c);
break;
}
}
return builder.toString();
}
%>
<r:page title="AVM Console">
<table>
<tr>
<td>
<img src="<%=request.getContextPath()%>/images/logo/AlfrescoLogo32.png" alt="Alfresco" />
</td>
<td>
<span class="mainTitle" style="white-space: nowrap;">AVM Console</span>
</td>
</tr>
</table>
<%
String command = request.getParameter("command");
if (command != null)
{
long start = System.currentTimeMillis();
String data = request.getParameter("data");
data = data + "\n\n";
BufferedReader in = new BufferedReader(new StringReader(data));
String result = fgInterpreter.interpretCommand(command, in);
out.println("<div style='border: 1px dotted #aaa; padding: 6px;'><pre>Output:<br/>");
out.println(EscapeForHTML(command));
out.println();
out.println(EscapeForHTML(result));
out.println((System.currentTimeMillis() - start) + "ms");
out.println("</pre></div>");
}
else
{
command = "";
}
%>
<form action="avm-console.jsp" method="POST">
<p>Command: <input style="font-family:monospace" type="text" name="command" id="command" size="70" value="<%=command%>"></p>
<p>Optional Data:</p>
<textarea name="data" cols="80" rows="10"></textarea>
<p><input type="submit" name="submit" value="Execute"></p>
<a href="avm-console-help.txt">Help!</a>
</form>
<script>
document.getElementById("command").focus();
</script>
</r:page>