Search in sources :

Example 1 with Log

use of org.apache.tapestry5.annotations.Log in project tapestry-5 by apache.

the class TapestryAppInitializer method announceStartup.

/**
 * Announce application startup, by logging (at INFO level) the names of all pages,
 * components, mixins and services.
 */
public void announceStartup() {
    if (// if info logging is off we can stop now
    !logger.isInfoEnabled()) {
        return;
    }
    long toFinish = System.currentTimeMillis();
    SymbolSource source = registry.getService("SymbolSource", SymbolSource.class);
    StringBuilder buffer = new StringBuilder("Startup status:\n\nServices:\n\n");
    Formatter f = new Formatter(buffer);
    int unrealized = 0;
    ServiceActivityScoreboard scoreboard = registry.getService(ServiceActivityScoreboard.class);
    List<ServiceActivity> serviceActivity = scoreboard.getServiceActivity();
    int longest = 0;
    for (ServiceActivity activity : serviceActivity) {
        Status status = activity.getStatus();
        longest = Math.max(longest, activity.getServiceId().length());
        if (status == Status.DEFINED || status == Status.VIRTUAL)
            unrealized++;
    }
    String formatString = "%" + longest + "s: %s\n";
    for (ServiceActivity activity : serviceActivity) {
        f.format(formatString, activity.getServiceId(), activity.getStatus().name());
    }
    f.format("\n%4.2f%% unrealized services (%d/%d)\n", 100. * unrealized / serviceActivity.size(), unrealized, serviceActivity.size());
    f.format("\nApplication '%s' (version %s) startup time: %,d ms to build IoC Registry, %,d ms overall.", appName, source.valueForSymbol(TapestryHttpSymbolConstants.APPLICATION_VERSION), registryCreatedTime - startTime, toFinish - startTime);
    String version = source.valueForSymbol(TapestryHttpSymbolConstants.TAPESTRY_VERSION);
    boolean productionMode = Boolean.parseBoolean(source.valueForSymbol(TapestryHttpSymbolConstants.PRODUCTION_MODE));
    buffer.append("\n\n");
    buffer.append(" ______                  __             ____\n");
    buffer.append("/_  __/__ ____  ___ ___ / /_______ __  / __/\n");
    buffer.append(" / / / _ `/ _ \\/ -_|_-</ __/ __/ // / /__ \\ \n");
    buffer.append("/_/  \\_,_/ .__/\\__/___/\\__/_/  \\_, / /____/\n");
    f.format("        /_/                   /___/  %s%s\n\n", version, productionMode ? "" : " (development mode)");
    // log multi-line string with OS-specific line endings (TAP5-2294)
    logger.info(buffer.toString().replaceAll("\\n", System.getProperty("line.separator")));
}
Also used : Status(org.apache.tapestry5.ioc.services.Status) SymbolSource(org.apache.tapestry5.ioc.services.SymbolSource) Formatter(java.util.Formatter) ServiceActivityScoreboard(org.apache.tapestry5.ioc.services.ServiceActivityScoreboard) ServiceActivity(org.apache.tapestry5.ioc.services.ServiceActivity)

Example 2 with Log

use of org.apache.tapestry5.annotations.Log in project tapestry-5 by apache.

the class HibernateSessionSourceImplTest method startup_without_packages.

