mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-06-02 17:35:18 +00:00
this: mysite--guest--preview/HEAD/DATA/www/avm_webapps/ROOT/WEB-INF/... and: mysite--guest--preview/VERSION/v1/DATA/www/avm_webapps/ROOT/WEB-INF/... rather than: mysite--guest--preview/HEAD/DATA/appBase/avm_webapps/ROOT/WEB-INF/... and: mysite--guest--preview/VERSION/v1/DATA/appBase/avm_webapps/ROOT/WEB-INF/... The reason for this is that the actual "appliation base" is and always has been "avm_webapps"; the original reason for making the *parent* of this dir called appBase had do do with the fact that you can have diffrent app bases for different virtual hosts. However, in the end it causes way more confusion than it was ever worth, so it's gone now. The reason for all the modified files is that people were hard-coding values in many different places, and/or defining their own constants for something that was needed at a higher level. As a temporary measure (I hope), I've defined some rather ugly-looking constants in JNDIConstants.java, and have used them everywhere: DIR_DEFAULT_WWW = "www" DIR_DEFAULT_APPBASE = "avm_webapps" The reason for calling the parent of the new application base "www" is that will be the default place that www-centric stuff happens (therefore, it's also the level at which the overlays take place). Ultimately, I'd like to turn these into spring configs, and bring back support for multiple AVMHost nodes within the same Tomcat... but it's not a priority at the moment. Please don't hard-code any dirs named "appBase" as the root level dir in a repo -- it's now "www", and will change again to a function call later when/if virtual AVMHosts come back. Keeping them as constants also helps them to be easier to find when overhauling things. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4696 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
110 lines
3.2 KiB
Java
110 lines
3.2 KiB
Java
/*
|
|
* Copyright (C) 2005 Alfresco, Inc.
|
|
*
|
|
* Licensed under the Mozilla Public License version 1.1
|
|
* with a permitted attribution clause. You may obtain a
|
|
* copy of the License at
|
|
*
|
|
* http://www.alfresco.org/legal/license.txt
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
|
* either express or implied. See the License for the specific
|
|
* language governing permissions and limitations under the
|
|
* License.
|
|
*/
|
|
package org.alfresco.repo.jscript;
|
|
|
|
import org.alfresco.config.JNDIConstants;
|
|
import org.alfresco.repo.avm.AVMNodeConverter;
|
|
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
|
|
import org.alfresco.service.ServiceRegistry;
|
|
import org.mozilla.javascript.Scriptable;
|
|
|
|
/**
|
|
* Helper to access AVM nodes from a script context.
|
|
*
|
|
* @author Kevin Roast
|
|
*/
|
|
public final class AVM extends BaseScriptImplementation implements Scopeable
|
|
{
|
|
/** Repository Service Registry */
|
|
private ServiceRegistry services;
|
|
|
|
/** Root scope for this object */
|
|
private Scriptable scope;
|
|
|
|
/**
|
|
* Set the service registry
|
|
*
|
|
* @param serviceRegistry the service registry
|
|
*/
|
|
public void setServiceRegistry(ServiceRegistry serviceRegistry)
|
|
{
|
|
this.services = serviceRegistry;
|
|
}
|
|
|
|
/**
|
|
* @see org.alfresco.repo.jscript.Scopeable#setScope(org.mozilla.javascript.Scriptable)
|
|
*/
|
|
public void setScope(Scriptable scope)
|
|
{
|
|
this.scope = scope;
|
|
}
|
|
|
|
/**
|
|
* Return an AVM Node representing the public store root folder.
|
|
*
|
|
* @param store Store name to lookup root folder for
|
|
*
|
|
* @return AVM Node representing the public store root folder, or null if not found.
|
|
*/
|
|
public AVMNode lookupStoreRoot(String store)
|
|
{
|
|
AVMNode rootNode = null;
|
|
if (store != null && store.length() != 0)
|
|
{
|
|
String rootPath = store + ':' + getWebappsFolderPath();
|
|
AVMNodeDescriptor nodeDesc = this.services.getAVMService().lookup(-1, rootPath);
|
|
if (nodeDesc != null)
|
|
{
|
|
rootNode = new AVMNode(AVMNodeConverter.ToNodeRef(-1, rootPath), this.services, this.scope);
|
|
}
|
|
}
|
|
return rootNode;
|
|
}
|
|
|
|
/**
|
|
* Return an AVM Node for the fully qualified path.
|
|
*
|
|
* @param path Fully qualified path to node to lookup
|
|
*
|
|
* @return AVM Node for the fully qualified path, or null if not found.
|
|
*/
|
|
public AVMNode lookupNode(String path)
|
|
{
|
|
AVMNode node = null;
|
|
if (path != null && path.length() != 0)
|
|
{
|
|
AVMNodeDescriptor nodeDesc = this.services.getAVMService().lookup(-1, path);
|
|
if (nodeDesc != null)
|
|
{
|
|
node = new AVMNode(AVMNodeConverter.ToNodeRef(-1, path), this.services, this.scope);
|
|
}
|
|
}
|
|
return node;
|
|
}
|
|
|
|
public static String getWebappsFolderPath()
|
|
{
|
|
return '/' + JNDIConstants.DIR_DEFAULT_WWW + '/' +
|
|
JNDIConstants.DIR_DEFAULT_APPBASE;
|
|
}
|
|
|
|
public static String jsGet_webappsFolderPath()
|
|
{
|
|
return getWebappsFolderPath();
|
|
}
|
|
}
|