SlideShare uma empresa Scribd logo
1 de 130
Baixar para ler offline
ANDREW SWAN | SENIOR DEVELOPER | ATLASSIAN | @ANDREWSWAN_AU
Declaring
Server App Components
in Pure Java
Back-end
developers of
Server apps (P2
plugins)
INTENDED AUDIENCE
About me
About me
6 Year Atlassian
About me
6 Year Atlassian 1st Atlas Camp!
About me
6 Year Atlassian Sydney, Australia1st Atlas Camp!
About me
6 Year Atlassian Sydney, Australia Server Java
Platform team
1st Atlas Camp!
Agenda
What are components?
Current technologies
Spring Java config
Using Java config in Server apps
Resources
What are components?
What are components?
All Server products support
apps
P2 plugins
What are components?
All Server products support
apps
P2 plugins
Apps are made up of
components
Spring beans
What are components?
Some components are
internal to the app
Optionally exported to OSGi
All Server products support
apps
P2 plugins
Apps are made up of
components
Spring beans
What are components?
Some components are
internal to the app
Optionally exported to OSGi
Some components are
external to the app
Imported via OSGi from product or
other apps
All Server products support
apps
P2 plugins
Apps are made up of
components
Spring beans
Product
Product
OSGi container
Product
OSGi container
OSGi Service Registry
Product
OSGi container
OSGi Service Registry
System bundle (0)
(core product)
Product
OSGi container
OSGi Service Registry
App 1 App 2..nSystem bundle (0)
(core product)
Product
OSGi container
OSGi Service Registry
App 1 App 2..n
Spring Spring
System bundle (0)
(core product)
Product
OSGi container
OSGi Service Registry
App 1 App 2..n
Spring Spring
System bundle (0)
(core product)
A
Product
OSGi container
OSGi Service Registry
App 1 App 2..n
Spring Spring
System bundle (0)
(core product)
A
B
Product
OSGi container
OSGi Service Registry
App 1 App 2..n
Spring Spring
System bundle (0)
(core product)
A
B` B
Product
OSGi container
OSGi Service Registry
App 1 App 2..n
Spring Spring
System bundle (0)
(core product)
A
C
B` B
Agenda
What are components?
Current technologies
Spring Java config
Using Java config in Server apps
Resources
Current technology 1
Plugin XML
(c. 2004)
Plugin XML
How
Cons
Plugin XML
How
Cons
Internal components
<component key=“…” class=“…”>
Plugin XML
How
Cons
Internal components
<component key=“…” class=“…”>
Exported components
<component key=“…” class=“…” public=“true”>
Plugin XML
How
Cons
Internal components
<component key=“…” class=“…”>
Exported components
<component key=“…” class=“…” public=“true”>
Imported components
<component-import key=“…”>
<interface class=“…”/>
Plugin XML
How
Cons
Internal components
<component key=“…” class=“…”>
Exported components
<component key=“…” class=“…” public=“true”>
Imported components
<component-import key=“…”>
<interface class=“…”/>
Module types (custom plugin points)
<module-type key=“…” class=“…”>
Plugin XML
How
Cons
Plugin XML
How
Cons
Runtime cost
Plugin system transforms your JAR to a Spring-powered
OSGi bundle
Plugin XML
How
Cons
Runtime cost
Plugin system transforms your JAR to a Spring-powered
OSGi bundle
Inflexible
Limited to a few XML elements & attributes; no support
for conditions; no control over autowiring
Plugin XML
How
Cons
Runtime cost
Plugin system transforms your JAR to a Spring-powered
OSGi bundle
Inflexible
Limited to a few XML elements & attributes; no support
for conditions; no control over autowiring
Unreliable
e.g. problems with Java 9 module-info.class files
Plugin XML
How
Cons
Runtime cost
Plugin system transforms your JAR to a Spring-powered
OSGi bundle
Inflexible
Limited to a few XML elements & attributes; no support
for conditions; no control over autowiring
Unreliable
e.g. problems with Java 9 module-info.class files
Poor tooling
No XML schema
Current technology 2
Spring Scanner
(c. 2013)
Spring
Scanner
How (1)
How (2)
Pros
Cons
Spring
Scanner
How (1)
How (2)
Pros
Cons
Internal components
@Component, @Named
Spring
Scanner
How (1)
How (2)
Pros
Cons
Internal components
@Component, @Named
Exported components
@ExportAsService
Spring
Scanner
How (1)
How (2)
Pros
Cons
Internal components
@Component, @Named
Exported components
@ExportAsService
Imported components
@ComponentImport
Spring
Scanner
How (1)
How (2)
Pros
Cons
Internal components
@Component, @Named
Exported components
@ExportAsService
Imported components
@ComponentImport
Module types (custom plugin points)
@ModuleType
Spring
Scanner
How (1)
How (2)
Pros
Cons
Spring
Scanner
How (1)
How (2)
Pros
Cons
1. Scan for annotations
@Component, @ComponentImport, etc.
Spring
Scanner
How (1)
How (2)
Pros
Cons
1. Scan for annotations
@Component, @ComponentImport, etc.
2. Generate “index” files
In META-INF/plugin-components
Spring
Scanner
How (1)
How (2)
Pros
Cons
1. Scan for annotations
@Component, @ComponentImport, etc.
2. Generate “index” files
In META-INF/plugin-components
3. Bundle index files into JAR
Using maven-resources-plugin
Spring
Scanner
How (1)
How (2)
Pros
Cons
1. Scan for annotations
@Component, @ComponentImport, etc.
2. Generate “index” files
In META-INF/plugin-components
3. Bundle index files into JAR
Using maven-resources-plugin
4. (runtime) Generate bean definitions
The scan-indexes element in Spring XML activates a
BeanFactoryPostProcessor
Spring
Scanner
How (1)
How (2)
Pros
Cons
Spring
Scanner
How (1)
How (2)
Pros
Cons
No transformation
Maven build generates a valid OSGi bundle
Spring
Scanner
How (1)
How (2)
Pros
Cons
No transformation
Maven build generates a valid OSGi bundle
Less XML
Plugin XML no longer defines components
Spring
Scanner
How (1)
How (2)
Pros
Cons
Spring
Scanner
How (1)
How (2)
Pros
Cons
Long toolchain
Several places where things can go wrong
Spring
Scanner
How (1)
How (2)
Pros
Cons
Long toolchain
Several places where things can go wrong
No good place for @ComponentImport
Separate wiring class, or per parameter?
Spring
Scanner
How (1)
How (2)
Pros
Cons
Long toolchain
Several places where things can go wrong
No good place for @ComponentImport
Separate wiring class, or per parameter?
Clashes between imported services
e.g. Jira’s vs SAL’s ApplicationProperties
Spring
Scanner
How (1)
How (2)
Pros
Cons
Long toolchain
Several places where things can go wrong
No good place for @ComponentImport
Separate wiring class, or per parameter?
Clashes between imported services
e.g. Jira’s vs SAL’s ApplicationProperties
DI concerns leak into production code
All components require annotations
Spring
Scanner
How (1)
How (2)
Pros
Cons
Long toolchain
Several places where things can go wrong
No good place for @ComponentImport
Separate wiring class, or per parameter?
Clashes between imported services
e.g. Jira’s vs SAL’s ApplicationProperties
DI concerns leak into production code
All components require annotations
Atlassian-specific
New hires require special training
Current technology 3
Spring XML
(c. 2002)
Spring
XML
How
Pros
Cons
Spring
XML
How
Pros
Add <bean> elements
Any XML file in META-INF/spring
Cons
Spring
XML
How
Pros
Add <bean> elements
Any XML file in META-INF/spring
Cons
Use osgi namespace
Import and export services
Spring
XML
How
Pros
Cons
Spring
XML
How
Pros
Cohesive
All DI concerns in one place
Cons
Spring
XML
How
Pros
Cohesive
All DI concerns in one place
Cons
Tool support
Most IDEs understand Spring XML
Spring
XML
How
Pros
Cons
Spring
XML
How
Pros
Inflexible
Limited to what the schemas allow
Cons
Spring
XML
How
Pros
Inflexible
Limited to what the schemas allow
Limited reuse
Importing is the only way to compose XML files
Cons
Spring
XML
How
Pros
Inflexible
Limited to what the schemas allow
Limited reuse
Importing is the only way to compose XML files
Cons
Slow dev loop
Errors only apparent at runtime
Agenda
What are components?
Current technologies
Spring Java config
Using Java config in Server apps
Resources
Spring Java config
(c. 2009)
Spring
Java config
How
Pros
Cons
Spring
Java config
How
Pros
Define @Configuration classes
Anywhere in your project.
Cons
Spring
Java config
How
Pros
Define @Configuration classes
Anywhere in your project.
Cons
Define @Bean methods
In your @Configuration classes.
Spring
Java config
How
Pros
Define @Configuration classes
Anywhere in your project.
Cons
Define @Bean methods
In your @Configuration classes.
Compose @Configuration classes
Use normal patterns or @Import.
Spring
Java config
How
Pros
Define @Configuration classes
Anywhere in your project.
Cons
Define @Bean methods
In your @Configuration classes.
Compose @Configuration classes
Use normal patterns or @Import.
Apply @Conditional annotations
To turn beans on/off.
Spring Java config - examples (1)
@Configuration
public class MySpringBeans {
@Bean
public FooService fooService() {
return new FooServiceImpl();
}
}
Spring Java config - examples (1)
@Bean
@Conditional(MyCondition.class)
public FooService fooService() {
return new FooServiceImpl();
}
Spring Java config - examples (2)
@Bean
@Conditional(MyCondition.class)
public FooService fooService() {
return new FooServiceImpl();
}
Spring Java config - examples (2)
public class MyCondition implements Condition {
public boolean matches(ConditionContext context,
AnnotatedTypeMetadata annotatedType) {
return true;
}
}
Spring Java config - examples (3)
@Bean
public FooService fooService1() {
return new FooServiceImpl(bazService()); // method style
}
@Bean
public FooService fooService2(BazService bazService) {
return new FooServiceImpl(bazService); // param style
}
Spring Java config - examples (3)
@Bean
public FooService fooService1() {
return new FooServiceImpl(bazService()); // method style
}
Spring
Java config
How
Pros
Cons
Spring
Java config
How
Pros
It’s Java
Powerful, familiar, great tooling
Cons
Spring
Java config
How
Pros
It’s Java
Powerful, familiar, great tooling
Cons
Conditions
Great for cross-product or cross-version apps
Spring
Java config
How
Pros
It’s Java
Powerful, familiar, great tooling
Cons
Conditions
Great for cross-product or cross-version apps
Simple
Short toolchain
Spring
Java config
How
Pros
It’s Java
Powerful, familiar, great tooling
Cons
Conditions
Great for cross-product or cross-version apps
Simple
Short toolchain
Clean
No DI concerns in production code
Spring
Java config
How
Pros
Cons
Spring
Java config
How
Pros
More dependencies
… to manage
Cons
Spring
Java config
How
Pros
More dependencies
… to manage
Cons
It’s code
… so keep it under control
Spring
Java config
How
Pros
More dependencies
… to manage
Cons
It’s code
… so keep it under control
OSGi services require boilerplate
… but sit tight for an Atlas Camp exclusive!
Agenda
What are components?
Current technologies
Spring Java config
Using Java config in Server apps
Resources
Java config in
Server apps
Products
Dependencies
Spring Java config requires Spring 3.x →
Plugins 4.x → Platform 3.x:
◦ Bamboo >= 6.2
◦ Bitbucket >= 5.3
◦ Confluence >= 6.4
◦ Crowd >= 3.0
◦ Fecru >= 4.5
◦ Jira >= 7.5
Packages
Tips
Examples
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Registering a config class
<context:annotation-config />
<bean class=“com.example.javaconfig.MyConfig” />
Registering a config class
<context:annotation-config />
<bean class=“com.example.javaconfig.MyConfig” />
Registering a config class
<context:component-scan base-package="com.example.javaconfig" />
or
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Importing an OSGi service
Registering a config class
@Bean
public ApplicationProperties applicationProperties() {
return importOsgiService(ApplicationProperties.class);
}
Importing an OSGi service
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Importing an OSGi service
Exporting a service to OSGi
Registering a config class
@Bean
public FooService fooService() {
return new FooServiceImpl();
}
Exporting a service to OSGi
@Bean
public FactoryBean<ServiceRegistration> exportFooService() {
Map<String, Object> serviceProps = …; // you decide
return exportOsgiService(
fooService(), serviceProps, FooService.class);
}
@Bean
public FooService fooService() {
return new FooServiceImpl();
}
Exporting a service to OSGi
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Importing an OSGi service
Exporting a service to OSGi
Defining a module type
Registering a config class
@Bean
public ListableModuleDescriptorFactory
myModuleDescriptorFactory() {
return new MyModuleDescriptorFactory();
}
Defining a module type
@Bean
public ListableModuleDescriptorFactory
myModuleDescriptorFactory() {
return new MyModuleDescriptorFactory();
}
@Bean
public FactoryBean<ServiceRegistration> myModuleType() {
return exportAsModuleType(myModuleDescriptorFactory());
}
Defining a module type
Where do all
these helper
methods
come from?
Atlas Camp
2019
Exclusive!
<dependency>
<groupId>com.atlassian.plugins</…>
<artifactId>atlassian-plugins-osgi-javaconfig</…>
<version>0.1.1</…>
</dependency>
NEW JAVA CONFIG LIBRARY!
New Java
config library!
Helper methods
Conditions
Config classes
More
New Java
config library!
Helper methods
Conditions
Config classes
More
Import an OSGi service (or factory)
New Java
config library!
Helper methods
Conditions
Config classes
More
Import an OSGi service (or factory)
Export an OSGi service
New Java
config library!
Helper methods
Conditions
Config classes
More
Import an OSGi service (or factory)
Export an OSGi service
Define a module type
New Java
config library!
Helper methods
Conditions
Config classes
More
New Java
config library!
Helper methods
Conditions
Config classes
More
Host product
All the Server products, e.g. JiraOnly.class
New Java
config library!
Helper methods
Conditions
Config classes
More
Host product
All the Server products, e.g. JiraOnly.class
Any system property
Checks the system property of your choice
New Java
config library!
Helper methods
Conditions
Config classes
More
Host product
All the Server products, e.g. JiraOnly.class
Dev mode
Checks the atlassian.dev.mode system property
Any system property
Checks the system property of your choice
New Java
config library!
Helper methods
Conditions
Config classes
More
Prebuilt config classes with beans for:
◦ ModuleFactory
◦ PluginAccessor
New Java
config library!
Helper methods
Conditions
Config classes
More
New Java
config library!
Helper methods
Conditions
Config classes
More
Easier plugin points
Superclass for your ListableModuleDescriptorFactory
New Java
config library!
Helper methods
Conditions
Config classes
More
Easier plugin points
Superclass for your ListableModuleDescriptorFactory
Automatic package imports
… of packages required for Java Config
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Spring:
◦ org.springframework:
◦ spring-beans
◦ spring-context
OSGi:
◦ org.apache.felix:
◦ org.apache.felix.framework
◦ com.atlassian.plugins:
◦ atlassian-plugins-osgi-javaconfig
NEW LIBRARY!
(OPTIONAL)
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
◦ org.springframework.cglib.core
◦ org.springframework.cglib.proxy
◦ org.springframework.cglib.reflect
◦
Import these packages from OSGi:
Tip: if you use our new library, BND will generate these for you.
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Keep it simple
No long classes/methods
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Keep it simple
No long classes/methods
Be consistent
Choose params or method calls, and stick to it
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Keep it simple
No long classes/methods
Be consistent
Choose params or method calls, and stick to it
Be aware
Spring turns your classes into bean definitions
Java config in
Server apps
Products
Dependencies
Packages
Tips
Examples
Keep it simple
No long classes/methods
Be consistent
Choose params or method calls, and stick to it
Be aware
Spring turns your classes into bean definitions
Be testable
Create seams in your config classes
Spring Java config - summary
Powerful
Java + conditions
Spring Java config - summary
Powerful
Java + conditions
Reliable
Short tool chain
Spring Java config - summary
Powerful
Java + conditions
Reliable
Short tool chain
Familiar
It’s Java!
Spring Java config - summary
Powerful
Java + conditions
Reliable
Short tool chain
Familiar
It’s Java!
Clean
All DI in one place
Spring Java config - summary
Agenda
What are components?
Current technologies
Spring Java config
Using Java config in Server apps
Resources
Sample P2 app (Bitbucket):
https://tinyurl.com/sjc-demo
Atlassian documentation (atlassian.com):
https://tinyurl.com/sjc-doco
Spring documentation (spring.io):
https://tinyurl.com/jc-docs
Spring Java config tutorial (YouTube):
https://tinyurl.com/jc-tutorial
Resources

