Changeset 293

Show
Ignore:
Timestamp:
03/17/06 16:41:52
Author:
douglm
Message:

Fixes needed to resolve properties issues when applications are bundled together.

The result of bundling the applications is that the properties files are all on the same class path. This means that we cannot have one resource file per application, rather it's shared between all of them.

Rather than have client specific properties be based on a particular properties file they are now based on the context paramater bwappname. This is used to create a property name prefix which is then used to get client specific properties.

There is an additional section in the config/configs/democal.properties file which defiens the names and associated type of application.

Most application properties have changed and a few have been added. Watch out for the additonal properties

# uris to cross link apps - of dubious usefulness
org.bedework.global.public.admin.uri=/caladmin
org.bedework.global.public.calendar.uri=/cal
org.bedework.global.personal.calendar.uri=/ucal

Additional properties have also been added to each application section - <app-prefix> refers to the application specific part of the name, e.g. org.bedework.app.Caladmin

<app-prefix>.logprefix= value used for log messages
<app-prefix>.guestmode= true for config, public events client and public caldav, false elsewhere
<app-prefix>.publicadmin= true for public events admin client, false elsewhere
<app-prefix>.run.as.user= only present for pubcaldav(?), public events admin and public events client.

Created a new ant task to cycle through the above list of applications. Also made use of the ant propertyset task.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/calendar3/bldfiles/buildear.xml

    r2 r293  
    11<!-- 
    2      This is the build.xml for UW Calendar which is called by the main build 
     2     This is the build.xml for bedework which is called by the main build 
    33     file to create a ear file. 
    44 
     
    1515          description="Build ear file"> 
    1616    <property name="app.dest.home" 
    17               location="${org.bedework.temp.ears.home}/${propval.ear.name}" /> 
     17              location="${org.bedework.temp.ears.home}/${propval.app.ear.name}" /> 
    1818    <property name="app.dest.ear" 
    1919              location="${app.dest.home}/ear" /> 
     
    2222 
    2323    <property name="app.ear.file" 
    24               location="${dist.home}/${propval.ear.name}.ear" /> 
     24              location="${dist.home}/${propval.app.ear.name}.ear" /> 
    2525 
    2626    <copy tofile="${app.dest.earinf}/application.xml" 
     
    2929      <filterset> 
    3030        <filter token="DISPLAY-NAME" value="${propval.app.name}"/> 
    31         <filter token="WAR-NAME" value="${propval.war.name}"/> 
     31        <filter token="WAR-NAME" value="${propval.app.war.name}"/> 
    3232        <filter token="CONTEXT-ROOT" value="${propval.app.context.root}"/> 
    3333      </filterset> 
     
    3939      </fileset> 
    4040      <fileset dir="${dist.home}"> 
    41         <include name="${propval.war.name}.war" /> 
     41        <include name="${propval.app.war.name}.war" /> 
    4242      </fileset> 
    4343    </jar> 
  • trunk/calendar3/bldfiles/buildsh.xml

    r2 r293  
    1919    <!-- Destinations - where we build stuff --> 
    2020    <property name="app.dest.home" 
    21               location="${org.bedework.temp.shellscr.home}/${propval.zip.name}" /> 
     21              location="${org.bedework.temp.shellscr.home}/${propval.app.zip.name}" /> 
    2222    <property name="app.dest.lib" 
    2323              location="${app.dest.home}/lib" /> 
     
    3030 
    3131    <property name="app.zip.file" 
    32               location="${dist.home}/${propval.zip.name}.zip" /> 
     32              location="${dist.home}/${propval.app.zip.name}.zip" /> 
    3333  </target> 
    3434 
     
    148148 
    149149    <zip destfile="${app.zip.file}" > 
    150       <zipfileset prefix="${propval.zip.name}" dir="${app.dest.home}" /> 
     150      <zipfileset prefix="${propval.app.zip.name}" dir="${app.dest.home}" /> 
    151151    </zip> 
    152152  </target> 
  • trunk/calendar3/bldfiles/buildwar.xml

    r270 r293  
    5656    <!-- Destinations - where we build an unwrapped war --> 
    5757    <property name="app.dest.war" 
    58               location="${org.bedework.temp.wars.home}/${propval.war.name}.war" /> 
     58              location="${org.bedework.temp.wars.home}/${propval.app.war.name}.war" /> 
    5959    <property name="app.dest.docs" 
    6060              location="${app.dest.war}/docs" /> 
     
    7171 
    7272    <property name="app.war.file" 
    73               location="${dist.home}/${propval.war.name}.war" /> 
     73              location="${dist.home}/${propval.app.war.name}.war" /> 
    7474 
    7575    <!-- These may have been set already --> 
     
    113113 
    114114    <filterset id="property.filters" > 
     115      <filter token="BW-APP-NAME" 
     116              value="${org.bedework.deploy.name}"/> 
     117 
    115118      <filter token="HIBERNATE-DIALECT" 
    116119              value="${org.bedework.global.hibernate.dialect}" /> 
     
    118121      <filter token="DIRECTORY-BROWSING-DISALLOWED" 
    119122              value="${org.bedework.global.directory.browsing.disallowed}" /> 
    120  
    121       <filter token="ENV-PREFIX" 
    122               value="${propval.env.prefix}" /> 
    123123 
    124124      <filter token="APP-DESCRIPTION" 
     
    157157              value="${propval.app.calfile.name}" /> --> 
    158158      <filter token="ADMIN-URI" 
    159               value="${propval.app.public.admin.uri}" /> 
     159              value="${org.bedework.global.public.admin.uri}" /> 
    160160      <filter token="PUBEVENTS-URI" 
    161               value="${propval.app.public.calendar.uri}" /> 
     161              value="${org.bedework.global.public.calendar.uri}" /> 
    162162      <filter token="PERSONAL-URI" 
    163               value="${propval.app.personal.calendar.uri}" /> 
     163              value="${org.bedework.global.personal.calendar.uri}" /> 
    164164    </filterset> 
    165165 
     
    327327  <target name="add.jetspeed2" if="org.bedework.build.for.jetspeed2" > 
    328328    <copy todir="${app.dest.webinf}" 
    329           file="${org.bedework.portal.resources.dir}/jetspeed2/${propval.war.name}/portlet.xml" 
     329          file="${org.bedework.portal.resources.dir}/jetspeed2/${propval.app.war.name}/portlet.xml" 
    330330          overwrite="yes" 
    331331          failonerror="no" /> 
  • trunk/calendar3/calEnv/src/org/bedework/calenv/CalEnv.java

    r2 r293  
    6464  public static final String globalPrefix = "org.bedework.global."; 
    6565 
    66   /* Get an object with one of these as a parameter to use the getApp 
    67      methods. 
    68    */ 
    69  
    70   /** property prefix for web admin client */ 
    71   public static final String webAdminAppPrefix = "org.bedework.webadmin."; 
    72  
    73   /** property prefix for web public client */ 
    74   public static final String webPublicAppPrefix = "org.bedework.webpubevents."; 
    75  
    76   /** property prefix for web personal client */ 
    77   public static final String webPersonalAppPrefix = "org.bedework.webpersonal."; 
    78  
    79   /** property prefix for public caldav client */ 
    80   public static final String caldavPublicAppPrefix = "org.bedework.caldav.public."; 
    81  
    82   /** property prefix for personal caldav client */ 
    83   public static final String caldavPersonalAppPrefix = "org.bedework.caldav.user."; 
    84  
    8566  private String appPrefix; 
    8667 
     
    9374  public CalEnv(String appPrefix, boolean debug) throws CalEnvException { 
    9475    this.appPrefix = appPrefix; 
    95  
    9676  } 
    9777 
     
    150130    } 
    151131  } 
     132   
     133  /** Return current app prefix 
     134   *  
     135   * @return String app prefix 
     136   */ 
     137  public String getAppPrefix() { 
     138    return appPrefix; 
     139  } 
    152140 
    153141  /** Return all properties from the global environment. 
  • trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/CaldavBWIntf.java

    r207 r293  
    5555package edu.rpi.cct.uwcal.caldav; 
    5656 
     57import org.bedework.calenv.CalEnv; 
    5758import org.bedework.calfacade.BwCalendar; 
    5859import org.bedework.calfacade.BwEvent; 
     
    8889import edu.rpi.cct.webdav.servlet.shared.WebdavTags; 
    8990 
     91import edu.rpi.sss.util.jsp.JspUtil; 
    9092import edu.rpi.sss.util.xml.QName; 
    91  
    9293 
    9394import java.io.IOException; 
     
    127128  private String namespacePrefix; 
    128129 
     130  /* Prefix for out properties */ 
     131  private String envPrefix; 
     132 
    129133  /** Namespace based on the request url. 
    130134   */ 
     
    172176                   boolean debug) throws WebdavIntfException { 
    173177    super.init(servlet, req, props, debug); 
    174  
    175     namespacePrefix = WebdavUtils.getUrlPrefix(req); 
    176     namespace = namespacePrefix + "/schema"; 
    177  
    178     try { 
     178     
     179    String contextRoot = JspUtil.getContext(req); 
     180     
     181    if ((contextRoot != null) && (contextRoot.startsWith("/"))) { 
     182      contextRoot = contextRoot.substring(1); 
     183    } 
     184     
     185    if ((contextRoot == null) || (contextRoot.length() == 0)) { 
     186      contextRoot = "root"; 
     187    } 
     188     
     189    try { 
     190      envPrefix = CalEnv.getProperty("org.bedework.envprefix." + contextRoot); 
     191       
     192      namespacePrefix = WebdavUtils.getUrlPrefix(req); 
     193      namespace = namespacePrefix + "/schema"; 
     194 
    179195      publicCalendarRoot = getSvci().getSyspars().getPublicCalendarRoot(); 
    180196      userCalendarRoot = getSvci().getSyspars().getUserCalendarRoot(); 
     
    11671183      CalSvcIPars pars = new CalSvcIPars(account, UserAuth.noPrivileges, 
    11681184                                         account, 
     1185                                         envPrefix, 
    11691186                                         publicMode, 
    11701187                                         true,    // caldav 
  • trunk/calendar3/caldav/war/WEB-INF/publicweb.xml

    r2 r293  
    66         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    77         version="2.4"> 
    8   <display-name>UW Calendar Webdav</display-name> 
     8  <display-name>Bedework public caldav</display-name> 
     9 
     10  <context-param> 
     11    <param-name>bwappname</param-name> 
     12    <param-value>@BW-APP-NAME@</param-value> 
     13  </context-param> 
    914 
    1015  <listener> 
  • trunk/calendar3/caldav/war/WEB-INF/userweb.xml

    r2 r293  
    66         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    77         version="2.4"> 
    8   <display-name>UW Calendar Webdav</display-name> 
     8  <display-name>Bedework user caldav</display-name> 
     9 
     10  <context-param> 
     11    <param-name>bwappname</param-name> 
     12    <param-value>@BW-APP-NAME@</param-value> 
     13  </context-param> 
    914 
    1015  <listener> 
  • trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java

    r256 r293  
    277277 
    278278    try { 
    279       String appPrefix = null; 
    280  
    281       if (pars.getPublicAdmin()) { 
    282         appPrefix = CalEnv.webAdminAppPrefix; 
    283       } else if (pars.isGuest()) { 
    284         if (pars.getCaldav()) { 
    285           appPrefix = CalEnv.caldavPublicAppPrefix; 
    286         } else { 
    287           appPrefix = CalEnv.webPublicAppPrefix; 
    288         } 
    289       } else { 
    290         if (pars.getCaldav()) { 
    291           appPrefix = CalEnv.caldavPersonalAppPrefix; 
    292         } else { 
    293           appPrefix = CalEnv.webPersonalAppPrefix; 
    294         } 
    295       } 
    296  
    297       env = new CalEnv(appPrefix, debug); 
    298  
    299       //publicUserAccount = CalEnv.getGlobalProperty("public.user"); 
     279      env = new CalEnv(pars.getEnvPrefix(), debug); 
    300280 
    301281      if (pars.isGuest() && (pars.getUser() == null)) { 
     
    307287        //adminAutoDeleteLocations = env.getAppBoolProperty("app.autodeletelocations"); 
    308288 
    309         adminCanEditAllPublicCategories = env.getAppBoolProperty("app.allowEditAllCategories"); 
    310         adminCanEditAllPublicLocations = env.getAppBoolProperty("app.allowEditAllLocations"); 
    311         adminCanEditAllPublicSponsors = env.getAppBoolProperty("app.allowEditAllSponsors"); 
     289        adminCanEditAllPublicCategories = env.getAppBoolProperty("allowEditAllCategories"); 
     290        adminCanEditAllPublicLocations = env.getAppBoolProperty("allowEditAllLocations"); 
     291        adminCanEditAllPublicSponsors = env.getAppBoolProperty("allowEditAllSponsors"); 
    312292      } 
    313293 
  • trunk/calendar3/calsvci/src/org/bedework/calsvci/CalSvcIPars.java

    r46 r293  
    7373   */ 
    7474  private String user; 
     75   
     76  /** Environment properties prefix - e.g. "org.bedework.webpersonal." 
     77   */ 
     78  private String envPrefix; 
    7579 
    7680  /** True if this is for public admin 
     
    96100   *                     org.bedework.calfacade.svc.UserAuth 
    97101   * @param user        String user to act as 
     102   * @param enzPrefix   String Environment properties prefix 
    98103   * @param publicAdmin true for admin 
    99104   * @param caldav      true if via caldav 
     
    105110                     int rights, 
    106111                     String user, 
     112                     String envPrefix, 
    107113                     boolean publicAdmin, 
    108114                     boolean caldav, 
     
    112118    this.rights = rights; 
    113119    this.user = user; 
     120    this.envPrefix = envPrefix; 
    114121    this.publicAdmin = publicAdmin; 
    115122    this.caldav = caldav; 
     
    144151  public String getUser() { 
    145152    return user; 
     153  } 
     154 
     155  /** 
     156   * @param val String envPrefix 
     157   */ 
     158  public void setEnvPrefix(String  val) { 
     159    envPrefix = val; 
     160  } 
     161 
     162  /** 
     163   * @return String current envPrefix 
     164   */ 
     165  public String getEnvPrefix() { 
     166    return envPrefix; 
    146167  } 
    147168 
     
    231252                                       getRights(), 
    232253                                       getUser(), 
     254                                       getEnvPrefix(), 
    233255                                       getPublicAdmin(), 
    234256                                       getCaldav(), 
  • trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java

    r55 r293  
    533533    sb.append(getSessionId(request)); 
    534534    sb.append(":"); 
    535     sb.append(getLogPrefix()); 
     535    sb.append(getLogPrefix(request)); 
    536536 
    537537    return new LogEntryImpl(sb, this); 
     
    557557   * @see edu.rpi.sss.util.log.HttpAppLogger#logRequest(javax.servlet.http.HttpServletRequest) 
    558558   */ 
    559   public void logRequest(HttpServletRequest request) 
    560                throws Throwable { 
     559  public void logRequest(HttpServletRequest request) throws Throwable { 
    561560    LogEntry le = getLogEntry(request, "REQUEST"); 
    562561 
     
    616615  /** Get a prefix for the loggers. 
    617616   * 
     617   * @param request    HttpServletRequest 
    618618   * @return  String    log prefix 
    619619   */ 
    620   private String getLogPrefix() { 
     620  protected String getLogPrefix(HttpServletRequest request) { 
    621621    try { 
    622622      if (logPrefix == null) { 
  • trunk/calendar3/config/configs/democal.properties

    r268 r293  
    1818org.bedework.install.public.caldav=true 
    1919org.bedework.install.personal.caldav=true 
     20 
     21# Define the names of the applications we want to build 
     22org.bedework.install.app.names=bwconfig,CalAdmin,Events,UserCal,Pubcaldav,Usercaldav 
     23org.bedework.install.app.types=webconfig,webadmin,webpublic,webuser,publiccaldav,usercaldav 
     24 
    2025# 
    2126# -------------------------------------------------------------------- 
     
    2833org.bedework.global.directory.browsing.disallowed=false 
    2934org.bedework.global.build.standalone.app=true 
     35 
     36# uris to cross link apps - of dubious usefulness 
     37org.bedework.global.public.admin.uri=/caladmin 
     38org.bedework.global.public.calendar.uri=/cal 
     39org.bedework.global.personal.calendar.uri=/ucal 
    3040 
    3141# 
     
    6070# Bedework config web client 
    6171# 
    62 org.bedework.webconfig.app.version=3.0 
    63 org.bedework.webconfig.app.default.contenttype=text/xml 
    64 org.bedework.webconfig.war.name=bwconfig 
    65 org.bedework.webconfig.context.root=bwconfig 
    66 org.bedework.webconfig.app.root=/bwconfigrsrc 
    67 org.bedework.webconfig.app.resources.dir=/webapps/ROOT/bwconfigrsrc 
    68 org.bedework.webconfig.deploy.dir=/webapps 
    69 org.bedework.webconfig.app.description=Bedework properties config application 
    70 org.bedework.webconfig.app.display.name=Bedework Config 
    71 org.bedework.webconfig.app.name=bwconfig 
    72 org.bedework.webconfig.env.prefix=org.bedework.webconfig. 
     72org.bedework.app.bwconfig.version=3.0 
     73org.bedework.app.bwconfig.default.contenttype=text/xml 
     74org.bedework.app.bwconfig.war.name=bwconfig 
     75org.bedework.app.bwconfig.context.root=bwconfig 
     76org.bedework.app.bwconfig.root=/bwconfigrsrc 
     77org.bedework.app.bwconfig.resources.dir=/webapps/ROOT/bwconfigrsrc 
     78org.bedework.app.bwconfig.deploy.dir=/webapps 
     79org.bedework.app.bwconfig.description=Bedework properties config application 
     80org.bedework.app.bwconfig.display.name=Bedework Config 
     81org.bedework.app.bwconfig.name=bwconfig 
     82org.bedework.app.bwconfig.env.prefix=org.bedework.webconfig. 
     83org.bedework.app.bwconfig.guestmode=true 
     84org.bedework.app.bwconfig.publicadmin=false 
     85org.bedework.app.bwconfig.logprefix=BwConfig 
    7386 
    7487# 
     
    7790# Admin Web Client 
    7891# 
    79 org.bedework.webadmin.app.version=3.0 
    80 org.bedework.webadmin.app.default.contenttype=text/xml 
    81 org.bedework.webadmin.app.nogroupallowed=false 
    82 org.bedework.webadmin.env.prefix=org.bedework.webadmin. 
    83  
    84 org.bedework.webadmin.war.name=caladmin 
    85 org.bedework.webadmin.deploy.j2ee=false 
    86 org.bedework.webadmin.ear.name=caladmin 
    87 org.bedework.webadmin.context.root=caladmin 
    88 org.bedework.webadmin.app.root=/caladminrsrc 
    89 org.bedework.webadmin.app.resources.dir=/webapps/ROOT/caladminrsrc 
    90 org.bedework.webadmin.deploy.dir=/webapps 
    91  
    92 org.bedework.webadmin.app.security.domain=demo 
    93 org.bedework.webadmin.app.security.prefix=demo 
    94 org.bedework.webadmin.app.transport.guarantee=NONE 
    95  
    96 org.bedework.webadmin.app.description=Struts based version of the Bedework calendar public events admin client. 
    97 org.bedework.webadmin.app.display.name=Public Events Administration 
    98 org.bedework.webadmin.app.name=DemoCalAdmin 
    99  
    100 org.bedework.webadmin.app.autocreatesponsors=false 
    101 org.bedework.webadmin.app.autodeletesponsors=false 
    102 org.bedework.webadmin.app.autocreatelocations=false 
    103 org.bedework.webadmin.app.autodeletelocations=false 
    104 org.bedework.webadmin.app.allowEditAllCategories=false 
    105 org.bedework.webadmin.app.allowEditAllLocations=false 
    106 org.bedework.webadmin.app.allowEditAllSponsors=false 
    107 org.bedework.webadmin.app.categoryOptional=true 
    108  
    109 org.bedework.webadmin.app.hour24=true 
    110 org.bedework.webadmin.app.minincrement=5 
    111 org.bedework.webadmin.app.admingroupsidprefix=agrp_ 
     92org.bedework.app.CalAdmin.version=3.0 
     93org.bedework.app.CalAdmin.default.contenttype=text/xml 
     94org.bedework.app.CalAdmin.nogroupallowed=false 
     95 
     96org.bedework.app.CalAdmin.war.name=caladmin 
     97org.bedework.app.CalAdmin.ear.name=caladmin 
     98org.bedework.app.CalAdmin.context.root=caladmin 
     99org.bedework.app.CalAdmin.root=/caladminrsrc 
     100org.bedework.app.CalAdmin.resources.dir=/webapps/ROOT/caladminrsrc 
     101org.bedework.app.CalAdmin.deploy.dir=/webapps 
     102 
     103org.bedework.app.CalAdmin.security.domain=demo 
     104org.bedework.app.CalAdmin.security.prefix=demo 
     105org.bedework.app.CalAdmin.transport.guarantee=NONE 
     106 
     107org.bedework.app.CalAdmin.description=Struts based version of the Bedework calendar public events admin client. 
     108org.bedework.app.CalAdmin.display.name=Public Events Administration 
     109org.bedework.app.CalAdmin.name=DemoCalAdmin 
     110 
     111org.bedework.app.CalAdmin.autocreatesponsors=false 
     112org.bedework.app.CalAdmin.autodeletesponsors=false 
     113org.bedework.app.CalAdmin.autocreatelocations=false 
     114org.bedework.app.CalAdmin.autodeletelocations=false 
     115org.bedework.app.CalAdmin.allowEditAllCategories=false 
     116org.bedework.app.CalAdmin.allowEditAllLocations=false 
     117org.bedework.app.CalAdmin.allowEditAllSponsors=false 
     118org.bedework.app.CalAdmin.categoryOptional=true 
     119 
     120org.bedework.app.CalAdmin.hour24=true 
     121org.bedework.app.CalAdmin.minincrement=5 
     122org.bedework.app.CalAdmin.admingroupsidprefix=agrp_ 
     123org.bedework.app.CalAdmin.guestmode=false 
     124org.bedework.app.CalAdmin.publicadmin=true 
     125org.bedework.app.CalAdmin.logprefix=PubEventsAdmin 
     126org.bedework.app.CalAdmin.run.as.user=public-user 
    112127 
    113128# 
     
    116131# Public Web Client 
    117132# 
    118 org.bedework.webpubevents.app.version=3.0 
    119 org.bedework.webpubevents.app.default.contenttype=text/xml 
    120 org.bedework.webpubevents.app.web.xml=guest/web.xml 
    121 org.bedework.webpubevents.env.prefix=org.bedework.webpubevents. 
    122  
    123 org.bedework.webpubevents.war.name=cal 
    124 org.bedework.webpubevents.deploy.j2ee=false 
    125 org.bedework.webpubevents.ear.name=cal 
    126 org.bedework.webpubevents.context.root=cal 
    127 org.bedework.webpubevents.app.root=/calrsrc 
    128 org.bedework.webpubevents.app.resources.dir=/webapps/ROOT/calrsrc 
    129 org.bedework.webpubevents.deploy.dir=/webapps 
    130  
    131 org.bedework.webpubevents.app.description=Struts based XML version of the Bedework calendar client. It may have many skins, determined by the XSLT. 
    132 org.bedework.webpubevents.app.display.name=Demo calendar 
    133 org.bedework.webpubevents.app.name=DemoCal 
    134 org.bedework.webpubevents.run.as.user=public-user 
    135  
    136 org.bedework.webpubevents.app.hour24=true 
    137 org.bedework.webpubevents.app.minincrement=5 
    138 org.bedework.webpubevents.app.skinset.name=demoskins 
    139 org.bedework.webpubevents.app.showyeardata=false 
    140 org.bedework.webpubevents.app.default.view=week 
    141 org.bedework.webpubevents.app.refresh.interval=300 
    142 org.bedework.webpubevents.app.refresh.action=setup.do 
     133org.bedework.app.Events.version=3.0 
     134org.bedework.app.Events.default.contenttype=text/xml 
     135org.bedework.app.Events.web.xml=guest/web.xml 
     136 
     137org.bedework.app.Events.war.name=cal 
     138org.bedework.app.Events.ear.name=cal 
     139org.bedework.app.Events.context.root=cal 
     140org.bedework.app.Events.root=/calrsrc 
     141org.bedework.app.Events.resources.dir=/webapps/ROOT/calrsrc 
     142org.bedework.app.Events.deploy.dir=/webapps 
     143 
     144org.bedework.app.Events.description=Struts based XML version of the Bedework calendar client. It may have many skins, determined by the XSLT. 
     145org.bedework.app.Events.display.name=Demo calendar 
     146org.bedework.app.Events.name=DemoCal 
     147org.bedework.app.Events.run.as.user=public-user 
     148 
     149org.bedework.app.Events.hour24=true 
     150org.bedework.app.Events.minincrement=5 
     151org.bedework.app.Events.skinset.name=demoskins 
     152org.bedework.app.Events.showyeardata=false 
     153org.bedework.app.Events.default.view=week 
     154org.bedework.app.Events.refresh.interval=300 
     155org.bedework.app.Events.refresh.action=setup.do 
     156org.bedework.app.Events.guestmode=true 
     157org.bedework.app.Events.publicadmin=false 
     158org.bedework.app.Events.logprefix=PubEvents 
    143159 
    144160# 
     
    147163# Personal Web Client 
    148164# 
    149 org.bedework.webpersonal.app.version=3.0 
    150 org.bedework.webpersonal.app.default.contenttype=text/xml 
    151 org.bedework.webpersonal.app.web.xml=user/web.xml 
    152 org.bedework.webpersonal.env.prefix=org.bedework.webpersonal. 
    153  
    154 org.bedework.webpersonal.war.name=ucal 
    155 org.bedework.webpersonal.deploy.j2ee=false 
    156 org.bedework.webpersonal.ear.name=ucal 
    157 org.bedework.webpersonal.context.root=ucal 
    158 org.bedework.webpersonal.app.root=/ucalrsrc 
    159 org.bedework.webpersonal.app.resources.dir=/webapps/ROOT/ucalrsrc 
    160 org.bedework.webpersonal.deploy.dir=/webapps 
    161  
    162 org.bedework.webpersonal.app.security.domain=demo 
    163 org.bedework.webpersonal.app.security.prefix=demo 
    164 org.bedework.webpersonal.app.transport.guarantee=NONE 
    165  
    166 org.bedework.webpersonal.app.description=XML/XSLT version of the Bedework calendar client. 
    167 org.bedework.webpersonal.app.display.name=Bedework 
    168 org.bedework.webpersonal.app.name=DemoUserCal 
    169  
    170 org.bedework.webpersonal.app.hour24=true 
    171 org.bedework.webpersonal.app.minincrement=5 
    172 org.bedework.webpersonal.app.skinset.name=demoskins 
    173 org.bedework.webpersonal.app.showyeardata=false 
    174 org.bedework.webpersonal.app.default.view=day 
    175 org.bedework.webpersonal.app.refresh.interval=300 
    176 org.bedework.webpersonal.app.refresh.action=setup.do 
     165org.bedework.app.UserCal.version=3.0 
     166org.bedework.app.UserCal.default.contenttype=text/xml 
     167org.bedework.app.UserCal.web.xml=user/web.xml 
     168 
     169org.bedework.app.UserCal.war.name=ucal 
     170org.bedework.app.UserCal.deploy.j2ee=false 
     171org.bedework.app.UserCal.ear.name=ucal 
     172org.bedework.app.UserCal.context.root=ucal 
     173org.bedework.app.UserCal.root=/ucalrsrc 
     174org.bedework.app.UserCal.resources.dir=/webapps/ROOT/ucalrsrc 
     175org.bedework.app.UserCal.deploy.dir=/webapps 
     176 
     177org.bedework.app.UserCal.security.domain=demo 
     178org.bedework.app.UserCal.security.prefix=demo 
     179org.bedework.app.UserCal.transport.guarantee=NONE 
     180 
     181org.bedework.app.UserCal.description=XML/XSLT version of the Bedework calendar client. 
     182org.bedework.app.UserCal.display.name=Bedework 
     183org.bedework.app.UserCal.name=DemoUserCal 
     184 
     185org.bedework.app.UserCal.hour24=true 
     186org.bedework.app.UserCal.minincrement=5 
     187org.bedework.app.UserCal.skinset.name=demoskins 
     188org.bedework.app.UserCal.showyeardata=false 
     189org.bedework.app.UserCal.default.view=day 
     190org.bedework.app.UserCal.refresh.interval=300 
     191org.bedework.app.UserCal.refresh.action=setup.do 
     192org.bedework.app.UserCal.guestmode=false 
     193org.bedework.app.UserCal.publicadmin=false 
     194org.bedework.app.UserCal.logprefix=PersonalCalendar 
    177195 
    178196# 
     
    181199# Public Caldav Server 
    182200# 
    183 org.bedework.caldav.public.war.name=pubcaldav 
    184 org.bedework.caldav.public.deploy.j2ee=false 
    185 org.bedework.caldav.public.ear.name=pubcaldav 
    186 org.bedework.caldav.public.context.root=pubcaldav 
    187 org.bedework.caldav.public.env.prefix=org.bedework.caldav.public. 
    188  
    189 org.bedework.caldav.public.app.description=Bedework calendar caldav server. 
    190 org.bedework.caldav.public.app.display.name=UW Calendar 
    191 org.bedework.caldav.public.app.name=DemoPubcaldav 
    192 org.bedework.caldav.public.deploy.dir=/webapps 
     201org.bedework.app.Pubcaldav.war.name=pubcaldav 
     202org.bedework.app.Pubcaldav.ear.name=pubcaldav 
     203org.bedework.app.Pubcaldav.context.root=pubcaldav 
     204 
     205org.bedework.app.Pubcaldav.description=Bedework public caldav server. 
     206org.bedework.app.Pubcaldav.display.name=Bedework public caldav 
     207org.bedework.app.Pubcaldav.name=DemoPubcaldav 
     208org.bedework.app.Pubcaldav.deploy.dir=/webapps 
     209org.bedework.app.Pubcaldav.guestmode=true 
     210org.bedework.app.Pubcaldav.publicadmin=false 
     211org.bedework.app.Pubcaldav.run.as.user=public-user 
     212org.bedework.app.Pubcaldav.logprefix=PubCalDav 
    193213 
    194214# 
     
    197217# Personal Caldav Server 
    198218# 
    199 org.bedework.caldav.user.war.name=ucaldav 
    200 org.bedework.caldav.user.deploy.j2ee=false 
    201 org.bedework.caldav.user.ear.name=ucaldav 
    202 org.bedework.caldav.user.context.root=ucaldav 
    203 org.bedework.caldav.user.env.prefix=org.bedework.caldav.user. 
    204  
    205 org.bedework.caldav.user.app.security.domain=null 
    206 org.bedework.caldav.user.app.security.prefix=null 
    207 org.bedework.caldav.user.app.transport.guarantee=NONE 
    208  
    209 org.bedework.caldav.user.app.description=Bedework calendar caldav server. 
    210 org.bedework.caldav.user.app.display.name=UW Calendar 
    211 org.bedework.caldav.user.app.name=DemoUsrcaldav 
    212 org.bedework.caldav.user.deploy.dir=/webapps 
     219org.bedework.app.Usercaldav.war.name=ucaldav 
     220org.bedework.app.Usercaldav.ear.name=ucaldav 
     221org.bedework.app.Usercaldav.context.root=ucaldav 
     222 
     223org.bedework.app.Usercaldav.security.domain=null 
     224org.bedework.app.Usercaldav.security.prefix=null 
     225org.bedework.app.Usercaldav.transport.guarantee=NONE 
     226 
     227org.bedework.app.Usercaldav.description=Bedework user caldav server. 
     228org.bedework.app.Usercaldav.display.name=Bedework usercaldav 
     229org.bedework.app.Usercaldav.name=DemoUsrcaldav 
     230org.bedework.app.Usercaldav.deploy.dir=/webapps 
     231org.bedework.app.Usercaldav.guestmode=false 
     232org.bedework.app.Usercaldav.publicadmin=false 
     233org.bedework.app.Usercaldav.logprefix=UserCalDav 
    213234 
    214235# 
     
    218239# 
    219240 
    220 org.bedework.dumprestore.zip.name=bwdumpres 
    221 org.bedework.dumprestore.description=Bedework dump/restore utility 
    222 org.bedework.dumprestore.version=3.0 
    223 org.bedework.dumprestore.jdbcdriver.jar=${appserver.jdbcdriver.jar} 
     241org.bedework.app.dumprestore.zip.name=bwdumpres 
     242org.bedework.app.dumprestore.description=Bedework dump/restore utility 
     243org.bedework.app.dumprestore.version=3.0 
     244org.bedework.app.dumprestore.jdbcdriver.jar=${appserver.jdbcdriver.jar} 
    224245 
    225246# -------------- dump parameters ------------------ 
  • trunk/calendar3/config/src/org/bedework/webconfig/AbstractAction.java

    r24 r293  
    152152    } else { 
    153153      CalEnv env = getEnv(form); 
    154       String appName = env.getAppProperty("app.name"); 
    155       String appRoot = env.getAppProperty("app.root"); 
     154      String appName = env.getAppProperty("name"); 
     155      String appRoot = env.getAppProperty("root"); 
    156156 
    157157      s = new BwSessionImpl(form.getCurrentUser(), appRoot, appName, 
  • trunk/calendar3/config/war/WEB-INF/web.xml

    r2 r293  
    1111    <param-name>rpiappname</param-name> 
    1212    <param-value>@APP-NAME@</param-value> 
     13  </context-param> 
     14 
     15  <context-param> 
     16    <param-name>bwappname</param-name> 
     17    <param-value>@BW-APP-NAME@</param-value> 
    1318  </context-param> 
    1419 
  • trunk/calendar3/deployment/build.xml

    r269 r293  
    8282  </target> 
    8383 
    84   <target name="build.configured" depends="build" > 
     84  <target name="deftasks" > 
     85    <path id="app.xml.cp"> 
     86      <pathelement location="${org.bedework.deployment.jar}"/> 
     87    </path> 
     88 
     89    <taskdef name="forEachApp" 
     90             classname="org.bedework.deployment.ForEachAppTask"> 
     91      <classpath refid="app.xml.cp"/> 
     92    </taskdef> 
     93  </target> 
     94 
     95  <target name="build.configured" depends="build,deftasks" > 
    8596    <!-- Clean up before we start --> 
    8697    <delete dir="${org.bedework.temp.wars.home}" /> 
     
    123134       ================================================================= --> 
    124135 
    125   <target name="deploy" depends="build" > 
     136  <target name="deploy" depends="build,deftasks" > 
    126137    <!-- Clean up before we start --> 
    127138    <delete dir="${org.bedework.temp.wars.home}" /> 
     
    149160 
    150161  <target name="deploy.standalone.apps" if="org.bedework.global.build.standalone.app" > 
    151     <!-- ======================= webconfig - only standalone ================= --> 
    152     <ant antfile="${org.bedework.deployment.base}/webconfig/webapp/build.xml" 
    153          inheritrefs="true" target="deploy" /> 
    154  
    155     <deploy.apps kind="webapp" /> 
     162    <property name="org.bedework.deploy.kind" value="webapp" /> 
     163    <antcall target="deploy.apps.target" inheritrefs="true" /> 
    156164  </target> 
    157165 
     
    217225  </macrodef> 
    218226 
     227  <target name="deploy.apps.target"> 
     228    <forEachApp names="${org.bedework.install.app.names}" 
     229                types="${org.bedework.install.app.types}" 
     230                prefix="org.bedework.deploy"> 
     231      <sequential> 
     232        <propertyset id="app-properties"> 
     233          <propertyref prefix="org.bedework.app.${org.bedework.deploy.name}"/> 
     234          <globmapper from="org.bedework.app.${org.bedework.deploy.name}.*" to="propval.app.*"/> 
     235        </propertyset> 
     236 
     237        <ant antfile="${org.bedework.deployment.base}/${org.bedework.deploy.type}/${org.bedework.deploy.kind}/build.xml" 
     238             inheritrefs="true" target="deploy" > 
     239          <propertyset refid="app-properties" /> 
     240        </ant> 
     241      </sequential> 
     242    </forEachApp> 
     243  </target> 
     244 
    219245  <macrodef name="deploy.apps"> 
    220246      <attribute name="kind" /> 
    221247    <sequential> 
     248      <forEachApp names="${org.bedework.install.app.names}" 
     249                  types="${org.bedework.install.app.types}" 
     250                  prefix="org.bedework.deploy"> 
     251        <sequential> 
     252          <property name="prefix" value="org.bedework.${org.bedework.deploy.type}" /> 
     253          <propertyset id="app-properties"> 
     254            <propertyref prefix="${prefix}"/> 
     255            <globmapper from="${prefix}*" to="propval*"/> 
     256          </propertyset> 
     257        </sequential> 
     258      </forEachApp> 
     259 
    222260      <!-- ======================= webadmin ================= --> 
    223261      <ant antfile="${org.bedework.deployment.base}/webadmin/@{kind}/build.xml" 
  • trunk/calendar3/deployment/dumprestore/shellscr/build.xml

    r2 r293  
    66 
    77<project name="bwdumpres.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <dirname property="this.dir" file="${ant.file}"/> 
    1210 
  • trunk/calendar3/deployment/publiccaldav/jboss/build.xml

    r268 r293  
    66 
    77<project name="app.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <dirname property="this.dir" file="${ant.file}"/> 
    1210 
     
    2624  <target name="deploy" depends="init,build.configured" > 
    2725    <echo message="***************************************************************" /> 
    28     <echo message="Readying app ${propval.war.name}.war for jboss deployment" /> 
     26    <echo message="Readying app ${propval.app.war.name}.war for jboss deployment" /> 
    2927    <echo message="***************************************************************" /> 
    3028  </target> 
  • trunk/calendar3/deployment/publiccaldav/webapp/build.xml

    r2 r293  
    66 
    77<project name="bwpubcaldav.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <!-- and define some properties based on those --> 
    1210    <property name="app.war.file" 
    13               location="${dist.home}/${propval.war.name}.war" /> 
     11              location="${dist.home}/${propval.app.war.name}.war" /> 
    1412 
    1513    <dirname property="this.dir" file="${ant.file}"/> 
  • trunk/calendar3/deployment/termination/jboss/build.xml

    r269 r293  
    66 
    77<project name="app.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init"> 
    119    <dirname property="this.dir" file="${ant.file}"/> 
    1210 
    1311    <property name="app.ear.file" 
    14               location="${dist.home}/${propval.ear.name}.ear" /> 
     12              location="${dist.home}/${propval.app.ear.name}.ear" /> 
    1513    <property name="app.resources.dir" 
    1614              location="${this.dir}/../webapp/resources" /> 
  • trunk/calendar3/deployment/termination/webapp/build.xml

    r268 r293  
    66 
    77<project name="bwpubcaldav.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init"> 
    119  </target> 
    1210 
  • trunk/calendar3/deployment/usercaldav/jboss/build.xml

    r268 r293  
    66 
    77<project name="app.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <dirname property="this.dir" file="${ant.file}"/> 
    1210 
     
    2624  <target name="deploy" depends="init,build.configured" > 
    2725    <echo message="***************************************************************" /> 
    28     <echo message="Readying app ${propval.war.name}.war for jboss deployment" /> 
     26    <echo message="Readying app ${propval.app.war.name}.war for jboss deployment" /> 
    2927    <echo message="***************************************************************" /> 
    3028  </target> 
  • trunk/calendar3/deployment/usercaldav/webapp/build.xml

    r2 r293  
    66 
    77<project name="bwusercaldav.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <!-- and define some properties based on those --> 
    1210    <property name="app.war.file" 
    13               location="${dist.home}/${propval.war.name}.war" /> 
     11              location="${dist.home}/${propval.app.war.name}.war" /> 
    1412 
    1513    <dirname property="this.dir" file="${ant.file}"/> 
  • trunk/calendar3/deployment/webadmin/jboss/build.xml

    r269 r293  
    66 
    77<project name="app.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <dirname property="this.dir" file="${ant.file}"/> 
    1210 
     
    2624  <target name="deploy" depends="init,build.configured" > 
    2725    <echo message="***************************************************************" /> 
    28     <echo message="Readying app ${propval.war.name}.war for jboss deployment" /> 
     26    <echo message="Readying app ${propval.app.war.name}.war for jboss deployment" /> 
    2927    <echo message="***************************************************************" /> 
    3028  </target> 
  • trunk/calendar3/deployment/webadmin/webapp/build.xml

    r2 r293  
    66 
    77<project name="bwadmin.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init"> 
    119    <!-- and define some properties based on those --> 
    1210    <property name="app.war.file" 
    13               location="${dist.home}/${propval.war.name}.war" /> 
     11              location="${dist.home}/${propval.app.war.name}.war" /> 
    1412 
    1513    <dirname property="this.dir" file="${ant.file}"/> 
  • trunk/calendar3/deployment/webconfig/webapp/build.xml

    r2 r293  
    66 
    77<project name="bwconfig.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <!-- and define some properties based on those --> 
    1210    <property name="app.war.file" 
    13               location="${dist.home}/${propval.war.name}.war" /> 
     11              location="${dist.home}/${propval.app.war.name}.war" /> 
    1412 
    1513    <dirname property="this.dir" file="${ant.file}"/> 
  • trunk/calendar3/deployment/webpublic/jboss/build.xml

    r269 r293  
    66 
    77<project name="app.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <dirname property="this.dir" file="${ant.file}"/> 
    1210 
     
    2624  <target name="deploy" depends="init,build.configured" > 
    2725    <echo message="***************************************************************" /> 
    28     <echo message="Readying app ${propval.war.name}.war for jboss deployment" /> 
     26    <echo message="Readying app ${propval.app.war.name}.war for jboss deployment" /> 
    2927    <echo message="***************************************************************" /> 
    3028  </target> 
  • trunk/calendar3/deployment/webpublic/webapp/build.xml

    r2 r293  
    66 
    77<project name="bwpublic.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init"> 
    119    <!-- and define some properties based on those --> 
    1210    <property name="app.war.file" 
    13               location="${dist.home}/${propval.war.name}.war" /> 
     11              location="${dist.home}/${propval.app.war.name}.war" /> 
    1412 
    1513    <dirname property="this.dir" file="${ant.file}"/> 
  • trunk/calendar3/deployment/webuser/jboss/build.xml

    r269 r293  
    66 
    77<project name="app.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <dirname property="this.dir" file="${ant.file}"/> 
    1210 
     
    2624  <target name="deploy" depends="init,build.configured" > 
    2725    <echo message="***************************************************************" /> 
    28     <echo message="Readying app ${propval.war.name}.war for jboss deployment" /> 
     26    <echo message="Readying app ${propval.app.war.name}.war for jboss deployment" /> 
    2927    <echo message="***************************************************************" /> 
    3028  </target> 
  • trunk/calendar3/deployment/webuser/webapp/build.xml

    r2 r293  
    66 
    77<project name="bwpersonal.deploy" default="deploy" > 
    8   <import file="../copyprops.xml" /> 
    9  
    10   <target name="init" depends="copyprops"> 
     8  <target name="init" > 
    119    <!-- and define some properties based on those --> 
    1210    <property name="app.war.file" 
    13               location="${dist.home}/${propval.war.name}.war" /> 
     11              location="${dist.home}/${propval.app.war.name}.war" /> 
    1412 
    1513    <dirname property="this.dir" file="${ant.file}"/> 
  • trunk/calendar3/synchml/src/edu/rpi/cct/uwcal/synchml/common/Synchml.java

    r207 r293  
    125125    CalSvcIPars pars = new CalSvcIPars(account, UserAuth.noPrivileges, 
    126126                                       account, 
     127                                       null,     // XXX Requires an env prefix 
    127128                                       false,    // public 
    128129                                       false,    // caldav 
  • trunk/calendar3/test/src/org/bedework/tests/calsvc/CalSvcTestWrapper.java

    r212 r293  
    8484  BwCalendar publicCal; 
    8585 
     86  /* Get an object with one of these as a parameter to use the getApp 
     87     methods. 
     88   */ 
     89 
     90  /** property prefix for web admin client */ 
     91  public static final String webAdminAppPrefix = "org.bedework.webadmin."; 
     92 
     93  /** property prefix for web public client */ 
     94  public static final String webPublicAppPrefix = "org.bedework.webpubevents."; 
     95 
     96  /** property prefix for web personal client */ 
     97  public static final String webPersonalAppPrefix = "org.bedework.webpersonal."; 
     98 
     99  /** property prefix for public caldav client */ 
     100  public static final String caldavPublicAppPrefix = "org.bedework.caldav.public."; 
     101 
     102  /** property prefix for personal caldav client */ 
     103  public static final String caldavPersonalAppPrefix = "org.bedework.caldav.user."; 
     104 
    86105  //private boolean debug = true; 
    87106 
     
    101120    isPublic = publicEvents; 
    102121    this.user = user; 
    103  
    104     CalSvcIPars pars = new CalSvcIPars(user, access, user, publicEvents, 
     122    String envPrefix; 
     123     
     124    if (publicEvents) { 
     125      envPrefix = webAdminAppPrefix; 
     126    } else if (user == null) { 
     127      envPrefix = webPublicAppPrefix; 
     128    } else { 
     129      envPrefix = webPersonalAppPrefix; 
     130    } 
     131 
     132    CalSvcIPars pars = new CalSvcIPars(user, access, user,  
     133                                       envPrefix, 
     134                                       publicEvents, 
    105135                                       false,    // caldav 
    106136                                       null, // synch 
  • trunk/calendar3/timers/src/org/bedework/timers/service/DbPollerTimerService.java

    r2 r293  
    142142    CalSvcIPars pars = new CalSvcIPars(account, UserAuth.superUser, 
    143143                                       account, 
     144                                       null,   // XXX needs envPrefix 
    144145                                       true,    // public 
    145146                                       false,    // caldav 
  • trunk/calendar3/webadmin/src/org/bedework/webadmin/admingroup/PEUpdateAGAction.java

    r280 r293  
    290290      ok = false; 
    291291    } else { 
    292       String prefix = getEnv(form).getAppProperty("app.admingroupsidprefix"); 
     292      String prefix = form.getEnv().getAppProperty("admingroupsidprefix"); 
    293293 
    294294      if (!adminGroupEventOwner.startsWith(prefix)) { 
     
    348348    } 
    349349 
    350     String prefix = getEnv(form).getAppProperty("app.admingroupsidprefix"); 
     350    String prefix = form.getEnv().getAppProperty("admingroupsidprefix"); 
    351351 
    352352    if (!adminGroupEventOwner.startsWith(prefix)) { 
  • trunk/calendar3/webadmin/src/org/bedework/webadmin/event/PEUpdateEventAction.java

    r241 r293  
    267267 
    268268    if (id <= 0) { 
    269       if (form.getEnv().getAppBoolProperty("app.categoryOptional")) { 
     269      if (form.getEnv().getAppBoolProperty("categoryOptional")) { 
    270270        return true; 
    271271      } 
  • trunk/calendar3/webadmin/war/WEB-INF/classes/servlet.properties

    r65 r293  
    2121 
    2222edu.rpi.sss.util.error.exc=<li>Exception: {0}</li> 
    23  
    24 # true if this application is the public admin client 
    25 org.bedework.publicadmin=true 
    26  
    27 # true if this application should run in guest mode only 
    28 org.bedework.guestmode=false 
    29  
    30 # The user this application will run as. 
    31 org.bedework.run.as=@RUN-AS-USER@ 
    3223 
    3324# This provides a reference to the public events calendar as a convenience 
     
    5445org.bedework.security.prefix=@SECURITY-PREFIX@ 
    5546 
    56 # This value is defined in CalEnv - don't lose the '.' on the end 
    57 org.bedework.envprefix=@ENV-PREFIX@ 
    58  
    59 # Error messages 
    60 org.bedework.pubevents.error.badcatclass=Cannot use this category for this type of event 
    61 org.bedework.pubevents.error.badfield=Incorrect field contents for {0} 
    62 org.bedework.pubevents.error.choosegroupsuppressed=Choose group suppressed 
    63 org.bedework.pubevents.error.dberror=Database access error: {0} 
    64 org.bedework.pubevents.error.missingfield=Missing required {0} 
    65 org.bedework.pubevents.error.missingcategory=Missing category with id {0} 
    66 org.bedework.pubevents.error.nosuchevent=Event {0} does not exist 
    67 org.bedework.pubevents.error.nosuchcategory=Category {0} does not exist 
    68 org.bedework.pubevents.error.nosuchlocation=Location {0} does not exist 
    69 org.bedework.pubevents.error.nosuchsponsor=Contact {0} does not exist 
    70 org.bedework.pubevents.error.nosuchcalendar=Calendar {0} does not exist 
    71 org.bedework.pubevents.error.toolongfield=Field {0} is too long. Maximum length is {1} 
    72 org.bedework.pubevents.error.unknownaction=Unknown action 
    73 org.bedework.error.noaccess=You have insufficient access {0} 
    74 org.bedework.error.baddates=Invalid dates and/or times: {0} 
    75 org.bedework.error.timezones.parseerror=Error parsing timezones: {0} 
    76 org.bedework.error.event.startafterend=Start of event is after end of event 
    77 org.bedework.error.invalid.endtype=(Probablesystem error)Invalid end type 
    78  
    79 # Page titles 
    80  
    81 org.bedework.title.undefined=Undefined page title key was set 
    82  
    83 org.bedework.title.add.admingroup=Create Administrative Group 
    84 org.bedework.title.add.alert=Add an alert 
    85 org.bedework.title.add.category=Add a Category 
    86 org.bedework.title.add.location=Add a Location 
    87 org.bedework.title.add.publicevent=Add a Public Event 
    88 org.bedework.title.add.sponsor=Add a Contact 
    89 org.bedework.title.add.calendar=Add a calendar 
    90  
    91 org.bedework.title.calendar.inuse=calendar is referenced by events or calendars 
    92 org.bedework.title.categories=Category Descriptions 
    93  
    94 org.bedework.title.choose.admingroup=Events Calendar Administration 
    95  
    96 org.bedework.title.delete.admingroupconfirm=Confirm deletion of Admin group 
    97 org.bedework.title.delete.event.confirm=Confirm deletion of event 
    98 org.bedework.title.delete.category.confirm=Confirm deletion of category 
    99 org.bedework.title.delete.location.confirm=Confirm deletion of location 
    100 org.bedework.title.delete.sponsor.confirm=Confirm deletion of contact 
    101 org.bedework.title.delete.calendar.confirm=Confirm deletion of calendar 
    102 org.bedework.title.deleventlist=Delete Public Events 
    103  
    104 org.bedework.title.display.alert=Alert 
    105 org.bedework.title.display.alertlist=Display an alert 
    106 org.bedework.title.display.event=Public Event 
    107 org.bedework.title.display.eventlist=Display a Public Event 
    108  
    109 org.bedework.title.category.inuse=Category is referenced by events or calendars 
    110 org.bedework.title.location.inuse=Location is referenced by events or calendars 
    111  
    112 org.bedework.title.main.admin=Events Calendar Administration 
    113 org.bedework.title.main.manage=Events Calendar Management 
    114  
    115 org.bedework.title.mod.admingroup=Update Administrative Group Information 
    116 org.bedework.title.mod.admingroup.members=Update Administrative Group Members 
    117 org.bedework.title.mod.aglist=Update administrative groups 
    118 org.bedework.title.mod.alert=Update an alert 
    119 org.bedework.title.mod.alertlist=Update an alert 
    120 org.bedework.title.mod.auth=Authorise a user 
    121 org.bedework.title.mod.authlist=Update an authorised user 
    122 org.bedework.title.mod.eventlist=Update a Public Event 
    123 org.bedework.title.mod.category=Update a Category 
    124 org.bedework.title.mod.categorylist=Update a Category 
    125 org.bedework.title.mod.location=Update a Location 
    126 org.bedework.title.mod.locationlist=Update a Location 
    127 org.bedework.title.mod.publicevent=Update a Public Event 
    128 org.bedework.title.mod.sponsor=Update a Contact 
    129 org.bedework.title.mod.sponsorlist=Update a Contact 
    130 org.bedework.title.mod.calendar=Update a calendar 
    131 org.bedework.title.mod.calendarlist=Update a calendar 
    132  
    133 org.bedework.title.noaccess=No access 
    134 org.bedework.title.nogroup=No administrative group 
    135 org.bedework.title.sponsor.inuse=Contact is referenced by events or calendars 
    136 org.bedework.title.uploadsystimezones=Upload system timezones 
    137  
    138 # Headers 
    139  
    140 org.bedework.header.admingroup.create=Create Administrative Group 
    141 org.bedework.header.admingroup.update=Update Administrative Group Information 
    142 org.bedework.header.admingroup.update.members=Update Administrative Group Members 
    143 org.bedework.header.alert.display=Alert Information 
    144 org.bedework.header.delete.events=Delete Public Events 
    145 org.bedework.header.event.display=Event Information 
    146 org.bedework.header.upload.systimezones=Upload System Timezones 
    147  
    148 # Text in pages 
    149  
    150 org.bedework.text.adminGroup.update.members=Add/Remove members 
    151 org.bedework.text.delete.event.ok=Ok to delete this event? 
    152 org.bedework.text.delete.category.ok=Ok to delete this category? 
    153 org.bedework.text.delete.location.ok=Ok to delete this location? 
    154 org.bedework.text.delete.sponsor.ok=Ok to delete this contact? 
    155 org.bedework.text.delete.calendar.ok=Ok to delete this calendar? 
    156 org.bedework.text.category.referenced=Category is referenced by events or calendars 
    157 org.bedework.text.location.referenced=Location is referenced by events or calendars 
    158 org.bedework.text.select.event=Select the event that you would like to update: 
    159 org.bedework.text.select.events=Mark the event(s) that you would like to delete then click "Delete" 
    160 org.bedework.text.sponsor.referenced=Contact is referenced by events or calendars 
    161 org.bedework.text.calendar.referenced=Calendar is referenced by events or calendars 
    162  
    163 # Informational messages 
    164  
    165 org.bedework.message.cancelled=Cancelled 
    166 org.bedework.pubevents.message.event.added=Event added 
    167 org.bedework.pubevents.message.event.updated=Event updated 
    168 org.bedework.pubevents.message.event.deleted=Event deleted 
    169  
    170 org.bedework.pubevents.message.category.deleted=Category entry deleted 
    171 org.bedework.pubevents.message.category.added=Category added 
    172 org.bedework.pubevents.message.category.updated=Category updated 
    173 org.bedework.pubevents.message.category.referenced=This category is referenced by events or calendars 
    174  
    175 org.bedework.pubevents.message.location.deleted=Location entry deleted 
    176 org.bedework.pubevents.message.location.added=Location added 
    177 org.bedework.pubevents.message.location.updated=Location updated 
    178 org.bedework.pubevents.message.location.referenced=This location is referenced by events or calendars 
    179  
    180 org.bedework.pubevents.message.sponsor.deleted=Contact entry deleted 
    181 org.bedework.pubevents.message.sponsor.added=Contact added 
    182 org.bedework.pubevents.message.sponsor.updated=Contact updated 
    183 org.bedework.pubevents.message.sponsor.referenced=This contact is referenced by events or calendars 
    184  
    185 org.bedework.pubevents.message.timezones.imported=System timezones imported and replaced 
    186  
    187 org.bedework.pubevents.message.calendar.deleted=Calendar entry deleted 
    188 org.bedework.pubevents.message.calendar.added=Calendar added 
    189 org.bedework.pubevents.message.calendar.updated=Calendar updated 
    190 org.bedework.pubevents.message.calendar.referenced=This calendar is referenced by events or calendars 
    191  
    192 org.bedework.pubevents.message.authuser.removed=Authorisation removed 
    193 org.bedework.pubevents.message.authuser.updated=Authorisation updated 
    194  
  • trunk/calendar3/webadmin/war/WEB-INF/web.xml

    r2 r293  
    1111    <param-name>rpiappname</param-name> 
    1212    <param-value>@APP-NAME@</param-value> 
     13  </context-param> 
     14 
     15  <context-param> 
     16    <param-name>bwappname</param-name> 
     17    <param-value>@BW-APP-NAME@</param-value> 
    1318  </context-param> 
    1419 
     
    181186  </resource-ref> 
    182187 
     188  <!-- Don't use roles - any authenticated user 
    183189  <security-constraint> 
    184190    <web-resource-collection> 
     
    198204    </user-data-constraint> 
    199205  </security-constraint> 
     206  --> 
     207  <security-constraint> 
     208    <web-resource-collection> 
     209      <web-resource-name>CalendarAdmin</web-resource-name> 
     210      <description>Public events Administration</description> 
     211      <url-pattern>/*</url-pattern> 
     212    </web-resource-collection> 
     213    <auth-constraint> 
     214      <role-name>*</role-name> 
     215    </auth-constraint> 
     216    <user-data-constraint> 
     217      <description>no description</description> 
     218      <transport-guarantee>@TRANSPORT-GUARANTEE@</transport-guarantee> 
     219    </user-data-constraint> 
     220  </security-constraint> 
    200221 
    201222  <login-config> 
  • trunk/calendar3/webclient/war/WEB-INF/classes/servlet.properties

    r65 r293  
    2626edu.rpi.sss.util.action.nocache=yes 
    2727 
    28 # true if this application should run in guest mode only 
    29 org.bedework.guestmode=@APP-GUESTMODE@ 
    30  
    31 # The user this application will run as. 
    32 org.bedework.run.as=@RUN-AS-USER@ 
    33  
    34 # true if this application is the public admin client 
    35 org.bedework.publicadmin=false 
    36  
    37 # application name 
    38 edu.rpi.sss.util.action.logprefix=@APP-NAME@ 
    39  
    4028org.bedework.security.prefix=@SECURITY-PREFIX@ 
    41  
    42 # This value is defined in CalEnv - don't lose the '.' on the end 
    43 org.bedework.envprefix=@ENV-PREFIX@ 
    4429 
    4530# Define the names and hosts for the user and public events clients. 
     
    6449org.bedework.personal.calendar.uri=@PERSONAL-URI@ 
    6550 
    66 # Error messages 
    67  
    68 org.bedework.error.exception=<li>Calendar application exception: {0}</li> 
    69 org.bedework.error.notpersonal=<li>This is not a personal calendar.</li> 
    70 org.bedework.error.badeventid=<li>Invalid event id</li> 
    71  
  • trunk/calendar3/webclient/war/WEB-INF/publicweb.xml

    r2 r293  
    1515    <param-name>rpiappname</param-name> 
    1616    <param-value>@APP-NAME@</param-value> 
     17  </context-param> 
     18 
     19  <context-param> 
     20    <param-name>bwappname</param-name> 
     21    <param-value>@BW-APP-NAME@</param-value> 
    1722  </context-param> 
    1823 
  • trunk/calendar3/webclient/war/WEB-INF/userweb.xml

    r2 r293  
    1515    <param-name>rpiappname</param-name> 
    1616    <param-value>@APP-NAME@</param-value> 
     17  </context-param> 
     18 
     19  <context-param> 
     20    <param-name>bwappname</param-name> 
     21    <param-value>@BW-APP-NAME@</param-value> 
    1722  </context-param> 
    1823 
  • trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java

    r280 r293  
    7979import org.bedework.calsvci.CalSvcIPars; 
    8080 
    81 import edu.rpi.sss.util.jsp.JspUtil; 
     81//import edu.rpi.sss.util.jsp.JspUtil; 
    8282import edu.rpi.sss.util.jsp.SessionListener; 
    8383import edu.rpi.sss.util.jsp.UtilAbstractAction; 
     
    8787import java.util.Iterator; 
    8888 
     89import javax.servlet.ServletContext; 
    8990import javax.servlet.http.HttpServletRequest; 
    9091import javax.servlet.http.HttpServletResponse; 
     
    115116    String adminUserId = null; 
    116117 
    117     boolean guestMode = getGuestMode(frm); 
     118    CalEnv env = getEnv(request, form); 
     119    setSessionAttr(request, "org.bedework.logprefix", 
     120                   env.getAppProperty("logprefix")); 
     121 
     122    boolean guestMode = env.getAppBoolProperty("guestmode"); 
    118123 
    119124    if (guestMode) { 
     
    125130      } 
    126131    } 
    127  
     132     
    128133    if (getPublicAdmin(form)) { 
    129134      /** We may want to masquerade as a different user 
    130135       */ 
    131136 
    132       String temp = request.getParameter("adminUserId"); 
     137      String temp = getReqPar(request, "adminUserId"); 
    133138 
    134139      if (temp != null) { 
     
    143148    */ 
    144149 
    145     BwSession s = getState(request, 
    146                               form, 
    147                               messages, 
    148                               adminUserId, 
    149                               getPublicAdmin(form)); 
     150    BwSession s = getState(request, form, messages, adminUserId, 
     151                           getPublicAdmin(form)); 
    150152 
    151153    if (s == null) { 
     
    174176    if (getPublicAdmin(form)) { 
    175177      /* Set some options from the environment */ 
    176       CalEnv env = getEnv(form); 
    177  
    178       form.setAutoCreateSponsors(env.getAppBoolProperty("app.autocreatesponsors")); 
    179       form.setAutoCreateLocations(env.getAppBoolProperty("app.autocreatelocations")); 
    180       form.setAutoDeleteSponsors(env.getAppBoolProperty("app.autodeletesponsors")); 
    181       form.setAutoDeleteLocations(env.getAppBoolProperty("app.autodeletelocations")); 
     178 
     179      form.setAutoCreateSponsors(env.getAppBoolProperty("autocreatesponsors")); 
     180      form.setAutoCreateLocations(env.getAppBoolProperty("autocreatelocations")); 
     181      form.setAutoDeleteSponsors(env.getAppBoolProperty("autodeletesponsors")); 
     182      form.setAutoDeleteLocations(env.getAppBoolProperty("autodeletelocations")); 
    182183 
    183184      if (debug) { 
     
    213214      form.setAutoDeleteLocations(true); 
    214215 
    215       String refreshAction = form.getEnv().getAppOptProperty("app.refresh.action"); 
     216      String refreshAction = form.getEnv().getAppOptProperty("refresh.action"); 
    216217 
    217218      if (refreshAction == null) { 
     
    221222      if (refreshAction != null) { 
    222223        setRefreshInterval(request, response, 
    223                            form.getEnv().getAppIntProperty("app.refresh.interval"), 
     224                           form.getEnv().getAppIntProperty("refresh.interval"), 
    224225                           refreshAction, form); 
    225226      } 
     
    449450   */ 
    450451  protected String checkGroup(HttpServletRequest request, 
    451                     BwActionFormBase form, 
    452                     boolean initCheck) throws Throwable { 
     452                              BwActionFormBase form, 
     453                              boolean initCheck) throws Throwable { 
    453454    if (form.getGroupSet()) { 
    454455      return null; 
     
    500501 
    501502        boolean noGroupAllowed = 
    502             form.getEnv().getAppBoolProperty("app.nogroupallowed"); 
     503            form.getEnv().getAppBoolProperty("nogroupallowed"); 
    503504        if (form.getUserAuth().isSuperUser() || noGroupAllowed) { 
    504505          form.assignAdminGroup(null); 
     
    613614 
    614615  private boolean isMember(BwAdminGroup ag, 
    615                             BwActionFormBase form) throws Throwable { 
     616                           BwActionFormBase form) throws Throwable { 
    616617    return ag.isMember(String.valueOf(form.getCurrentUser()), false); 
    617618  } 
     
    623624   * @throws Throwable 
    624625   */ 
    625   public boolean getPublicAdmin(UtilActionForm frm) throws Throwable { 
    626     return JspUtil.getBoolProperty(frm.getMres(), 
    627         "org.bedework.publicadmin", 
    628         false); 
    629   } 
    630  
    631   /** Override to return true if this is a client running in guest mode 
    632    * 
    633    * @param frm 
    634    * @return boolean  true for guest mode 
    635    * @throws Throwable 
    636    */ 
    637   public boolean getGuestMode(UtilActionForm frm) throws Throwable { 
    638     return JspUtil.getBoolProperty(frm.getMres(), 
    639                                    "org.bedework.guestmode", 
    640                                    true); 
    641   } 
    642  
    643   /** Return user we run as. 
    644    * 
    645    * @param frm 
    646    * @return String  run-as user name 
    647    * @throws Throwable 
    648    */ 
    649   public String getRunAsUser(UtilActionForm frm) throws Throwable { 
    650     return JspUtil.getReqProperty(frm.getMres(), "org.bedework.run.as"); 
     626  public boolean getPublicAdmin(BwActionFormBase frm) throws Throwable { 
     627    return frm.getEnv().getAppBoolProperty("publicadmin"); 
    651628  } 
    652629 
    653630  /** get an env object initialised appropriately for our usage. 
    654631   * 
     632   * @param request    HttpServletRequest 
    655633   * @param frm 
    656634   * @return CalEnv object - also implanted in form. 
    657635   * @throws Throwable 
    658636   */ 
    659   public CalEnv getEnv(BwActionFormBase frm) throws Throwable { 
     637  private CalEnv getEnv(HttpServletRequest request, 
     638                        BwActionFormBase frm) throws Throwable { 
    660639    CalEnv env = frm.getEnv(); 
    661640    if (env != null) { 
     
    663642    } 
    664643 
    665     String envPrefix = JspUtil.getReqProperty(frm.getMres(), 
    666                                               "org.bedework.envprefix"); 
     644    HttpSession session = request.getSession(); 
     645    ServletContext sc = session.getServletContext(); 
     646     
     647    String appName = sc.getInitParameter("bwappname"); 
     648     
     649    if ((appName == null) || (appName.length() == 0)) { 
     650      appName = "unknown-app-name"; 
     651    } 
     652     
     653    String envPrefix = "org.bedework.app." + appName + "."; 
    667654 
    668655    env = new CalEnv(envPrefix, debug); 
    669656    frm.assignEnv(env); 
     657     
    670658    return env; 
     659  } 
     660 
     661  /** Get a prefix for the loggers. 
     662   * 
     663   * @param request    HttpServletRequest 
     664   * @return  String    log prefix 
     665   */ 
     666  protected String getLogPrefix(HttpServletRequest request) { 
     667    try { 
     668      String pfx = (String)getSessionAttr(request, "org.bedework.logprefix"); 
     669 
     670      if (pfx == null) { 
     671        return "NOT-SET"; 
     672      } 
     673 
     674      return pfx; 
     675    } catch (Throwable t) { 
     676      error(t); 
     677      return "LOG-PREFIX-EXCEPTION"; 
     678    } 
    671679  } 
    672680 
     
    721729      form.assignNewSession(true); 
    722730 
    723       CalEnv env = getEnv(form); 
    724       String appName = env.getAppProperty("app.name"); 
    725       String appRoot = env.getAppProperty("app.root"); 
     731      CalEnv env = getEnv(request, form); 
     732      String appName = env.getAppProperty("name"); 
     733      String appRoot = env.getAppProperty("root"); 
    726734 
    727735      /** The actual session class used is possibly site dependent 
     
    733741      BwWebUtil.setState(request, s); 
    734742 
    735       form.setHour24(env.getAppBoolProperty("app.hour24")); 
    736       form.setMinIncrement(env.getAppIntProperty("app.minincrement")); 
     743      form.setHour24(env.getAppBoolProperty("hour24")); 
     744      form.setMinIncrement(env.getAppIntProperty("minincrement")); 
    737745      if (!admin) { 
    738         form.assignShowYearData(env.getAppBoolProperty("app.showyeardata")); 
     746        form.assignShowYearData(env.getAppBoolProperty("showyeardata")); 
    739747      } 
    740748 
     
    891899        svci = new CalSvc(); 
    892900        if (publicAdmin || (user == null)) { 
    893           runAsUser = getRunAsUser(form); 
     901          runAsUser = form.getEnv().getAppProperty("run.as.user"); 
    894902        } 
    895         CalSvcIPars pars = new CalSvcIPars(user, access, runAsUser, publicAdmin, 
    896             false,    // caldav 
    897             null, // synchId 
    898             debug); 
     903         
     904        CalSvcIPars pars = new CalSvcIPars(user, access, runAsUser,  
     905                                           form.getEnv().getAppPrefix(), 
     906                                           publicAdmin, 
     907                                           false,    // caldav 
     908                                           null, // synchId 
     909                                           debug); 
    899910        svci.init(pars); 
    900911 
  • trunk/calendar3/webcommon/src/org/bedework/webcommon/BwActionFormBase.java

    r269 r293  
    11051105 
    11061106        try { 
    1107           vn = getEnv().getAppOptProperty("app.default.view"); 
     1107          vn = getEnv().getAppOptProperty("default.view"); 
    11081108          if (vn == null) { 
    11091109            vn = "week";