Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

1) Wtyczka powinna posiadać w pom.xml jako parenta moduł plusworkflow-plugin-parent z konkretną wersją systemu >= 4.0.34:

<parent>
	<groupId>com.suncode</groupId>
	<artifactId>plusworkflow-plugin-parent</artifactId>
	<version>4.0.35</version>
</parent>

 

2) W resources/suncode-plugin.xml podajemy wymaganą wersję systemu na tą, która ustawiona jest w pomie jako parent

<plugin key="${project.groupId}-${project.artifactId}" name="Plugin Configuration Manager">
    <plugin-details>
        <requirements>
            <plusworkflow>4.0.35</plusworkflow>
        </requirements>
    </plugin-details>
</plugin>


3) Wszystkie publiczne zależności systemowe (na ten moment to plusworkflow-api i plugin-framework-api) powinny mieć scope na provided

<dependency>
	<groupId>com.suncode</groupId>
	<artifactId>plusworkflow-api</artifactId>
	<scope>provided</scope>
</dependency>


4) Najlepiej jakby wtyczki korzystały tylko z publicznych zależności systemowych. Dla nowych wtyczek punkt jest obowiązkowy. Dla istniejących wtyczek i tak będzie trzeba z czasem wyeliminować pozostałe zależności systemowe.
Na ten moment w takich zależnościach systemowych, ale niepublicznych (np do plusworfklow-core) zawsze dodajemy wykluczenia

<dependency>
	<groupId>com.suncode</groupId>
	<artifactId>plusworkflow-core</artifactId>
	<scope>provided</scope>
	<exclusions>
		<exclusion>
			<groupId>*</groupId>
			<artifactId>*</artifactId>
		</exclusion>
	</exclusions>
</dependency>

 

5) Zależności do naszych wtyczek zawsze dajemy w scope-provided, w konkretnej wersji i z wykluczeniami na wszystko (*).

<dependency>
	<groupId>com.suncode.plugin</groupId>
	<artifactId>plugin-configuration-manager</artifactId>
	<version>4.0.5</version>
	<scope>provided</scope>
	<exclusions>
		<exclusion>
			<groupId>*</groupId>
			<artifactId>*</artifactId>
		</exclusion>
	</exclusions>
</dependency>

 

6) Zewnętrzne wtyczki powinny być zdeklarowane w pomie wtyczki razem z wersją. Nie chcemy dziedziczyć zewnętrznych wtyczek z zależności systemowych, chyba że znajdują się w publicznych zależnościach w sekcji <dependency>.

 

7) Usunięcie pluginu maven-bundle-plugin z pom.xml

<plugin>
	<groupId>org.apache.felix</groupId>
	<artifactId>maven-bundle-plugin</artifactId>
	<extensions>true</extensions>
	<configuration>
		<instructions>
			<Import-Package>*;resolution:=optional</Import-Package>
			<Embed-Dependency>!slf4j-log4j12,!slf4j-api,!log4j,*;scope=compile|runtime|system,jackson-datatype-jsr310</Embed-Dependency>
		</instructions>
	</configuration>
</plugin>

 

8) Nazwy pakietów nie mogą się powtarzać. Nazwy pakietów powinny wyglądać w następujący sposób: com.suncode.id-wtyczki.xyz

 

9) Sprawdzić na endpoincie systemowym /PlusWorkflow/api/plugins/debug czy wszystko wygoląda prawidłowo, co jest w host- czyli dostarczane do wtyczki przez system i w unresolved. 

 

  • No labels