Mais conteúdo relacionado

Mais procurados

Integrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteIntegrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteAtlassian
 
Serverless Analytics and Monitoring For Your Cloud App
Serverless Analytics and Monitoring For Your Cloud AppServerless Analytics and Monitoring For Your Cloud App
Serverless Analytics and Monitoring For Your Cloud AppAtlassian
 
What's New in Jira Cloud for Developers
What's New in Jira Cloud for DevelopersWhat's New in Jira Cloud for Developers
What's New in Jira Cloud for DevelopersAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
An Exploration of Cross-product App Experiences
An Exploration of Cross-product App ExperiencesAn Exploration of Cross-product App Experiences
An Exploration of Cross-product App ExperiencesAtlassian
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the HoodAtlassian
 
4 Changes We're Making to Help you be Successful in the Cloud
4 Changes We're Making to Help you be Successful in the Cloud4 Changes We're Making to Help you be Successful in the Cloud
4 Changes We're Making to Help you be Successful in the CloudAtlassian
 
The User Who Must Not be Named: GDPR and Your Jira App
The User Who Must Not be Named: GDPR and Your Jira AppThe User Who Must Not be Named: GDPR and Your Jira App
The User Who Must Not be Named: GDPR and Your Jira AppAtlassian
 
Integrate CI/CD Pipelines with Jira Software Cloud
Integrate CI/CD Pipelines with Jira Software CloudIntegrate CI/CD Pipelines with Jira Software Cloud
Integrate CI/CD Pipelines with Jira Software CloudAtlassian
 