@Test
public void startup_without_packages() {
    Collection<String> packageNames = CollectionFactory.newList("org.example.myapp.entities", "org.example.app0.entities");
    HibernateEntityPackageManager packageManager = newMock(HibernateEntityPackageManager.class);
    TestBase.expect(packageManager.getPackageNames()).andReturn(packageNames);
    ClasspathScannerImpl scanner = new ClasspathScannerImpl(new ClasspathURLConverterImpl());
    ClassNameLocatorImpl classNameLocator = new ClassNameLocatorImpl(scanner);
    List<HibernateConfigurer> filters = Arrays.asList(new DefaultHibernateConfigurer(true), new PackageNameHibernateConfigurer(packageManager, classNameLocator));
    replay();
    HibernateSessionSource source = new HibernateSessionSourceImpl(log, filters);
    Session session = source.create();
    Assert.assertNotNull(session);
    // make sure it found the entity in the package
    ClassMetadata meta = session.getSessionFactory().getClassMetadata(User.class);
    Assert.assertEquals(meta.getEntityName(), "org.example.app0.entities.User");
    verify();
}
Also used : ClassMetadata(org.hibernate.metadata.ClassMetadata) HibernateSessionSourceImpl(org.apache.tapestry5.hibernate.internal.HibernateSessionSourceImpl) PackageNameHibernateConfigurer(org.apache.tapestry5.hibernate.internal.PackageNameHibernateConfigurer) DefaultHibernateConfigurer(org.apache.tapestry5.hibernate.internal.DefaultHibernateConfigurer) HibernateSessionSource(org.apache.tapestry5.hibernate.HibernateSessionSource) ClasspathScannerImpl(org.apache.tapestry5.ioc.internal.services.ClasspathScannerImpl) DefaultHibernateConfigurer(org.apache.tapestry5.hibernate.internal.DefaultHibernateConfigurer) PackageNameHibernateConfigurer(org.apache.tapestry5.hibernate.internal.PackageNameHibernateConfigurer) HibernateConfigurer(org.apache.tapestry5.hibernate.HibernateConfigurer) ClasspathURLConverterImpl(org.apache.tapestry5.ioc.internal.services.ClasspathURLConverterImpl) ClassNameLocatorImpl(org.apache.tapestry5.ioc.internal.services.ClassNameLocatorImpl) HibernateEntityPackageManager(org.apache.tapestry5.hibernate.HibernateEntityPackageManager) Session(org.hibernate.Session) Test(org.testng.annotations.Test)

Example 3 with Log

use of org.apache.tapestry5.annotations.Log in project tapestry-5 by apache.

the class CheckClassAdapter method main.

/**
 * Checks the given class.
 *
 * @param args the command line arguments.
 * @param logger where to log errors.
 * @throws IOException if the class cannot be found, or if an IO exception occurs.
 */
static void main(final String[] args, final PrintWriter logger) throws IOException {
    if (args.length != 1) {
        logger.println(USAGE);
        return;
    }
    ClassReader classReader;
    if (args[0].endsWith(".class")) {
        // Can't fix PMD warning for 1.5 compatibility.
        try (InputStream inputStream = new FileInputStream(args[0])) {
            // NOPMD(AvoidFileStream)
            classReader = new ClassReader(inputStream);
        }
    } else {
        classReader = new ClassReader(args[0]);
    }
    verify(classReader, false, logger);
}
Also used : FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) ClassReader(org.apache.tapestry5.internal.plastic.asm.ClassReader) FileInputStream(java.io.FileInputStream)

Example 4 with Log

use of org.apache.tapestry5.annotations.Log in project tapestry-5 by apache.

the class MultiZoneUpdateInsideForm method onValueChangedFromSelectValue1.

@Log
public Object onValueChangedFromSelectValue1(SelectObj selectObj, Integer integer, RetentionPolicy retentionPolicy) {
    final String suffix = String.format(", number %03d, retention policy %s", integer, retentionPolicy);
    List<SelectObj> select2List = new ArrayList();
    select2List.add(new SelectObj(4, "4 post ajax" + suffix));
    select2List.add(new SelectObj(5, "5 post ajax" + suffix));
    select2List.add(new SelectObj(6, "6 post ajax" + suffix));
    select2List.add(new SelectObj(7, "7 post ajax" + suffix));
    select2Model = new SelectObjModel(select2List);
    if (request.isXHR()) {
        return new MultiZoneUpdate("select1ValueZone", select1ValueZone.getBody()).add("select2ValueZone", select2ValueZone.getBody());
    } else {
        return this;
    }
}
Also used : MultiZoneUpdate(org.apache.tapestry5.ajax.MultiZoneUpdate) ArrayList(java.util.ArrayList) Log(org.apache.tapestry5.annotations.Log)

Example 5 with Log

use of org.apache.tapestry5.annotations.Log in project tapestry-5 by apache.

the class TapestryModule method provideTransformWorkers.

