001/* 002 * CDDL HEADER START 003 * 004 * The contents of this file are subject to the terms of the 005 * Common Development and Distribution License, Version 1.0 only 006 * (the "License"). You may not use this file except in compliance 007 * with the License. 008 * 009 * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt 010 * or http://forgerock.org/license/CDDLv1.0.html. 011 * See the License for the specific language governing permissions 012 * and limitations under the License. 013 * 014 * When distributing Covered Code, include this CDDL HEADER in each 015 * file and include the License file at legal-notices/CDDLv1_0.txt. 016 * If applicable, add the following below this CDDL HEADER, with the 017 * fields enclosed by brackets "[]" replaced with your own identifying 018 * information: 019 * Portions Copyright [yyyy] [name of copyright owner] 020 * 021 * CDDL HEADER END 022 * 023 * 024 * Copyright 2008 Sun Microsystems, Inc. 025 */ 026package org.opends.server.admin.std.meta; 027 028 029 030import java.util.Collection; 031import java.util.SortedSet; 032import java.util.TreeSet; 033import org.forgerock.opendj.config.server.ConfigException; 034import org.opends.server.admin.AdministratorAction; 035import org.opends.server.admin.AggregationPropertyDefinition; 036import org.opends.server.admin.AliasDefaultBehaviorProvider; 037import org.opends.server.admin.BooleanPropertyDefinition; 038import org.opends.server.admin.ClassPropertyDefinition; 039import org.opends.server.admin.client.AuthorizationException; 040import org.opends.server.admin.client.CommunicationException; 041import org.opends.server.admin.client.ConcurrentModificationException; 042import org.opends.server.admin.client.IllegalManagedObjectNameException; 043import org.opends.server.admin.client.ManagedObject; 044import org.opends.server.admin.client.ManagedObjectDecodingException; 045import org.opends.server.admin.client.MissingMandatoryPropertiesException; 046import org.opends.server.admin.client.OperationRejectedException; 047import org.opends.server.admin.DefaultBehaviorProvider; 048import org.opends.server.admin.DefinedDefaultBehaviorProvider; 049import org.opends.server.admin.DefinitionDecodingException; 050import org.opends.server.admin.DurationPropertyDefinition; 051import org.opends.server.admin.EnumPropertyDefinition; 052import org.opends.server.admin.InstantiableRelationDefinition; 053import org.opends.server.admin.IntegerPropertyDefinition; 054import org.opends.server.admin.ManagedObjectAlreadyExistsException; 055import org.opends.server.admin.ManagedObjectDefinition; 056import org.opends.server.admin.ManagedObjectNotFoundException; 057import org.opends.server.admin.PropertyException; 058import org.opends.server.admin.PropertyOption; 059import org.opends.server.admin.PropertyProvider; 060import org.opends.server.admin.server.ConfigurationAddListener; 061import org.opends.server.admin.server.ConfigurationChangeListener; 062import org.opends.server.admin.server.ConfigurationDeleteListener; 063import org.opends.server.admin.server.ServerManagedObject; 064import org.opends.server.admin.SizePropertyDefinition; 065import org.opends.server.admin.std.client.AccessLogFilteringCriteriaCfgClient; 066import org.opends.server.admin.std.client.FileBasedAccessLogPublisherCfgClient; 067import org.opends.server.admin.std.client.LogRetentionPolicyCfgClient; 068import org.opends.server.admin.std.client.LogRotationPolicyCfgClient; 069import org.opends.server.admin.std.meta.AccessLogPublisherCfgDefn.FilteringPolicy; 070import org.opends.server.admin.std.server.AccessLogFilteringCriteriaCfg; 071import org.opends.server.admin.std.server.AccessLogPublisherCfg; 072import org.opends.server.admin.std.server.FileBasedAccessLogPublisherCfg; 073import org.opends.server.admin.std.server.LogPublisherCfg; 074import org.opends.server.admin.std.server.LogRetentionPolicyCfg; 075import org.opends.server.admin.std.server.LogRotationPolicyCfg; 076import org.opends.server.admin.StringPropertyDefinition; 077import org.opends.server.admin.Tag; 078import org.opends.server.admin.UndefinedDefaultBehaviorProvider; 079import org.opends.server.types.DN; 080 081 082 083/** 084 * An interface for querying the File Based Access Log Publisher 085 * managed object definition meta information. 086 * <p> 087 * File Based Access Log Publishers publish access messages to the 088 * file system. 089 */ 090public final class FileBasedAccessLogPublisherCfgDefn extends ManagedObjectDefinition<FileBasedAccessLogPublisherCfgClient, FileBasedAccessLogPublisherCfg> { 091 092 // The singleton configuration definition instance. 093 private static final FileBasedAccessLogPublisherCfgDefn INSTANCE = new FileBasedAccessLogPublisherCfgDefn(); 094 095 096 097 /** 098 * Defines the set of permissable values for the "log-format" property. 099 * <p> 100 * Specifies how log records should be formatted and written to the 101 * access log. 102 */ 103 public static enum LogFormat { 104 105 /** 106 * Combine log records for operation requests and responses into a 107 * single record. This format should be used when log records are 108 * to be filtered based on response criteria (e.g. result code). 109 */ 110 COMBINED("combined"), 111 112 113 114 /** 115 * Outputs separate log records for operation requests and 116 * responses. 117 */ 118 MULTI_LINE("multi-line"); 119 120 121 122 // String representation of the value. 123 private final String name; 124 125 126 127 // Private constructor. 128 private LogFormat(String name) { this.name = name; } 129 130 131 132 /** 133 * {@inheritDoc} 134 */ 135 public String toString() { return name; } 136 137 } 138 139 140 141 // The "append" property definition. 142 private static final BooleanPropertyDefinition PD_APPEND; 143 144 145 146 // The "asynchronous" property definition. 147 private static final BooleanPropertyDefinition PD_ASYNCHRONOUS; 148 149 150 151 // The "auto-flush" property definition. 152 private static final BooleanPropertyDefinition PD_AUTO_FLUSH; 153 154 155 156 // The "buffer-size" property definition. 157 private static final SizePropertyDefinition PD_BUFFER_SIZE; 158 159 160 161 // The "java-class" property definition. 162 private static final ClassPropertyDefinition PD_JAVA_CLASS; 163 164 165 166 // The "log-control-oids" property definition. 167 private static final BooleanPropertyDefinition PD_LOG_CONTROL_OIDS; 168 169 170 171 // The "log-file" property definition. 172 private static final StringPropertyDefinition PD_LOG_FILE; 173 174 175 176 // The "log-file-permissions" property definition. 177 private static final StringPropertyDefinition PD_LOG_FILE_PERMISSIONS; 178 179 180 181 // The "log-format" property definition. 182 private static final EnumPropertyDefinition<LogFormat> PD_LOG_FORMAT; 183 184 185 186 // The "log-record-time-format" property definition. 187 private static final StringPropertyDefinition PD_LOG_RECORD_TIME_FORMAT; 188 189 190 191 // The "queue-size" property definition. 192 private static final IntegerPropertyDefinition PD_QUEUE_SIZE; 193 194 195 196 // The "retention-policy" property definition. 197 private static final AggregationPropertyDefinition<LogRetentionPolicyCfgClient, LogRetentionPolicyCfg> PD_RETENTION_POLICY; 198 199 200 201 // The "rotation-policy" property definition. 202 private static final AggregationPropertyDefinition<LogRotationPolicyCfgClient, LogRotationPolicyCfg> PD_ROTATION_POLICY; 203 204 205 206 // The "time-interval" property definition. 207 private static final DurationPropertyDefinition PD_TIME_INTERVAL; 208 209 210 211 // Build the "append" property definition. 212 static { 213 BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "append"); 214 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "append")); 215 DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true"); 216 builder.setDefaultBehaviorProvider(provider); 217 PD_APPEND = builder.getInstance(); 218 INSTANCE.registerPropertyDefinition(PD_APPEND); 219 } 220 221 222 223 // Build the "asynchronous" property definition. 224 static { 225 BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "asynchronous"); 226 builder.setOption(PropertyOption.MANDATORY); 227 builder.setOption(PropertyOption.ADVANCED); 228 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "asynchronous")); 229 DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true"); 230 builder.setDefaultBehaviorProvider(provider); 231 PD_ASYNCHRONOUS = builder.getInstance(); 232 INSTANCE.registerPropertyDefinition(PD_ASYNCHRONOUS); 233 } 234 235 236 237 // Build the "auto-flush" property definition. 238 static { 239 BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "auto-flush"); 240 builder.setOption(PropertyOption.ADVANCED); 241 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "auto-flush")); 242 DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true"); 243 builder.setDefaultBehaviorProvider(provider); 244 PD_AUTO_FLUSH = builder.getInstance(); 245 INSTANCE.registerPropertyDefinition(PD_AUTO_FLUSH); 246 } 247 248 249 250 // Build the "buffer-size" property definition. 251 static { 252 SizePropertyDefinition.Builder builder = SizePropertyDefinition.createBuilder(INSTANCE, "buffer-size"); 253 builder.setOption(PropertyOption.ADVANCED); 254 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "buffer-size")); 255 DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("64kb"); 256 builder.setDefaultBehaviorProvider(provider); 257 builder.setLowerLimit("1"); 258 PD_BUFFER_SIZE = builder.getInstance(); 259 INSTANCE.registerPropertyDefinition(PD_BUFFER_SIZE); 260 } 261 262 263 264 // Build the "java-class" property definition. 265 static { 266 ClassPropertyDefinition.Builder builder = ClassPropertyDefinition.createBuilder(INSTANCE, "java-class"); 267 builder.setOption(PropertyOption.MANDATORY); 268 builder.setOption(PropertyOption.ADVANCED); 269 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "java-class")); 270 DefaultBehaviorProvider<String> provider = new DefinedDefaultBehaviorProvider<String>("org.opends.server.loggers.TextAccessLogPublisher"); 271 builder.setDefaultBehaviorProvider(provider); 272 builder.addInstanceOf("org.opends.server.loggers.LogPublisher"); 273 PD_JAVA_CLASS = builder.getInstance(); 274 INSTANCE.registerPropertyDefinition(PD_JAVA_CLASS); 275 } 276 277 278 279 // Build the "log-control-oids" property definition. 280 static { 281 BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "log-control-oids"); 282 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "log-control-oids")); 283 DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false"); 284 builder.setDefaultBehaviorProvider(provider); 285 PD_LOG_CONTROL_OIDS = builder.getInstance(); 286 INSTANCE.registerPropertyDefinition(PD_LOG_CONTROL_OIDS); 287 } 288 289 290 291 // Build the "log-file" property definition. 292 static { 293 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "log-file"); 294 builder.setOption(PropertyOption.MANDATORY); 295 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.COMPONENT_RESTART, INSTANCE, "log-file")); 296 builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>()); 297 builder.setPattern(".*", "FILE"); 298 PD_LOG_FILE = builder.getInstance(); 299 INSTANCE.registerPropertyDefinition(PD_LOG_FILE); 300 } 301 302 303 304 // Build the "log-file-permissions" property definition. 305 static { 306 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "log-file-permissions"); 307 builder.setOption(PropertyOption.MANDATORY); 308 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "log-file-permissions")); 309 DefaultBehaviorProvider<String> provider = new DefinedDefaultBehaviorProvider<String>("640"); 310 builder.setDefaultBehaviorProvider(provider); 311 builder.setPattern("^([0-7][0-7][0-7])$", "MODE"); 312 PD_LOG_FILE_PERMISSIONS = builder.getInstance(); 313 INSTANCE.registerPropertyDefinition(PD_LOG_FILE_PERMISSIONS); 314 } 315 316 317 318 // Build the "log-format" property definition. 319 static { 320 EnumPropertyDefinition.Builder<LogFormat> builder = EnumPropertyDefinition.createBuilder(INSTANCE, "log-format"); 321 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "log-format")); 322 DefaultBehaviorProvider<LogFormat> provider = new DefinedDefaultBehaviorProvider<LogFormat>("multi-line"); 323 builder.setDefaultBehaviorProvider(provider); 324 builder.setEnumClass(LogFormat.class); 325 PD_LOG_FORMAT = builder.getInstance(); 326 INSTANCE.registerPropertyDefinition(PD_LOG_FORMAT); 327 } 328 329 330 331 // Build the "log-record-time-format" property definition. 332 static { 333 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "log-record-time-format"); 334 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "log-record-time-format")); 335 DefaultBehaviorProvider<String> provider = new DefinedDefaultBehaviorProvider<String>("dd/MMM/yyyy:HH:mm:ss Z"); 336 builder.setDefaultBehaviorProvider(provider); 337 builder.setPattern(".*", "STRING"); 338 PD_LOG_RECORD_TIME_FORMAT = builder.getInstance(); 339 INSTANCE.registerPropertyDefinition(PD_LOG_RECORD_TIME_FORMAT); 340 } 341 342 343 344 // Build the "queue-size" property definition. 345 static { 346 IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "queue-size"); 347 builder.setOption(PropertyOption.ADVANCED); 348 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "queue-size")); 349 DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("5000"); 350 builder.setDefaultBehaviorProvider(provider); 351 builder.setLowerLimit(1); 352 PD_QUEUE_SIZE = builder.getInstance(); 353 INSTANCE.registerPropertyDefinition(PD_QUEUE_SIZE); 354 } 355 356 357 358 // Build the "retention-policy" property definition. 359 static { 360 AggregationPropertyDefinition.Builder<LogRetentionPolicyCfgClient, LogRetentionPolicyCfg> builder = AggregationPropertyDefinition.createBuilder(INSTANCE, "retention-policy"); 361 builder.setOption(PropertyOption.MULTI_VALUED); 362 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "retention-policy")); 363 builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "retention-policy")); 364 builder.setParentPath("/"); 365 builder.setRelationDefinition("log-retention-policy"); 366 PD_RETENTION_POLICY = builder.getInstance(); 367 INSTANCE.registerPropertyDefinition(PD_RETENTION_POLICY); 368 INSTANCE.registerConstraint(PD_RETENTION_POLICY.getSourceConstraint()); 369 } 370 371 372 373 // Build the "rotation-policy" property definition. 374 static { 375 AggregationPropertyDefinition.Builder<LogRotationPolicyCfgClient, LogRotationPolicyCfg> builder = AggregationPropertyDefinition.createBuilder(INSTANCE, "rotation-policy"); 376 builder.setOption(PropertyOption.MULTI_VALUED); 377 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "rotation-policy")); 378 builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "rotation-policy")); 379 builder.setParentPath("/"); 380 builder.setRelationDefinition("log-rotation-policy"); 381 PD_ROTATION_POLICY = builder.getInstance(); 382 INSTANCE.registerPropertyDefinition(PD_ROTATION_POLICY); 383 INSTANCE.registerConstraint(PD_ROTATION_POLICY.getSourceConstraint()); 384 } 385 386 387 388 // Build the "time-interval" property definition. 389 static { 390 DurationPropertyDefinition.Builder builder = DurationPropertyDefinition.createBuilder(INSTANCE, "time-interval"); 391 builder.setOption(PropertyOption.ADVANCED); 392 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "time-interval")); 393 DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("5s"); 394 builder.setDefaultBehaviorProvider(provider); 395 builder.setBaseUnit("ms"); 396 builder.setLowerLimit("1"); 397 PD_TIME_INTERVAL = builder.getInstance(); 398 INSTANCE.registerPropertyDefinition(PD_TIME_INTERVAL); 399 } 400 401 402 403 // Register the tags associated with this managed object definition. 404 static { 405 INSTANCE.registerTag(Tag.valueOf("logging")); 406 } 407 408 409 410 /** 411 * Get the File Based Access Log Publisher configuration definition 412 * singleton. 413 * 414 * @return Returns the File Based Access Log Publisher configuration 415 * definition singleton. 416 */ 417 public static FileBasedAccessLogPublisherCfgDefn getInstance() { 418 return INSTANCE; 419 } 420 421 422 423 /** 424 * Private constructor. 425 */ 426 private FileBasedAccessLogPublisherCfgDefn() { 427 super("file-based-access-log-publisher", AccessLogPublisherCfgDefn.getInstance()); 428 } 429 430 431 432 /** 433 * {@inheritDoc} 434 */ 435 public FileBasedAccessLogPublisherCfgClient createClientConfiguration( 436 ManagedObject<? extends FileBasedAccessLogPublisherCfgClient> impl) { 437 return new FileBasedAccessLogPublisherCfgClientImpl(impl); 438 } 439 440 441 442 /** 443 * {@inheritDoc} 444 */ 445 public FileBasedAccessLogPublisherCfg createServerConfiguration( 446 ServerManagedObject<? extends FileBasedAccessLogPublisherCfg> impl) { 447 return new FileBasedAccessLogPublisherCfgServerImpl(impl); 448 } 449 450 451 452 /** 453 * {@inheritDoc} 454 */ 455 public Class<FileBasedAccessLogPublisherCfg> getServerConfigurationClass() { 456 return FileBasedAccessLogPublisherCfg.class; 457 } 458 459 460 461 /** 462 * Get the "append" property definition. 463 * <p> 464 * Specifies whether to append to existing log files. 465 * 466 * @return Returns the "append" property definition. 467 */ 468 public BooleanPropertyDefinition getAppendPropertyDefinition() { 469 return PD_APPEND; 470 } 471 472 473 474 /** 475 * Get the "asynchronous" property definition. 476 * <p> 477 * Indicates whether the File Based Access Log Publisher will 478 * publish records asynchronously. 479 * 480 * @return Returns the "asynchronous" property definition. 481 */ 482 public BooleanPropertyDefinition getAsynchronousPropertyDefinition() { 483 return PD_ASYNCHRONOUS; 484 } 485 486 487 488 /** 489 * Get the "auto-flush" property definition. 490 * <p> 491 * Specifies whether to flush the writer after every log record. 492 * <p> 493 * If the asynchronous writes option is used, the writer is flushed 494 * after all the log records in the queue are written. 495 * 496 * @return Returns the "auto-flush" property definition. 497 */ 498 public BooleanPropertyDefinition getAutoFlushPropertyDefinition() { 499 return PD_AUTO_FLUSH; 500 } 501 502 503 504 /** 505 * Get the "buffer-size" property definition. 506 * <p> 507 * Specifies the log file buffer size. 508 * 509 * @return Returns the "buffer-size" property definition. 510 */ 511 public SizePropertyDefinition getBufferSizePropertyDefinition() { 512 return PD_BUFFER_SIZE; 513 } 514 515 516 517 /** 518 * Get the "enabled" property definition. 519 * <p> 520 * Indicates whether the File Based Access Log Publisher is enabled 521 * for use. 522 * 523 * @return Returns the "enabled" property definition. 524 */ 525 public BooleanPropertyDefinition getEnabledPropertyDefinition() { 526 return AccessLogPublisherCfgDefn.getInstance().getEnabledPropertyDefinition(); 527 } 528 529 530 531 /** 532 * Get the "filtering-policy" property definition. 533 * <p> 534 * Specifies how filtering criteria should be applied to log 535 * records. 536 * 537 * @return Returns the "filtering-policy" property definition. 538 */ 539 public EnumPropertyDefinition<FilteringPolicy> getFilteringPolicyPropertyDefinition() { 540 return AccessLogPublisherCfgDefn.getInstance().getFilteringPolicyPropertyDefinition(); 541 } 542 543 544 545 /** 546 * Get the "java-class" property definition. 547 * <p> 548 * The fully-qualified name of the Java class that provides the File 549 * Based Access Log Publisher implementation. 550 * 551 * @return Returns the "java-class" property definition. 552 */ 553 public ClassPropertyDefinition getJavaClassPropertyDefinition() { 554 return PD_JAVA_CLASS; 555 } 556 557 558 559 /** 560 * Get the "log-control-oids" property definition. 561 * <p> 562 * Specifies whether control OIDs will be included in operation log 563 * records. 564 * 565 * @return Returns the "log-control-oids" property definition. 566 */ 567 public BooleanPropertyDefinition getLogControlOidsPropertyDefinition() { 568 return PD_LOG_CONTROL_OIDS; 569 } 570 571 572 573 /** 574 * Get the "log-file" property definition. 575 * <p> 576 * The file name to use for the log files generated by the File 577 * Based Access Log Publisher. The path to the file is relative to 578 * the server root. 579 * 580 * @return Returns the "log-file" property definition. 581 */ 582 public StringPropertyDefinition getLogFilePropertyDefinition() { 583 return PD_LOG_FILE; 584 } 585 586 587 588 /** 589 * Get the "log-file-permissions" property definition. 590 * <p> 591 * The UNIX permissions of the log files created by this File Based 592 * Access Log Publisher. 593 * 594 * @return Returns the "log-file-permissions" property definition. 595 */ 596 public StringPropertyDefinition getLogFilePermissionsPropertyDefinition() { 597 return PD_LOG_FILE_PERMISSIONS; 598 } 599 600 601 602 /** 603 * Get the "log-format" property definition. 604 * <p> 605 * Specifies how log records should be formatted and written to the 606 * access log. 607 * 608 * @return Returns the "log-format" property definition. 609 */ 610 public EnumPropertyDefinition<LogFormat> getLogFormatPropertyDefinition() { 611 return PD_LOG_FORMAT; 612 } 613 614 615 616 /** 617 * Get the "log-record-time-format" property definition. 618 * <p> 619 * Specifies the format string that is used to generate log record 620 * timestamps. 621 * 622 * @return Returns the "log-record-time-format" property definition. 623 */ 624 public StringPropertyDefinition getLogRecordTimeFormatPropertyDefinition() { 625 return PD_LOG_RECORD_TIME_FORMAT; 626 } 627 628 629 630 /** 631 * Get the "queue-size" property definition. 632 * <p> 633 * The maximum number of log records that can be stored in the 634 * asynchronous queue. 635 * 636 * @return Returns the "queue-size" property definition. 637 */ 638 public IntegerPropertyDefinition getQueueSizePropertyDefinition() { 639 return PD_QUEUE_SIZE; 640 } 641 642 643 644 /** 645 * Get the "retention-policy" property definition. 646 * <p> 647 * The retention policy to use for the File Based Access Log 648 * Publisher . 649 * <p> 650 * When multiple policies are used, log files are cleaned when any 651 * of the policy's conditions are met. 652 * 653 * @return Returns the "retention-policy" property definition. 654 */ 655 public AggregationPropertyDefinition<LogRetentionPolicyCfgClient, LogRetentionPolicyCfg> getRetentionPolicyPropertyDefinition() { 656 return PD_RETENTION_POLICY; 657 } 658 659 660 661 /** 662 * Get the "rotation-policy" property definition. 663 * <p> 664 * The rotation policy to use for the File Based Access Log 665 * Publisher . 666 * <p> 667 * When multiple policies are used, rotation will occur if any 668 * policy's conditions are met. 669 * 670 * @return Returns the "rotation-policy" property definition. 671 */ 672 public AggregationPropertyDefinition<LogRotationPolicyCfgClient, LogRotationPolicyCfg> getRotationPolicyPropertyDefinition() { 673 return PD_ROTATION_POLICY; 674 } 675 676 677 678 /** 679 * Get the "suppress-internal-operations" property definition. 680 * <p> 681 * Indicates whether internal operations (for example, operations 682 * that are initiated by plugins) should be logged along with the 683 * operations that are requested by users. 684 * 685 * @return Returns the "suppress-internal-operations" property definition. 686 */ 687 public BooleanPropertyDefinition getSuppressInternalOperationsPropertyDefinition() { 688 return AccessLogPublisherCfgDefn.getInstance().getSuppressInternalOperationsPropertyDefinition(); 689 } 690 691 692 693 /** 694 * Get the "suppress-synchronization-operations" property definition. 695 * <p> 696 * Indicates whether access messages that are generated by 697 * synchronization operations should be suppressed. 698 * 699 * @return Returns the "suppress-synchronization-operations" property definition. 700 */ 701 public BooleanPropertyDefinition getSuppressSynchronizationOperationsPropertyDefinition() { 702 return AccessLogPublisherCfgDefn.getInstance().getSuppressSynchronizationOperationsPropertyDefinition(); 703 } 704 705 706 707 /** 708 * Get the "time-interval" property definition. 709 * <p> 710 * Specifies the interval at which to check whether the log files 711 * need to be rotated. 712 * 713 * @return Returns the "time-interval" property definition. 714 */ 715 public DurationPropertyDefinition getTimeIntervalPropertyDefinition() { 716 return PD_TIME_INTERVAL; 717 } 718 719 720 721 /** 722 * Get the "access-log-filtering-criteria" relation definition. 723 * 724 * @return Returns the "access-log-filtering-criteria" relation definition. 725 */ 726 public InstantiableRelationDefinition<AccessLogFilteringCriteriaCfgClient,AccessLogFilteringCriteriaCfg> getAccessLogFilteringCriteriaRelationDefinition() { 727 return AccessLogPublisherCfgDefn.getInstance().getAccessLogFilteringCriteriaRelationDefinition(); 728 } 729 730 731 732 /** 733 * Managed object client implementation. 734 */ 735 private static class FileBasedAccessLogPublisherCfgClientImpl implements 736 FileBasedAccessLogPublisherCfgClient { 737 738 // Private implementation. 739 private ManagedObject<? extends FileBasedAccessLogPublisherCfgClient> impl; 740 741 742 743 // Private constructor. 744 private FileBasedAccessLogPublisherCfgClientImpl( 745 ManagedObject<? extends FileBasedAccessLogPublisherCfgClient> impl) { 746 this.impl = impl; 747 } 748 749 750 751 /** 752 * {@inheritDoc} 753 */ 754 public boolean isAppend() { 755 return impl.getPropertyValue(INSTANCE.getAppendPropertyDefinition()); 756 } 757 758 759 760 /** 761 * {@inheritDoc} 762 */ 763 public void setAppend(Boolean value) { 764 impl.setPropertyValue(INSTANCE.getAppendPropertyDefinition(), value); 765 } 766 767 768 769 /** 770 * {@inheritDoc} 771 */ 772 public boolean isAsynchronous() { 773 return impl.getPropertyValue(INSTANCE.getAsynchronousPropertyDefinition()); 774 } 775 776 777 778 /** 779 * {@inheritDoc} 780 */ 781 public void setAsynchronous(boolean value) { 782 impl.setPropertyValue(INSTANCE.getAsynchronousPropertyDefinition(), value); 783 } 784 785 786 787 /** 788 * {@inheritDoc} 789 */ 790 public boolean isAutoFlush() { 791 return impl.getPropertyValue(INSTANCE.getAutoFlushPropertyDefinition()); 792 } 793 794 795 796 /** 797 * {@inheritDoc} 798 */ 799 public void setAutoFlush(Boolean value) { 800 impl.setPropertyValue(INSTANCE.getAutoFlushPropertyDefinition(), value); 801 } 802 803 804 805 /** 806 * {@inheritDoc} 807 */ 808 public long getBufferSize() { 809 return impl.getPropertyValue(INSTANCE.getBufferSizePropertyDefinition()); 810 } 811 812 813 814 /** 815 * {@inheritDoc} 816 */ 817 public void setBufferSize(Long value) { 818 impl.setPropertyValue(INSTANCE.getBufferSizePropertyDefinition(), value); 819 } 820 821 822 823 /** 824 * {@inheritDoc} 825 */ 826 public Boolean isEnabled() { 827 return impl.getPropertyValue(INSTANCE.getEnabledPropertyDefinition()); 828 } 829 830 831 832 /** 833 * {@inheritDoc} 834 */ 835 public void setEnabled(boolean value) { 836 impl.setPropertyValue(INSTANCE.getEnabledPropertyDefinition(), value); 837 } 838 839 840 841 /** 842 * {@inheritDoc} 843 */ 844 public FilteringPolicy getFilteringPolicy() { 845 return impl.getPropertyValue(INSTANCE.getFilteringPolicyPropertyDefinition()); 846 } 847 848 849 850 /** 851 * {@inheritDoc} 852 */ 853 public void setFilteringPolicy(FilteringPolicy value) { 854 impl.setPropertyValue(INSTANCE.getFilteringPolicyPropertyDefinition(), value); 855 } 856 857 858 859 /** 860 * {@inheritDoc} 861 */ 862 public String getJavaClass() { 863 return impl.getPropertyValue(INSTANCE.getJavaClassPropertyDefinition()); 864 } 865 866 867 868 /** 869 * {@inheritDoc} 870 */ 871 public void setJavaClass(String value) { 872 impl.setPropertyValue(INSTANCE.getJavaClassPropertyDefinition(), value); 873 } 874 875 876 877 /** 878 * {@inheritDoc} 879 */ 880 public boolean isLogControlOids() { 881 return impl.getPropertyValue(INSTANCE.getLogControlOidsPropertyDefinition()); 882 } 883 884 885 886 /** 887 * {@inheritDoc} 888 */ 889 public void setLogControlOids(Boolean value) { 890 impl.setPropertyValue(INSTANCE.getLogControlOidsPropertyDefinition(), value); 891 } 892 893 894 895 /** 896 * {@inheritDoc} 897 */ 898 public String getLogFile() { 899 return impl.getPropertyValue(INSTANCE.getLogFilePropertyDefinition()); 900 } 901 902 903 904 /** 905 * {@inheritDoc} 906 */ 907 public void setLogFile(String value) { 908 impl.setPropertyValue(INSTANCE.getLogFilePropertyDefinition(), value); 909 } 910 911 912 913 /** 914 * {@inheritDoc} 915 */ 916 public String getLogFilePermissions() { 917 return impl.getPropertyValue(INSTANCE.getLogFilePermissionsPropertyDefinition()); 918 } 919 920 921 922 /** 923 * {@inheritDoc} 924 */ 925 public void setLogFilePermissions(String value) { 926 impl.setPropertyValue(INSTANCE.getLogFilePermissionsPropertyDefinition(), value); 927 } 928 929 930 931 /** 932 * {@inheritDoc} 933 */ 934 public LogFormat getLogFormat() { 935 return impl.getPropertyValue(INSTANCE.getLogFormatPropertyDefinition()); 936 } 937 938 939 940 /** 941 * {@inheritDoc} 942 */ 943 public void setLogFormat(LogFormat value) { 944 impl.setPropertyValue(INSTANCE.getLogFormatPropertyDefinition(), value); 945 } 946 947 948 949 /** 950 * {@inheritDoc} 951 */ 952 public String getLogRecordTimeFormat() { 953 return impl.getPropertyValue(INSTANCE.getLogRecordTimeFormatPropertyDefinition()); 954 } 955 956 957 958 /** 959 * {@inheritDoc} 960 */ 961 public void setLogRecordTimeFormat(String value) { 962 impl.setPropertyValue(INSTANCE.getLogRecordTimeFormatPropertyDefinition(), value); 963 } 964 965 966 967 /** 968 * {@inheritDoc} 969 */ 970 public int getQueueSize() { 971 return impl.getPropertyValue(INSTANCE.getQueueSizePropertyDefinition()); 972 } 973 974 975 976 /** 977 * {@inheritDoc} 978 */ 979 public void setQueueSize(Integer value) { 980 impl.setPropertyValue(INSTANCE.getQueueSizePropertyDefinition(), value); 981 } 982 983 984 985 /** 986 * {@inheritDoc} 987 */ 988 public SortedSet<String> getRetentionPolicy() { 989 return impl.getPropertyValues(INSTANCE.getRetentionPolicyPropertyDefinition()); 990 } 991 992 993 994 /** 995 * {@inheritDoc} 996 */ 997 public void setRetentionPolicy(Collection<String> values) { 998 impl.setPropertyValues(INSTANCE.getRetentionPolicyPropertyDefinition(), values); 999 } 1000 1001 1002 1003 /** 1004 * {@inheritDoc} 1005 */ 1006 public SortedSet<String> getRotationPolicy() { 1007 return impl.getPropertyValues(INSTANCE.getRotationPolicyPropertyDefinition()); 1008 } 1009 1010 1011 1012 /** 1013 * {@inheritDoc} 1014 */ 1015 public void setRotationPolicy(Collection<String> values) { 1016 impl.setPropertyValues(INSTANCE.getRotationPolicyPropertyDefinition(), values); 1017 } 1018 1019 1020 1021 /** 1022 * {@inheritDoc} 1023 */ 1024 public boolean isSuppressInternalOperations() { 1025 return impl.getPropertyValue(INSTANCE.getSuppressInternalOperationsPropertyDefinition()); 1026 } 1027 1028 1029 1030 /** 1031 * {@inheritDoc} 1032 */ 1033 public void setSuppressInternalOperations(Boolean value) { 1034 impl.setPropertyValue(INSTANCE.getSuppressInternalOperationsPropertyDefinition(), value); 1035 } 1036 1037 1038 1039 /** 1040 * {@inheritDoc} 1041 */ 1042 public boolean isSuppressSynchronizationOperations() { 1043 return impl.getPropertyValue(INSTANCE.getSuppressSynchronizationOperationsPropertyDefinition()); 1044 } 1045 1046 1047 1048 /** 1049 * {@inheritDoc} 1050 */ 1051 public void setSuppressSynchronizationOperations(Boolean value) { 1052 impl.setPropertyValue(INSTANCE.getSuppressSynchronizationOperationsPropertyDefinition(), value); 1053 } 1054 1055 1056 1057 /** 1058 * {@inheritDoc} 1059 */ 1060 public long getTimeInterval() { 1061 return impl.getPropertyValue(INSTANCE.getTimeIntervalPropertyDefinition()); 1062 } 1063 1064 1065 1066 /** 1067 * {@inheritDoc} 1068 */ 1069 public void setTimeInterval(Long value) { 1070 impl.setPropertyValue(INSTANCE.getTimeIntervalPropertyDefinition(), value); 1071 } 1072 1073 1074 1075 /** 1076 * {@inheritDoc} 1077 */ 1078 public String[] listAccessLogFilteringCriteria() throws ConcurrentModificationException, 1079 AuthorizationException, CommunicationException { 1080 return impl.listChildren(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition()); 1081 } 1082 1083 1084 1085 /** 1086 * {@inheritDoc} 1087 */ 1088 public AccessLogFilteringCriteriaCfgClient getAccessLogFilteringCriteria(String name) 1089 throws DefinitionDecodingException, ManagedObjectDecodingException, 1090 ManagedObjectNotFoundException, ConcurrentModificationException, 1091 AuthorizationException, CommunicationException { 1092 return impl.getChild(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), name).getConfiguration(); 1093 } 1094 1095 1096 1097 /** 1098 * {@inheritDoc} 1099 */ 1100 public <M extends AccessLogFilteringCriteriaCfgClient> M createAccessLogFilteringCriteria( 1101 ManagedObjectDefinition<M, ? extends AccessLogFilteringCriteriaCfg> d, String name, Collection<PropertyException> exceptions) throws IllegalManagedObjectNameException { 1102 return impl.createChild(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), d, name, exceptions).getConfiguration(); 1103 } 1104 1105 1106 1107 /** 1108 * {@inheritDoc} 1109 */ 1110 public void removeAccessLogFilteringCriteria(String name) 1111 throws ManagedObjectNotFoundException, ConcurrentModificationException, 1112 OperationRejectedException, AuthorizationException, CommunicationException { 1113 impl.removeChild(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), name); 1114 } 1115 1116 1117 1118 /** 1119 * {@inheritDoc} 1120 */ 1121 public ManagedObjectDefinition<? extends FileBasedAccessLogPublisherCfgClient, ? extends FileBasedAccessLogPublisherCfg> definition() { 1122 return INSTANCE; 1123 } 1124 1125 1126 1127 /** 1128 * {@inheritDoc} 1129 */ 1130 public PropertyProvider properties() { 1131 return impl; 1132 } 1133 1134 1135 1136 /** 1137 * {@inheritDoc} 1138 */ 1139 public void commit() throws ManagedObjectAlreadyExistsException, 1140 MissingMandatoryPropertiesException, ConcurrentModificationException, 1141 OperationRejectedException, AuthorizationException, 1142 CommunicationException { 1143 impl.commit(); 1144 } 1145 1146 1147 1148 /** {@inheritDoc} */ 1149 public String toString() { 1150 return impl.toString(); 1151 } 1152 } 1153 1154 1155 1156 /** 1157 * Managed object server implementation. 1158 */ 1159 private static class FileBasedAccessLogPublisherCfgServerImpl implements 1160 FileBasedAccessLogPublisherCfg { 1161 1162 // Private implementation. 1163 private ServerManagedObject<? extends FileBasedAccessLogPublisherCfg> impl; 1164 1165 // The value of the "append" property. 1166 private final boolean pAppend; 1167 1168 // The value of the "asynchronous" property. 1169 private final boolean pAsynchronous; 1170 1171 // The value of the "auto-flush" property. 1172 private final boolean pAutoFlush; 1173 1174 // The value of the "buffer-size" property. 1175 private final long pBufferSize; 1176 1177 // The value of the "enabled" property. 1178 private final boolean pEnabled; 1179 1180 // The value of the "filtering-policy" property. 1181 private final FilteringPolicy pFilteringPolicy; 1182 1183 // The value of the "java-class" property. 1184 private final String pJavaClass; 1185 1186 // The value of the "log-control-oids" property. 1187 private final boolean pLogControlOids; 1188 1189 // The value of the "log-file" property. 1190 private final String pLogFile; 1191 1192 // The value of the "log-file-permissions" property. 1193 private final String pLogFilePermissions; 1194 1195 // The value of the "log-format" property. 1196 private final LogFormat pLogFormat; 1197 1198 // The value of the "log-record-time-format" property. 1199 private final String pLogRecordTimeFormat; 1200 1201 // The value of the "queue-size" property. 1202 private final int pQueueSize; 1203 1204 // The value of the "retention-policy" property. 1205 private final SortedSet<String> pRetentionPolicy; 1206 1207 // The value of the "rotation-policy" property. 1208 private final SortedSet<String> pRotationPolicy; 1209 1210 // The value of the "suppress-internal-operations" property. 1211 private final boolean pSuppressInternalOperations; 1212 1213 // The value of the "suppress-synchronization-operations" property. 1214 private final boolean pSuppressSynchronizationOperations; 1215 1216 // The value of the "time-interval" property. 1217 private final long pTimeInterval; 1218 1219 1220 1221 // Private constructor. 1222 private FileBasedAccessLogPublisherCfgServerImpl(ServerManagedObject<? extends FileBasedAccessLogPublisherCfg> impl) { 1223 this.impl = impl; 1224 this.pAppend = impl.getPropertyValue(INSTANCE.getAppendPropertyDefinition()); 1225 this.pAsynchronous = impl.getPropertyValue(INSTANCE.getAsynchronousPropertyDefinition()); 1226 this.pAutoFlush = impl.getPropertyValue(INSTANCE.getAutoFlushPropertyDefinition()); 1227 this.pBufferSize = impl.getPropertyValue(INSTANCE.getBufferSizePropertyDefinition()); 1228 this.pEnabled = impl.getPropertyValue(INSTANCE.getEnabledPropertyDefinition()); 1229 this.pFilteringPolicy = impl.getPropertyValue(INSTANCE.getFilteringPolicyPropertyDefinition()); 1230 this.pJavaClass = impl.getPropertyValue(INSTANCE.getJavaClassPropertyDefinition()); 1231 this.pLogControlOids = impl.getPropertyValue(INSTANCE.getLogControlOidsPropertyDefinition()); 1232 this.pLogFile = impl.getPropertyValue(INSTANCE.getLogFilePropertyDefinition()); 1233 this.pLogFilePermissions = impl.getPropertyValue(INSTANCE.getLogFilePermissionsPropertyDefinition()); 1234 this.pLogFormat = impl.getPropertyValue(INSTANCE.getLogFormatPropertyDefinition()); 1235 this.pLogRecordTimeFormat = impl.getPropertyValue(INSTANCE.getLogRecordTimeFormatPropertyDefinition()); 1236 this.pQueueSize = impl.getPropertyValue(INSTANCE.getQueueSizePropertyDefinition()); 1237 this.pRetentionPolicy = impl.getPropertyValues(INSTANCE.getRetentionPolicyPropertyDefinition()); 1238 this.pRotationPolicy = impl.getPropertyValues(INSTANCE.getRotationPolicyPropertyDefinition()); 1239 this.pSuppressInternalOperations = impl.getPropertyValue(INSTANCE.getSuppressInternalOperationsPropertyDefinition()); 1240 this.pSuppressSynchronizationOperations = impl.getPropertyValue(INSTANCE.getSuppressSynchronizationOperationsPropertyDefinition()); 1241 this.pTimeInterval = impl.getPropertyValue(INSTANCE.getTimeIntervalPropertyDefinition()); 1242 } 1243 1244 1245 1246 /** 1247 * {@inheritDoc} 1248 */ 1249 public void addFileBasedAccessChangeListener( 1250 ConfigurationChangeListener<FileBasedAccessLogPublisherCfg> listener) { 1251 impl.registerChangeListener(listener); 1252 } 1253 1254 1255 1256 /** 1257 * {@inheritDoc} 1258 */ 1259 public void removeFileBasedAccessChangeListener( 1260 ConfigurationChangeListener<FileBasedAccessLogPublisherCfg> listener) { 1261 impl.deregisterChangeListener(listener); 1262 } 1263 /** 1264 * {@inheritDoc} 1265 */ 1266 public void addAccessChangeListener( 1267 ConfigurationChangeListener<AccessLogPublisherCfg> listener) { 1268 impl.registerChangeListener(listener); 1269 } 1270 1271 1272 1273 /** 1274 * {@inheritDoc} 1275 */ 1276 public void removeAccessChangeListener( 1277 ConfigurationChangeListener<AccessLogPublisherCfg> listener) { 1278 impl.deregisterChangeListener(listener); 1279 } 1280 /** 1281 * {@inheritDoc} 1282 */ 1283 public void addChangeListener( 1284 ConfigurationChangeListener<LogPublisherCfg> listener) { 1285 impl.registerChangeListener(listener); 1286 } 1287 1288 1289 1290 /** 1291 * {@inheritDoc} 1292 */ 1293 public void removeChangeListener( 1294 ConfigurationChangeListener<LogPublisherCfg> listener) { 1295 impl.deregisterChangeListener(listener); 1296 } 1297 1298 1299 1300 /** 1301 * {@inheritDoc} 1302 */ 1303 public boolean isAppend() { 1304 return pAppend; 1305 } 1306 1307 1308 1309 /** 1310 * {@inheritDoc} 1311 */ 1312 public boolean isAsynchronous() { 1313 return pAsynchronous; 1314 } 1315 1316 1317 1318 /** 1319 * {@inheritDoc} 1320 */ 1321 public boolean isAutoFlush() { 1322 return pAutoFlush; 1323 } 1324 1325 1326 1327 /** 1328 * {@inheritDoc} 1329 */ 1330 public long getBufferSize() { 1331 return pBufferSize; 1332 } 1333 1334 1335 1336 /** 1337 * {@inheritDoc} 1338 */ 1339 public boolean isEnabled() { 1340 return pEnabled; 1341 } 1342 1343 1344 1345 /** 1346 * {@inheritDoc} 1347 */ 1348 public FilteringPolicy getFilteringPolicy() { 1349 return pFilteringPolicy; 1350 } 1351 1352 1353 1354 /** 1355 * {@inheritDoc} 1356 */ 1357 public String getJavaClass() { 1358 return pJavaClass; 1359 } 1360 1361 1362 1363 /** 1364 * {@inheritDoc} 1365 */ 1366 public boolean isLogControlOids() { 1367 return pLogControlOids; 1368 } 1369 1370 1371 1372 /** 1373 * {@inheritDoc} 1374 */ 1375 public String getLogFile() { 1376 return pLogFile; 1377 } 1378 1379 1380 1381 /** 1382 * {@inheritDoc} 1383 */ 1384 public String getLogFilePermissions() { 1385 return pLogFilePermissions; 1386 } 1387 1388 1389 1390 /** 1391 * {@inheritDoc} 1392 */ 1393 public LogFormat getLogFormat() { 1394 return pLogFormat; 1395 } 1396 1397 1398 1399 /** 1400 * {@inheritDoc} 1401 */ 1402 public String getLogRecordTimeFormat() { 1403 return pLogRecordTimeFormat; 1404 } 1405 1406 1407 1408 /** 1409 * {@inheritDoc} 1410 */ 1411 public int getQueueSize() { 1412 return pQueueSize; 1413 } 1414 1415 1416 1417 /** 1418 * {@inheritDoc} 1419 */ 1420 public SortedSet<String> getRetentionPolicy() { 1421 return pRetentionPolicy; 1422 } 1423 1424 1425 1426 /** 1427 * {@inheritDoc} 1428 */ 1429 public SortedSet<DN> getRetentionPolicyDNs() { 1430 SortedSet<String> values = getRetentionPolicy(); 1431 SortedSet<DN> dnValues = new TreeSet<DN>(); 1432 for (String value : values) { 1433 DN dn = INSTANCE.getRetentionPolicyPropertyDefinition().getChildDN(value); 1434 dnValues.add(dn); 1435 } 1436 return dnValues; 1437 } 1438 1439 1440 1441 /** 1442 * {@inheritDoc} 1443 */ 1444 public SortedSet<String> getRotationPolicy() { 1445 return pRotationPolicy; 1446 } 1447 1448 1449 1450 /** 1451 * {@inheritDoc} 1452 */ 1453 public SortedSet<DN> getRotationPolicyDNs() { 1454 SortedSet<String> values = getRotationPolicy(); 1455 SortedSet<DN> dnValues = new TreeSet<DN>(); 1456 for (String value : values) { 1457 DN dn = INSTANCE.getRotationPolicyPropertyDefinition().getChildDN(value); 1458 dnValues.add(dn); 1459 } 1460 return dnValues; 1461 } 1462 1463 1464 1465 /** 1466 * {@inheritDoc} 1467 */ 1468 public boolean isSuppressInternalOperations() { 1469 return pSuppressInternalOperations; 1470 } 1471 1472 1473 1474 /** 1475 * {@inheritDoc} 1476 */ 1477 public boolean isSuppressSynchronizationOperations() { 1478 return pSuppressSynchronizationOperations; 1479 } 1480 1481 1482 1483 /** 1484 * {@inheritDoc} 1485 */ 1486 public long getTimeInterval() { 1487 return pTimeInterval; 1488 } 1489 1490 1491 1492 /** 1493 * {@inheritDoc} 1494 */ 1495 public String[] listAccessLogFilteringCriteria() { 1496 return impl.listChildren(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition()); 1497 } 1498 1499 1500 1501 /** 1502 * {@inheritDoc} 1503 */ 1504 public AccessLogFilteringCriteriaCfg getAccessLogFilteringCriteria(String name) throws ConfigException { 1505 return impl.getChild(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), name).getConfiguration(); 1506 } 1507 1508 1509 1510 /** 1511 * {@inheritDoc} 1512 */ 1513 public void addAccessLogFilteringCriteriaAddListener( 1514 ConfigurationAddListener<AccessLogFilteringCriteriaCfg> listener) throws ConfigException { 1515 impl.registerAddListener(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), listener); 1516 } 1517 1518 1519 1520 /** 1521 * {@inheritDoc} 1522 */ 1523 public void removeAccessLogFilteringCriteriaAddListener( 1524 ConfigurationAddListener<AccessLogFilteringCriteriaCfg> listener) { 1525 impl.deregisterAddListener(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), listener); 1526 } 1527 1528 1529 1530 /** 1531 * {@inheritDoc} 1532 */ 1533 public void addAccessLogFilteringCriteriaDeleteListener( 1534 ConfigurationDeleteListener<AccessLogFilteringCriteriaCfg> listener) throws ConfigException { 1535 impl.registerDeleteListener(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), listener); 1536 } 1537 1538 1539 1540 /** 1541 * {@inheritDoc} 1542 */ 1543 public void removeAccessLogFilteringCriteriaDeleteListener( 1544 ConfigurationDeleteListener<AccessLogFilteringCriteriaCfg> listener) { 1545 impl.deregisterDeleteListener(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), listener); 1546 } 1547 1548 1549 1550 /** 1551 * {@inheritDoc} 1552 */ 1553 public Class<? extends FileBasedAccessLogPublisherCfg> configurationClass() { 1554 return FileBasedAccessLogPublisherCfg.class; 1555 } 1556 1557 1558 1559 /** 1560 * {@inheritDoc} 1561 */ 1562 public DN dn() { 1563 return impl.getDN(); 1564 } 1565 1566 1567 1568 /** {@inheritDoc} */ 1569 public String toString() { 1570 return impl.toString(); 1571 } 1572 } 1573}