Verschiedene Probleme mit einigen Admin-Klassen korrgiert.

git-svn-id: https://svn.libreccm.org/ccm/trunk@2184 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2013-06-07 10:56:57 +00:00
parent fe52693426
commit 2f4c3a41d7
4 changed files with 115 additions and 135 deletions

View File

@ -62,7 +62,7 @@ public class FileAttachmentConfig extends AbstractConfig {
/**
* Constructor, don't use it directly!
*/
protected FileAttachmentConfig() {
public FileAttachmentConfig() {
super();

View File

@ -11,18 +11,14 @@ import com.arsdigita.util.parameter.Parameter;
*/
public class NotesConfig extends AbstractConfig {
private static final NotesConfig INSTANCE = new NotesConfig();
static {
INSTANCE.load();
}
private static NotesConfig INSTANCE;
private final Parameter assetStepSortKey = new IntegerParameter(
"com.arsdigita.cms.contentassets.notes.asset_step_sortkey",
Parameter.REQUIRED,
3);
protected NotesConfig() {
public NotesConfig() {
super();
@ -33,11 +29,14 @@ public class NotesConfig extends AbstractConfig {
}
public static final NotesConfig getInstance() {
if (INSTANCE == null) {
INSTANCE = new NotesConfig();
INSTANCE.load();
}
return INSTANCE;
}
public Integer getAssetStepSortKey() {
return (Integer) get(assetStepSortKey);
}
}

View File

@ -11,20 +11,14 @@ import com.arsdigita.util.parameter.Parameter;
*/
public class RelatedLinkConfig extends AbstractConfig {
private static final RelatedLinkConfig INSTANCE = new RelatedLinkConfig();
static {
INSTANCE.load();
}
private static RelatedLinkConfig INSTANCE;
private final Parameter assetStepSortKey = new IntegerParameter(
"com.arsdigita.cms.relatedlink.contentassets.asset_step_sortkey",
Parameter.REQUIRED,
1);
protected RelatedLinkConfig() {
super();
public RelatedLinkConfig() {
register(assetStepSortKey);
@ -32,6 +26,10 @@ public class RelatedLinkConfig extends AbstractConfig {
}
public static final RelatedLinkConfig getInstance() {
if (INSTANCE == null) {
INSTANCE = new RelatedLinkConfig();
INSTANCE.load();
}
return INSTANCE;
}

View File

@ -17,7 +17,6 @@
*/
package com.arsdigita.navigation;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@ -52,10 +51,8 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
private static final Logger s_log =
Logger.getLogger(NavigationFileResolver.class);
private static final String CATEGORY_PATH_ATTR =
NavigationFileResolver.class + ".categoryPath";
// path is set in a cookie, which navigation models may use if they wish
public static final String PATH_COOKIE_NAME = "ad_path";
public static final char PATH_COOKIE_SEPARATOR = '|';
@ -74,7 +71,7 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
}
if (path.equals("/category.jsp")) {
Navigation nav = (Navigation)Web.getContext().getApplication();
Navigation nav = (Navigation) Web.getContext().getApplication();
String id = sreq.getParameter("categoryID");
if (s_log.isDebugEnabled()) {
@ -83,9 +80,9 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
String useContext = sreq.getParameter("useContext");
if (s_log.isDebugEnabled()) {
s_log.debug("Using use context " + useContext );
s_log.debug("Using use context " + useContext);
}
if ( null == useContext ) {
if (null == useContext) {
useContext = Template.DEFAULT_USE_CONTEXT;
}
Category cat = null;
@ -94,7 +91,7 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
try {
cat = new Category(new BigDecimal(id));
} catch (Exception e) {
s_log.warn("Could not load category for id "+id);
s_log.warn("Could not load category for id " + id);
return null;
}
@ -143,23 +140,22 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
cats.add(parents.getCategory());
}
Category[] catsArray = (Category[])
cats.toArray(new Category[cats.size()]);
Category[] catsArray = (Category[]) cats.toArray(new Category[cats.size()]);
sreq.setAttribute(CATEGORY_PATH_ATTR,
catsArray);
setPathCookie(sresp, catsArray);
return resolveTemplate(catsArray[catsArray.length-1], useContext);
return resolveTemplate(catsArray[catsArray.length - 1], useContext);
} else {
String useContext = Template.DEFAULT_USE_CONTEXT;
if (path.endsWith( ".jsp" )) {
int lastSlash = path.lastIndexOf( '/' );
if (path.endsWith(".jsp")) {
int lastSlash = path.lastIndexOf('/');
useContext = path.substring( lastSlash + 1, path.length() - 4 );
path = path.substring( 0, lastSlash );
useContext = path.substring(lastSlash + 1, path.length() - 4);
path = path.substring(0, lastSlash);
if (s_log.isDebugEnabled()) {
s_log.debug( "useContext=" + useContext + ",path=" + path );
s_log.debug("useContext=" + useContext + ",path=" + path);
}
}
@ -171,11 +167,11 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
s_log.debug("No category found");
}
sreq.setAttribute(CATEGORY_PATH_ATTR,
new Category[] { root });
setPathCookie(sresp, new Category[] { root });
new Category[]{root});
setPathCookie(sresp, new Category[]{root});
return super.resolve(templatePath, sreq, sresp, app);
} else {
Category cat = cats[cats.length-1];
Category cat = cats[cats.length - 1];
if (s_log.isDebugEnabled()) {
s_log.debug("Got cat " + cat);
}
@ -209,7 +205,7 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
// use this when deciding whether to trust the given path
path.append(PATH_COOKIE_SEPARATOR + Kernel.getContext().getResource().getID().toString());
for (int i = 0; i < catsArray.length; i ++) {
for (int i = 0; i < catsArray.length; i++) {
Category cat = catsArray[i];
path.append(PATH_COOKIE_SEPARATOR + cat.getID().toString());
}
@ -226,12 +222,8 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
}
public static Category[] getCategoryPath(HttpServletRequest req) {
return (Category[])req.getAttribute(CATEGORY_PATH_ATTR);
return (Category[]) req.getAttribute(CATEGORY_PATH_ATTR);
}
private String getTemplateContext() {
@ -255,12 +247,9 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
useContext);
}
// If there's an explicit use context which doesn't exist, give a 404
if (!Template.DEFAULT_USE_CONTEXT.equals( useContext ) &&
null == template) {
s_log.debug("No template found in context " +
getTemplateContext() + " for category " +
cat.getID() + " with use context " +
useContext );
if (!Template.DEFAULT_USE_CONTEXT.equals(useContext) && null == template) {
s_log.debug("No template found in context " + getTemplateContext() + " for category " + cat.getID()
+ " with use context " + useContext);
return null;
}
@ -274,7 +263,7 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
path = template.getURL();
}
RequestDispatcher rd = Web.findResourceDispatcher(
new String[] { "ROOT"} ,
new String[]{"ROOT"},
path);
if (s_log.isDebugEnabled()) {
@ -285,7 +274,7 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
}
private Category getRootCategory() {
Navigation nav = (Navigation)Web.getContext().getApplication();
Navigation nav = (Navigation) Web.getContext().getApplication();
TemplateContext ctx = Navigation.getContext().getTemplateContext();
if (s_log.isDebugEnabled()) {
@ -309,31 +298,25 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
return root;
}
/**
*
* category resolution retained as an instance method to
* allow it to be overridden. Default functionality
* contained in static resolveCategory method
* category resolution retained as an instance method to allow it to be overridden. Default functionality contained
* in static resolveCategory method
*
* @param root
* @param path
* @return
*/
protected Category[] resolvePath (Category root, String path) {
protected Category[] resolvePath(Category root, String path) {
return NavigationFileResolver.resolveCategory(root, path);
}
/**
* Match a URL with the category tree and return the requested
* category if exists.
* Match a URL with the category tree and return the requested category if exists.
*
* Quasimodo:
* Originally addEqualsFilter has been used to filter the
* appropriate category directly inside the SQL query. This is
* possible anymore due to the localised URLs of the new
* localised categories (or at least: not found it).
* Therefore we do the filtering in Java now.
* Quasimodo: Originally addEqualsFilter has been used to filter the appropriate category directly inside the SQL
* query. This is possible anymore due to the localised URLs of the new localised categories (or at least: not found
* it). Therefore we do the filtering in Java now.
*
*/
public static Category[] resolveCategory(Category root,
@ -344,7 +327,7 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
cats.add(root);
Category cat = root;
for (int i = 0 ; i < bits.length ; i++) {
for (int i = 0; i < bits.length; i++) {
if ("".equals(bits[i])) {
continue;
}
@ -359,7 +342,7 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
boolean found = false;
while (children.next()) {
cat = children.getCategory();
if(cat.getURL().equals(bits[i]) && cat.isEnabled() == true) {
if (cat.getURL().equals(bits[i]) && cat.isEnabled() == true) {
if (s_log.isDebugEnabled()) {
s_log.debug("Got category " + cat);
}
@ -370,7 +353,7 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
}
}
// } else {
if(found == false) {
if (found == false) {
if (s_log.isDebugEnabled()) {
s_log.debug("No category found ");
}
@ -378,6 +361,6 @@ public class NavigationFileResolver extends DefaultApplicationFileResolver {
}
}
return (Category[])cats.toArray(new Category[cats.size()]);
return (Category[]) cats.toArray(new Category[cats.size()]);
}
}