Slides for our (John Rodriguez and myself) talk at Droidcon SF: http://sf.droidcon.com/schedule
For the past 3 years, Square Register Android has leveraged Dagger † to wire up Java objects. However, the app scope hierarchy and complexity increased and we started having bugs and crashes related to scoping errors. This talk will show how to structure an app around Dagger2 ‡ and present a strategy for incrementally migrating from Dagger1 to Dagger2.
Modularizing a project is never easy, a lot of files to move and the dependencies between them is not always what we expect. Then the Dagger configuration used in a single module project often doesn't scale well to a multi module project. Hilt is opinionated about the configuration to use (we don't need to argue anymore about using component dependencies or subcomponents!) and this configuration works perfectly even in a multi module project. In this talk we'll see first an introduction to Hilt and a comparison with Dagger to understand why it's easier to configure. Then we'll see how to leverage it in a multi module project (both in a standard layered architecture and in a Clean Architecture that uses the Dependency Inversion) to improve build speed and code testability. Spoiler alert: using sample apps that include a single feature in the app helps a lot!
Паразитируем на React-экосистеме (Angular 4+) / Алексей Охрименко (IPONWEB)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 5 июня, 13:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2470.html
Паразитизм — форма взаимоотношений между организмами различных видов, из которых один (паразит — aka Angular 4+) использует другого (хозяина — aka React) в качестве среды обитания и источника питания, нанося ему вред, но при этом не убивая.
Паразитоид — организм, который проводит значительную часть своей жизни (в личиночной стадии), проживая на или внутри своего единственного хозяина, которого он постепенно убивает в процессе.
...
A presentation made for the AngularJS-IL meetup group that took place in oct 2014 at Google TLV Campus (http://www.meetup.com/AngularJS-IL/events/207559572/)
its an overview of how to use services in your app. this slideshow contain a link for a reference code on github.
(link in the last slide)
Modularizing a project is never easy, a lot of files to move and the dependencies between them is not always what we expect. Then the Dagger configuration used in a single module project often doesn't scale well to a multi module project. Hilt is opinionated about the configuration to use (we don't need to argue anymore about using component dependencies or subcomponents!) and this configuration works perfectly even in a multi module project. In this talk we'll see first an introduction to Hilt and a comparison with Dagger to understand why it's easier to configure. Then we'll see how to leverage it in a multi module project (both in a standard layered architecture and in a Clean Architecture that uses the Dependency Inversion) to improve build speed and code testability. Spoiler alert: using sample apps that include a single feature in the app helps a lot!
Паразитируем на React-экосистеме (Angular 4+) / Алексей Охрименко (IPONWEB)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 5 июня, 13:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2470.html
Паразитизм — форма взаимоотношений между организмами различных видов, из которых один (паразит — aka Angular 4+) использует другого (хозяина — aka React) в качестве среды обитания и источника питания, нанося ему вред, но при этом не убивая.
Паразитоид — организм, который проводит значительную часть своей жизни (в личиночной стадии), проживая на или внутри своего единственного хозяина, которого он постепенно убивает в процессе.
...
A presentation made for the AngularJS-IL meetup group that took place in oct 2014 at Google TLV Campus (http://www.meetup.com/AngularJS-IL/events/207559572/)
its an overview of how to use services in your app. this slideshow contain a link for a reference code on github.
(link in the last slide)
Until now camera development has been very painful within android development. Although Camera2 API solved some of the problems in the original Camera API, however there were still lots of difficulties existed to write camera features. With the recent launch of JetPack CameraX support library, it aims to make camera app development easier by providing consistency and easy-to-use API that works on devices running Lollipop API-21 or above. In this talk, we will review main uses cases of CameraX Api which are preview, image analysis and image capture. We will also explore device-specific extensions such as portrait, HDR, night and beauty mode
Android JetPack is a collection of components, tools and architectural guidance to accelerate Android app development. It was announced during Google IO 2018. As of today, 80% of the top 1,000 apps in Google Play store are using JetPack. This year at Google IO, there have been many new updates and libraries announced. Most notably are CameraX and JetPack Compose. This talk with cover new libraries in detail with code demos.
Using Dagger in a Clean Architecture projectFabio Collini
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
This slide covers several topics, such as app startup, hilt, navigation, and datastore, which have been released this year, through Android 11 weeks.
Not only suggesting overview but also giving simple use cases.
An introduction to the complex single page web application framework known as AngularJs. An attempt to overview the high-level aspects of the framework, and to supply references for further exploration.
What is AngularJS
AngularJS main components
View / Controller / Module / Scope
Scope Inheritance.
Two way data binding
$watch / $digest / $apply
Dirty Checking
DI - Dependence Injection
$provider vs $factory vs $service
Антон Минашкин
Android разработчик с 5-летним стажем. Сейчас занимает должность Android Developer в GlobalLogic . Выступал на UA Mobile'14 , конференции "IT- ПЕРСПЕКТИВА" , Kyiv Android gathering , Android Dev Club и др . Cоорганизатор сообществ GDG Kremenchuk и IT Kremenchuk .
This presentation explains the benefits of Dagger 2, a Dependency Injections framework. It will be useful for Android developers.
The author of the presentation is Anton Minashkin (Android Developer, GlobalLogic); he delivered it at IT Saturday on June 6, 2015 in Kyiv.
Slides for my talk at the Square Presents - Streamlining Android Apps: https://corner.squareup.com/2015/06/streamlining-android-apps.html
In just a few few weeks, we reduced by 94% the OutOfMemoryError crashes in the Square Register Android app. We built squ.re/leakcanary to automatically detect memory leaks and make it very easy to fix them. This talk will cover the principles as well as the underlying implementation details. We'll dig into a few interesting examples and lessons learned.
Slides pour un talk à Droidcon Paris 2014: http://fr.droidcon.com/2014/agenda/detail?title=D%C3%A9fragmentez+vos+apps+avec+Mortar+!
Vous en avez marre de passer votre temps à jongler entre les 42 lifecycle callbacks des Fragments pour prévenir crashs et autre bugs, à halluciner devant le code de FragmentManagerImpl.moveToState(), sans jamais être sûrs de tout maîtriser ?
Défragmentez vos apps ! Mortar est une lib qui permet de se découpler de l’Activity et de modulariser votre code sous forme de Views et de Presenters, que vous pourrez très simplement réutiliser.
Ce talk est un retour d’expérience alternant principes généraux et exemples concrets basés sur Square Register. La suppression totale des fragments nous a permis d’implémenter une UI alternative pour tablette très rapidement, en réutilisant un maximum de composants existants.
Until now camera development has been very painful within android development. Although Camera2 API solved some of the problems in the original Camera API, however there were still lots of difficulties existed to write camera features. With the recent launch of JetPack CameraX support library, it aims to make camera app development easier by providing consistency and easy-to-use API that works on devices running Lollipop API-21 or above. In this talk, we will review main uses cases of CameraX Api which are preview, image analysis and image capture. We will also explore device-specific extensions such as portrait, HDR, night and beauty mode
Android JetPack is a collection of components, tools and architectural guidance to accelerate Android app development. It was announced during Google IO 2018. As of today, 80% of the top 1,000 apps in Google Play store are using JetPack. This year at Google IO, there have been many new updates and libraries announced. Most notably are CameraX and JetPack Compose. This talk with cover new libraries in detail with code demos.
Using Dagger in a Clean Architecture projectFabio Collini
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
This slide covers several topics, such as app startup, hilt, navigation, and datastore, which have been released this year, through Android 11 weeks.
Not only suggesting overview but also giving simple use cases.
An introduction to the complex single page web application framework known as AngularJs. An attempt to overview the high-level aspects of the framework, and to supply references for further exploration.
What is AngularJS
AngularJS main components
View / Controller / Module / Scope
Scope Inheritance.
Two way data binding
$watch / $digest / $apply
Dirty Checking
DI - Dependence Injection
$provider vs $factory vs $service
Антон Минашкин
Android разработчик с 5-летним стажем. Сейчас занимает должность Android Developer в GlobalLogic . Выступал на UA Mobile'14 , конференции "IT- ПЕРСПЕКТИВА" , Kyiv Android gathering , Android Dev Club и др . Cоорганизатор сообществ GDG Kremenchuk и IT Kremenchuk .
This presentation explains the benefits of Dagger 2, a Dependency Injections framework. It will be useful for Android developers.
The author of the presentation is Anton Minashkin (Android Developer, GlobalLogic); he delivered it at IT Saturday on June 6, 2015 in Kyiv.
Slides for my talk at the Square Presents - Streamlining Android Apps: https://corner.squareup.com/2015/06/streamlining-android-apps.html
In just a few few weeks, we reduced by 94% the OutOfMemoryError crashes in the Square Register Android app. We built squ.re/leakcanary to automatically detect memory leaks and make it very easy to fix them. This talk will cover the principles as well as the underlying implementation details. We'll dig into a few interesting examples and lessons learned.
Slides pour un talk à Droidcon Paris 2014: http://fr.droidcon.com/2014/agenda/detail?title=D%C3%A9fragmentez+vos+apps+avec+Mortar+!
Vous en avez marre de passer votre temps à jongler entre les 42 lifecycle callbacks des Fragments pour prévenir crashs et autre bugs, à halluciner devant le code de FragmentManagerImpl.moveToState(), sans jamais être sûrs de tout maîtriser ?
Défragmentez vos apps ! Mortar est une lib qui permet de se découpler de l’Activity et de modulariser votre code sous forme de Views et de Presenters, que vous pourrez très simplement réutiliser.
Ce talk est un retour d’expérience alternant principes généraux et exemples concrets basés sur Square Register. La suppression totale des fragments nous a permis d’implémenter une UI alternative pour tablette très rapidement, en réutilisant un maximum de composants existants.
L'app Square Register Android ne crashe pas. Enfin... presque pas!
La recette magique? Combiner une approche aggressive avec la remontée de métadonnées et un monitoring précis. Venez découvrir les outils et techniques qui nous permettent de développer une app gérant des paiements sans mourir de trouille!
http://www.mix-it.fr/session/3532/
Crash Fast - Square’s approach to Android crashes - Devoxx Be 2014Pierre-Yves Ricau
Slides for my talk at Devoxx Belgium 2014: http://cfp.devoxx.be/2014/talk/HFI-0894/Crash_Fast:_Square%E2%80%99s_approach_to_Android_crashes
The Square Register Android app has few crashes. Getting there requires a systematic approach: coding defensively, gathering information, measuring impact and improving architecture.
This talk presents our concrete steps towards lowering the crash rate, from the general philosophy to the tools we use, together with real crash examples.
Slides for my talk at Droidcon NYC 2015: http://droidcon.nyc/2015/dcnyc/2/
In just a few weeks, we reduced by 94% the OutOfMemoryError crashes in the Square Register Android app. We built squ.re/leakcanary to automatically detect memory leaks and make it very easy to fix them. This talk will cover the principles as well as the underlying implementation details. We'll dig into a few interesting examples and lessons learned.
Slides for my talk at Mobile Central Europe 2015 in Warsaw, Poland: http://mceconf.com/agenda.html#feb-6
Dagger, Flow and Mortar are open source libraries that form the backbone of Square’s flagship Register app. Use them to spend less time fighting the life cycle and more time coding (and unit testing).
Dependency Injection for Android @ Ciklum speakers corner Kiev 29. May 2014First Tuesday Bergen
We are happy to invite you to the Speakers’ Corner today, on Thursday May 29, from 18.30 till 19.30 at SkyPoint to meet Thomas Vervik, Head of Development Bipper Communications who will talk on “How to save money on QA - Dependency Injection and automated testing on Android”
Thomas is Head of Development for Bipper Communications, and has been managing the company's team in Kiev since February 2012. Originally a seasoned Java server backend/frontend developer, he has the last two years started mobile development, first with HTML 5 and later Android.
Mobile development has since its birth around 2008 gone from simple apps to more complex enterprise similar software. The increase in size and complexity yields the need for structuring the code differently in order to handle the new complexity. The tools used to handle this complexity has been applied to server side development for years, but mobile development has been lagging behind.
But not anymore. New frameworks built on proven paradigms are emerging, and in this Speakers Corner we will introduce Dependency Injection for Android, the motivation for its use, and one of the implementations - Dagger. Dependency Injection has several advantages, but in this presentation we will focus on how it enables to write proper automated tests.
We are happy to invite you to the Speakers’ Corner today, on Thursday May 29, from 18.30 till 19.30 at SkyPoint to meet Thomas Vervik, Head of Development Bipper Communications who will talk on “How to save money on QA - Dependency Injection and automated testing on Android”
Thomas is Head of Development for Bipper Communications, and has been managing the company's team in Kiev since February 2012. Originally a seasoned Java server backend/frontend developer, he has the last two years started mobile development, first with HTML 5 and later Android.
Mobile development has since its birth around 2008 gone from simple apps to more complex enterprise similar software. The increase in size and complexity yields the need for structuring the code differently in order to handle the new complexity. The tools used to handle this complexity has been applied to server side development for years, but mobile development has been lagging behind.
But not anymore. New frameworks built on proven paradigms are emerging, and in this Speakers Corner we will introduce Dependency Injection for Android, the motivation for its use, and one of the implementations - Dagger. Dependency Injection has several advantages, but in this presentation we will focus on how it enables to write proper automated tests.
This document provides step by step instructions on how to achieve dependency injection using dagger 2. The code is written in java. The code content is courtesy of Coding In Flow - You can check out this channel for in-depth explanation. https://www.youtube.com/watch?v=ZZ_qek0hGkM&list=PLrnPJCHvNZuA2ioi4soDZKz8euUQnJW65
Presented at FITC Toronto 2016
See details at www.fitc.ca
AngularJS was originally created in 2009 as an end-to-end solution for web designers wanting to build simple web apps. Over the last 6 years it has evolved into a component based MVC framework targeted at JavaScript developers. To maintain backward compatibility, Angular has had to hold onto many deprecated concepts. This has caused some of Angular’s APIs to be complex and easy to misuse. Angular 2 is a complete rewrite of Angular 1 which eliminates the outdated concepts and takes full advantage of modern web standards like ES6, TypeScript, and Web Components.
In this session you’ll learn which Angular 1 features to avoid and how to write an Angular 1 app that will be easy to migrate into Angular 2. We’ll go through the process of refactoring an Angular 1 app to prep it for migration. Then Rob will demonstrate how to incrementally migrate to Angular 2. You’ll come away from this session with a better understanding of what Angular 2 has to offer and how to start taking advantage of it.
Objective
To make the migration from Angular 1 to Angular 2 as painless as possible
Target Audience
Anyone using Angular 1 or interested in learning Angular 2.
Assumed Audience Knowledge
Some experience with JavaScript and Angular 1
Five Things Audience Members Will Learn
How to write an Angular 1 app that will be easy to migrate
Using TypeScript, ES6 modules, and the component router with Angular 1
The benefits of Angular 2
How to run Angular 1 and 2 in the same app
How to migrate an Angular 1 app to Angular 2
Daggerate your code - Write your own annotation processorBartosz Kosarzycki
Length: 30 min
Annotations have become a trendy topic in the Android community. Almost all automation & boiler-plate code elimination is done through annotations - starting from DTOs description (google.GSON), REST libraries (Retrofit) to dependency injection (google.Dagger2). But what if you want to eliminate boiler-plate code in your custom project? Or maybe you're writing a library for other Android-developers and you want to easily initialize that library with annotations.
This presentation walks you through the basic theory behind annotation processing and tells you how to write the most elemental annotation processor. Starting from annotation-search in the source code, source-code analysis and lastly source-code generation. The latter is done with the use of Square's JavaPoet library.
Gephi Toolkit Developer Tutorial.
The Gephi Toolkit project package essential modules (Graph, Layout, Filters, IO...) in a standard Java library, which any Java project can use for getting things done. The toolkit is just a single JAR that anyone could reuse.
This tutorial introduce the project, show possibilities and code examples to get started.
Workshop Apps with ReactNative III:
- React Native short Recap
- The Native Side
- Building Native Modules (iOS & Android)
- Building Native Components (iOS & Android)
Presentado por ingenieros Alberto Irurueta y Enrique Oriol
This presentation is about Dependency Injection using dagger2 in Android. I highly hope these slides would help you to understand dagger2.
Also, I provide a sample dagger2 repo. So if you want to add dagger2 in your project feel free to use this repo:
https://github.com/javadhme/dagger-master-project
One more thing, If these assets help you to understand dagger2 do not forget to star my github repo.
Similar to Sharper Better Faster Dagger ‡ - Droidcon SF (20)
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdffxintegritypublishin
Advancements in technology unveil a myriad of electrical and electronic breakthroughs geared towards efficiently harnessing limited resources to meet human energy demands. The optimization of hybrid solar PV panels and pumped hydro energy supply systems plays a pivotal role in utilizing natural resources effectively. This initiative not only benefits humanity but also fosters environmental sustainability. The study investigated the design optimization of these hybrid systems, focusing on understanding solar radiation patterns, identifying geographical influences on solar radiation, formulating a mathematical model for system optimization, and determining the optimal configuration of PV panels and pumped hydro storage. Through a comparative analysis approach and eight weeks of data collection, the study addressed key research questions related to solar radiation patterns and optimal system design. The findings highlighted regions with heightened solar radiation levels, showcasing substantial potential for power generation and emphasizing the system's efficiency. Optimizing system design significantly boosted power generation, promoted renewable energy utilization, and enhanced energy storage capacity. The study underscored the benefits of optimizing hybrid solar PV panels and pumped hydro energy supply systems for sustainable energy usage. Optimizing the design of solar PV panels and pumped hydro energy supply systems as examined across diverse climatic conditions in a developing country, not only enhances power generation but also improves the integration of renewable energy sources and boosts energy storage capacities, particularly beneficial for less economically prosperous regions. Additionally, the study provides valuable insights for advancing energy research in economically viable areas. Recommendations included conducting site-specific assessments, utilizing advanced modeling tools, implementing regular maintenance protocols, and enhancing communication among system components.
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...ssuser7dcef0
Power plants release a large amount of water vapor into the
atmosphere through the stack. The flue gas can be a potential
source for obtaining much needed cooling water for a power
plant. If a power plant could recover and reuse a portion of this
moisture, it could reduce its total cooling water intake
requirement. One of the most practical way to recover water
from flue gas is to use a condensing heat exchanger. The power
plant could also recover latent heat due to condensation as well
as sensible heat due to lowering the flue gas exit temperature.
Additionally, harmful acids released from the stack can be
reduced in a condensing heat exchanger by acid condensation. reduced in a condensing heat exchanger by acid condensation.
Condensation of vapors in flue gas is a complicated
phenomenon since heat and mass transfer of water vapor and
various acids simultaneously occur in the presence of noncondensable
gases such as nitrogen and oxygen. Design of a
condenser depends on the knowledge and understanding of the
heat and mass transfer processes. A computer program for
numerical simulations of water (H2O) and sulfuric acid (H2SO4)
condensation in a flue gas condensing heat exchanger was
developed using MATLAB. Governing equations based on
mass and energy balances for the system were derived to
predict variables such as flue gas exit temperature, cooling
water outlet temperature, mole fraction and condensation rates
of water and sulfuric acid vapors. The equations were solved
using an iterative solution technique with calculations of heat
and mass transfer coefficients and physical properties.
CW RADAR, FMCW RADAR, FMCW ALTIMETER, AND THEIR PARAMETERSveerababupersonal22
It consists of cw radar and fmcw radar ,range measurement,if amplifier and fmcw altimeterThe CW radar operates using continuous wave transmission, while the FMCW radar employs frequency-modulated continuous wave technology. Range measurement is a crucial aspect of radar systems, providing information about the distance to a target. The IF amplifier plays a key role in signal processing, amplifying intermediate frequency signals for further analysis. The FMCW altimeter utilizes frequency-modulated continuous wave technology to accurately measure altitude above a reference point.
About
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
• Remote control: Parallel or serial interface.
• Compatible with MAFI CCR system.
• Compatible with IDM8000 CCR.
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
• Easy in configuration using DIP switches.
Technical Specifications
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
Key Features
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
• Remote control: Parallel or serial interface
• Compatible with MAFI CCR system
• Copatiable with IDM8000 CCR
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
Application
• Remote control: Parallel or serial interface.
• Compatible with MAFI CCR system.
• Compatible with IDM8000 CCR.
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
• Easy in configuration using DIP switches.
18. @Module class AndroidModule {…}
@Module class HttpModule {…}
@Module class ApiModule {…}
@Module class LoggedInModule {…}
@Module class PaymentModule {…}
@Module class TransactionLedgerModule {…}
…
108. @Singleton public class TransactionHandler {...}
@Module(injects = TransactionFlow.class)
public class TransactionModule {}
109. @Singleton public class TransactionHandler {...}
@Module(injects = TransactionFlow.class)
public class TransactionModule {}
@Scope public @interface SingleInTransaction {}
110. @SingleInTransaction public class TransactionHandler {...}
@Module(injects = TransactionFlow.class)
public class TransactionModule {}
@Scope public @interface SingleInTransaction {}
111. @SingleInTransaction public class TransactionHandler {...}
@Module(injects = TransactionFlow.class)
public class TransactionModule {}
@Scope public @interface SingleInTransaction {}
@Component
interface TransactionComponent {
}
112. @SingleInTransaction public class TransactionHandler {...}
@Module(injects = TransactionFlow.class)
public class TransactionModule {}
@Scope public @interface SingleInTransaction {}
@SingleInTransaction
@Component
interface TransactionComponent {
}
113. @SingleInTransaction public class TransactionHandler {...}
@Module(injects = TransactionFlow.class)
public class TransactionModule {}
@Scope public @interface SingleInTransaction {}
@SingleInTransaction
@Component(modules = TransactionModule.class)
interface TransactionComponent {
}
114. @SingleInTransaction public class TransactionHandler {...}
@Module
public class TransactionModule {}
@Scope public @interface SingleInTransaction {}
@SingleInTransaction
@Component(modules = TransactionModule.class)
interface TransactionComponent {
TransactionFlow transactionFlow();
}
115. @SingleInTransaction public class TransactionHandler {...}
@Module
public class TransactionModule {}
@Scope public @interface SingleInTransaction {}
@SingleInTransaction
@Component(modules = TransactionModule.class)
interface TransactionComponent {
TransactionFlow transactionFlow();
}
116. @SingleInTransaction public class TransactionHandler {...}
@Module
public class TransactionModule {}
@Scope public @interface SingleIn { Class<?> value(); }
@SingleInTransaction
@Component(modules = TransactionModule.class)
interface TransactionComponent {
TransactionFlow transactionFlow();
}
117. @SingleIn(TransactionComponent.class) public class TransactionHandler {...}
@Module
public class TransactionModule {}
@Scope public @interface SingleIn { Class<?> value(); }
@SingleInTransaction
@Component(modules = TransactionModule.class)
interface TransactionComponent {
TransactionFlow transactionFlow();
}
118. @SingleIn(TransactionComponent.class) public class TransactionHandler {...}
@Module
public class TransactionModule {}
@Scope public @interface SingleIn { Class<?> value(); }
@SingleIn(TransactionComponent.class)
@Component(modules = TransactionModule.class)
interface TransactionComponent {
TransactionFlow transactionFlow();
}