SVN hat wieder mal Mist gebaut.

git-svn-id: https://svn.libreccm.org/ccm/trunk@1400 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2011-12-27 02:12:16 +00:00
parent 60c58551a9
commit 25b812da9e
34 changed files with 447 additions and 79 deletions

View File

@ -13,6 +13,19 @@
<ccm:contact uri="mailto:rhea@redhat.com" type="support"/> <ccm:contact uri="mailto:rhea@redhat.com" type="support"/>
</ccm:contacts> </ccm:contacts>
<ccm:description> <ccm:description>
Package provides the ability to provide abbreviated URLs for long internal
or external URLS.
Example: For the internal url
/ccm/content/events/2008/excellence
you may define a shortcut
/ccm/excellence
Users may access the page by the short URL, the system provides the
necessary rewriting.
This is especially usefull for static formally required pages which are
often part of the theme, e.g. contact, webmaster, or imprint.
The Red Hat Web Application Framework is a platform for writing The Red Hat Web Application Framework is a platform for writing
database-backed web applications in Java. database-backed web applications in Java.
</ccm:description> </ccm:description>

View File

@ -1,5 +1,5 @@
Up to APLAWS version 1.0.4 shortcuts had been installed into its own Up to APLAWS version 1.0.4 shortcuts had been installed into its own
application context: [webapps]/ccm-ldn-shortcuts. application context: [webapps]/ccm-shortcuts.
Now it is installed inside the main APLAWS application context along Now it is installed inside the main APLAWS application context along
with all other applications. with all other applications.
@ -8,7 +8,7 @@ If shortcuts should be installed as its own web context again following
modifications are necessary: modifications are necessary:
1. remove webapp="xxx" from application.xml 1. remove webapp="xxx" from application.xml
2. move the files in this dir to WEB-INF/ 2. move the files in this dir to WEB-INF/
3. change src/com/ad/london/shortcuts/Shortcuts.java 3. change src/com/ad/shortcuts/Shortcuts.java
method getServletContext() as back to "/files" method getServletContext() as back to "/files"
4. edit __ccm__/.../xsl/index.xsl according the comment 4. edit __ccm__/.../xsl/index.xsl according the comment
5. edit in ccm-ldn-aplaws /web/__ccm__/themes/aplaws/shortcuts.xml 5. edit in ccm-ldn-aplaws /web/__ccm__/themes/aplaws/shortcuts.xml

View File

@ -8,7 +8,7 @@
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class> <servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param> <init-param>
<param-name>uri</param-name> <param-name>uri</param-name>
<param-value>/ccm-ldn-shortcuts/</param-value> <param-value>/ccm-shortcuts/</param-value>
</init-param> </init-param>
<load-on-startup>1</load-on-startup> <load-on-startup>1</load-on-startup>
</servlet> </servlet>
@ -18,7 +18,7 @@
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class> <servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param> <init-param>
<param-name>template-path</param-name> <param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-shortcuts</param-value> <param-value>/templates/ccm-shortcuts</param-value>
</init-param> </init-param>
</servlet> </servlet>

View File