Discover the Possibilities of the Jira Cloud Asset API
Discover the Possibilities of the Jira Cloud Asset APIDiscover the Possibilities of the Jira Cloud Asset API
Discover the Possibilities of the Jira Cloud Asset APIAtlassian
 
What Does Jira Next-Gen Mean for Cloud Apps?
What Does Jira Next-Gen Mean for Cloud Apps?What Does Jira Next-Gen Mean for Cloud Apps?
What Does Jira Next-Gen Mean for Cloud Apps?Atlassian
 
Building Secure Apps in the Cloud
Building Secure Apps in the CloudBuilding Secure Apps in the Cloud
Building Secure Apps in the CloudAtlassian
 
What's New in AUI 8 and Why you Should Care!
What's New in AUI 8 and Why you Should Care!What's New in AUI 8 and Why you Should Care!
What's New in AUI 8 and Why you Should Care!Atlassian
 
Preparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsPreparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsAtlassian
 
Technical Deep Dive Into Atlassian's New Apps Performance Testing Framework
Technical Deep Dive Into Atlassian's New Apps Performance Testing FrameworkTechnical Deep Dive Into Atlassian's New Apps Performance Testing Framework
Technical Deep Dive Into Atlassian's New Apps Performance Testing FrameworkAtlassian
 