/**
 * Adds a number of standard component class transform workers:
 * <dl>
 * <dt>Parameter</dt>
 * <dd>Identifies parameters based on the {@link org.apache.tapestry5.annotations.Parameter} annotation</dd>
 * <dt>BindParameter</dt>
 * <dd>Support for the {@link BindParameter} annotation</dd>
 * <dt>Property</dt>
 * <dd>Generates accessor methods if {@link org.apache.tapestry5.annotations.Property} annotation is present</dd>
 * <dt>Import</dt>
 * <dd>Supports the {@link Import} annotation</dd>
 * <dt>UnclaimedField</dt>
 * <dd>Manages unclaimed fields, storing their value in a {@link PerThreadValue}</dd>
 * <dt>OnEvent</dt>
 * <dd>Handle the @OnEvent annotation, and related naming convention</dd>
 * <dt>RenderCommand</dt>
 * <dd>Ensures all components also implement {@link org.apache.tapestry5.runtime.RenderCommand}</dd>
 * <dt>SupportsInformalParameters</dt>
 * <dd>Checks for the annotation</dd>
 * <dt>RenderPhase</dt>
 * <dd>Link in render phase methods</dd>
 * <dt>Retain</dt>
 * <dd>Allows fields to retain their values between requests</dd>
 * <dt>Meta</dt>
 * <dd>Checks for meta data annotations and adds it to the component model</dd>
 * <dt>PageActivationContext</dt> <dd>Support for {@link PageActivationContext} annotation</dd>
 * <dt>DiscardAfter</dt> <dd>Support for {@link DiscardAfter} method annotation </dd>
 * <dt>MixinAfter</dt> <dd>Support for the {@link MixinAfter} mixin class annotation</dd>
 * <dt>PageReset</dt>
 * <dd>Checks for the {@link PageReset} annotation</dd>
 * <dt>Mixin</dt>
 * <dd>Adds a mixin as part of a component's implementation</dd>
 * <dt>Cached</dt>
 * <dd>Checks for the {@link org.apache.tapestry5.annotations.Cached} annotation</dd>
 * <dt>ActivationRequestParameter</dt>
 * <dd>Support for the {@link ActivationRequestParameter} annotation</dd>
 * <dt>PageLoaded, PageAttached, PageDetached</dt>
 * <dd>Support for annotations {@link PageLoaded}, {@link PageAttached}, {@link PageDetached}</dd>
 * <dt>InjectService</dt>
 * <dd>Handles the {@link org.apache.tapestry5.ioc.annotations.InjectService} annotation</dd>
 * <dt>Component</dt>
 * <dd>Defines embedded components based on the {@link org.apache.tapestry5.annotations.Component} annotation</dd>
 * <dt>Environment</dt>
 * <dd>Allows fields to contain values extracted from the {@link org.apache.tapestry5.services.Environment} service</dd>
 * <dt>ApplicationState</dt>
 * <dd>Converts fields that reference application state objects</dd>
 * <dt>Persist</dt>
 * <dd>Allows fields to store their their value persistently between requests via {@link Persist}</dd>
 * <dt>SessionAttribute</dt>
 * <dd>Support for the {@link SessionAttribute}</dd>
 * <dt>Log</dt>
 * <dd>Checks for the {@link org.apache.tapestry5.annotations.Log} annotation</dd>
 * <dt>HeartbeatDeferred
 * <dd>Support for the {@link HeartbeatDeferred} annotation, which defers method invocation to the end of the {@link Heartbeat}
 * <dt>Inject</dt>
 * <dd>Used with the {@link org.apache.tapestry5.ioc.annotations.Inject} annotation, when a value is supplied</dd>
 * <dt>Operation</dt> <dd>Support for the {@link Operation} method annotation</dd>
 * </dl>
 */