@ -4,13 +4,13 @@
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class> <servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param> <init-param>
<param-name>template-path</param-name> <param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-shortcuts</param-value> <param-value>/templates/ccm-shortcuts</param-value>
</init-param> </init-param>
</servlet> </servlet>
<!-- module ccm-ldn-shortcuts - servlet mappings --> <!-- module ccm-ldn-shortcuts - servlet mappings -->
<servlet-mapping> <servlet-mapping>
<servlet-name>shortcuts-files</servlet-name> <servlet-name>shortcuts-files</servlet-name>
<url-pattern>/ccm-ldn-shortcuts/files/*</url-pattern> <url-pattern>/ccm-shortcuts/files/*</url-pattern>
</servlet-mapping> </servlet-mapping>

View File

@ -1,11 +0,0 @@
model com.arsdigita.london.shortcuts;
object type Shortcut {
BigDecimal[1..1] shortcutID = sc_shortcuts.shortcut_id INTEGER;
String[1..1] urlKey = sc_shortcuts.url_key VARCHAR(1000);
String[1..1] redirect = sc_shortcuts.redirect VARCHAR(1000);
object key (shortcutID);
}

View File

@ -0,0 +1,28 @@
//
// Copyright (C) 2001-2004 Red Hat Inc. All Rights Reserved.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.
//
// This library 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
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
model com.arsdigita.shortcuts;
object type Shortcut {
BigDecimal[1..1] shortcutID = sc_shortcuts.shortcut_id INTEGER;
String[1..1] urlKey = sc_shortcuts.url_key VARCHAR(1000);
String[1..1] redirect = sc_shortcuts.redirect VARCHAR(1000);
object key (shortcutID);
}

View File

@ -15,10 +15,13 @@
// License along with this library; if not, write to the Free Software // License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
model com.arsdigita.london.shortcuts; model com.arsdigita.shortcuts;
import com.arsdigita.web.Application; import com.arsdigita.web.Application;
object type Shortcuts extends Application { object type Shortcuts extends Application {
reference key (sc_app.application_id); // nothing to persist
// there is only one instance of shortcuts (the admin application) and
// no instance specific settings to be persisted.
// reference key (sc_app.application_id);
} }

View File

@ -0,0 +1,23 @@
--
-- Copyright (C) 2011 Peter Boy All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation; either version 2.1 of
-- the License, or (at your option) any later version.
--
-- This library 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
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this library; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- $Id: drop_app_table.sql pboy $
-- drops table subsite_app which just contained application type id and is
-- never used for any action.
drop table sc_app ;

View File

@ -0,0 +1,131 @@
--
-- Copyright (C) 2011 Peter Boy. All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation; either version 2.1 of
-- the License, or (at your option) any later version.
--
-- This library 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
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this library; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- $Id: remove_legacy_entries.sql $
-- Subsite is now initialized as a legacy free type of application so
-- entries in tables apm_package_types are no longer needed.
-- in case there may be several application instances!
-- delete from object_context all entries referring to node_id in site_nodes
delete from object_context
where object_id in
(select node_id from site_nodes object_id where object_id in
( select package_id from applications where application_type_id =
(select application_type_id from application_types
where object_type
like '%shortcuts.Shortcuts%')
)
);
-- delete from acs_objects all entries referring to node_id in site_nodes
alter table site_nodes drop constraint site_nodes_node_id_f_n1m2y ;
delete from acs_objects
where object_id in
(select node_id from site_nodes where object_id in
( select package_id from applications where application_type_id =
(select application_type_id from application_types
where object_type
like '%shortcuts.Shortcuts%')
)
);
-- delete all entries in site_nodes referring to a subsite instance
delete from site_nodes
where object_id in
(select package_id from applications where application_type_id =
(select application_type_id from application_types
where object_type
like '%shortcuts.Shortcuts%')
);
alter table site_nodes add constraint site_nodes_node_id_f_n1m2y
FOREIGN KEY (node_id)
REFERENCES acs_objects (object_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION ;
-- delete from object_context all entries referring to package_id in apm_packages
delete from object_context
where object_id in
(select package_id from apm_packages where package_type_id =
(select package_type_id from application_types
where object_type
like 'com.arsdigita.shortcuts.Shortcuts')
);
-- delete from acs_objects all entries referring to package_id in apm_packages
alter table apm_packages drop constraint apm_package_package_id_f_46may ;
alter table applications drop constraint application_package_id_f_cdaho ;
delete from acs_objects
where object_id in
(select package_id from apm_packages where package_type_id =
(select package_type_id from application_types
where object_type
like 'com.arsdigita.shortcuts.Shortcuts')
);
-- delete all entries for subsite instances in apm_packages
-- identified by package_type_id in application_types
delete from apm_packages
where package_type_id =
(select package_type_id from application_types
where object_type
like 'com.arsdigita.shortcuts.Shortcuts') ;
-- there seem to be no intries for a apm_packages_types entry (row) in
-- acs_objects or object_context!
-- delete all entries for subsite in apm_package_types identified by
-- package_type_id in application_types
alter table application_types drop constraint applica_typ_pac_typ_id_f_v80ma ;
delete from apm_package_types
where package_type_id =
(select package_type_id from application_types
where object_type
like 'com.arsdigita.shortcuts.Shortcuts') ;
-- set package_id to null for all entries referring to a subsite instance
-- (indicating a new legacy free application)
update applications
set package_id = null
where application_type_id =
(select application_type_id from application_types
where object_type
like 'com.arsdigita.shortcuts.Shortcuts') ;
-- set package_id to null for all entries referring to a subsite instance
-- (indicating a new legacy free application)
update application_types
set package_type_id = null
where object_type like 'com.arsdigita.shortcuts.Shortcuts' ;
alter table application_types add constraint applica_typ_pac_typ_id_f_v80ma
FOREIGN KEY (package_type_id)
REFERENCES apm_package_types (package_type_id)
MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ;
alter table applications add constraint application_package_id_f_cdaho
FOREIGN KEY (package_id)
REFERENCES apm_packages (package_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION ;
alter table apm_packages add constraint apm_package_package_id_f_46may
FOREIGN KEY (package_id)
REFERENCES acs_objects (object_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION ;

View File

@ -0,0 +1,69 @@
--
-- Copyright (C) 2011 Peter Boy All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation; either version 2.1 of
-- the License, or (at your option) any later version.
--
-- This library 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
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this library; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- $Id: upd_system_tables.sql pboy $
-- adjust various system tables to the new name of application shortcuts
alter table init_requirements drop constraint init_requirements_init_f_cmmdn ;
alter table init_requirements drop constraint init_require_requ_init_f_i6rgg ;
update inits
set class_name=replace(class_name,'london.shortcuts', 'shortcuts')
where class_name like '%london.shortcuts%' ;
update init_requirements
set init=replace(init,'london.shortcuts', 'shortcuts')
where init like '%london.shortcuts%' ;
update init_requirements
set required_init=replace(required_init,'london.shortcuts', 'shortcuts')
where required_init like '%london.shortcuts%' ;
ALTER TABLE ONLY init_requirements
ADD CONSTRAINT init_requirements_init_f_cmmdn FOREIGN KEY (init)
REFERENCES inits (class_name) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE init_requirements
ADD CONSTRAINT init_require_requ_init_f_i6rgg FOREIGN KEY (required_init)
REFERENCES inits (class_name) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION;
update application_types
set title='Shortcuts'
where object_type like '%london.shortcuts%' ;
update application_types
set object_type=replace(object_type,'london.shortcuts', 'shortcuts')
where object_type like '%london.shortcuts%' ;
-- table applications doesn't require an update
-- table apm_package_types doesn't require an update
-- table apm_packages doesn't require an update either
-- table site_nodes doesn't require an update either
-- update application type in acs_objects
update acs_objects
set (object_type,default_domain_class) =
(replace(object_type,'london.shortcuts', 'shortcuts') ,
replace(default_domain_class,'london.shortcuts', 'shortcuts') )
where object_type like '%london.shortcuts%' ;

View File

@ -0,0 +1,28 @@
--
-- Copyright (C) 2011 Peter Boy All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation; either version 2.1 of
-- the License, or (at your option) any later version.
--
-- This library 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
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this library; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- $DateTime: 2011/03/27 23:15:09 $
-- $Id: oracle-se-6.6.0-6.6.1 pboy $
-- drop table sc_app - not needed anyway
@@ default/6.6.0-6.6.1/drop_app_table.sql
-- rename application from london.shortcuts to shortcuts
@@ default/6.6.0-6.6.1/upd_system_tables.sql
-- remove legacy compatible bits
@@ default/6.6.0-6.6.1/remove_legacy_entries.sql

View File

@ -0,0 +1,33 @@
--
-- Copyright (C) 2011 Peter Boy All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation; either version 2.1 of
-- the License, or (at your option) any later version.
--
-- This library 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
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this library; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- $DateTime: 2010/11/10 23:15:09 $
\echo Red Hat Enterprise ccm-shortcuts 6.6.0 -> 6.6.1 Upgrade Script (PostgreSQL)
begin;
-- drop table sc_app - not needed anyway
\i default/6.6.0-6.6.1/drop_app_table.sql
-- rename application from london.shortcuts to shortcuts
\i default/6.6.0-6.6.1/upd_system_tables.sql
-- remove legacy compatible bits
\i default/6.6.0-6.6.1/remove_legacy_entries.sql
commit;

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<config class="com.arsdigita.london.shortcuts.ShortcutsConfig"
storage="ccm-ldn-shortcuts/shortcuts.properties"/>
</registry>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<config class="com.arsdigita.shortcuts.ShortcutsConfig"
storage="ccm-shortcuts/shortcuts.properties"/>
</registry>

View File

@ -8,10 +8,10 @@
<!-- <!--
<table name=""/> <table name=""/>
--> -->
<initializer class="com.arsdigita.london.shortcuts.Initializer"/> <initializer class="com.arsdigita.shortcuts.Initializer"/>
</provides> </provides>
<scripts> <scripts>
<schema directory="ccm-ldn-shortcuts"/> <schema directory="ccm-shortcuts"/>
<data class="com.arsdigita.london.shortcuts.Loader"/> <data class="com.arsdigita.shortcuts.Loader"/>
</scripts> </scripts>
</load> </load>

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
package com.arsdigita.london.shortcuts; package com.arsdigita.shortcuts;
import com.arsdigita.db.DbHelper; import com.arsdigita.db.DbHelper;
@ -51,7 +51,7 @@ public class Initializer extends CompoundInitializer {
add(new PDLInitializer add(new PDLInitializer
(new ManifestSource (new ManifestSource
("ccm-ldn-shortcuts.pdl.mf", ("ccm-shortcuts.pdl.mf",
new NameFilter(DbHelper.getDatabaseSuffix(database), "pdl")))); new NameFilter(DbHelper.getDatabaseSuffix(database), "pdl"))));
} }

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
package com.arsdigita.london.shortcuts; package com.arsdigita.shortcuts;
import com.arsdigita.loader.PackageLoader; import com.arsdigita.loader.PackageLoader;
@ -31,6 +31,10 @@ import com.arsdigita.web.Application;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
/** /**
* Executes nonrecurring at install time and loads (and configures ) the
* shortcut application type and the administration instance.
* Shortcuts works by a filter servlet activated in web.xml
*
* Loads the shortcuts application and type. * Loads the shortcuts application and type.
* *
* @author Daniel Berrange * @author Daniel Berrange
@ -40,6 +44,11 @@ public class Loader extends PackageLoader {
private static final Logger s_log = Logger.getLogger(Loader.class); private static final Logger s_log = Logger.getLogger(Loader.class);
/**
* Run script invoked by com.arsdigita.packing loader script.
*
* @param ctx
*/
public void run(final ScriptContext ctx) { public void run(final ScriptContext ctx) {
new KernelExcursion() { new KernelExcursion() {
public void excurse() { public void excurse() {
@ -49,17 +58,35 @@ public class Loader extends PackageLoader {
}.run(); }.run();
} }
/**
* Creates a shortcuts as a legacy-free application type.
*
* No localization here because it is an invariant configuration.
*/
private void setupShortcuts() { private void setupShortcuts() {
ApplicationType type = ApplicationType s_log.debug("Creating an application type for shortcuts. " +
"Base Data Object Type: " + Shortcuts.BASE_DATA_OBJECT_TYPE);
/* Create legacy-campatible application type */
/* ApplicationType type = ApplicationType
.createApplicationType("shortcuts", .createApplicationType("shortcuts",
"CCM Shortcuts Admin", "CCM Shortcuts Admin",
Shortcuts.BASE_DATA_OBJECT_TYPE); Shortcuts.BASE_DATA_OBJECT_TYPE); */
type.setDescription("CCM shortcuts administration"); /* Create legacy-free application type
* NOTE: The wording in the title parameter of ApplicationType
* determines the name of the subdirectory for the XSL stylesheets.
* It gets "urlized", i.e. trimming leading and trailing blanks and
* replacing blanks between words and illegal characters with an
* hyphen and converted to lower case.
* "Shortcuts" will become "shortcuts". */
ApplicationType type = new ApplicationType(
"Shortcuts",
Shortcuts.BASE_DATA_OBJECT_TYPE );
type.setDescription("CCM Shortcuts Administration instance");
Application admin = Application.retrieveApplicationForPath("/admin/"); Application admin = Application.retrieveApplicationForPath("/admin/");
Application app = Application app = Application.createApplication(type,
Application.createApplication(type,
"shortcuts", "shortcuts",
"CCM Shortcuts Admin", "CCM Shortcuts Admin",
admin); admin);

View File

@ -13,7 +13,7 @@
* *
*/ */
package com.arsdigita.london.shortcuts; package com.arsdigita.shortcuts;
import com.arsdigita.db.Sequences; import com.arsdigita.db.Sequences;
import com.arsdigita.domain.DataObjectNotFoundException; import com.arsdigita.domain.DataObjectNotFoundException;
@ -39,7 +39,8 @@ public class Shortcut extends DomainObject {
public static final String URL_KEY = "urlKey"; public static final String URL_KEY = "urlKey";
public static final String REDIRECT = "redirect"; public static final String REDIRECT = "redirect";
public static final String BASE_DATA_OBJECT_TYPE = "com.arsdigita.london.shortcuts.Shortcut"; public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.shortcuts.Shortcut";
protected String getBaseDataObjectType() { protected String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE; return BASE_DATA_OBJECT_TYPE;

View File

@ -13,7 +13,7 @@
* *
*/ */
package com.arsdigita.london.shortcuts; package com.arsdigita.shortcuts;
import com.arsdigita.domain.DomainCollection; import com.arsdigita.domain.DomainCollection;
import com.arsdigita.domain.DomainObject; import com.arsdigita.domain.DomainObject;

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
package com.arsdigita.london.shortcuts; package com.arsdigita.shortcuts;
import com.arsdigita.web.BaseFilter; import com.arsdigita.web.BaseFilter;

View File

@ -13,7 +13,7 @@
* *
*/ */
package com.arsdigita.london.shortcuts; package com.arsdigita.shortcuts;
import com.arsdigita.caching.CacheTable; import com.arsdigita.caching.CacheTable;
import com.arsdigita.persistence.SessionManager; import com.arsdigita.persistence.SessionManager;
@ -26,8 +26,7 @@ import org.apache.log4j.Logger;
public class ShortcutUtil { public class ShortcutUtil {
private static final Logger s_log = private static final Logger s_log = Logger.getLogger(ShortcutUtil.class);
Logger.getLogger(ShortcutUtil.class);
private static CacheTable s_remote = new CacheTable("shortcuts"); private static CacheTable s_remote = new CacheTable("shortcuts");
private static Map s_cache = new HashMap(); private static Map s_cache = new HashMap();

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
package com.arsdigita.london.shortcuts; package com.arsdigita.shortcuts;
import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID; import com.arsdigita.persistence.OID;
@ -32,16 +32,10 @@ public class Shortcuts extends Application {
private static final Logger logger = Logger.getLogger(Shortcuts.class); private static final Logger logger = Logger.getLogger(Shortcuts.class);
public static final String BASE_DATA_OBJECT_TYPE public static final String BASE_DATA_OBJECT_TYPE =
= "com.arsdigita.london.shortcuts.Shortcuts"; "com.arsdigita.shortcuts.Shortcuts";
private static ShortcutsConfig s_config = new ShortcutsConfig(); private static ShortcutsConfig s_config = ShortcutsConfig.getConfig();
static {
logger.debug("Static initalizer starting...");
s_config.load();
logger.debug("Static initalizer finished.");
}
public static ShortcutsConfig getConfig() { public static ShortcutsConfig getConfig() {
return s_config; return s_config;
@ -93,6 +87,6 @@ public class Shortcuts extends Application {
*/ */
public String getServletPath() { public String getServletPath() {
// return "/files"; // return "/files";
return "/ccm-ldn-shortcuts/files"; return "/ccm-shortcuts/files";
} }
} }

View File

@ -16,11 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
package com.arsdigita.london.shortcuts; package com.arsdigita.shortcuts;
import com.arsdigita.runtime.AbstractConfig; import com.arsdigita.runtime.AbstractConfig;
import com.arsdigita.util.parameter.IntegerParameter;
import com.arsdigita.util.parameter.Parameter;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
@ -36,9 +34,43 @@ import org.apache.log4j.Logger;
*/ */
public final class ShortcutsConfig extends AbstractConfig { public final class ShortcutsConfig extends AbstractConfig {
/** A logger instance to assist debugging. */
private static final Logger s_log = Logger.getLogger(ShortcutsConfig.class); private static final Logger s_log = Logger.getLogger(ShortcutsConfig.class);
/** Singelton config object. */
private static ShortcutsConfig s_conf;
/**
* Gain a SubsiteConfig object.
*
* Singelton pattern, don't instantiate a config object using the
* constructor directly!
* @return
*/
public static synchronized ShortcutsConfig getConfig() {
if (s_conf == null) {
s_conf = new ShortcutsConfig();
s_conf.load();
}
return s_conf;
}
// ////////////////////////////////////////////////////////////////////////
// Set of configuration parameters
// Nothing to configurfe yet
/**
* Constructor (singleton pattern).
* Don't instantiate a config object using the constructor directly!
* use getConfig instead!
*/
public ShortcutsConfig() { public ShortcutsConfig() {
// register([parameter]);
loadInfo(); loadInfo();
} }
} }

View File

@ -13,9 +13,7 @@
* *
*/ */
package com.arsdigita.london.shortcuts.ui; package com.arsdigita.shortcuts.ui;
import java.math.BigDecimal;
import org.apache.log4j.Category; import org.apache.log4j.Category;
@ -23,7 +21,6 @@ import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.SimpleContainer; import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.parameters.BigDecimalParameter; import com.arsdigita.bebop.parameters.BigDecimalParameter;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.london.shortcuts.Shortcut;
public class AdminPanel extends SimpleContainer { public class AdminPanel extends SimpleContainer {
@ -38,6 +35,7 @@ public class AdminPanel extends SimpleContainer {
add(new ShortcutsTable(m_shortcut)); add(new ShortcutsTable(m_shortcut));
} }
@Override
public void register(Page p) { public void register(Page p) {
super.register(p); super.register(p);

View File

@ -17,7 +17,7 @@
* *
*/ */
package com.arsdigita.london.shortcuts.ui; package com.arsdigita.shortcuts.ui;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -29,8 +29,8 @@ import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormValidationListener; import com.arsdigita.bebop.event.FormValidationListener;
import com.arsdigita.bebop.Label; import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.form.Submit; import com.arsdigita.bebop.form.Submit;
import com.arsdigita.london.shortcuts.ShortcutUtil; import com.arsdigita.shortcuts.ShortcutUtil;
import com.arsdigita.london.shortcuts.Shortcut; import com.arsdigita.shortcuts.Shortcut;
import com.arsdigita.bebop.Form; import com.arsdigita.bebop.Form;
import com.arsdigita.bebop.parameters.TrimmedStringParameter; import com.arsdigita.bebop.parameters.TrimmedStringParameter;
import com.arsdigita.bebop.parameters.NotEmptyValidationListener; import com.arsdigita.bebop.parameters.NotEmptyValidationListener;

View File

@ -17,7 +17,7 @@
* *
*/ */
package com.arsdigita.london.shortcuts.ui; package com.arsdigita.shortcuts.ui;
import com.arsdigita.bebop.Table; import com.arsdigita.bebop.Table;
import com.arsdigita.bebop.table.TableModelBuilder; import com.arsdigita.bebop.table.TableModelBuilder;
@ -26,9 +26,9 @@ import com.arsdigita.bebop.table.TableModel;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.kernel.ui.ACSObjectSelectionModel; import com.arsdigita.kernel.ui.ACSObjectSelectionModel;
import com.arsdigita.london.shortcuts.Shortcut; import com.arsdigita.shortcuts.Shortcut;
import com.arsdigita.london.shortcuts.ShortcutUtil; import com.arsdigita.shortcuts.ShortcutUtil;
import com.arsdigita.london.shortcuts.ShortcutCollection; import com.arsdigita.shortcuts.ShortcutCollection;
import java.math.BigDecimal; import java.math.BigDecimal;
import org.apache.log4j.Category; import org.apache.log4j.Category;

View File

@ -6,7 +6,7 @@
<filter> <filter>
<filter-name>shortcuts</filter-name> <filter-name>shortcuts</filter-name>
<filter-class>com.arsdigita.london.shortcuts.ShortcutFilter</filter-class> <filter-class>com.arsdigita.shortcuts.ShortcutFilter</filter-class>
</filter> </filter>
<filter-mapping> <filter-mapping>
@ -14,20 +14,20 @@
<url-pattern>/*</url-pattern> <url-pattern>/*</url-pattern>
</filter-mapping> </filter-mapping>
<!-- module ccm-ldn-shortcuts - servlet definitions --> <!-- module ccm-shortcuts - servlet definitions -->
<servlet> <servlet>
<servlet-name>shortcuts-files</servlet-name> <servlet-name>shortcuts-files</servlet-name>
<servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class> <servlet-class>com.arsdigita.web.ApplicationFileServlet</servlet-class>
<init-param> <init-param>
<param-name>template-path</param-name> <param-name>template-path</param-name>
<param-value>/templates/ccm-ldn-shortcuts</param-value> <param-value>/templates/ccm-shortcuts</param-value>
</init-param> </init-param>
</servlet> </servlet>
<!-- module ccm-ldn-shortcuts - servlet mappings --> <!-- module ccm-shortcuts - servlet mappings -->
<servlet-mapping> <servlet-mapping>
<servlet-name>shortcuts-files</servlet-name> <servlet-name>shortcuts-files</servlet-name>
<url-pattern>/ccm-ldn-shortcuts/files/*</url-pattern> <url-pattern>/ccm-shortcuts/files/*</url-pattern>
</servlet-mapping> </servlet-mapping>
</web-app> </web-app>

View File

@ -16,7 +16,7 @@
title="Shortcuts Admin" cache="true"> title="Shortcuts Admin" cache="true">
<define:component name="admin" <define:component name="admin"
classname="com.arsdigita.london.shortcuts.ui.AdminPanel"/> classname="com.arsdigita.shortcuts.ui.AdminPanel"/>
<jsp:scriptlet> <jsp:scriptlet>
shortcutsPage.addRequestListener(new ApplicationAuthenticationListener()); shortcutsPage.addRequestListener(new ApplicationAuthenticationListener());

View File

@ -4,14 +4,14 @@
xmlns:shortcuts="http://www.arsdigita.com/shortcuts/1.0" xmlns:shortcuts="http://www.arsdigita.com/shortcuts/1.0"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"> xmlns:bebop="http://www.arsdigita.com/bebop/1.0">
<!-- IMPORT DEFINITIONS ccm-ldn-shortcuts installed as separate web application <!-- IMPORT DEFINITIONS ccm-shortcuts installed as separate web application
<xsl:import href="../../../../../ROOT/packages/bebop/xsl/bebop.xsl"/> <xsl:import href="../../../../../ROOT/packages/bebop/xsl/bebop.xsl"/>
<xsl:import href="../../../../../ROOT/packages/ui/xsl/ui.xsl"/> <xsl:import href="../../../../../ROOT/packages/ui/xsl/ui.xsl"/>
--> -->
<!-- IMPORT DEFINITIONS ccm-ldn-shortcuts installed into the main CCM webapp <!-- IMPORT DEFINITIONS ccm-ldn-shortcuts installed into the main CCM webapp
--> -->
<xsl:import href="../../../../packages/bebop/xsl/bebop.xsl"/> <xsl:import href="../../../packages/bebop/xsl/bebop.xsl"/>
<xsl:import href="../../../../packages/ui/xsl/ui.xsl"/> <xsl:import href="../../../packages/ui/xsl/ui.xsl"/>
</xsl:stylesheet> </xsl:stylesheet>