Updates on the Data Center Apps Program
Updates on the Data Center Apps ProgramUpdates on the Data Center Apps Program
Updates on the Data Center Apps ProgramAtlassian
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAtlassian
 
Designing and Running a GraphQL API
Designing and Running a GraphQL APIDesigning and Running a GraphQL API
Designing and Running a GraphQL APIAtlassian
 
Creating Your Own Server Add-on that Customizes Confluence or JIRA
Creating Your Own Server Add-on that Customizes Confluence or JIRACreating Your Own Server Add-on that Customizes Confluence or JIRA
Creating Your Own Server Add-on that Customizes Confluence or JIRAAtlassian
 
Herding Microservices – the Atlassian Way
Herding Microservices – the Atlassian WayHerding Microservices – the Atlassian Way
Herding Microservices – the Atlassian WayAtlassian
 

Mais procurados (20)

Integrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteIntegrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code Suite
 
Serverless Analytics and Monitoring For Your Cloud App
Serverless Analytics and Monitoring For Your Cloud AppServerless Analytics and Monitoring For Your Cloud App
Serverless Analytics and Monitoring For Your Cloud App
 
What's New in Jira Cloud for Developers
What's New in Jira Cloud for DevelopersWhat's New in Jira Cloud for Developers
What's New in Jira Cloud for Developers
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
An Exploration of Cross-product App Experiences
An Exploration of Cross-product App ExperiencesAn Exploration of Cross-product App Experiences
An Exploration of Cross-product App Experiences
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
4 Changes We're Making to Help you be Successful in the Cloud
4 Changes We're Making to Help you be Successful in the Cloud4 Changes We're Making to Help you be Successful in the Cloud
4 Changes We're Making to Help you be Successful in the Cloud
 
