source: osm/applications/editors/josm/plugins/pom.xml@ 36422

Last change on this file since 36422 was 36422, checked in by taylor.smock, 4 days ago

See #23716: Update SNAPSHOT to 1.0-SNAPSHOT for plugin versions

File size: 23.4 KB
Line 
1<?xml version="1.0"?>
2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4 <modelVersion>4.0.0</modelVersion>
5 <groupId>org.openstreetmap.josm.plugins</groupId>
6 <artifactId>plugin-root</artifactId>
7 <version>1.0-SNAPSHOT</version>
8 <parent>
9 <groupId>org.openstreetmap.josm</groupId>
10 <artifactId>josm-parent</artifactId>
11 <version>SNAPSHOT</version>
12 <relativePath>../core/nodist/pom.xml</relativePath>
13 </parent>
14
15 <name>JOSM Plugins</name>
16 <url>https://josm.openstreetmap.de</url>
17 <properties>
18 <josm>../../core/dist/josm-custom.jar</josm>
19 <josm.test.build.dir>../../core/test/build</josm.test.build.dir>
20 <java.lang.version>11</java.lang.version>
21 <maven.compiler.release>${java.lang.version}</maven.compiler.release>
22 <plugin.tools.dir>../00_tools</plugin.tools.dir>
23 <plugin.build.dir>build</plugin.build.dir>
24 <plugin.test.dir>test</plugin.test.dir>
25 <plugin.test.data.dir>${plugin.test.dir}/data</plugin.test.data.dir>
26 <plugin.test.src.dir>${plugin.test.dir}/unit</plugin.test.src.dir>
27 <plugin.src.dir>src</plugin.src.dir>
28 <!-- most plugins default to resource directories in root, e.g. ./data, ./images, ./resources -->
29 <plugin.resources.dir>${project.basedir}</plugin.resources.dir>
30 <plugin.doc.dir>javadoc</plugin.doc.dir>
31 <plugin.lib.dir>lib</plugin.lib.dir>
32 <!-- this is the directory where the plugin jar is copied to -->
33 <!-- We specifically don't want to put the new jars in dist just yet, this may change sometime -->
34 <plugin.dist.dir>../../distMaven</plugin.dist.dir>
35 <javadoc.executable>javadoc</javadoc.executable>
36 <manifest>MANIFEST</manifest>
37 <manifest.unixoid>MANIFEST-unixoid</manifest.unixoid>
38 <manifest.windows>MANIFEST-windows</manifest.windows>
39 <manifest.osx>MANIFEST-osx</manifest.osx>
40 <plugin.compile.version>1.5-SNAPSHOT</plugin.compile.version>
41 <plugin.jar>${project.name}.jar</plugin.jar>
42 <plugin.unixoid.jar>${project.name}-unixoid.jar</plugin.unixoid.jar>
43 <plugin.windows.jar>${project.name}-windows.jar</plugin.windows.jar>
44 <plugin.osx.jar>${project.name}-osx.jar</plugin.osx.jar>
45 <plugin.sources.jar>${project.name}-sources.jar</plugin.sources.jar>
46 <plugin.javadoc.jar>${project.name}-javadoc.jar</plugin.javadoc.jar>
47 <jacoco.inclbootstrapclasses>false</jacoco.inclbootstrapclasses>
48 <jacoco.inclnolocationclasses>false</jacoco.inclnolocationclasses>
49 <junit.printsummary>on</junit.printsummary>
50 <sonar.projectKey>JOSM-Plugins</sonar.projectKey>
51 <geotools.version>31.1</geotools.version>
52 </properties>
53 <packaging>pom</packaging>
54 <inceptionYear>2005</inceptionYear>
55 <licenses>
56 <license>
57 <name>GPL-2.0-or-later</name>
58 <url>https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html</url>
59 <distribution>repo</distribution>
60 </license>
61 </licenses>
62 <organization>
63 <name>JOSM</name>
64 <url>https://josm.openstreetmap.de</url>
65 </organization>
66 <scm>
67 <connection>scm:svn:https://josm.openstreetmap.de/svn/trunk</connection>
68 <url>https://josm.openstreetmap.de/browser/josm/trunk</url>
69 </scm>
70 <issueManagement>
71 <system>Trac</system>
72 <url>https://josm.openstreetmap.de</url>
73 </issueManagement>
74 <mailingLists>
75 <mailingList>
76 <name>josm-dev</name>
77 <archive>https://lists.openstreetmap.org/pipermail/josm-dev/</archive>
78 <post>josm-dev@openstreetmap.org</post>
79 </mailingList>
80 </mailingLists>
81 <modules>
82 <module>../core/nodist/pom.xml</module>
83 <module>addrinterpolation</module>
84 <module>alignways</module>
85 <module>apache-commons</module>
86 <module>apache-http</module>
87 <module>buildings_tools</module>
88 <module>cadastre-fr</module>
89 <module>canvec_helper</module>
90 <module>colorscheme</module>
91 <module>ColumbusCSV</module>
92 <module>comfort0</module>
93 <module>CommandLine</module>
94 <module>Create_grid_of_ways</module>
95 <module>CustomizePublicTransportStop</module>
96 <module>dataimport</module>
97 <module>DirectDownload</module>
98 <module>DirectUpload</module>
99 <module>editgpx</module>
100 <module>ElevationProfile</module>
101 <module>epci-fr</module>
102 <module>eventbus</module>
103 <module>ext_tools</module>
104 <module>FastDraw</module>
105 <module>FixAddresses</module>
106 <module>flatlaf</module>
107 <module>geochat</module>
108 <module>geotools</module>
109 <module>globalsat</module>
110 <module>gpsblam</module>
111 <module>graphview</module>
112 <module>HouseNumberTaggingTool</module>
113 <module>http2</module>
114 <module>ejml</module>
115 <module>imagery-xml-bounds</module>
116 <module>imagery_cachexport</module>
117 <module>imagery_offset_db</module>
118 <module>imagewaypoint</module>
119 <module>ImportImagePlugin</module>
120 <module>importvec</module>
121 <module>indoor_sweepline</module>
122 <module>infomode</module>
123 <module>jackson</module>
124 <module>jaxb</module>
125 <module>jna</module>
126 <module>jts</module>
127 <module>junctionchecking</module>
128 <module>lwjgl/modules</module>
129 <module>livegps</module>
130 <module>log4j</module>
131 <module>measurement</module>
132 <module>merge-overlap</module>
133 <module>michigan_left</module>
134 <module>namemanager</module>
135 <module>NanoLog</module>
136 <module>native-password-manager</module>
137 <module>o5m</module>
138 <module>opendata/modules</module>
139 <module>OpeningHoursEditor</module>
140 <module>openvisible</module>
141 <module>pbf</module>
142 <module>pdfimport</module>
143 <module>photo_geotagging</module>
144 <module>photoadjust</module>
145 <module>pointInfo</module>
146 <module>poly</module>
147 <module>print</module>
148 <module>public_transport</module>
149 <module>rasterfilters</module>
150 <module>reltoolbox</module>
151 <module>reverter</module>
152 <module>roadsigns</module>
153 <module>routes</module>
154 <module>routing</module>
155 <module>SaudiNationalAddress</module>
156 <module>sds</module>
157 <module>seachart</module>
158 <module>seachartedit</module>
159 <module>simplifyarea</module>
160 <module>smed</module>
161 <module>splinex</module>
162 <module>surveyor</module>
163 <module>tageditor</module>
164 <module>tagging-preset-tester</module>
165 <module>terracer</module>
166 <module>touchscreenhelper</module>
167 <module>tracer</module>
168 <module>tracer2</module>
169 <module>turnlanes</module>
170 <module>turnrestrictions</module>
171 <module>undelete</module>
172 <module>utilsplugin2</module>
173 <module>waydownloader</module>
174 <module>waypoint_search</module>
175 <module>wms-turbo-challenge2</module>
176 </modules>
177 <dependencies>
178 <dependency>
179 <groupId>org.openstreetmap.josm</groupId>
180 <artifactId>josm</artifactId>
181 <version>${plugin.compile.version}</version>
182 <scope>provided</scope>
183 </dependency>
184 <dependency>
185 <groupId>org.openstreetmap.josm</groupId>
186 <artifactId>josm-unittest</artifactId>
187 </dependency>
188 </dependencies>
189 <dependencyManagement>
190 <dependencies>
191 <dependency>
192 <groupId>org.openstreetmap.josm</groupId>
193 <artifactId>josm-unittest</artifactId>
194 <version>1.5-SNAPSHOT</version>
195 <scope>test</scope>
196 </dependency>
197 </dependencies>
198 </dependencyManagement>
199 <build>
200 <sourceDirectory>${plugin.src.dir}</sourceDirectory>
201 <testSourceDirectory>${plugin.test.src.dir}</testSourceDirectory>
202 <resources>
203 <resource>
204 <directory>${plugin.resources.dir}/data</directory>
205 <targetPath>data</targetPath>
206 </resource>
207 <resource>
208 <directory>${plugin.resources.dir}/images</directory>
209 <targetPath>images</targetPath>
210 </resource>
211 <resource>
212 <directory>${plugin.resources.dir}/resources</directory>
213 <targetPath>resources</targetPath>
214 </resource>
215 </resources>
216 <testResources>
217 <testResource>
218 <directory>${plugin.test.data.dir}</directory>
219 </testResource>
220 </testResources>
221 <plugins>
222 <plugin>
223 <groupId>org.apache.maven.plugins</groupId>
224 <artifactId>maven-shade-plugin</artifactId>
225 </plugin>
226 </plugins>
227 <pluginManagement>
228 <plugins>
229 <!-- Configure checkstyle/pmd/other lint plugins -->
230 <plugin>
231 <groupId>com.github.spotbugs</groupId>
232 <artifactId>spotbugs-maven-plugin</artifactId>
233 <version>4.8.1.0</version>
234 <configuration>
235 <xmlOutput>true</xmlOutput>
236 <spotbugsXmlOutputFilename>spotbugs-josm.xml</spotbugsXmlOutputFilename>
237 <effort>max</effort>
238 <excludeFilterFile>${spotbugs.dir}/josm-filter.xml</excludeFilterFile>
239 <onlyAnalyze>org.openstreetmap.josm.-</onlyAnalyze>
240 <threshold>LOW</threshold>
241 </configuration>
242 <!-- This is commented out until all the current bugs are fixed. TODO uncomment!
243 <executions>
244 <execution>
245 <id>validate</id>
246 <phase>validate</phase>
247 <goals>
248 <goal>check</goal>
249 </goals>
250 </execution>
251 </executions>
252 -->
253 </plugin>
254 <plugin>
255 <groupId>org.apache.maven.plugins</groupId>
256 <artifactId>maven-checkstyle-plugin</artifactId>
257 <version>3.3.1</version>
258 <configuration>
259 <configLocation>${project.basedir}/../checkstyle-config.xml</configLocation>
260 <includeTestSourceDirectory>true</includeTestSourceDirectory>
261 <outputFile>${project.basedir}/checkstyle-josm-${project.name}.xml</outputFile>
262 <!-- checkstyle cannot parse module-info.java yet -->
263 <excludes>module-info.java</excludes>
264 </configuration>
265 <executions>
266 <execution>
267 <id>validate</id>
268 <phase>validate</phase>
269 <goals>
270 <goal>check</goal>
271 </goals>
272 </execution>
273 </executions>
274 </plugin>
275 <!-- Configure the test plugin, specifically enable autodetection of global extensions -->
276 <plugin>
277 <artifactId>maven-surefire-plugin</artifactId>
278 <version>3.2.5</version>
279 <configuration>
280 <skipAfterFailureCount>1</skipAfterFailureCount>
281 <argLine>-javaagent:"${settings.localRepository}"/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar</argLine>
282 <properties>
283 <configurationParameters>
284 file.encoding = UTF-8
285 java.locale.providers = SPI,CLDR
286 junit.jupiter.extensions.autodetection.enabled = true
287 junit.jupiter.execution.parallel.enabled = true
288 </configurationParameters>
289 </properties>
290 <systemPropertyVariables>
291 <josm.home>${plugin.test.dir}/config/josm.home</josm.home>
292 <josm.test.data>${plugin.test.data.dir}</josm.test.data>
293 <java.awt.headless>${test.headless}</java.awt.headless>
294 <glass.platform>Monocle</glass.platform>
295 <monocle.platform>Headless</monocle.platform>
296 <prism.order>sw</prism.order>
297 </systemPropertyVariables>
298 </configuration>
299 </plugin>
300 <!-- the clean plugin is needed since we currently store generated sources in the source directory -->
301 <plugin>
302 <groupId>org.apache.maven.plugins</groupId>
303 <artifactId>maven-clean-plugin</artifactId>
304 <version>3.3.2</version>
305 <configuration>
306 <filesets>
307 <fileset>
308 <directory>${plugin.build.dir}</directory>
309 </fileset>
310 <fileset>
311 <directory>${plugin.dist.dir}</directory>
312 <includes>
313 <include>${plugin.jar}</include>
314 <include>${plugin.unixoid.jar}</include>
315 <include>${plugin.windows.jar}</include>
316 <include>${plugin.osx.jar}</include>
317 <include>${plugin.sources.jar}</include>
318 <include>${plugin.javadoc.jar}</include>
319 </includes>
320 </fileset>
321 <fileset>
322 <directory>${project.basedir}</directory>
323 <includes>
324 <include>checkstyle-josm-${project.name}.xml</include>
325 </includes>
326 </fileset>
327 </filesets>
328 </configuration>
329 </plugin>
330 <plugin>
331 <groupId>com.diffplug.spotless</groupId>
332 <artifactId>spotless-maven-plugin</artifactId>
333 <version>2.43.0</version>
334 <configuration>
335 <java>
336 <eclipse>
337 <version>4.21.0</version>
338 <file>${project.basedir}/../00_core_tools/eclipse/formatter.xml</file>
339 </eclipse>
340 <removeUnusedImports/>
341 <licenseHeader>
342 <content>// License: GPL. For details, see LICENSE file.</content>
343 </licenseHeader>
344 </java>
345 </configuration>
346 <executions>
347 <execution>
348 <goals>
349 <goal>check</goal>
350 </goals>
351 </execution>
352 </executions>
353 </plugin>
354 <!-- Used to merge compile dependencies into jars -->
355 <plugin>
356 <groupId>org.apache.maven.plugins</groupId>
357 <artifactId>maven-shade-plugin</artifactId>
358 <version>3.5.3</version>
359 <executions>
360 <execution>
361 <phase>package</phase>
362 <goals>
363 <goal>shade</goal>
364 </goals>
365 <configuration>
366 <outputDirectory>${plugin.dist.dir}</outputDirectory>
367 <finalName>${project.name}</finalName>
368 </configuration>
369 </execution>
370 </executions>
371 </plugin>
372 <!-- Used to share properties between maven, gradle, and ant, where there is a gradle.properties file -->
373 <plugin>
374 <groupId>org.codehaus.mojo</groupId>
375 <artifactId>properties-maven-plugin</artifactId>
376 <version>1.2.1</version>
377 <executions>
378 <execution>
379 <phase>initialize</phase>
380 <goals>
381 <goal>read-project-properties</goal>
382 </goals>
383 <configuration>
384 <files>
385 <file>gradle.properties</file>
386 </files>
387 </configuration>
388 </execution>
389 </executions>
390 </plugin>
391 <plugin>
392 <groupId>org.apache.maven.plugins</groupId>
393 <artifactId>maven-jar-plugin</artifactId>
394 <configuration>
395 <archive>
396 <manifestEntries>
397 <!-- For full documentation, see https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins#ThemanifestfileforaJOSMplugin -->
398 <Plugin-Mainversion>${plugin.main.version}</Plugin-Mainversion>
399 <Plugin-Version>${project.version}</Plugin-Version>
400 <Plugin-Class>${plugin.class}</Plugin-Class>
401 <Plugin-Description>${plugin.description}</Plugin-Description>
402 <!-- These are optional, but are either added almost all the time or can be auto generated -->
403 <Plugin-Date>${maven.build.timestamp}</Plugin-Date>
404 <Author>${plugin.author}</Author>
405 <!-- These are optional and/or uncommon -->
406 <!-- plugin.platform must be `Windows`, `Osx`, or `Unixoid` -->
407 <!--
408 <Plugin-Platform>${plugin.platform}</Plugin-Platform>
409 <Plugin-Provides>${plugin.provides}</Plugin-Provides>
410 <Plugin-Minimum-Java-Version>${plugin.minimum.java.version}</Plugin-Minimum-Java-Version>
411 <Plugin-Early>${plugin.early}</Plugin-Early>
412 <Plugin-Link>${plugin.link}</Plugin-Link>
413 <Plugin-Icon>${plugin.icon}</Plugin-Icon>
414 <Plugin-Stage>${plugin.stage}</Plugin-Stage>
415 <Plugin-Requires>${plugin.requires}</Plugin-Requires>
416 <Plugin-Canloadatruntime>${plugin.canloadatruntime}</Plugin-Canloadatruntime>
417 <Class-Path>${plugin.classpath}</Class-Path>
418 -->
419 <!-- Additional entries: <xxx>_Plugin-Url (doesn't work well with xml) and <lang>_Plugin_Description -->
420 </manifestEntries>
421 </archive>
422 </configuration>
423 </plugin>
424 <!-- For any jaxb plugins -->
425 <plugin>
426 <groupId>org.codehaus.mojo</groupId>
427 <artifactId>jaxb2-maven-plugin</artifactId>
428 <version>2.5.0</version>
429 </plugin>
430 </plugins>
431 </pluginManagement>
432 </build>
433 <profiles>
434 <profile>
435 <!-- This profile is needed to avoid trying to install a non-jar file -->
436 <id>not-pom-packaging</id>
437 <activation>
438 <property>
439 <name>packaging</name>
440 <value>!pom</value>
441 </property>
442 </activation>
443 <build>
444 <pluginManagement>
445 <plugins>
446 <plugin>
447 <groupId>org.apache.maven.plugins</groupId>
448 <artifactId>maven-install-plugin</artifactId>
449 <version>3.1.1</version>
450 <executions>
451 <execution>
452 <id>dist-install</id>
453 <phase>install</phase>
454 <goals>
455 <goal>install-file</goal>
456 </goals>
457 <configuration>
458 <file>${plugin.dist.dir}/${project.name}.jar</file>
459 <artifactId>${project.artifactId}</artifactId>
460 <groupId>${project.groupId}</groupId>
461 <version>${project.version}</version>
462 <packaging>${project.packaging}</packaging>
463 </configuration>
464 </execution>
465 </executions>
466 </plugin>
467 </plugins>
468 </pluginManagement>
469 </build>
470 </profile>
471 <profile>
472 <id>java-21-plugins</id>
473 <activation>
474 <jdk>[21,]</jdk>
475 </activation>
476 <modules>
477 <module>FIT</module>
478 <module>MicrosoftStreetside</module>
479 </modules>
480 </profile>
481 <profile>
482 <id>java-17-plugins</id>
483 <activation>
484 <jdk>[17,]</jdk>
485 </activation>
486 <modules>
487 <module>javafx</module>
488 <module>imageio</module>
489 <module>pmtiles</module>
490 </modules>
491 </profile>
492 <profile>
493 <id>areaselector</id>
494 <activation><file><exists>areaselector/pom.xml</exists></file></activation>
495 <modules><module>areaselector</module></modules>
496 </profile>
497 <profile>
498 <id>austriaaddresshelper</id>
499 <activation><file><exists>austriaaddresshelper/pom.xml</exists></file></activation>
500 <modules><module>austriaaddresshelper</module></modules>
501 </profile>
502 <profile>
503 <id>auto-tools</id>
504 <activation><file><exists>auto-tools/pom.xml</exists></file></activation>
505 <modules><module>auto-tools</module></modules>
506 </profile>
507 <profile>
508 <id>Building-Generalization</id>
509 <activation><file><exists>Building-Generalization/pom.xml</exists></file></activation>
510 <modules><module>Building-Generalization</module></modules>
511 </profile>
512 <profile>
513 <id>changeset-viewer</id>
514 <activation><file><exists>changeset-viewer/pom.xml</exists></file></activation>
515 <modules><module>changeset-viewer</module></modules>
516 </profile>
517 <profile>
518 <id>Color</id>
519 <activation><file><exists>Color/pom.xml</exists></file></activation>
520 <modules><module>Color</module></modules>
521 </profile>
522 <profile>
523 <id>configuration</id>
524 <activation><file><exists>configuration/pom.xml</exists></file></activation>
525 <modules><module>configuration</module></modules>
526 </profile>
527 <profile>
528 <id>conflation</id>
529 <activation><file><exists>conflation/pom.xml</exists></file></activation>
530 <modules><module>conflation</module></modules>
531 </profile>
532 <profile>
533 <id>continuos-download</id>
534 <activation><file><exists>continuos-download/pom.xml</exists></file></activation>
535 <modules><module>continuos-download</module></modules>
536 </profile>
537 <profile>
538 <id>Dxf-Import</id>
539 <activation><file><exists>Dxf-Import/pom.xml</exists></file></activation>
540 <modules><module>Dxf-Import</module></modules>
541 </profile>
542 <profile>
543 <id>gridify</id>
544 <activation><file><exists>gridify/pom.xml</exists></file></activation>
545 <modules><module>gridify</module></modules>
546 </profile>
547 <profile>
548 <id>improve-way</id>
549 <activation><file><exists>improve-way/pom.xml</exists></file></activation>
550 <modules><module>improve-way</module></modules>
551 </profile>
552 <profile>
553 <id>indoorhelper</id>
554 <activation><file><exists>indoorhelper/pom.xml</exists></file></activation>
555 <modules><module>indoorhelper</module></modules>
556 </profile>
557 <profile>
558 <id>kartverketimport</id>
559 <activation><file><exists>kartverketimport/pom.xml</exists></file></activation>
560 <modules><module>kartverketimport</module></modules>
561 </profile>
562 <profile>
563 <id>Mapillary</id>
564 <activation><file><exists>Mapillary/pom.xml</exists></file><jdk>[17,]</jdk></activation>
565 <modules><module>Mapillary</module></modules>
566 </profile>
567 <profile>
568 <id>MapRoulette</id>
569 <activation><file><exists>MapRoulette/pom.xml</exists></file><jdk>[17,]</jdk></activation>
570 <modules><module>MapRoulette</module></modules>
571 </profile>
572 <profile>
573 <id>markseen</id>
574 <activation><file><exists>markseen/pom.xml</exists></file></activation>
575 <modules><module>markseen</module></modules>
576 </profile>
577 <profile>
578 <id>osm-obj-info</id>
579 <activation><file><exists>osm-obj-info/pom.xml</exists></file></activation>
580 <modules><module>osm-obj-info</module></modules>
581 </profile>
582 <profile>
583 <id>PicLayer</id>
584 <activation><file><exists>PicLayer/pom.xml</exists></file></activation>
585 <modules><module>PicLayer</module></modules>
586 </profile>
587 <profile>
588 <id>pt_assistant</id>
589 <activation><file><exists>pt_assistant/pom.xml</exists></file><jdk>[17,]</jdk></activation>
590 <modules><module>pt_assistant</module></modules>
591 </profile>
592 <profile>
593 <id>rex</id>
594 <activation><file><exists>rex/pom.xml</exists></file></activation>
595 <modules><module>rex</module></modules>
596 </profile>
597 <profile>
598 <id>ShapeTools</id>
599 <activation><file><exists>ShapeTools/pom.xml</exists></file></activation>
600 <modules><module>ShapeTools</module></modules>
601 </profile>
602 <profile>
603 <id>todo</id>
604 <activation><file><exists>todo/pom.xml</exists></file><jdk>[17,]</jdk></activation>
605 <modules><module>todo</module></modules>
606 </profile>
607 <profile>
608 <id>turnlanes-tagging</id>
609 <activation><file><exists>turnlanes-tagging/pom.xml</exists></file></activation>
610 <modules><module>turnlanes-tagging</module></modules>
611 </profile>
612 <profile>
613 <id>validations_testing</id>
614 <activation><file><exists>validations_testing/pom.xml</exists></file></activation>
615 <modules><module>validations_testing</module></modules>
616 </profile>
617 <profile>
618 <id>wikipedia</id>
619 <activation><file><exists>wikipedia/pom.xml</exists></file></activation>
620 <modules><module>wikipedia</module></modules>
621 </profile>
622 </profiles>
623</project>
Note: See TracBrowser for help on using the repository browser.