EMMA Coverage Report (generated Sun Sep 18 11:34:27 PHT 2011)
[all classes][org.apache.continuum.web.action.admin]

COVERAGE SUMMARY FOR SOURCE FILE [PurgeConfigurationAction.java]

nameclass, %method, %block, %line, %
PurgeConfigurationAction.java0%   (0/1)0%   (0/53)0%   (0/724)0%   (0/202)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class PurgeConfigurationAction0%   (0/1)0%   (0/53)0%   (0/724)0%   (0/202)
<static initializer> 0%   (0/1)0%   (0/4)0%   (0/1)
PurgeConfigurationAction (): void 0%   (0/1)0%   (0/3)0%   (0/1)
buildDirPurgeConfiguration (): DirectoryPurgeConfiguration 0%   (0/1)0%   (0/76)0%   (0/19)
buildRepoPurgeConfiguration (): RepositoryPurgeConfiguration 0%   (0/1)0%   (0/64)0%   (0/16)
getDaysOlder (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getDescription (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getDirPurgeConfigs (): List 0%   (0/1)0%   (0/3)0%   (0/1)
getDirectoryType (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getDirectoryTypes (): List 0%   (0/1)0%   (0/3)0%   (0/1)
getMessage (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getPurgeConfig (): AbstractPurgeConfiguration 0%   (0/1)0%   (0/3)0%   (0/1)
getPurgeConfigId (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getPurgeType (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getRepoPurgeConfigs (): List 0%   (0/1)0%   (0/3)0%   (0/1)
getRepositories (): Map 0%   (0/1)0%   (0/3)0%   (0/1)
getRepositoryId (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getRetentionCount (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getScheduleId (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getSchedules (): Map 0%   (0/1)0%   (0/3)0%   (0/1)
getSecureActionBundle (): SecureActionBundle 0%   (0/1)0%   (0/13)0%   (0/4)
input (): String 0%   (0/1)0%   (0/122)0%   (0/33)
isConfirmed (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
isDefaultPurgeConfiguration (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
isDeleteAll (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
isDeleteReleasedSnapshots (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
isEnabled (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
list (): String 0%   (0/1)0%   (0/23)0%   (0/6)
prepare (): void 0%   (0/1)0%   (0/82)0%   (0/15)
purge (): String 0%   (0/1)0%   (0/50)0%   (0/14)
remove (): String 0%   (0/1)0%   (0/13)0%   (0/4)
save (): String 0%   (0/1)0%   (0/73)0%   (0/14)
setConfirmed (boolean): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDaysOlder (int): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDefaultPurgeConfiguration (boolean): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDeleteAll (boolean): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDeleteReleasedSnapshots (boolean): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDescription (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDirPurgeConfigs (List): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDirectoryType (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDirectoryTypes (List): void 0%   (0/1)0%   (0/4)0%   (0/2)
setEnabled (boolean): void 0%   (0/1)0%   (0/4)0%   (0/2)
setMessage (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
setPurgeConfig (AbstractPurgeConfiguration): void 0%   (0/1)0%   (0/4)0%   (0/2)
setPurgeConfigId (int): void 0%   (0/1)0%   (0/4)0%   (0/2)
setPurgeType (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
setRepoPurgeConfigs (List): void 0%   (0/1)0%   (0/4)0%   (0/2)
setRepositories (Map): void 0%   (0/1)0%   (0/4)0%   (0/2)
setRepositoryId (int): void 0%   (0/1)0%   (0/4)0%   (0/2)
setRetentionCount (int): void 0%   (0/1)0%   (0/4)0%   (0/2)
setScheduleId (int): void 0%   (0/1)0%   (0/4)0%   (0/2)
setSchedules (Map): void 0%   (0/1)0%   (0/4)0%   (0/2)
setupPurgeConfiguration (AbstractPurgeConfiguration): AbstractPurgeConfiguration 0%   (0/1)0%   (0/9)0%   (0/3)
updateDefaultPurgeConfiguration (): void 0%   (0/1)0%   (0/52)0%   (0/12)

1package org.apache.continuum.web.action.admin;
2 
3/*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements.  See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership.  The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License.  You may obtain a copy of the License at
11 *
12 *   http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied.  See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21 
22import com.opensymphony.xwork2.Preparable;
23 
24import java.util.ArrayList;
25import java.util.Collection;
26import java.util.HashMap;
27import java.util.List;
28import java.util.Map;
29 
30import org.apache.commons.lang.StringEscapeUtils;
31import org.apache.continuum.model.repository.AbstractPurgeConfiguration;
32import org.apache.continuum.model.repository.DirectoryPurgeConfiguration;
33import org.apache.continuum.model.repository.LocalRepository;
34import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
35import org.apache.continuum.purge.ContinuumPurgeManager;
36import org.apache.continuum.purge.PurgeConfigurationService;
37import org.apache.continuum.repository.RepositoryService;
38import org.apache.continuum.taskqueue.manager.TaskQueueManager;
39import org.apache.maven.continuum.configuration.ConfigurationService;
40import org.apache.maven.continuum.model.project.Schedule;
41import org.apache.maven.continuum.security.ContinuumRoleConstants;
42import org.apache.maven.continuum.web.action.ContinuumConfirmAction;
43import org.apache.struts2.ServletActionContext;
44import org.codehaus.plexus.redback.rbac.Resource;
45import org.codehaus.redback.integration.interceptor.SecureAction;
46import org.codehaus.redback.integration.interceptor.SecureActionBundle;
47import org.codehaus.redback.integration.interceptor.SecureActionException;
48import org.slf4j.Logger;
49import org.slf4j.LoggerFactory;
50 
51/**
52 * @author Maria Catherine Tan
53 * @version $Id: PurgeConfigurationAction.java 1101669 2011-05-10 22:46:21Z ctan $
54 * @plexus.component role="com.opensymphony.xwork2.Action" role-hint="purgeConfiguration"
55 * @since 25 jul 07
56 */
57public class PurgeConfigurationAction
58    extends ContinuumConfirmAction
59    implements Preparable, SecureAction
60{
61    private static final Logger logger = LoggerFactory.getLogger( PurgeConfigurationAction.class );
62 
63    private static final String PURGE_TYPE_REPOSITORY = "repository";
64 
65    private static final String PURGE_TYPE_DIRECTORY = "directory";
66 
67    private static final String PURGE_DIRECTORY_RELEASES = "releases";
68 
69    private static final String PURGE_DIRECTORY_BUILDOUTPUT = "buildOutput";
70 
71    private static final int DEFAULT_RETENTION_COUNT = 2;
72 
73    private static final int DEFAULT_DAYS_OLDER = 100;
74 
75    private String purgeType;
76 
77    private String directoryType;
78 
79    private String description;
80 
81    private String message;
82 
83    private boolean deleteAll;
84 
85    private boolean deleteReleasedSnapshots;
86 
87    private boolean enabled;
88 
89    private boolean confirmed;
90 
91    private boolean defaultPurgeConfiguration;
92 
93    private int retentionCount;
94 
95    private int daysOlder;
96 
97    private int repositoryId;
98 
99    private int scheduleId;
100 
101    private int purgeConfigId;
102 
103    private AbstractPurgeConfiguration purgeConfig;
104 
105    private Map<Integer, String> repositories;
106 
107    private Map<Integer, String> schedules;
108 
109    private List<RepositoryPurgeConfiguration> repoPurgeConfigs;
110 
111    private List<DirectoryPurgeConfiguration> dirPurgeConfigs;
112 
113    private List<String> directoryTypes;
114 
115    /**
116     * @plexus.requirement
117     */
118    private PurgeConfigurationService purgeConfigService;
119 
120    /**
121     * @plexus.requirement
122     */
123    private RepositoryService repositoryService;
124 
125    @Override
126    public void prepare()
127        throws Exception
128    {
129        super.prepare();
130 
131        // build schedules
132        if ( schedules == null )
133        {
134            schedules = new HashMap<Integer, String>();
135 
136            Collection<Schedule> allSchedules = getContinuum().getSchedules();
137 
138            for ( Schedule schedule : allSchedules )
139            {
140                schedules.put( schedule.getId(), schedule.getName() );
141            }
142        }
143 
144        // build repositories
145        if ( repositories == null )
146        {
147            repositories = new HashMap<Integer, String>();
148 
149            List<LocalRepository> allRepositories = repositoryService.getAllLocalRepositories();
150 
151            for ( LocalRepository repository : allRepositories )
152            {
153                repositories.put( repository.getId(), repository.getName() );
154            }
155        }
156 
157        directoryTypes = new ArrayList<String>();
158        directoryTypes.add( PURGE_DIRECTORY_RELEASES );
159        directoryTypes.add( PURGE_DIRECTORY_BUILDOUTPUT );
160    }
161 
162    @Override
163    public String input()
164        throws Exception
165    {
166        if ( purgeConfigId != 0 )
167        {
168            purgeConfig = purgeConfigService.getPurgeConfiguration( purgeConfigId );
169 
170            if ( purgeConfig instanceof RepositoryPurgeConfiguration )
171            {
172                RepositoryPurgeConfiguration repoPurge = (RepositoryPurgeConfiguration) purgeConfig;
173 
174                this.purgeType = PURGE_TYPE_REPOSITORY;
175                this.daysOlder = repoPurge.getDaysOlder();
176                this.retentionCount = repoPurge.getRetentionCount();
177                this.deleteAll = repoPurge.isDeleteAll();
178                this.deleteReleasedSnapshots = repoPurge.isDeleteReleasedSnapshots();
179                this.enabled = repoPurge.isEnabled();
180                this.defaultPurgeConfiguration = repoPurge.isDefaultPurge();
181                this.description = repoPurge.getDescription();
182 
183                if ( repoPurge.getRepository() != null )
184                {
185                    this.repositoryId = repoPurge.getRepository().getId();
186                }
187 
188                if ( repoPurge.getSchedule() != null )
189                {
190                    this.scheduleId = repoPurge.getSchedule().getId();
191                }
192            }
193            else if ( purgeConfig instanceof DirectoryPurgeConfiguration )
194            {
195                DirectoryPurgeConfiguration dirPurge = (DirectoryPurgeConfiguration) purgeConfig;
196 
197                this.purgeType = PURGE_TYPE_DIRECTORY;
198                this.daysOlder = dirPurge.getDaysOlder();
199                this.retentionCount = dirPurge.getRetentionCount();
200                this.directoryType = dirPurge.getDirectoryType();
201                this.deleteAll = dirPurge.isDeleteAll();
202                this.enabled = dirPurge.isEnabled();
203                this.defaultPurgeConfiguration = dirPurge.isDefaultPurge();
204                this.description = dirPurge.getDescription();
205 
206                if ( dirPurge.getSchedule() != null )
207                {
208                    this.scheduleId = dirPurge.getSchedule().getId();
209                }
210            }
211        }
212        else
213        {
214            this.retentionCount = DEFAULT_RETENTION_COUNT;
215            this.daysOlder = DEFAULT_DAYS_OLDER;
216        }
217 
218        return INPUT;
219    }
220 
221    public String list()
222        throws Exception
223    {
224        String errorMessage = ServletActionContext.getRequest().getParameter( "errorMessage" );
225 
226        if ( errorMessage != null )
227        {
228            addActionError( getText( errorMessage ) );
229        }
230 
231        repoPurgeConfigs = purgeConfigService.getAllRepositoryPurgeConfigurations();
232        dirPurgeConfigs = purgeConfigService.getAllDirectoryPurgeConfigurations();
233 
234        return SUCCESS;
235    }
236 
237    public String save()
238        throws Exception
239    {
240        if ( purgeConfigId == 0 )
241        {
242            if ( purgeType.equals( PURGE_TYPE_REPOSITORY ) )
243            {
244                purgeConfig = new RepositoryPurgeConfiguration();
245            }
246            else
247            {
248                purgeConfig = new DirectoryPurgeConfiguration();
249            }
250 
251            purgeConfig = setupPurgeConfiguration( purgeConfig );
252 
253            purgeConfig = purgeConfigService.addPurgeConfiguration( purgeConfig );
254        }
255        else
256        {
257            purgeConfig = purgeConfigService.getPurgeConfiguration( purgeConfigId );
258            purgeConfig = setupPurgeConfiguration( purgeConfig );
259 
260            purgeConfigService.updatePurgeConfiguration( purgeConfig );
261        }
262 
263        if ( purgeConfig.isDefaultPurge() )
264        {
265            updateDefaultPurgeConfiguration();
266        }
267 
268        if ( purgeConfig.isEnabled() && purgeConfig.getSchedule() != null )
269        {
270            getContinuum().activePurgeSchedule( purgeConfig.getSchedule() );
271        }
272 
273        return SUCCESS;
274    }
275 
276    public String remove()
277        throws Exception
278    {
279        if ( confirmed )
280        {
281            purgeConfigService.removePurgeConfiguration( purgeConfigId );
282        }
283        else
284        {
285            return CONFIRM;
286        }
287 
288        return SUCCESS;
289    }
290 
291    public String purge()
292        throws Exception
293    {
294        ContinuumPurgeManager purgeManager = getContinuum().getPurgeManager();
295        TaskQueueManager taskQueueManager = getContinuum().getTaskQueueManager();
296 
297        if ( purgeConfigId > 0 )
298        {
299            purgeConfig = purgeConfigService.getPurgeConfiguration( purgeConfigId );
300 
301            if ( purgeConfig instanceof RepositoryPurgeConfiguration )
302            {
303                RepositoryPurgeConfiguration repoPurge = (RepositoryPurgeConfiguration) purgeConfig;
304 
305                // check if repository is in use
306                if ( taskQueueManager.isRepositoryInUse( repoPurge.getRepository().getId() ) )
307                {
308                    message = "repository.error.purge.in.use";
309                    return ERROR;
310                }
311 
312                purgeManager.purgeRepository( repoPurge );
313            }
314            else
315            {
316                DirectoryPurgeConfiguration dirPurge = (DirectoryPurgeConfiguration) purgeConfig;
317                purgeManager.purgeDirectory( dirPurge );
318            }
319        }
320 
321        return SUCCESS;
322    }
323 
324    public String getPurgeType()
325    {
326        return this.purgeType;
327    }
328 
329    public void setPurgeType( String purgeType )
330    {
331        this.purgeType = purgeType;
332    }
333 
334    public String getDirectoryType()
335    {
336        return this.directoryType;
337    }
338 
339    public void setDirectoryType( String directoryType )
340    {
341        this.directoryType = directoryType;
342    }
343 
344    public String getDescription()
345    {
346        return this.description;
347    }
348 
349    public void setDescription( String description )
350    {
351        this.description = description;
352    }
353 
354    public String getMessage()
355    {
356        return this.message;
357    }
358 
359    public void setMessage( String message )
360    {
361        this.message = message;
362    }
363 
364    public boolean isDeleteAll()
365    {
366        return this.deleteAll;
367    }
368 
369    public void setDeleteAll( boolean deleteAll )
370    {
371        this.deleteAll = deleteAll;
372    }
373 
374    public boolean isDeleteReleasedSnapshots()
375    {
376        return this.deleteReleasedSnapshots;
377    }
378 
379    public void setDeleteReleasedSnapshots( boolean deleteReleasedSnapshots )
380    {
381        this.deleteReleasedSnapshots = deleteReleasedSnapshots;
382    }
383 
384    public boolean isEnabled()
385    {
386        return this.enabled;
387    }
388 
389    public void setEnabled( boolean enabled )
390    {
391        this.enabled = enabled;
392    }
393 
394    @Override
395    public boolean isConfirmed()
396    {
397        return this.confirmed;
398    }
399 
400    @Override
401    public void setConfirmed( boolean confirmed )
402    {
403        this.confirmed = confirmed;
404    }
405 
406    public boolean isDefaultPurgeConfiguration()
407    {
408        return this.defaultPurgeConfiguration;
409    }
410 
411    public void setDefaultPurgeConfiguration( boolean defaultPurgeConfiguration )
412    {
413        this.defaultPurgeConfiguration = defaultPurgeConfiguration;
414    }
415 
416    public int getRetentionCount()
417    {
418        return this.retentionCount;
419    }
420 
421    public void setRetentionCount( int retentionCount )
422    {
423        this.retentionCount = retentionCount;
424    }
425 
426    public int getDaysOlder()
427    {
428        return this.daysOlder;
429    }
430 
431    public void setDaysOlder( int daysOlder )
432    {
433        this.daysOlder = daysOlder;
434    }
435 
436    public int getRepositoryId()
437    {
438        return this.repositoryId;
439    }
440 
441    public void setRepositoryId( int repositoryId )
442    {
443        this.repositoryId = repositoryId;
444    }
445 
446    public int getScheduleId()
447    {
448        return this.scheduleId;
449    }
450 
451    public void setScheduleId( int scheduleId )
452    {
453        this.scheduleId = scheduleId;
454    }
455 
456    public int getPurgeConfigId()
457    {
458        return purgeConfigId;
459    }
460 
461    public void setPurgeConfigId( int purgeConfigId )
462    {
463        this.purgeConfigId = purgeConfigId;
464    }
465 
466    public AbstractPurgeConfiguration getPurgeConfig()
467    {
468        return this.purgeConfig;
469    }
470 
471    public void setPurgeConfig( AbstractPurgeConfiguration purgeConfig )
472    {
473        this.purgeConfig = purgeConfig;
474    }
475 
476    public Map<Integer, String> getRepositories()
477    {
478        return this.repositories;
479    }
480 
481    public void setRepositories( Map<Integer, String> repositories )
482    {
483        this.repositories = repositories;
484    }
485 
486    public Map<Integer, String> getSchedules()
487    {
488        return this.schedules;
489    }
490 
491    public void setSchedules( Map<Integer, String> schedules )
492    {
493        this.schedules = schedules;
494    }
495 
496    public List<RepositoryPurgeConfiguration> getRepoPurgeConfigs()
497    {
498        return this.repoPurgeConfigs;
499    }
500 
501    public void setRepoPurgeConfigs( List<RepositoryPurgeConfiguration> repoPurgeConfigs )
502    {
503        this.repoPurgeConfigs = repoPurgeConfigs;
504    }
505 
506    public List<DirectoryPurgeConfiguration> getDirPurgeConfigs()
507    {
508        return this.dirPurgeConfigs;
509    }
510 
511    public void setDirPurgeConfigs( List<DirectoryPurgeConfiguration> dirPurgeConfigs )
512    {
513        this.dirPurgeConfigs = dirPurgeConfigs;
514    }
515 
516    public List<String> getDirectoryTypes()
517    {
518        return this.directoryTypes;
519    }
520 
521    public void setDirectoryTypes( List<String> directoryTypes )
522    {
523        this.directoryTypes = directoryTypes;
524    }
525 
526    private AbstractPurgeConfiguration setupPurgeConfiguration( AbstractPurgeConfiguration purgeConfiguration )
527        throws Exception
528    {
529        if ( purgeConfiguration instanceof RepositoryPurgeConfiguration )
530        {
531            return buildRepoPurgeConfiguration();
532        }
533        else
534        {
535            return buildDirPurgeConfiguration();
536        }
537    }
538 
539    private RepositoryPurgeConfiguration buildRepoPurgeConfiguration()
540        throws Exception
541    {
542        RepositoryPurgeConfiguration repoPurge = (RepositoryPurgeConfiguration) purgeConfig;
543        repoPurge.setDeleteAll( this.deleteAll );
544        repoPurge.setDeleteReleasedSnapshots( this.deleteReleasedSnapshots );
545        repoPurge.setDaysOlder( this.daysOlder );
546        repoPurge.setRetentionCount( this.retentionCount );
547        repoPurge.setEnabled( this.enabled );
548        repoPurge.setDefaultPurge( this.defaultPurgeConfiguration );
549        // escape xml to prevent xss attacks
550        repoPurge.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( this.description ) ) );
551        repoPurge.setDefaultPurge( this.defaultPurgeConfiguration );
552 
553        if ( repositoryId != 0 )
554        {
555            LocalRepository repository = repositoryService.getLocalRepository( repositoryId );
556            repoPurge.setRepository( repository );
557        }
558 
559        if ( scheduleId > 0 )
560        {
561            Schedule schedule = getContinuum().getSchedule( scheduleId );
562            repoPurge.setSchedule( schedule );
563        }
564 
565        return repoPurge;
566    }
567 
568    private DirectoryPurgeConfiguration buildDirPurgeConfiguration()
569        throws Exception
570    {
571        DirectoryPurgeConfiguration dirPurge = (DirectoryPurgeConfiguration) purgeConfig;
572        dirPurge.setDeleteAll( this.deleteAll );
573        dirPurge.setEnabled( this.enabled );
574        dirPurge.setDaysOlder( this.daysOlder );
575        dirPurge.setRetentionCount( this.retentionCount );
576        // escape xml to prevent xss attacks
577        dirPurge.setDescription( StringEscapeUtils.escapeXml( StringEscapeUtils.unescapeXml( this.description ) ) );
578        dirPurge.setDirectoryType( this.directoryType );
579        dirPurge.setDefaultPurge( this.defaultPurgeConfiguration );
580 
581        if ( scheduleId > 0 )
582        {
583            Schedule schedule = getContinuum().getSchedule( scheduleId );
584            dirPurge.setSchedule( schedule );
585        }
586 
587        ConfigurationService configService = getContinuum().getConfiguration();
588        String path = null;
589 
590        if ( this.directoryType.equals( PURGE_DIRECTORY_RELEASES ) )
591        {
592            path = configService.getWorkingDirectory().getAbsolutePath();
593        }
594        else if ( this.directoryType.equals( PURGE_DIRECTORY_BUILDOUTPUT ) )
595        {
596            path = configService.getBuildOutputDirectory().getAbsolutePath();
597        }
598 
599        dirPurge.setLocation( path );
600 
601        return dirPurge;
602    }
603 
604    private void updateDefaultPurgeConfiguration()
605        throws Exception
606    {
607        if ( purgeConfig instanceof RepositoryPurgeConfiguration )
608        {
609            RepositoryPurgeConfiguration repoPurge =
610                purgeConfigService.getDefaultPurgeConfigurationForRepository( repositoryId );
611 
612            if ( repoPurge != null && repoPurge.getId() != purgeConfig.getId() )
613            {
614                repoPurge.setDefaultPurge( false );
615                purgeConfigService.updateRepositoryPurgeConfiguration( repoPurge );
616            }
617        }
618        else if ( purgeConfig instanceof DirectoryPurgeConfiguration )
619        {
620            DirectoryPurgeConfiguration dirPurge =
621                purgeConfigService.getDefaultPurgeConfigurationForDirectoryType( directoryType );
622 
623            if ( dirPurge != null && dirPurge.getId() != purgeConfig.getId() )
624            {
625                dirPurge.setDefaultPurge( false );
626                purgeConfigService.updateDirectoryPurgeConfiguration( dirPurge );
627            }
628        }
629    }
630 
631    public SecureActionBundle getSecureActionBundle()
632        throws SecureActionException
633    {
634        SecureActionBundle bundle = new SecureActionBundle();
635        bundle.setRequiresAuthentication( true );
636        bundle.addRequiredAuthorization( ContinuumRoleConstants.CONTINUUM_MANAGE_PURGING, Resource.GLOBAL );
637 
638        return bundle;
639    }
640}

[all classes][org.apache.continuum.web.action.admin]
EMMA 2.0.5312 (C) Vladimir Roubtsov