The User Who Must Not be Named: GDPR and Your Jira App
The User Who Must Not be Named: GDPR and Your Jira AppThe User Who Must Not be Named: GDPR and Your Jira App
The User Who Must Not be Named: GDPR and Your Jira App
 
Integrate CI/CD Pipelines with Jira Software Cloud
Integrate CI/CD Pipelines with Jira Software CloudIntegrate CI/CD Pipelines with Jira Software Cloud
Integrate CI/CD Pipelines with Jira Software Cloud
 
Discover the Possibilities of the Jira Cloud Asset API
Discover the Possibilities of the Jira Cloud Asset APIDiscover the Possibilities of the Jira Cloud Asset API
Discover the Possibilities of the Jira Cloud Asset API
 
What Does Jira Next-Gen Mean for Cloud Apps?
What Does Jira Next-Gen Mean for Cloud Apps?What Does Jira Next-Gen Mean for Cloud Apps?
What Does Jira Next-Gen Mean for Cloud Apps?
 
Building Secure Apps in the Cloud
Building Secure Apps in the CloudBuilding Secure Apps in the Cloud
Building Secure Apps in the Cloud
 
What's New in AUI 8 and Why you Should Care!
What's New in AUI 8 and Why you Should Care!What's New in AUI 8 and Why you Should Care!
What's New in AUI 8 and Why you Should Care!
 
Preparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsPreparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom Domains
 
Technical Deep Dive Into Atlassian's New Apps Performance Testing Framework
Technical Deep Dive Into Atlassian's New Apps Performance Testing FrameworkTechnical Deep Dive Into Atlassian's New Apps Performance Testing Framework
Technical Deep Dive Into Atlassian's New Apps Performance Testing Framework
 
Updates on the Data Center Apps Program
Updates on the Data Center Apps ProgramUpdates on the Data Center Apps Program
Updates on the Data Center Apps Program
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Designing and Running a GraphQL API
Designing and Running a GraphQL APIDesigning and Running a GraphQL API
Designing and Running a GraphQL API
 
Creating Your Own Server Add-on that Customizes Confluence or JIRA
Creating Your Own Server Add-on that Customizes Confluence or JIRACreating Your Own Server Add-on that Customizes Confluence or JIRA
Creating Your Own Server Add-on that Customizes Confluence or JIRA
 
Herding Microservices – the Atlassian Way
Herding Microservices – the Atlassian WayHerding Microservices – the Atlassian Way
Herding Microservices – the Atlassian Way
 

Semelhante a Declaring Server App Components in Pure Java

Selenium-Browser-Based-Automated-Testing-for-Grails-Apps
Selenium-Browser-Based-Automated-Testing-for-Grails-AppsSelenium-Browser-Based-Automated-Testing-for-Grails-Apps
Selenium-Browser-Based-Automated-Testing-for-Grails-Appschrisb206 chrisb206
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyTim Pettersen
 
Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Pavel Kaminsky
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudCarlos Sanchez
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With SeleniumMarakana Inc.
 