@Contribute(ComponentClassTransformWorker2.class)
@Primary
public static void provideTransformWorkers(OrderedConfiguration<ComponentClassTransformWorker2> configuration, MetaWorker metaWorker, ComponentClassResolver resolver) {
    configuration.add("Property", new PropertyWorker());
    // Order this one pretty early:
    configuration.addInstance("Operation", OperationWorker.class);
    configuration.add("RenderCommand", new RenderCommandWorker());
    configuration.addInstance("OnEvent", OnEventWorker.class);
    configuration.add("MixinAfter", new MixinAfterWorker());
    // These must come after Property, since they actually delete fields
    // that may still have the annotation
    configuration.addInstance("ApplicationState", ApplicationStateWorker.class);
    configuration.addInstance("Environment", EnvironmentalWorker.class);
    configuration.add("Component", new ComponentWorker(resolver));
    configuration.add("Mixin", new MixinWorker(resolver));
    configuration.addInstance("InjectPage", InjectPageWorker.class);
    configuration.addInstance("InjectComponent", InjectComponentWorker.class);
    configuration.addInstance("InjectContainer", InjectContainerWorker.class);
    // Default values for parameters are often some form of injection, so
    // make sure that Parameter fields are processed after injections.
    configuration.addInstance("Parameter", ParameterWorker.class);
    // bind parameter should always go after parameter to make sure all
    // parameters have been properly setup.
    configuration.addInstance("BindParameter", BindParameterWorker.class);
    configuration.add("SupportsInformalParameters", new SupportsInformalParametersWorker());
    configuration.addInstance("RenderPhase", RenderPhaseMethodWorker.class);
    // Import advises methods, usually render phase methods, so it must come after RenderPhase.
    configuration.addInstance("Import", ImportWorker.class);
    configuration.add("Meta", metaWorker.getWorker());
    configuration.add("Retain", new RetainWorker());
    configuration.add("PageActivationContext", new PageActivationContextWorker());
    configuration.addInstance("ActivationRequestParameter", ActivationRequestParameterWorker.class);
    configuration.addInstance("Cached", CachedWorker.class);
    configuration.addInstance("DiscardAfter", DiscardAfterWorker.class);
    add(configuration, PageLoaded.class, TransformConstants.CONTAINING_PAGE_DID_LOAD_DESCRIPTION);
    add(configuration, PageAttached.class, TransformConstants.CONTAINING_PAGE_DID_ATTACH_DESCRIPTION);
    add(configuration, PageDetached.class, TransformConstants.CONTAINING_PAGE_DID_DETACH_DESCRIPTION);
    configuration.addInstance("PageReset", PageResetAnnotationWorker.class);
    configuration.addInstance("InjectService", InjectServiceWorker.class);
    configuration.addInstance("Inject", InjectWorker.class);
    configuration.addInstance("Persist", PersistWorker.class);
    configuration.addInstance("SessionAttribute", SessionAttributeWorker.class);
    configuration.addInstance("Log", LogWorker.class);
    configuration.addInstance("HeartbeatDeferred", HeartbeatDeferredWorker.class);
    // This one is always last. Any additional private fields that aren't
    // annotated will
    // be converted to clear out at the end of the request.
    configuration.addInstance("UnclaimedField", UnclaimedFieldWorker.class, "after:*");
}
Also used : PageActivationContextWorker(org.apache.tapestry5.internal.transform.PageActivationContextWorker) PropertyWorker(org.apache.tapestry5.internal.transform.PropertyWorker) MixinWorker(org.apache.tapestry5.internal.transform.MixinWorker) RetainWorker(org.apache.tapestry5.internal.transform.RetainWorker) ComponentWorker(org.apache.tapestry5.internal.transform.ComponentWorker) InjectComponentWorker(org.apache.tapestry5.internal.transform.InjectComponentWorker) RenderCommandWorker(org.apache.tapestry5.internal.transform.RenderCommandWorker) SupportsInformalParametersWorker(org.apache.tapestry5.internal.transform.SupportsInformalParametersWorker) MixinAfterWorker(org.apache.tapestry5.internal.transform.MixinAfterWorker) Primary(org.apache.tapestry5.ioc.annotations.Primary) Contribute(org.apache.tapestry5.ioc.annotations.Contribute)

Aggregations

FileInputStream (java.io.FileInputStream)2 InputStream (java.io.InputStream)2 HibernateConfigurer (org.apache.tapestry5.hibernate.HibernateConfigurer)2 HibernateSessionSource (org.apache.tapestry5.hibernate.HibernateSessionSource)2 DefaultHibernateConfigurer (org.apache.tapestry5.hibernate.internal.DefaultHibernateConfigurer)2 HibernateSessionSourceImpl (org.apache.tapestry5.hibernate.internal.HibernateSessionSourceImpl)2 PackageNameHibernateConfigurer (org.apache.tapestry5.hibernate.internal.PackageNameHibernateConfigurer)2 ClassReader (org.apache.tapestry5.internal.plastic.asm.ClassReader)2 Test (org.testng.annotations.Test)2 URL (java.net.URL)1 ArrayList (java.util.ArrayList)1 Formatter (java.util.Formatter)1 MultiZoneUpdate (org.apache.tapestry5.ajax.MultiZoneUpdate)1 Log (org.apache.tapestry5.annotations.Log)1 HibernateEntityPackageManager (org.apache.tapestry5.hibernate.HibernateEntityPackageManager)1 Track (org.apache.tapestry5.integration.app1.data.Track)1 ComponentWorker (org.apache.tapestry5.internal.transform.ComponentWorker)1 InjectComponentWorker (org.apache.tapestry5.internal.transform.InjectComponentWorker)1 MixinAfterWorker (org.apache.tapestry5.internal.transform.MixinAfterWorker)1 MixinWorker (org.apache.tapestry5.internal.transform.MixinWorker)1