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