<mavenAggregatedArtifactRecord _class='hudson.maven.reporters.MavenAggregatedArtifactRecord'><moduleRecord><attachedArtifact><artifactId>dgss2526-teamA-microstories-domain</artifactId><canonicalName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-sources.jar</canonicalName><classifier>sources</classifier><fileName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-sources.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>a18b236715bbbeb1d492884a876f7abb</md5sum><type>java-source</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><attachedArtifact><artifactId>dgss2526-teamA-microstories-domain</artifactId><canonicalName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-javadoc.jar</canonicalName><classifier>javadoc</classifier><fileName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-javadoc.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>4f9b37817024029f5e746dc5d589f812</md5sum><type>javadoc</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>dgss2526-teamA-microstories-domain</artifactId><canonicalName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.jar</canonicalName><fileName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>2c2d722fcfe4b85fa7c71e42ad5f77dd</md5sum><type>jar</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><action _class='hudson.maven.reporters.SurefireReport'><failCount>0</failCount><skipCount>0</skipCount><totalCount>61</totalCount><urlName>testReport</urlName></action><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-domain/135/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-javadoc.jar</displayPath><fileName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-javadoc.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-domain/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-javadoc.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-sources.jar</displayPath><fileName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-sources.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-domain/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT-sources.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.jar</displayPath><fileName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-domain/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-domain/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#135</displayName><duration>9242</duration><estimatedDuration>10955</estimatedDuration><fullDisplayName>microstories-2526-teamA » Domain #135</fullDisplayName><id>135</id><keepLog>false</keepLog><number>135</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1765013527783</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-domain/135/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>service/src/test/resources/beans.xml</affectedPath><affectedPath>tests/src/main/java/es/uvigo/esei/dgss/teama/microstories/service/util/security/CreatorRoleCaller.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>domain/src/main/java/es/uvigo/esei/microstories/domain/entities/Story.java</affectedPath><affectedPath>tests/src/main/resources/datasets/stories.xml</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/mappers/StoryMapper.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/UserService.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/dtos/StoryCreateDto.java</affectedPath><affectedPath>additional-material/db/microstories-mysql.creation.sql</affectedPath><affectedPath>additional-material/db/microstories-mysql.full.sql</affectedPath><affectedPath>domain/src/test/java/es/uvigo/esei/microstories/domain/entities/StoryTest.java</affectedPath><commitId>9c9f284f27e50c1133da185222a2aedf319ce900</commitId><timestamp>1765013307000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk59: Implements story creation and update in service layer
This commit adds full support for creating and updating stories. It
introduces
`StoryCreateDto`, implements creation and update flows in
`StoryService`, and applies permission checks using the security role
caller for CREATOR actions. A new `UserService` is added to resolve the
current user. The `Story` entity now supports relaxed nullability for
drafts, immutability after publication, theme and text validations, and
a new `isComplete` method. The database schema is updated to match these
rules. The `StoryMapper` is adjusted for the updated entity constructor.
Comprehensive unit and integration tests verify creation, updating,
validation behavior, and authorization handling.
</comment><date>2025-12-06 10:28:27 +0100</date><id>9c9f284f27e50c1133da185222a2aedf319ce900</id><msg>tsk59: Implements story creation and update in service layer</msg><path><editType>edit</editType><file>tests/src/main/resources/datasets/stories.xml</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/mappers/StoryMapper.java</file></path><path><editType>add</editType><file>tests/src/main/java/es/uvigo/esei/dgss/teama/microstories/service/util/security/CreatorRoleCaller.java</file></path><path><editType>add</editType><file>service/src/main/java/es/uvigo/esei/microstories/dtos/StoryCreateDto.java</file></path><path><editType>edit</editType><file>additional-material/db/microstories-mysql.full.sql</file></path><path><editType>add</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/UserService.java</file></path><path><editType>edit</editType><file>additional-material/db/microstories-mysql.creation.sql</file></path><path><editType>edit</editType><file>domain/src/test/java/es/uvigo/esei/microstories/domain/entities/StoryTest.java</file></path><path><editType>edit</editType><file>service/src/test/resources/beans.xml</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path><path><editType>edit</editType><file>domain/src/main/java/es/uvigo/esei/microstories/domain/entities/Story.java</file></path></item></changeSet><culprit><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></culprit><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-domain/135/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-domain</artifactId><canonicalName>dgss2526-teamA-microstories-domain-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>958492c6b9cbb4253a78b96ad7b4f22f</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-domain/135/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>dgss2526-teamA-microstories-ear</artifactId><canonicalName>dgss2526-teamA-microstories-ear-0.1.0-SNAPSHOT.ear</canonicalName><fileName>dgss2526-teamA-microstories-pom-0.1.0-SNAPSHOT.ear</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>b04d43d596a8a5c1fc1cd0fa55cbdea1</md5sum><type>ear</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-ear/135/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-ear-0.1.0-SNAPSHOT.ear</displayPath><fileName>dgss2526-teamA-microstories-ear-0.1.0-SNAPSHOT.ear</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-ear/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-ear-0.1.0-SNAPSHOT.ear</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-ear-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-ear-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-ear/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-ear-0.1.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#135</displayName><duration>1289</duration><estimatedDuration>3318</estimatedDuration><fullDisplayName>microstories-2526-teamA » EAR #135</fullDisplayName><id>135</id><keepLog>false</keepLog><number>135</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1765013527785</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-ear/135/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'></changeSet><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-ear/135/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-ear</artifactId><canonicalName>dgss2526-teamA-microstories-ear-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>4b994d92049f8de4c6ea0bd370595780</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-ear/135/mavenArtifacts/</url></moduleRecord><moduleRecord><attachedArtifact><artifactId>dgss2526-teamA-microstories-jsf</artifactId><canonicalName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-sources.jar</canonicalName><classifier>sources</classifier><fileName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-sources.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>01f8b9162d03096132e37ed88f150204</md5sum><type>java-source</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><attachedArtifact><artifactId>dgss2526-teamA-microstories-jsf</artifactId><canonicalName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-javadoc.jar</canonicalName><classifier>javadoc</classifier><fileName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-javadoc.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>9f7e8e9167fcba3b445ad1abc0dc762a</md5sum><type>javadoc</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>dgss2526-teamA-microstories-jsf</artifactId><canonicalName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.war</canonicalName><fileName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.war</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>c98feaec7c38169c8889e4b1c62b7c44</md5sum><type>war</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-jsf/135/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-javadoc.jar</displayPath><fileName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-javadoc.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-jsf/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-javadoc.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-sources.jar</displayPath><fileName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-sources.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-jsf/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT-sources.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-jsf/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.pom</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.war</displayPath><fileName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.war</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-jsf/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.war</relativePath></artifact><building>false</building><displayName>#135</displayName><duration>10113</duration><estimatedDuration>12831</estimatedDuration><fullDisplayName>microstories-2526-teamA » JSF #135</fullDisplayName><id>135</id><keepLog>false</keepLog><number>135</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1765013527785</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-jsf/135/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>jsf/src/main/webapp/story/explore.xhtml</affectedPath><affectedPath>jsf/src/main/java/es/uvigo/esei/microstories/jsf/ExploreBean.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>jsf/src/main/java/es/uvigo/esei/microstories/jsf/pagination/Paginated.java</affectedPath><commitId>f76f401fdca79bf9e149ab2b66869d1a759dc6f2</commitId><timestamp>1765013289000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk43: Refactors story exploration to integrate reusable pagination
logic
Replaces custom pagination with a shared `Paginated` class to centralize 
functionality. Updates `ExploreBean` and `Explore.xhtml` to streamline 
navigation, enhance maintainability, and correct typographical errors in
`availableGenres` and `availableThemes`. Creates method in service to 
count the number of filtered stories and adds tests to it.
</comment><date>2025-12-06 10:28:09 +0100</date><id>f76f401fdca79bf9e149ab2b66869d1a759dc6f2</id><msg>tsk43: Refactors story exploration to integrate reusable pagination</msg><path><editType>edit</editType><file>jsf/src/main/java/es/uvigo/esei/microstories/jsf/pagination/Paginated.java</file></path><path><editType>edit</editType><file>jsf/src/main/webapp/story/explore.xhtml</file></path><path><editType>edit</editType><file>jsf/src/main/java/es/uvigo/esei/microstories/jsf/ExploreBean.java</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>jsf/src/main/java/es/uvigo/esei/microstories/jsf/StoryManagedBean.java</affectedPath><affectedPath>jsf/src/main/webapp/story/search.xhtml</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><commitId>f6ca7fae65d71ac87798a6aaa92945a2ff199580</commitId><timestamp>1765013308000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk39: Integrates advanced pagination and search improvements for
stories
Refactors `StoryManagedBean` to use a reusable `Paginated` class, 
centralizing pagination logic. Enhances `search.xhtml` with dynamic page 
size, navigation controls, and updated search result display. Updates
`StoryService` to add counts for published and filtered stories,
alongside improved query logic. Adds and updates related tests.
</comment><date>2025-12-06 10:28:28 +0100</date><id>f6ca7fae65d71ac87798a6aaa92945a2ff199580</id><msg>tsk39: Integrates advanced pagination and search improvements for</msg><path><editType>edit</editType><file>jsf/src/main/webapp/story/search.xhtml</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>edit</editType><file>jsf/src/main/java/es/uvigo/esei/microstories/jsf/StoryManagedBean.java</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path></item></changeSet><culprit><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></culprit><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-jsf/135/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-jsf</artifactId><canonicalName>dgss2526-teamA-microstories-jsf-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>a1666b37ed3bcfe5a6b9714068c03b08</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-jsf/135/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>dgss2526-teamA-microstories-pom</artifactId><canonicalName>dgss2526-teamA-microstories-pom-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>82c9f35d18d0437d6be088219c629887</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-pom/135/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-pom-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-pom-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-pom/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-pom-0.1.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#135</displayName><duration>9238</duration><estimatedDuration>10579</estimatedDuration><fullDisplayName>microstories-2526-teamA » μStories 25/26 Team A #135</fullDisplayName><id>135</id><keepLog>false</keepLog><number>135</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1765013527779</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-pom/135/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>service/src/test/resources/beans.xml</affectedPath><affectedPath>tests/src/main/java/es/uvigo/esei/dgss/teama/microstories/service/util/security/CreatorRoleCaller.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>domain/src/main/java/es/uvigo/esei/microstories/domain/entities/Story.java</affectedPath><affectedPath>tests/src/main/resources/datasets/stories.xml</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/mappers/StoryMapper.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/UserService.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/dtos/StoryCreateDto.java</affectedPath><affectedPath>additional-material/db/microstories-mysql.creation.sql</affectedPath><affectedPath>additional-material/db/microstories-mysql.full.sql</affectedPath><affectedPath>domain/src/test/java/es/uvigo/esei/microstories/domain/entities/StoryTest.java</affectedPath><commitId>9c9f284f27e50c1133da185222a2aedf319ce900</commitId><timestamp>1765013307000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk59: Implements story creation and update in service layer
This commit adds full support for creating and updating stories. It
introduces
`StoryCreateDto`, implements creation and update flows in
`StoryService`, and applies permission checks using the security role
caller for CREATOR actions. A new `UserService` is added to resolve the
current user. The `Story` entity now supports relaxed nullability for
drafts, immutability after publication, theme and text validations, and
a new `isComplete` method. The database schema is updated to match these
rules. The `StoryMapper` is adjusted for the updated entity constructor.
Comprehensive unit and integration tests verify creation, updating,
validation behavior, and authorization handling.
</comment><date>2025-12-06 10:28:27 +0100</date><id>9c9f284f27e50c1133da185222a2aedf319ce900</id><msg>tsk59: Implements story creation and update in service layer</msg><path><editType>edit</editType><file>tests/src/main/resources/datasets/stories.xml</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/mappers/StoryMapper.java</file></path><path><editType>add</editType><file>tests/src/main/java/es/uvigo/esei/dgss/teama/microstories/service/util/security/CreatorRoleCaller.java</file></path><path><editType>add</editType><file>service/src/main/java/es/uvigo/esei/microstories/dtos/StoryCreateDto.java</file></path><path><editType>edit</editType><file>additional-material/db/microstories-mysql.full.sql</file></path><path><editType>add</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/UserService.java</file></path><path><editType>edit</editType><file>additional-material/db/microstories-mysql.creation.sql</file></path><path><editType>edit</editType><file>domain/src/test/java/es/uvigo/esei/microstories/domain/entities/StoryTest.java</file></path><path><editType>edit</editType><file>service/src/test/resources/beans.xml</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path><path><editType>edit</editType><file>domain/src/main/java/es/uvigo/esei/microstories/domain/entities/Story.java</file></path></item></changeSet><culprit><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></culprit><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-pom/135/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-pom</artifactId><canonicalName>dgss2526-teamA-microstories-pom-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>82c9f35d18d0437d6be088219c629887</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-pom/135/mavenArtifacts/</url></moduleRecord><moduleRecord><attachedArtifact><artifactId>dgss2526-teamA-microstories-rest</artifactId><canonicalName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-sources.jar</canonicalName><classifier>sources</classifier><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-sources.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>389c37a7d14b2199d29c5bf781509973</md5sum><type>java-source</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><attachedArtifact><artifactId>dgss2526-teamA-microstories-rest</artifactId><canonicalName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-javadoc.jar</canonicalName><classifier>javadoc</classifier><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-javadoc.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>901bdc5aa84e25735cc20e1c2c51389e</md5sum><type>javadoc</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>dgss2526-teamA-microstories-rest</artifactId><canonicalName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.war</canonicalName><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.war</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>970673b44d1f253bf0a1b34f6b43a18b</md5sum><type>war</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><action _class='hudson.maven.reporters.SurefireReport'><failCount>0</failCount><skipCount>0</skipCount><totalCount>31</totalCount><urlName>testReport</urlName></action><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-rest/135/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-javadoc.jar</displayPath><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-javadoc.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-rest/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-javadoc.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-sources.jar</displayPath><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-sources.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-rest/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT-sources.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-rest/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.pom</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.war</displayPath><fileName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.war</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-rest/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.war</relativePath></artifact><building>false</building><displayName>#135</displayName><duration>51539</duration><estimatedDuration>70905</estimatedDuration><fullDisplayName>microstories-2526-teamA » REST #135</fullDisplayName><id>135</id><keepLog>false</keepLog><number>135</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1765013527785</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-rest/135/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'></changeSet><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-rest/135/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-rest</artifactId><canonicalName>dgss2526-teamA-microstories-rest-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>1f02def09b6b44e33d13cbe8af50c971</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-rest/135/mavenArtifacts/</url></moduleRecord><moduleRecord><attachedArtifact><artifactId>dgss2526-teamA-microstories-service</artifactId><canonicalName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-sources.jar</canonicalName><classifier>sources</classifier><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-sources.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>b74a839f0e2a45d2bd7bb7a281adeb30</md5sum><type>java-source</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><attachedArtifact><artifactId>dgss2526-teamA-microstories-service</artifactId><canonicalName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-javadoc.jar</canonicalName><classifier>javadoc</classifier><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-javadoc.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>689d08bcb7e0cb6e9aee0c87bfc87524</md5sum><type>javadoc</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><attachedArtifact><artifactId>dgss2526-teamA-microstories-service</artifactId><canonicalName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-tests.jar</canonicalName><classifier>tests</classifier><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-tests.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>7b47d08acb9d5896a88786f722e6a6e6</md5sum><type>test-jar</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>dgss2526-teamA-microstories-service</artifactId><canonicalName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.jar</canonicalName><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>cf80ccb4b117269212c6400c202a7bf7</md5sum><type>jar</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><action _class='hudson.maven.reporters.SurefireReport'><failCount>0</failCount><skipCount>0</skipCount><totalCount>36</totalCount><urlName>testReport</urlName></action><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-service/135/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-javadoc.jar</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-javadoc.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-javadoc.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-sources.jar</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-sources.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-sources.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-tests.jar</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-tests.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT-tests.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.jar</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-service/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#135</displayName><duration>45550</duration><estimatedDuration>63778</estimatedDuration><fullDisplayName>microstories-2526-teamA » Service #135</fullDisplayName><id>135</id><keepLog>false</keepLog><number>135</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1765013527784</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-service/135/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>jsf/src/main/webapp/story/explore.xhtml</affectedPath><affectedPath>jsf/src/main/java/es/uvigo/esei/microstories/jsf/ExploreBean.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>jsf/src/main/java/es/uvigo/esei/microstories/jsf/pagination/Paginated.java</affectedPath><commitId>f76f401fdca79bf9e149ab2b66869d1a759dc6f2</commitId><timestamp>1765013289000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk43: Refactors story exploration to integrate reusable pagination
logic
Replaces custom pagination with a shared `Paginated` class to centralize 
functionality. Updates `ExploreBean` and `Explore.xhtml` to streamline 
navigation, enhance maintainability, and correct typographical errors in
`availableGenres` and `availableThemes`. Creates method in service to 
count the number of filtered stories and adds tests to it.
</comment><date>2025-12-06 10:28:09 +0100</date><id>f76f401fdca79bf9e149ab2b66869d1a759dc6f2</id><msg>tsk43: Refactors story exploration to integrate reusable pagination</msg><path><editType>edit</editType><file>jsf/src/main/java/es/uvigo/esei/microstories/jsf/pagination/Paginated.java</file></path><path><editType>edit</editType><file>jsf/src/main/webapp/story/explore.xhtml</file></path><path><editType>edit</editType><file>jsf/src/main/java/es/uvigo/esei/microstories/jsf/ExploreBean.java</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>service/src/test/resources/beans.xml</affectedPath><affectedPath>tests/src/main/java/es/uvigo/esei/dgss/teama/microstories/service/util/security/CreatorRoleCaller.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>domain/src/main/java/es/uvigo/esei/microstories/domain/entities/Story.java</affectedPath><affectedPath>tests/src/main/resources/datasets/stories.xml</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/mappers/StoryMapper.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/UserService.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/dtos/StoryCreateDto.java</affectedPath><affectedPath>additional-material/db/microstories-mysql.creation.sql</affectedPath><affectedPath>additional-material/db/microstories-mysql.full.sql</affectedPath><affectedPath>domain/src/test/java/es/uvigo/esei/microstories/domain/entities/StoryTest.java</affectedPath><commitId>9c9f284f27e50c1133da185222a2aedf319ce900</commitId><timestamp>1765013307000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk59: Implements story creation and update in service layer
This commit adds full support for creating and updating stories. It
introduces
`StoryCreateDto`, implements creation and update flows in
`StoryService`, and applies permission checks using the security role
caller for CREATOR actions. A new `UserService` is added to resolve the
current user. The `Story` entity now supports relaxed nullability for
drafts, immutability after publication, theme and text validations, and
a new `isComplete` method. The database schema is updated to match these
rules. The `StoryMapper` is adjusted for the updated entity constructor.
Comprehensive unit and integration tests verify creation, updating,
validation behavior, and authorization handling.
</comment><date>2025-12-06 10:28:27 +0100</date><id>9c9f284f27e50c1133da185222a2aedf319ce900</id><msg>tsk59: Implements story creation and update in service layer</msg><path><editType>edit</editType><file>tests/src/main/resources/datasets/stories.xml</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/mappers/StoryMapper.java</file></path><path><editType>add</editType><file>tests/src/main/java/es/uvigo/esei/dgss/teama/microstories/service/util/security/CreatorRoleCaller.java</file></path><path><editType>add</editType><file>service/src/main/java/es/uvigo/esei/microstories/dtos/StoryCreateDto.java</file></path><path><editType>edit</editType><file>additional-material/db/microstories-mysql.full.sql</file></path><path><editType>add</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/UserService.java</file></path><path><editType>edit</editType><file>additional-material/db/microstories-mysql.creation.sql</file></path><path><editType>edit</editType><file>domain/src/test/java/es/uvigo/esei/microstories/domain/entities/StoryTest.java</file></path><path><editType>edit</editType><file>service/src/test/resources/beans.xml</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path><path><editType>edit</editType><file>domain/src/main/java/es/uvigo/esei/microstories/domain/entities/Story.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>jsf/src/main/java/es/uvigo/esei/microstories/jsf/StoryManagedBean.java</affectedPath><affectedPath>jsf/src/main/webapp/story/search.xhtml</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><commitId>f6ca7fae65d71ac87798a6aaa92945a2ff199580</commitId><timestamp>1765013308000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk39: Integrates advanced pagination and search improvements for
stories
Refactors `StoryManagedBean` to use a reusable `Paginated` class, 
centralizing pagination logic. Enhances `search.xhtml` with dynamic page 
size, navigation controls, and updated search result display. Updates
`StoryService` to add counts for published and filtered stories,
alongside improved query logic. Adds and updates related tests.
</comment><date>2025-12-06 10:28:28 +0100</date><id>f6ca7fae65d71ac87798a6aaa92945a2ff199580</id><msg>tsk39: Integrates advanced pagination and search improvements for</msg><path><editType>edit</editType><file>jsf/src/main/webapp/story/search.xhtml</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>edit</editType><file>jsf/src/main/java/es/uvigo/esei/microstories/jsf/StoryManagedBean.java</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path></item></changeSet><culprit><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></culprit><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-service/135/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-service</artifactId><canonicalName>dgss2526-teamA-microstories-service-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>33cc8ebc893890903062103433b901d9</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-service/135/mavenArtifacts/</url></moduleRecord><moduleRecord><attachedArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</canonicalName><classifier>sources</classifier><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>19f3599abf1b9ea3d9adf0306d121f7b</md5sum><type>java-source</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><attachedArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</canonicalName><classifier>javadoc</classifier><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>933375fc60880f96528755bccb172dd0</md5sum><type>javadoc</type><version>0.1.0-SNAPSHOT</version></attachedArtifact><mainArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</canonicalName><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>bc36293062efdd6f7a55b156887db160</md5sum><type>jar</type><version>0.1.0-SNAPSHOT</version></mainArtifact><parent><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/135/mavenArtifacts/</url></action><action></action><artifact><displayPath>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</displayPath><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-tests/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-javadoc.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</displayPath><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-tests/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT-sources.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</displayPath><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-tests/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.jar</relativePath></artifact><artifact><displayPath>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</displayPath><fileName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</fileName><relativePath>es.uvigo.esei.dgss.teamA.microstories/dgss2526-teamA-microstories-tests/0.1.0-SNAPSHOT/dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#135</displayName><duration>3412</duration><estimatedDuration>4351</estimatedDuration><fullDisplayName>microstories-2526-teamA » Tests #135</fullDisplayName><id>135</id><keepLog>false</keepLog><number>135</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1765013527784</timestamp><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/135/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>service/src/test/resources/beans.xml</affectedPath><affectedPath>tests/src/main/java/es/uvigo/esei/dgss/teama/microstories/service/util/security/CreatorRoleCaller.java</affectedPath><affectedPath>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</affectedPath><affectedPath>domain/src/main/java/es/uvigo/esei/microstories/domain/entities/Story.java</affectedPath><affectedPath>tests/src/main/resources/datasets/stories.xml</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/mappers/StoryMapper.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/UserService.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</affectedPath><affectedPath>service/src/main/java/es/uvigo/esei/microstories/dtos/StoryCreateDto.java</affectedPath><affectedPath>additional-material/db/microstories-mysql.creation.sql</affectedPath><affectedPath>additional-material/db/microstories-mysql.full.sql</affectedPath><affectedPath>domain/src/test/java/es/uvigo/esei/microstories/domain/entities/StoryTest.java</affectedPath><commitId>9c9f284f27e50c1133da185222a2aedf319ce900</commitId><timestamp>1765013307000</timestamp><author><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></author><authorEmail>devpablogg@gmail.com</authorEmail><comment>tsk59: Implements story creation and update in service layer
This commit adds full support for creating and updating stories. It
introduces
`StoryCreateDto`, implements creation and update flows in
`StoryService`, and applies permission checks using the security role
caller for CREATOR actions. A new `UserService` is added to resolve the
current user. The `Story` entity now supports relaxed nullability for
drafts, immutability after publication, theme and text validations, and
a new `isComplete` method. The database schema is updated to match these
rules. The `StoryMapper` is adjusted for the updated entity constructor.
Comprehensive unit and integration tests verify creation, updating,
validation behavior, and authorization handling.
</comment><date>2025-12-06 10:28:27 +0100</date><id>9c9f284f27e50c1133da185222a2aedf319ce900</id><msg>tsk59: Implements story creation and update in service layer</msg><path><editType>edit</editType><file>tests/src/main/resources/datasets/stories.xml</file></path><path><editType>edit</editType><file>service/src/test/java/es/uvigo/esei/microstories/services/StoryServiceIntegrationTest.java</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/mappers/StoryMapper.java</file></path><path><editType>add</editType><file>tests/src/main/java/es/uvigo/esei/dgss/teama/microstories/service/util/security/CreatorRoleCaller.java</file></path><path><editType>add</editType><file>service/src/main/java/es/uvigo/esei/microstories/dtos/StoryCreateDto.java</file></path><path><editType>edit</editType><file>additional-material/db/microstories-mysql.full.sql</file></path><path><editType>add</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/UserService.java</file></path><path><editType>edit</editType><file>additional-material/db/microstories-mysql.creation.sql</file></path><path><editType>edit</editType><file>domain/src/test/java/es/uvigo/esei/microstories/domain/entities/StoryTest.java</file></path><path><editType>edit</editType><file>service/src/test/resources/beans.xml</file></path><path><editType>edit</editType><file>service/src/main/java/es/uvigo/esei/microstories/services/StoryService.java</file></path><path><editType>edit</editType><file>domain/src/main/java/es/uvigo/esei/microstories/domain/entities/Story.java</file></path></item></changeSet><culprit><absoluteUrl>http://sing.ei.uvigo.es/dt/jenkins/user/devpablogg</absoluteUrl><fullName>devpablogg</fullName></culprit><mavenArtifacts><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/135/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>dgss2526-teamA-microstories-tests</artifactId><canonicalName>dgss2526-teamA-microstories-tests-0.1.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>es.uvigo.esei.dgss.teamA.microstories</groupId><md5sum>1532e76707f9f47692c2c417366732cb</md5sum><type>pom</type><version>0.1.0-SNAPSHOT</version></pomArtifact><url>http://sing.ei.uvigo.es/dt/jenkins/job/microstories-2526-teamA/es.uvigo.esei.dgss.teamA.microstories$dgss2526-teamA-microstories-tests/135/mavenArtifacts/</url></moduleRecord></mavenAggregatedArtifactRecord>