The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's Howmrdon
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Spring boot - an introduction
Spring boot - an introductionSpring boot - an introduction
Spring boot - an introductionJonathan Holloway
 
Play Framework on Google App Engine
Play Framework on Google App EnginePlay Framework on Google App Engine
Play Framework on Google App EngineFred Lin
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineAlexander Zamkovyi
 
Spring MVC framework
Spring MVC frameworkSpring MVC framework
Spring MVC frameworkMohit Gupta
 
Spring Framework
Spring FrameworkSpring Framework
Spring Frameworknomykk
 
Building JBoss AS 7 for Fedora
Building JBoss AS 7 for FedoraBuilding JBoss AS 7 for Fedora
Building JBoss AS 7 for Fedorawolfc71
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaAmazon Web Services
 

Semelhante a Declaring Server App Components in Pure Java (20)

Selenium-Browser-Based-Automated-Testing-for-Grails-Apps
Selenium-Browser-Based-Automated-Testing-for-Grails-AppsSelenium-Browser-Based-Automated-Testing-for-Grails-Apps
Selenium-Browser-Based-Automated-Testing-for-Grails-Apps
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
 
Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With Selenium
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's How
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Spring boot - an introduction
Spring boot - an introductionSpring boot - an introduction
Spring boot - an introduction
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Play Framework on Google App Engine
Play Framework on Google App EnginePlay Framework on Google App Engine
Play Framework on Google App Engine
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Integration Testing in Python
Integration Testing in PythonIntegration Testing in Python
Integration Testing in Python
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App Engine
 
Spring MVC framework
Spring MVC frameworkSpring MVC framework
Spring MVC framework
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Building JBoss AS 7 for Fedora
Building JBoss AS 7 for FedoraBuilding JBoss AS 7 for Fedora
Building JBoss AS 7 for Fedora
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 

Mais de Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelAtlassian
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemAtlassian
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginAtlassian
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingAtlassian
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterAtlassian
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindAtlassian
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Atlassian
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsAtlassian
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 
Shipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsShipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsAtlassian
 
Build With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionBuild With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionAtlassian
 
How to Grow an Atlassian App Worthy of Top Vendor Status
How to Grow an Atlassian App Worthy of Top Vendor StatusHow to Grow an Atlassian App Worthy of Top Vendor Status
How to Grow an Atlassian App Worthy of Top Vendor StatusAtlassian
 

Mais de Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 
Shipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsShipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature Flags
 
Build With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionBuild With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work Edition
 
How to Grow an Atlassian App Worthy of Top Vendor Status
How to Grow an Atlassian App Worthy of Top Vendor StatusHow to Grow an Atlassian App Worthy of Top Vendor Status
How to Grow an Atlassian App Worthy of Top Vendor Status
 

Último

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Último (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

Declaring Server App Components in Pure Java